@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.
Files changed (114) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/create-payload/critical-metrics-payload/index.js +38 -0
  3. package/dist/cjs/create-payload/critical-metrics-payload/root-metrics.js +180 -0
  4. package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.js +251 -0
  5. package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.js +9 -0
  6. package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.js +15 -0
  7. package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.js +59 -0
  8. package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.js +17 -0
  9. package/dist/cjs/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.js +11 -0
  10. package/dist/cjs/create-payload/critical-metrics-payload/types.js +5 -0
  11. package/dist/cjs/create-payload/index.js +122 -214
  12. package/dist/cjs/create-payload/utils/find-matching-legacy-metric.js +15 -0
  13. package/dist/cjs/create-payload/utils/get-browser-metadata.js +87 -0
  14. package/dist/cjs/create-payload/utils/get-fmp.js +52 -0
  15. package/dist/cjs/create-payload/utils/get-navigation-metrics.js +66 -0
  16. package/dist/cjs/create-payload/utils/get-paint-metrics.js +124 -0
  17. package/dist/cjs/create-payload/utils/get-payload-size.js +17 -0
  18. package/dist/cjs/create-payload/utils/get-react-ufo-payload-version.js +3 -1
  19. package/dist/cjs/create-payload/utils/get-ssr-success.js +15 -0
  20. package/dist/cjs/create-payload/utils/get-ttai.js +14 -0
  21. package/dist/cjs/create-payload/utils/get-tti.js +38 -0
  22. package/dist/cjs/interaction-metrics/index.js +25 -0
  23. package/dist/cjs/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
  24. package/dist/es2019/create-payload/critical-metrics-payload/index.js +6 -0
  25. package/dist/es2019/create-payload/critical-metrics-payload/root-metrics.js +166 -0
  26. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.js +155 -0
  27. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.js +3 -0
  28. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.js +9 -0
  29. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.js +40 -0
  30. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.js +10 -0
  31. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.js +5 -0
  32. package/dist/es2019/create-payload/critical-metrics-payload/types.js +1 -0
  33. package/dist/es2019/create-payload/index.js +55 -151
  34. package/dist/es2019/create-payload/utils/find-matching-legacy-metric.js +7 -0
  35. package/dist/es2019/create-payload/utils/get-browser-metadata.js +79 -0
  36. package/dist/es2019/create-payload/utils/get-fmp.js +47 -0
  37. package/dist/es2019/create-payload/utils/get-navigation-metrics.js +59 -0
  38. package/dist/es2019/create-payload/utils/get-paint-metrics.js +78 -0
  39. package/dist/es2019/create-payload/utils/get-payload-size.js +11 -0
  40. package/dist/es2019/create-payload/utils/get-react-ufo-payload-version.js +2 -1
  41. package/dist/es2019/create-payload/utils/get-ssr-success.js +7 -0
  42. package/dist/es2019/create-payload/utils/get-ttai.js +9 -0
  43. package/dist/es2019/create-payload/utils/get-tti.js +35 -0
  44. package/dist/es2019/interaction-metrics/index.js +24 -0
  45. package/dist/es2019/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
  46. package/dist/esm/create-payload/critical-metrics-payload/index.js +31 -0
  47. package/dist/esm/create-payload/critical-metrics-payload/root-metrics.js +174 -0
  48. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.js +244 -0
  49. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.js +3 -0
  50. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.js +9 -0
  51. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.js +52 -0
  52. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.js +10 -0
  53. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.js +5 -0
  54. package/dist/esm/create-payload/critical-metrics-payload/types.js +1 -0
  55. package/dist/esm/create-payload/index.js +121 -210
  56. package/dist/esm/create-payload/utils/find-matching-legacy-metric.js +9 -0
  57. package/dist/esm/create-payload/utils/get-browser-metadata.js +79 -0
  58. package/dist/esm/create-payload/utils/get-fmp.js +47 -0
  59. package/dist/esm/create-payload/utils/get-navigation-metrics.js +59 -0
  60. package/dist/esm/create-payload/utils/get-paint-metrics.js +119 -0
  61. package/dist/esm/create-payload/utils/get-payload-size.js +11 -0
  62. package/dist/esm/create-payload/utils/get-react-ufo-payload-version.js +2 -1
  63. package/dist/esm/create-payload/utils/get-ssr-success.js +7 -0
  64. package/dist/esm/create-payload/utils/get-ttai.js +7 -0
  65. package/dist/esm/create-payload/utils/get-tti.js +33 -0
  66. package/dist/esm/interaction-metrics/index.js +24 -0
  67. package/dist/esm/vc/vc-observer-new/metric-calculator/fy25_03/index.js +3 -0
  68. package/dist/types/common/common/types.d.ts +1 -1
  69. package/dist/types/common/react-ufo-payload-schema.d.ts +23 -2
  70. package/dist/types/create-payload/critical-metrics-payload/index.d.ts +6 -0
  71. package/dist/types/create-payload/critical-metrics-payload/root-metrics.d.ts +7 -0
  72. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.d.ts +3 -0
  73. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.d.ts +2 -0
  74. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.d.ts +2 -0
  75. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.d.ts +7 -0
  76. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.d.ts +2 -0
  77. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.d.ts +2 -0
  78. package/dist/types/create-payload/critical-metrics-payload/types.d.ts +128 -0
  79. package/dist/types/create-payload/index.d.ts +339 -834
  80. package/dist/types/create-payload/utils/find-matching-legacy-metric.d.ts +5 -0
  81. package/dist/types/create-payload/utils/get-browser-metadata.d.ts +21 -0
  82. package/dist/types/create-payload/utils/get-fmp.d.ts +6 -0
  83. package/dist/types/create-payload/utils/get-navigation-metrics.d.ts +29 -0
  84. package/dist/types/create-payload/utils/get-paint-metrics.d.ts +13 -0
  85. package/dist/types/create-payload/utils/get-payload-size.d.ts +1 -0
  86. package/dist/types/create-payload/utils/get-react-ufo-payload-version.d.ts +2 -1
  87. package/dist/types/create-payload/utils/get-ssr-success.d.ts +2 -0
  88. package/dist/types/create-payload/utils/get-ttai.d.ts +2 -0
  89. package/dist/types/create-payload/utils/get-tti.d.ts +7 -0
  90. package/dist/types/interaction-metrics/index.d.ts +1 -0
  91. package/dist/types-ts4.5/common/common/types.d.ts +1 -1
  92. package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +23 -2
  93. package/dist/types-ts4.5/create-payload/critical-metrics-payload/index.d.ts +6 -0
  94. package/dist/types-ts4.5/create-payload/critical-metrics-payload/root-metrics.d.ts +7 -0
  95. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.d.ts +3 -0
  96. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.d.ts +2 -0
  97. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.d.ts +2 -0
  98. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.d.ts +7 -0
  99. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.d.ts +2 -0
  100. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.d.ts +2 -0
  101. package/dist/types-ts4.5/create-payload/critical-metrics-payload/types.d.ts +130 -0
  102. package/dist/types-ts4.5/create-payload/index.d.ts +339 -834
  103. package/dist/types-ts4.5/create-payload/utils/find-matching-legacy-metric.d.ts +5 -0
  104. package/dist/types-ts4.5/create-payload/utils/get-browser-metadata.d.ts +21 -0
  105. package/dist/types-ts4.5/create-payload/utils/get-fmp.d.ts +6 -0
  106. package/dist/types-ts4.5/create-payload/utils/get-navigation-metrics.d.ts +29 -0
  107. package/dist/types-ts4.5/create-payload/utils/get-paint-metrics.d.ts +13 -0
  108. package/dist/types-ts4.5/create-payload/utils/get-payload-size.d.ts +1 -0
  109. package/dist/types-ts4.5/create-payload/utils/get-react-ufo-payload-version.d.ts +2 -1
  110. package/dist/types-ts4.5/create-payload/utils/get-ssr-success.d.ts +2 -0
  111. package/dist/types-ts4.5/create-payload/utils/get-ttai.d.ts +2 -0
  112. package/dist/types-ts4.5/create-payload/utils/get-tti.d.ts +7 -0
  113. package/dist/types-ts4.5/interaction-metrics/index.d.ts +1 -0
  114. package/package.json +8 -1
