@atlaskit/react-ufo 3.14.3 → 3.14.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 (111) hide show
  1. package/CHANGELOG.md +8 -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/es2019/create-payload/critical-metrics-payload/index.js +6 -0
  24. package/dist/es2019/create-payload/critical-metrics-payload/root-metrics.js +166 -0
  25. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.js +155 -0
  26. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.js +3 -0
  27. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.js +9 -0
  28. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.js +40 -0
  29. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.js +10 -0
  30. package/dist/es2019/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.js +5 -0
  31. package/dist/es2019/create-payload/critical-metrics-payload/types.js +1 -0
  32. package/dist/es2019/create-payload/index.js +55 -151
  33. package/dist/es2019/create-payload/utils/find-matching-legacy-metric.js +7 -0
  34. package/dist/es2019/create-payload/utils/get-browser-metadata.js +79 -0
  35. package/dist/es2019/create-payload/utils/get-fmp.js +47 -0
  36. package/dist/es2019/create-payload/utils/get-navigation-metrics.js +59 -0
  37. package/dist/es2019/create-payload/utils/get-paint-metrics.js +78 -0
  38. package/dist/es2019/create-payload/utils/get-payload-size.js +11 -0
  39. package/dist/es2019/create-payload/utils/get-react-ufo-payload-version.js +2 -1
  40. package/dist/es2019/create-payload/utils/get-ssr-success.js +7 -0
  41. package/dist/es2019/create-payload/utils/get-ttai.js +9 -0
  42. package/dist/es2019/create-payload/utils/get-tti.js +35 -0
  43. package/dist/es2019/interaction-metrics/index.js +24 -0
  44. package/dist/esm/create-payload/critical-metrics-payload/index.js +31 -0
  45. package/dist/esm/create-payload/critical-metrics-payload/root-metrics.js +174 -0
  46. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.js +244 -0
  47. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.js +3 -0
  48. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.js +9 -0
  49. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.js +52 -0
  50. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.js +10 -0
  51. package/dist/esm/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.js +5 -0
  52. package/dist/esm/create-payload/critical-metrics-payload/types.js +1 -0
  53. package/dist/esm/create-payload/index.js +121 -210
  54. package/dist/esm/create-payload/utils/find-matching-legacy-metric.js +9 -0
  55. package/dist/esm/create-payload/utils/get-browser-metadata.js +79 -0
  56. package/dist/esm/create-payload/utils/get-fmp.js +47 -0
  57. package/dist/esm/create-payload/utils/get-navigation-metrics.js +59 -0
  58. package/dist/esm/create-payload/utils/get-paint-metrics.js +119 -0
  59. package/dist/esm/create-payload/utils/get-payload-size.js +11 -0
  60. package/dist/esm/create-payload/utils/get-react-ufo-payload-version.js +2 -1
  61. package/dist/esm/create-payload/utils/get-ssr-success.js +7 -0
  62. package/dist/esm/create-payload/utils/get-ttai.js +7 -0
  63. package/dist/esm/create-payload/utils/get-tti.js +33 -0
  64. package/dist/esm/interaction-metrics/index.js +24 -0
  65. package/dist/types/common/common/types.d.ts +1 -1
  66. package/dist/types/common/react-ufo-payload-schema.d.ts +23 -2
  67. package/dist/types/create-payload/critical-metrics-payload/index.d.ts +6 -0
  68. package/dist/types/create-payload/critical-metrics-payload/root-metrics.d.ts +7 -0
  69. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.d.ts +3 -0
  70. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.d.ts +2 -0
  71. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.d.ts +2 -0
  72. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.d.ts +7 -0
  73. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.d.ts +2 -0
  74. package/dist/types/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.d.ts +2 -0
  75. package/dist/types/create-payload/critical-metrics-payload/types.d.ts +128 -0
  76. package/dist/types/create-payload/index.d.ts +339 -834
  77. package/dist/types/create-payload/utils/find-matching-legacy-metric.d.ts +5 -0
  78. package/dist/types/create-payload/utils/get-browser-metadata.d.ts +21 -0
  79. package/dist/types/create-payload/utils/get-fmp.d.ts +6 -0
  80. package/dist/types/create-payload/utils/get-navigation-metrics.d.ts +29 -0
  81. package/dist/types/create-payload/utils/get-paint-metrics.d.ts +13 -0
  82. package/dist/types/create-payload/utils/get-payload-size.d.ts +1 -0
  83. package/dist/types/create-payload/utils/get-react-ufo-payload-version.d.ts +2 -1
  84. package/dist/types/create-payload/utils/get-ssr-success.d.ts +2 -0
  85. package/dist/types/create-payload/utils/get-ttai.d.ts +2 -0
  86. package/dist/types/create-payload/utils/get-tti.d.ts +7 -0
  87. package/dist/types/interaction-metrics/index.d.ts +1 -0
  88. package/dist/types-ts4.5/common/common/types.d.ts +1 -1
  89. package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +23 -2
  90. package/dist/types-ts4.5/create-payload/critical-metrics-payload/index.d.ts +6 -0
  91. package/dist/types-ts4.5/create-payload/critical-metrics-payload/root-metrics.d.ts +7 -0
  92. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/create-segment-metrics.d.ts +3 -0
  93. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-is-root-segment.d.ts +2 -0
  94. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-segment-id.d.ts +2 -0
  95. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/get-segment-status.d.ts +7 -0
  96. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/has-segment-failed.d.ts +2 -0
  97. package/dist/types-ts4.5/create-payload/critical-metrics-payload/segment-metrics/is-label-stack-under-segment.d.ts +2 -0
  98. package/dist/types-ts4.5/create-payload/critical-metrics-payload/types.d.ts +130 -0
  99. package/dist/types-ts4.5/create-payload/index.d.ts +339 -834
  100. package/dist/types-ts4.5/create-payload/utils/find-matching-legacy-metric.d.ts +5 -0
  101. package/dist/types-ts4.5/create-payload/utils/get-browser-metadata.d.ts +21 -0
  102. package/dist/types-ts4.5/create-payload/utils/get-fmp.d.ts +6 -0
  103. package/dist/types-ts4.5/create-payload/utils/get-navigation-metrics.d.ts +29 -0
  104. package/dist/types-ts4.5/create-payload/utils/get-paint-metrics.d.ts +13 -0
  105. package/dist/types-ts4.5/create-payload/utils/get-payload-size.d.ts +1 -0
  106. package/dist/types-ts4.5/create-payload/utils/get-react-ufo-payload-version.d.ts +2 -1
  107. package/dist/types-ts4.5/create-payload/utils/get-ssr-success.d.ts +2 -0
  108. package/dist/types-ts4.5/create-payload/utils/get-ttai.d.ts +2 -0
  109. package/dist/types-ts4.5/create-payload/utils/get-tti.d.ts +7 -0
  110. package/dist/types-ts4.5/interaction-metrics/index.d.ts +1 -0
  111. package/package.json +5 -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.4",
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",
@@ -178,6 +179,9 @@
178
179
  "platform_ufo_enable_timeout_config": {
179
180
  "type": "boolean"
180
181
  },
182
+ "platform_ufo_critical_metrics_payload": {
183
+ "type": "boolean"
184
+ },
181
185
  "platform_ufo_enable_interactivity_jsm": {
182
186
  "type": "boolean"
183
187
  },