@@ -0,0 +1,5 @@
1
+ import type { BM3Event, InteractionMetrics } from '../../common';
2
+ /**
3
+ * Find matching legacy metric by experience name and type
4
+ */
5
+ export declare function findMatchingLegacyMetric(interaction: InteractionMetrics, experienceName: string): BM3Event | undefined;
@@ -0,0 +1,21 @@
1
+ export default function getBrowserMetadata(): {
2
+ browser?: {
3
+ name: string;
4
+ version: string;
5
+ } | undefined;
6
+ device?: {
7
+ cpus?: number | undefined;
8
+ memory?: number | undefined;
9
+ } | undefined;
10
+ network?: {
11
+ effectiveType: string;
12
+ rtt: number;
13
+ downlink: number;
14
+ } | undefined;
15
+ time: {
16
+ localHour: number;
17
+ localDayOfWeek: number;
18
+ localTimezoneOffset: number;
19
+ };
20
+ };
21
+ export declare function getBrowserMetadataToLegacyFormat(): Record<string, any>;
@@ -0,0 +1,6 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ /**
3
+ * Calculate FMP (First Meaningful Paint) based on interaction type and configuration
4
+ * FMP is calculated based on legacy metrics or marks depending on interaction type and configuration
5
+ */
6
+ export declare function getFMP(interaction: InteractionMetrics, experienceName: string): number | undefined;
@@ -0,0 +1,29 @@
1
+ import type { InteractionType } from '../../common';
2
+ export interface NavigationMetrics {
3
+ redirectStart: number;
4
+ redirectEnd: number;
5
+ fetchStart: number;
6
+ domainLookupStart: number;
7
+ domainLookupEnd: number;
8
+ connectStart: number;
9
+ connectEnd: number;
10
+ secureConnectionStart: number;
11
+ requestStart: number;
12
+ responseStart: number;
13
+ responseEnd: number;
14
+ encodedBodySize: number;
15
+ decodedBodySize: number;
16
+ transferSize: number;
17
+ redirectCount: number;
18
+ type: string;
19
+ unloadEventEnd: number;
20
+ unloadEventStart: number;
21
+ workerStart: number;
22
+ nextHopProtocol: string;
23
+ }
24
+ export default function getNavigationMetrics(type: InteractionType): NavigationMetrics | null;
25
+ export declare function getNavigationMetricsToLegacyFormat(type: InteractionType): {
26
+ 'metrics:navigation'?: undefined;
27
+ } | {
28
+ 'metrics:navigation': NavigationMetrics;
29
+ };
@@ -0,0 +1,13 @@
1
+ import type { InteractionType } from '../../common';
2
+ export interface PaintMetrics {
3
+ fp?: number;
4
+ fcp?: number;
5
+ lcp?: number;
6
+ }
7
+ export interface LegacyPaintMetrics {
8
+ 'metric:fp'?: number;
9
+ 'metric:fcp'?: number;
10
+ 'metric:lcp'?: number;
11
+ }
12
+ export default function getPaintMetrics(type: InteractionType, end: number): Promise<PaintMetrics>;
13
+ export declare function getPaintMetricsToLegacyFormat(type: InteractionType, end: number): Promise<LegacyPaintMetrics>;
@@ -0,0 +1 @@
1
+ export default function getPayloadSize(payload: object): number;
@@ -1,2 +1,3 @@
1
1
  import type { InteractionType } from '../../interaction-metrics';
2
- export declare function getReactUFOPayloadVersion(interactionType: InteractionType, isPostInteractionLog?: boolean): "1.0.1" | "2.0.0";
2
+ export declare const LATEST_REACT_UFO_PAYLOAD_VERSION = "2.0.0";
3
+ export declare function getReactUFOPayloadVersion(interactionType: InteractionType, isPostInteractionLog?: boolean): "2.0.0" | "1.0.1";
@@ -0,0 +1,2 @@
1
+ import type { InteractionType } from '../../common';
2
+ export default function getSSRSuccess(type: InteractionType): boolean | undefined;
@@ -0,0 +1,2 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ export default function getTTAI(interaction: InteractionMetrics): number | undefined;
@@ -0,0 +1,7 @@
1
+ import type { InteractionMetrics } from '../../common';
2
+ /**
3
+ * Calculate TTI (Time to Interactive) based on server-side logic
4
+ * TTI is the time from interaction start to the end of the first matching legacy metric,
5
+ * or falls back to apdex/UFO end time if no legacy metrics exist
6
+ */
7
+ export declare function getTTI(interaction: InteractionMetrics, experienceName: string): number | undefined;
@@ -12,6 +12,7 @@ export declare function remove(interactionId: string): void;
12
12
  export declare function updatePageLoadInteractionName(ufoName: string, routeName?: string | null | undefined): void;
13
13
  export declare function addMetadata(interactionId: string, data: Record<string, unknown>): void;
14
14
  export declare function addCustomData(interactionId: string, labelStack: LabelStack, data: CustomData): void;
15
+ export declare function addCohortingCustomData(interactionId: string, key: string, value: number | boolean | string | null | undefined): void;
15
16
  export declare function addCustomTiming(interactionId: string, labelStack: LabelStack, data: CustomTiming): void;
16
17
  export declare function addMark(interactionId: string, type: MarkType, name: string, labelStack: LabelStack | null, time?: number): void;
17
18
  export declare function addMarkToAll(type: MarkType, name: string, labelStack: LabelStack | null, time?: number): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-ufo",
3
- "version": "3.14.3",
3
+ "version": "3.14.5",
4
4
  "description": "Parts of React UFO that are publicly available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -74,6 +74,7 @@
74
74
  ".": "./src/index.ts"
75
75
  },
76
76
  "dependencies": {
77
+ "@atlaskit/browser-apis": "^0.0.1",
77
78
  "@atlaskit/interaction-context": "^3.0.0",
78
79
  "@atlaskit/platform-feature-flags": "^1.1.0",
79
80
  "@babel/runtime": "^7.0.0",
@@ -136,6 +137,9 @@
136
137
  "platform_ufo_report_memory_usage": {
137
138
  "type": "boolean"
138
139
  },
140
+ "platform_ufo_enable_media_for_ttvc_v3": {
141
+ "type": "boolean"
142
+ },
139
143
  "platform_ufo_emit_vc_debug_data": {
140
144
  "type": "boolean"
141
145
  },
@@ -178,6 +182,9 @@
178
182
  "platform_ufo_enable_timeout_config": {
179
183
  "type": "boolean"
180
184
  },
185
+ "platform_ufo_critical_metrics_payload": {
186
+ "type": "boolean"
187
+ },
181
188
  "platform_ufo_enable_interactivity_jsm": {
182
189
  "type": "boolean"
183
190
  },