@atlaskit/react-ufo 3.13.23 → 3.13.25

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 (31) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/create-payload/index.js +10 -2
  3. package/dist/cjs/create-post-interaction-log-payload/index.js +4 -2
  4. package/dist/cjs/segment/segment.js +2 -1
  5. package/dist/cjs/ssr/index.js +9 -4
  6. package/dist/es2019/create-payload/index.js +11 -1
  7. package/dist/es2019/create-post-interaction-log-payload/index.js +5 -3
  8. package/dist/es2019/segment/segment.js +2 -1
  9. package/dist/es2019/ssr/index.js +8 -4
  10. package/dist/esm/create-payload/index.js +10 -2
  11. package/dist/esm/create-post-interaction-log-payload/index.js +5 -3
  12. package/dist/esm/segment/segment.js +2 -1
  13. package/dist/esm/ssr/index.js +8 -4
  14. package/dist/types/common/react-ufo-payload-schema.d.ts +2 -2
  15. package/dist/types/create-payload/index.d.ts +64 -0
  16. package/dist/types/create-post-interaction-log-payload/get-late-mutations.d.ts +1 -1
  17. package/dist/types/create-post-interaction-log-payload/index.d.ts +1 -1
  18. package/dist/types/segment/segment.d.ts +5 -2
  19. package/dist/types/ssr/index.d.ts +24 -0
  20. package/dist/types-ts4.5/common/react-ufo-payload-schema.d.ts +2 -2
  21. package/dist/types-ts4.5/create-payload/index.d.ts +64 -0
  22. package/dist/types-ts4.5/create-post-interaction-log-payload/get-late-mutations.d.ts +1 -1
  23. package/dist/types-ts4.5/create-post-interaction-log-payload/index.d.ts +1 -1
  24. package/dist/types-ts4.5/segment/segment.d.ts +5 -2
  25. package/dist/types-ts4.5/ssr/index.d.ts +24 -0
  26. package/package.json +4 -1
  27. package/dist/cjs/create-post-interaction-log-payload/types.js +0 -1
  28. package/dist/es2019/create-post-interaction-log-payload/types.js +0 -0
  29. package/dist/esm/create-post-interaction-log-payload/types.js +0 -0
  30. package/dist/types/create-post-interaction-log-payload/types.d.ts +0 -5
  31. package/dist/types-ts4.5/create-post-interaction-log-payload/types.d.ts +0 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/ufo-interaction-ignore
2
2
 
3
+ ## 3.13.25
4
+
5
+ ### Patch Changes
6
+
7
+ - [#174299](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/174299)
8
+ [`d5a2065348f4d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/d5a2065348f4d) -
9
+ Use most recent VC revision for post interaction log late mutation
10
+
11
+ ## 3.13.24
12
+
13
+ ### Patch Changes
14
+
15
+ - [#174440](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/174440)
16
+ [`8354b610a7617`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8354b610a7617) -
17
+ Adds displayName to ufo segment to help with component tracking
18
+
3
19
  ## 3.13.23
4
20
 
5
21
  ### Patch Changes
@@ -155,6 +155,9 @@ function getBundleEvalTimings(start) {
155
155
  function getSSRSuccess(type) {
156
156
  return type === 'page_load' ? ssr.getSSRSuccess() : undefined;
157
157
  }
158
+ function getSSRPhaseSuccess(type) {
159
+ return type === 'page_load' ? ssr.getSSRPhaseSuccess() : undefined;
160
+ }
158
161
  function getSSRFeatureFlags(type) {
159
162
  return type === 'page_load' ? ssr.getSSRFeatureFlags() : undefined;
160
163
  }
@@ -309,10 +312,15 @@ function getPPSMetrics(interaction) {
309
312
  return {};
310
313
  }
311
314
  function getSSRProperties(type) {
312
- return {
315
+ var ssrPhases = getSSRPhaseSuccess(type);
316
+ return _objectSpread(_objectSpread({
313
317
  'ssr:success': getSSRSuccess(type),
314
318
  'ssr:featureFlags': getSSRFeatureFlags(type)
315
- };
319
+ }, (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.earlyFlush) != null ? {
320
+ 'ssr:earlyflush:success': ssrPhases.earlyFlush
321
+ } : null), (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.prefetch) != null ? {
322
+ 'ssr:prefetch:success': ssrPhases.prefetch
323
+ } : null);
316
324
  }
317
325
  function getAssetsMetrics(interaction, SSRDoneTime) {
318
326
  try {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  var _coinflip = _interopRequireDefault(require("../coinflip"));
11
12
  var _config = require("../config");
12
13
  var _utils = require("../create-payload/common/utils");
@@ -150,12 +151,13 @@ function createPostInteractionLogPayload(_ref2) {
150
151
  var lastInteractionFinishStart = Math.round(lastInteractionFinish.start);
151
152
  var lastInteractionFinishEnd = Math.round(lastInteractionFinish.end);
152
153
  var lastInteractionFinishTTAI = Math.round(lastInteractionFinish.end - lastInteractionFinish.start);
154
+ var mostRecentVCRevision = (0, _platformFeatureFlags.fg)('platform_ufo_post_interaction_most_recent_vc_rev') ? (0, _config.getMostRecentVCRevision)(lastInteractionFinish.ufoName) : 'fy25.02';
153
155
  var lastInteractionFinishVC90 = null;
154
156
  var lastInteractionFinishVCClean = false;
155
157
  var lastInteractionFinishVCRev = lastInteractionFinishVCResult === null || lastInteractionFinishVCResult === void 0 ? void 0 : lastInteractionFinishVCResult['ufo:vc:rev'];
156
158
  var lastInteractionFinishRevision = lastInteractionFinishVCRev === null || lastInteractionFinishVCRev === void 0 ? void 0 : lastInteractionFinishVCRev.find(function (_ref3) {
157
159
  var revision = _ref3.revision;
158
- return revision === 'fy25.02';
160
+ return revision === mostRecentVCRevision;
159
161
  });
160
162
  if (lastInteractionFinishRevision !== null && lastInteractionFinishRevision !== void 0 && lastInteractionFinishRevision.clean) {
161
163
  var _lastInteractionFinis;
@@ -169,7 +171,7 @@ function createPostInteractionLogPayload(_ref2) {
169
171
  var postInteractionFinishVCRev = postInteractionFinishVCResult === null || postInteractionFinishVCResult === void 0 ? void 0 : postInteractionFinishVCResult['ufo:vc:rev'];
170
172
  var postInteractionFinishRevision = postInteractionFinishVCRev === null || postInteractionFinishVCRev === void 0 ? void 0 : postInteractionFinishVCRev.find(function (_ref4) {
171
173
  var revision = _ref4.revision;
172
- return revision === 'fy25.02';
174
+ return revision === mostRecentVCRevision;
173
175
  });
174
176
  if (postInteractionFinishRevision !== null && postInteractionFinishRevision !== void 0 && postInteractionFinishRevision.clean) {
175
177
  postInteractionFinishVCClean = true;
@@ -276,4 +276,5 @@ function UFOSegment(_ref) {
276
276
  }, /*#__PURE__*/_react.default.createElement(AsyncSegmentHighlight, {
277
277
  segmentName: segmentName
278
278
  }))));
279
- }
279
+ }
280
+ UFOSegment.displayName = 'UFOSegment';
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.configure = configure;
8
8
  exports.getSSRDoneTime = getSSRDoneTime;
9
9
  exports.getSSRFeatureFlags = getSSRFeatureFlags;
10
+ exports.getSSRPhaseSuccess = getSSRPhaseSuccess;
10
11
  exports.getSSRSuccess = getSSRSuccess;
11
12
  exports.getSSRTimings = getSSRTimings;
12
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -58,13 +59,17 @@ function getSSRSuccess() {
58
59
  var _config2;
59
60
  return !!((_config2 = config) !== null && _config2 !== void 0 && _config2.getDoneMark());
60
61
  }
62
+ function getSSRPhaseSuccess() {
63
+ var _config3, _config3$getSsrPhaseS;
64
+ return (_config3 = config) === null || _config3 === void 0 || (_config3$getSsrPhaseS = _config3.getSsrPhaseSuccess) === null || _config3$getSsrPhaseS === void 0 ? void 0 : _config3$getSsrPhaseS.call(_config3);
65
+ }
61
66
  function getSSRDoneTime() {
62
- var _config$getDoneMark, _config3;
63
- return (_config$getDoneMark = (_config3 = config) === null || _config3 === void 0 ? void 0 : _config3.getDoneMark()) !== null && _config$getDoneMark !== void 0 ? _config$getDoneMark : undefined;
67
+ var _config$getDoneMark, _config4;
68
+ return (_config$getDoneMark = (_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.getDoneMark()) !== null && _config$getDoneMark !== void 0 ? _config$getDoneMark : undefined;
64
69
  }
65
70
  function getSSRFeatureFlags() {
66
- var _config4;
67
- if (!((_config4 = config) !== null && _config4 !== void 0 && _config4.getFeatureFlags)) {
71
+ var _config5;
72
+ if (!((_config5 = config) !== null && _config5 !== void 0 && _config5.getFeatureFlags)) {
68
73
  return undefined;
69
74
  }
70
75
  try {
@@ -134,6 +134,9 @@ function getBundleEvalTimings(start) {
134
134
  function getSSRSuccess(type) {
135
135
  return type === 'page_load' ? ssr.getSSRSuccess() : undefined;
136
136
  }
137
+ function getSSRPhaseSuccess(type) {
138
+ return type === 'page_load' ? ssr.getSSRPhaseSuccess() : undefined;
139
+ }
137
140
  function getSSRFeatureFlags(type) {
138
141
  return type === 'page_load' ? ssr.getSSRFeatureFlags() : undefined;
139
142
  }
@@ -272,9 +275,16 @@ function getPPSMetrics(interaction) {
272
275
  return {};
273
276
  }
274
277
  function getSSRProperties(type) {
278
+ const ssrPhases = getSSRPhaseSuccess(type);
275
279
  return {
276
280
  'ssr:success': getSSRSuccess(type),
277
- 'ssr:featureFlags': getSSRFeatureFlags(type)
281
+ 'ssr:featureFlags': getSSRFeatureFlags(type),
282
+ ...((ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.earlyFlush) != null ? {
283
+ 'ssr:earlyflush:success': ssrPhases.earlyFlush
284
+ } : null),
285
+ ...((ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.prefetch) != null ? {
286
+ 'ssr:prefetch:success': ssrPhases.prefetch
287
+ } : null)
278
288
  };
279
289
  }
280
290
  function getAssetsMetrics(interaction, SSRDoneTime) {
@@ -1,5 +1,6 @@
1
+ import { fg } from '@atlaskit/platform-feature-flags';
1
2
  import coinflip from '../coinflip';
2
- import { getConfig, getPostInteractionRate } from '../config';
3
+ import { getConfig, getMostRecentVCRevision, getPostInteractionRate } from '../config';
3
4
  import { isSegmentLabel, sanitizeUfoName } from '../create-payload/common/utils';
4
5
  import { getReactUFOPayloadVersion } from '../create-payload/utils/get-react-ufo-payload-version';
5
6
  import { getPageVisibilityState } from '../hidden-timing';
@@ -135,12 +136,13 @@ function createPostInteractionLogPayload({
135
136
  const lastInteractionFinishStart = Math.round(lastInteractionFinish.start);
136
137
  const lastInteractionFinishEnd = Math.round(lastInteractionFinish.end);
137
138
  const lastInteractionFinishTTAI = Math.round(lastInteractionFinish.end - lastInteractionFinish.start);
139
+ const mostRecentVCRevision = fg('platform_ufo_post_interaction_most_recent_vc_rev') ? getMostRecentVCRevision(lastInteractionFinish.ufoName) : 'fy25.02';
138
140
  let lastInteractionFinishVC90 = null;
139
141
  let lastInteractionFinishVCClean = false;
140
142
  const lastInteractionFinishVCRev = lastInteractionFinishVCResult === null || lastInteractionFinishVCResult === void 0 ? void 0 : lastInteractionFinishVCResult['ufo:vc:rev'];
141
143
  const lastInteractionFinishRevision = lastInteractionFinishVCRev === null || lastInteractionFinishVCRev === void 0 ? void 0 : lastInteractionFinishVCRev.find(({
142
144
  revision
143
- }) => revision === 'fy25.02');
145
+ }) => revision === mostRecentVCRevision);
144
146
  if (lastInteractionFinishRevision !== null && lastInteractionFinishRevision !== void 0 && lastInteractionFinishRevision.clean) {
145
147
  var _lastInteractionFinis;
146
148
  lastInteractionFinishVCClean = true;
@@ -153,7 +155,7 @@ function createPostInteractionLogPayload({
153
155
  const postInteractionFinishVCRev = postInteractionFinishVCResult === null || postInteractionFinishVCResult === void 0 ? void 0 : postInteractionFinishVCResult['ufo:vc:rev'];
154
156
  const postInteractionFinishRevision = postInteractionFinishVCRev === null || postInteractionFinishVCRev === void 0 ? void 0 : postInteractionFinishVCRev.find(({
155
157
  revision
156
- }) => revision === 'fy25.02');
158
+ }) => revision === mostRecentVCRevision);
157
159
  if (postInteractionFinishRevision !== null && postInteractionFinishRevision !== void 0 && postInteractionFinishRevision.clean) {
158
160
  postInteractionFinishVCClean = true;
159
161
  postInteractionFinishVCRatios = postInteractionFinishVCResult === null || postInteractionFinishVCResult === void 0 ? void 0 : postInteractionFinishVCResult['ufo:vc:ratios'];
@@ -246,4 +246,5 @@ export default function UFOSegment({
246
246
  }, /*#__PURE__*/React.createElement(AsyncSegmentHighlight, {
247
247
  segmentName: segmentName
248
248
  }))));
249
- }
249
+ }
250
+ UFOSegment.displayName = 'UFOSegment';
@@ -44,13 +44,17 @@ export function getSSRSuccess() {
44
44
  var _config2;
45
45
  return !!((_config2 = config) !== null && _config2 !== void 0 && _config2.getDoneMark());
46
46
  }
47
+ export function getSSRPhaseSuccess() {
48
+ var _config3, _config3$getSsrPhaseS;
49
+ return (_config3 = config) === null || _config3 === void 0 ? void 0 : (_config3$getSsrPhaseS = _config3.getSsrPhaseSuccess) === null || _config3$getSsrPhaseS === void 0 ? void 0 : _config3$getSsrPhaseS.call(_config3);
50
+ }
47
51
  export function getSSRDoneTime() {
48
- var _config$getDoneMark, _config3;
49
- return (_config$getDoneMark = (_config3 = config) === null || _config3 === void 0 ? void 0 : _config3.getDoneMark()) !== null && _config$getDoneMark !== void 0 ? _config$getDoneMark : undefined;
52
+ var _config$getDoneMark, _config4;
53
+ return (_config$getDoneMark = (_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.getDoneMark()) !== null && _config$getDoneMark !== void 0 ? _config$getDoneMark : undefined;
50
54
  }
51
55
  export function getSSRFeatureFlags() {
52
- var _config4;
53
- if (!((_config4 = config) !== null && _config4 !== void 0 && _config4.getFeatureFlags)) {
56
+ var _config5;
57
+ if (!((_config5 = config) !== null && _config5 !== void 0 && _config5.getFeatureFlags)) {
54
58
  return undefined;
55
59
  }
56
60
  try {
@@ -145,6 +145,9 @@ function getBundleEvalTimings(start) {
145
145
  function getSSRSuccess(type) {
146
146
  return type === 'page_load' ? ssr.getSSRSuccess() : undefined;
147
147
  }
148
+ function getSSRPhaseSuccess(type) {
149
+ return type === 'page_load' ? ssr.getSSRPhaseSuccess() : undefined;
150
+ }
148
151
  function getSSRFeatureFlags(type) {
149
152
  return type === 'page_load' ? ssr.getSSRFeatureFlags() : undefined;
150
153
  }
@@ -299,10 +302,15 @@ function getPPSMetrics(interaction) {
299
302
  return {};
300
303
  }
301
304
  function getSSRProperties(type) {
302
- return {
305
+ var ssrPhases = getSSRPhaseSuccess(type);
306
+ return _objectSpread(_objectSpread({
303
307
  'ssr:success': getSSRSuccess(type),
304
308
  'ssr:featureFlags': getSSRFeatureFlags(type)
305
- };
309
+ }, (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.earlyFlush) != null ? {
310
+ 'ssr:earlyflush:success': ssrPhases.earlyFlush
311
+ } : null), (ssrPhases === null || ssrPhases === void 0 ? void 0 : ssrPhases.prefetch) != null ? {
312
+ 'ssr:prefetch:success': ssrPhases.prefetch
313
+ } : null);
306
314
  }
307
315
  function getAssetsMetrics(interaction, SSRDoneTime) {
308
316
  try {
@@ -2,8 +2,9 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
3
  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; }
4
4
  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; }
5
+ import { fg } from '@atlaskit/platform-feature-flags';
5
6
  import coinflip from '../coinflip';
6
- import { getConfig, getPostInteractionRate } from '../config';
7
+ import { getConfig, getMostRecentVCRevision, getPostInteractionRate } from '../config';
7
8
  import { isSegmentLabel, sanitizeUfoName } from '../create-payload/common/utils';
8
9
  import { getReactUFOPayloadVersion } from '../create-payload/utils/get-react-ufo-payload-version';
9
10
  import { getPageVisibilityState } from '../hidden-timing';
@@ -143,12 +144,13 @@ function createPostInteractionLogPayload(_ref2) {
143
144
  var lastInteractionFinishStart = Math.round(lastInteractionFinish.start);
144
145
  var lastInteractionFinishEnd = Math.round(lastInteractionFinish.end);
145
146
  var lastInteractionFinishTTAI = Math.round(lastInteractionFinish.end - lastInteractionFinish.start);
147
+ var mostRecentVCRevision = fg('platform_ufo_post_interaction_most_recent_vc_rev') ? getMostRecentVCRevision(lastInteractionFinish.ufoName) : 'fy25.02';
146
148
  var lastInteractionFinishVC90 = null;
147
149
  var lastInteractionFinishVCClean = false;
148
150
  var lastInteractionFinishVCRev = lastInteractionFinishVCResult === null || lastInteractionFinishVCResult === void 0 ? void 0 : lastInteractionFinishVCResult['ufo:vc:rev'];
149
151
  var lastInteractionFinishRevision = lastInteractionFinishVCRev === null || lastInteractionFinishVCRev === void 0 ? void 0 : lastInteractionFinishVCRev.find(function (_ref3) {
150
152
  var revision = _ref3.revision;
151
- return revision === 'fy25.02';
153
+ return revision === mostRecentVCRevision;
152
154
  });
153
155
  if (lastInteractionFinishRevision !== null && lastInteractionFinishRevision !== void 0 && lastInteractionFinishRevision.clean) {
154
156
  var _lastInteractionFinis;
@@ -162,7 +164,7 @@ function createPostInteractionLogPayload(_ref2) {
162
164
  var postInteractionFinishVCRev = postInteractionFinishVCResult === null || postInteractionFinishVCResult === void 0 ? void 0 : postInteractionFinishVCResult['ufo:vc:rev'];
163
165
  var postInteractionFinishRevision = postInteractionFinishVCRev === null || postInteractionFinishVCRev === void 0 ? void 0 : postInteractionFinishVCRev.find(function (_ref4) {
164
166
  var revision = _ref4.revision;
165
- return revision === 'fy25.02';
167
+ return revision === mostRecentVCRevision;
166
168
  });
167
169
  if (postInteractionFinishRevision !== null && postInteractionFinishRevision !== void 0 && postInteractionFinishRevision.clean) {
168
170
  postInteractionFinishVCClean = true;
@@ -265,4 +265,5 @@ export default function UFOSegment(_ref) {
265
265
  }, /*#__PURE__*/React.createElement(AsyncSegmentHighlight, {
266
266
  segmentName: segmentName
267
267
  }))));
268
- }
268
+ }
269
+ UFOSegment.displayName = 'UFOSegment';
@@ -47,13 +47,17 @@ export function getSSRSuccess() {
47
47
  var _config2;
48
48
  return !!((_config2 = config) !== null && _config2 !== void 0 && _config2.getDoneMark());
49
49
  }
50
+ export function getSSRPhaseSuccess() {
51
+ var _config3, _config3$getSsrPhaseS;
52
+ return (_config3 = config) === null || _config3 === void 0 || (_config3$getSsrPhaseS = _config3.getSsrPhaseSuccess) === null || _config3$getSsrPhaseS === void 0 ? void 0 : _config3$getSsrPhaseS.call(_config3);
53
+ }
50
54
  export function getSSRDoneTime() {
51
- var _config$getDoneMark, _config3;
52
- return (_config$getDoneMark = (_config3 = config) === null || _config3 === void 0 ? void 0 : _config3.getDoneMark()) !== null && _config$getDoneMark !== void 0 ? _config$getDoneMark : undefined;
55
+ var _config$getDoneMark, _config4;
56
+ return (_config$getDoneMark = (_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.getDoneMark()) !== null && _config$getDoneMark !== void 0 ? _config$getDoneMark : undefined;
53
57
  }
54
58
  export function getSSRFeatureFlags() {
55
- var _config4;
56
- if (!((_config4 = config) !== null && _config4 !== void 0 && _config4.getFeatureFlags)) {
59
+ var _config5;
60
+ if (!((_config5 = config) !== null && _config5 !== void 0 && _config5.getFeatureFlags)) {
57
61
  return undefined;
58
62
  }
59
63
  try {
@@ -174,7 +174,7 @@ export type ReactUFOPayload = {
174
174
  };
175
175
  };
176
176
  };
177
- type LateElement = {
177
+ export type LateMutation = {
178
178
  time: number;
179
179
  element: string;
180
180
  viewportHeatmapPercentage: number;
@@ -213,7 +213,7 @@ export type PostInteractionLogPayload = {
213
213
  revisedTtai: number;
214
214
  revisedVC90: number;
215
215
  vcClean: boolean;
216
- lateMutations: LateElement[];
216
+ lateMutations: LateMutation[];
217
217
  reactProfilerTimings: ReactProfilerTiming[];
218
218
  };
219
219
  };
@@ -718,6 +718,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
718
718
  'metric:vc90'?: number | null | undefined;
719
719
  'metrics:navigation'?: undefined;
720
720
  'event:assets'?: undefined;
721
+ 'ssr:prefetch:success'?: boolean | undefined;
722
+ 'ssr:earlyflush:success'?: boolean | undefined;
721
723
  'ssr:success': boolean | undefined;
722
724
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
723
725
  'event:browser:name'?: string | undefined;
@@ -1464,6 +1466,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
1464
1466
  'metric:vc90'?: number | null | undefined;
1465
1467
  'metrics:navigation'?: undefined;
1466
1468
  'event:assets'?: undefined;
1469
+ 'ssr:prefetch:success'?: boolean | undefined;
1470
+ 'ssr:earlyflush:success'?: boolean | undefined;
1467
1471
  'ssr:success': boolean | undefined;
1468
1472
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
1469
1473
  'event:browser:name'?: string | undefined;
@@ -2231,6 +2235,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
2231
2235
  nextHopProtocol: string;
2232
2236
  };
2233
2237
  'event:assets'?: undefined;
2238
+ 'ssr:prefetch:success'?: boolean | undefined;
2239
+ 'ssr:earlyflush:success'?: boolean | undefined;
2234
2240
  'ssr:success': boolean | undefined;
2235
2241
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
2236
2242
  'event:browser:name'?: string | undefined;
@@ -2998,6 +3004,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
2998
3004
  nextHopProtocol: string;
2999
3005
  };
3000
3006
  'event:assets'?: undefined;
3007
+ 'ssr:prefetch:success'?: boolean | undefined;
3008
+ 'ssr:earlyflush:success'?: boolean | undefined;
3001
3009
  'ssr:success': boolean | undefined;
3002
3010
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
3003
3011
  'event:browser:name'?: string | undefined;
@@ -3747,6 +3755,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
3747
3755
  [key: string]: number;
3748
3756
  } | null;
3749
3757
  'event:assets'?: undefined;
3758
+ 'ssr:prefetch:success'?: boolean | undefined;
3759
+ 'ssr:earlyflush:success'?: boolean | undefined;
3750
3760
  'ssr:success': boolean | undefined;
3751
3761
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
3752
3762
  'event:browser:name'?: string | undefined;
@@ -4496,6 +4506,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
4496
4506
  [key: string]: number;
4497
4507
  } | null;
4498
4508
  'event:assets'?: undefined;
4509
+ 'ssr:prefetch:success'?: boolean | undefined;
4510
+ 'ssr:earlyflush:success'?: boolean | undefined;
4499
4511
  'ssr:success': boolean | undefined;
4500
4512
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
4501
4513
  'event:browser:name'?: string | undefined;
@@ -5266,6 +5278,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
5266
5278
  [key: string]: number;
5267
5279
  } | null;
5268
5280
  'event:assets'?: undefined;
5281
+ 'ssr:prefetch:success'?: boolean | undefined;
5282
+ 'ssr:earlyflush:success'?: boolean | undefined;
5269
5283
  'ssr:success': boolean | undefined;
5270
5284
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
5271
5285
  'event:browser:name'?: string | undefined;
@@ -6036,6 +6050,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
6036
6050
  [key: string]: number;
6037
6051
  } | null;
6038
6052
  'event:assets'?: undefined;
6053
+ 'ssr:prefetch:success'?: boolean | undefined;
6054
+ 'ssr:earlyflush:success'?: boolean | undefined;
6039
6055
  'ssr:success': boolean | undefined;
6040
6056
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
6041
6057
  'event:browser:name'?: string | undefined;
@@ -6782,6 +6798,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
6782
6798
  'metric:vc90'?: number | null | undefined;
6783
6799
  'metrics:navigation'?: undefined;
6784
6800
  'event:assets': import("../common").AssetsData;
6801
+ 'ssr:prefetch:success'?: boolean | undefined;
6802
+ 'ssr:earlyflush:success'?: boolean | undefined;
6785
6803
  'ssr:success': boolean | undefined;
6786
6804
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
6787
6805
  'event:browser:name'?: string | undefined;
@@ -7528,6 +7546,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
7528
7546
  'metric:vc90'?: number | null | undefined;
7529
7547
  'metrics:navigation'?: undefined;
7530
7548
  'event:assets': import("../common").AssetsData;
7549
+ 'ssr:prefetch:success'?: boolean | undefined;
7550
+ 'ssr:earlyflush:success'?: boolean | undefined;
7531
7551
  'ssr:success': boolean | undefined;
7532
7552
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
7533
7553
  'event:browser:name'?: string | undefined;
@@ -8295,6 +8315,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
8295
8315
  nextHopProtocol: string;
8296
8316
  };
8297
8317
  'event:assets': import("../common").AssetsData;
8318
+ 'ssr:prefetch:success'?: boolean | undefined;
8319
+ 'ssr:earlyflush:success'?: boolean | undefined;
8298
8320
  'ssr:success': boolean | undefined;
8299
8321
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
8300
8322
  'event:browser:name'?: string | undefined;
@@ -9062,6 +9084,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
9062
9084
  nextHopProtocol: string;
9063
9085
  };
9064
9086
  'event:assets': import("../common").AssetsData;
9087
+ 'ssr:prefetch:success'?: boolean | undefined;
9088
+ 'ssr:earlyflush:success'?: boolean | undefined;
9065
9089
  'ssr:success': boolean | undefined;
9066
9090
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
9067
9091
  'event:browser:name'?: string | undefined;
@@ -9811,6 +9835,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
9811
9835
  [key: string]: number;
9812
9836
  } | null;
9813
9837
  'event:assets': import("../common").AssetsData;
9838
+ 'ssr:prefetch:success'?: boolean | undefined;
9839
+ 'ssr:earlyflush:success'?: boolean | undefined;
9814
9840
  'ssr:success': boolean | undefined;
9815
9841
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
9816
9842
  'event:browser:name'?: string | undefined;
@@ -10560,6 +10586,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
10560
10586
  [key: string]: number;
10561
10587
  } | null;
10562
10588
  'event:assets': import("../common").AssetsData;
10589
+ 'ssr:prefetch:success'?: boolean | undefined;
10590
+ 'ssr:earlyflush:success'?: boolean | undefined;
10563
10591
  'ssr:success': boolean | undefined;
10564
10592
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
10565
10593
  'event:browser:name'?: string | undefined;
@@ -11330,6 +11358,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
11330
11358
  [key: string]: number;
11331
11359
  } | null;
11332
11360
  'event:assets': import("../common").AssetsData;
11361
+ 'ssr:prefetch:success'?: boolean | undefined;
11362
+ 'ssr:earlyflush:success'?: boolean | undefined;
11333
11363
  'ssr:success': boolean | undefined;
11334
11364
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
11335
11365
  'event:browser:name'?: string | undefined;
@@ -12100,6 +12130,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
12100
12130
  [key: string]: number;
12101
12131
  } | null;
12102
12132
  'event:assets': import("../common").AssetsData;
12133
+ 'ssr:prefetch:success'?: boolean | undefined;
12134
+ 'ssr:earlyflush:success'?: boolean | undefined;
12103
12135
  'ssr:success': boolean | undefined;
12104
12136
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
12105
12137
  'event:browser:name'?: string | undefined;
@@ -12856,6 +12888,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
12856
12888
  'metric:vc90'?: number | null | undefined;
12857
12889
  'metrics:navigation'?: undefined;
12858
12890
  'event:assets'?: undefined;
12891
+ 'ssr:prefetch:success'?: boolean | undefined;
12892
+ 'ssr:earlyflush:success'?: boolean | undefined;
12859
12893
  'ssr:success': boolean | undefined;
12860
12894
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
12861
12895
  'event:browser:name'?: string | undefined;
@@ -13602,6 +13636,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
13602
13636
  'metric:vc90'?: number | null | undefined;
13603
13637
  'metrics:navigation'?: undefined;
13604
13638
  'event:assets'?: undefined;
13639
+ 'ssr:prefetch:success'?: boolean | undefined;
13640
+ 'ssr:earlyflush:success'?: boolean | undefined;
13605
13641
  'ssr:success': boolean | undefined;
13606
13642
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
13607
13643
  'event:browser:name'?: string | undefined;
@@ -14369,6 +14405,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
14369
14405
  nextHopProtocol: string;
14370
14406
  };
14371
14407
  'event:assets'?: undefined;
14408
+ 'ssr:prefetch:success'?: boolean | undefined;
14409
+ 'ssr:earlyflush:success'?: boolean | undefined;
14372
14410
  'ssr:success': boolean | undefined;
14373
14411
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
14374
14412
  'event:browser:name'?: string | undefined;
@@ -15136,6 +15174,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
15136
15174
  nextHopProtocol: string;
15137
15175
  };
15138
15176
  'event:assets'?: undefined;
15177
+ 'ssr:prefetch:success'?: boolean | undefined;
15178
+ 'ssr:earlyflush:success'?: boolean | undefined;
15139
15179
  'ssr:success': boolean | undefined;
15140
15180
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
15141
15181
  'event:browser:name'?: string | undefined;
@@ -15885,6 +15925,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
15885
15925
  [key: string]: number;
15886
15926
  } | null;
15887
15927
  'event:assets'?: undefined;
15928
+ 'ssr:prefetch:success'?: boolean | undefined;
15929
+ 'ssr:earlyflush:success'?: boolean | undefined;
15888
15930
  'ssr:success': boolean | undefined;
15889
15931
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
15890
15932
  'event:browser:name'?: string | undefined;
@@ -16634,6 +16676,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
16634
16676
  [key: string]: number;
16635
16677
  } | null;
16636
16678
  'event:assets'?: undefined;
16679
+ 'ssr:prefetch:success'?: boolean | undefined;
16680
+ 'ssr:earlyflush:success'?: boolean | undefined;
16637
16681
  'ssr:success': boolean | undefined;
16638
16682
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
16639
16683
  'event:browser:name'?: string | undefined;
@@ -17404,6 +17448,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
17404
17448
  [key: string]: number;
17405
17449
  } | null;
17406
17450
  'event:assets'?: undefined;
17451
+ 'ssr:prefetch:success'?: boolean | undefined;
17452
+ 'ssr:earlyflush:success'?: boolean | undefined;
17407
17453
  'ssr:success': boolean | undefined;
17408
17454
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
17409
17455
  'event:browser:name'?: string | undefined;
@@ -18174,6 +18220,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
18174
18220
  [key: string]: number;
18175
18221
  } | null;
18176
18222
  'event:assets'?: undefined;
18223
+ 'ssr:prefetch:success'?: boolean | undefined;
18224
+ 'ssr:earlyflush:success'?: boolean | undefined;
18177
18225
  'ssr:success': boolean | undefined;
18178
18226
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
18179
18227
  'event:browser:name'?: string | undefined;
@@ -18920,6 +18968,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
18920
18968
  'metric:vc90'?: number | null | undefined;
18921
18969
  'metrics:navigation'?: undefined;
18922
18970
  'event:assets': import("../common").AssetsData;
18971
+ 'ssr:prefetch:success'?: boolean | undefined;
18972
+ 'ssr:earlyflush:success'?: boolean | undefined;
18923
18973
  'ssr:success': boolean | undefined;
18924
18974
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
18925
18975
  'event:browser:name'?: string | undefined;
@@ -19666,6 +19716,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
19666
19716
  'metric:vc90'?: number | null | undefined;
19667
19717
  'metrics:navigation'?: undefined;
19668
19718
  'event:assets': import("../common").AssetsData;
19719
+ 'ssr:prefetch:success'?: boolean | undefined;
19720
+ 'ssr:earlyflush:success'?: boolean | undefined;
19669
19721
  'ssr:success': boolean | undefined;
19670
19722
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
19671
19723
  'event:browser:name'?: string | undefined;
@@ -20433,6 +20485,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
20433
20485
  nextHopProtocol: string;
20434
20486
  };
20435
20487
  'event:assets': import("../common").AssetsData;
20488
+ 'ssr:prefetch:success'?: boolean | undefined;
20489
+ 'ssr:earlyflush:success'?: boolean | undefined;
20436
20490
  'ssr:success': boolean | undefined;
20437
20491
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
20438
20492
  'event:browser:name'?: string | undefined;
@@ -21200,6 +21254,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
21200
21254
  nextHopProtocol: string;
21201
21255
  };
21202
21256
  'event:assets': import("../common").AssetsData;
21257
+ 'ssr:prefetch:success'?: boolean | undefined;
21258
+ 'ssr:earlyflush:success'?: boolean | undefined;
21203
21259
  'ssr:success': boolean | undefined;
21204
21260
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
21205
21261
  'event:browser:name'?: string | undefined;
@@ -21949,6 +22005,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
21949
22005
  [key: string]: number;
21950
22006
  } | null;
21951
22007
  'event:assets': import("../common").AssetsData;
22008
+ 'ssr:prefetch:success'?: boolean | undefined;
22009
+ 'ssr:earlyflush:success'?: boolean | undefined;
21952
22010
  'ssr:success': boolean | undefined;
21953
22011
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
21954
22012
  'event:browser:name'?: string | undefined;
@@ -22698,6 +22756,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
22698
22756
  [key: string]: number;
22699
22757
  } | null;
22700
22758
  'event:assets': import("../common").AssetsData;
22759
+ 'ssr:prefetch:success'?: boolean | undefined;
22760
+ 'ssr:earlyflush:success'?: boolean | undefined;
22701
22761
  'ssr:success': boolean | undefined;
22702
22762
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
22703
22763
  'event:browser:name'?: string | undefined;
@@ -23468,6 +23528,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
23468
23528
  [key: string]: number;
23469
23529
  } | null;
23470
23530
  'event:assets': import("../common").AssetsData;
23531
+ 'ssr:prefetch:success'?: boolean | undefined;
23532
+ 'ssr:earlyflush:success'?: boolean | undefined;
23471
23533
  'ssr:success': boolean | undefined;
23472
23534
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
23473
23535
  'event:browser:name'?: string | undefined;
@@ -24238,6 +24300,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
24238
24300
  [key: string]: number;
24239
24301
  } | null;
24240
24302
  'event:assets': import("../common").AssetsData;
24303
+ 'ssr:prefetch:success'?: boolean | undefined;
24304
+ 'ssr:earlyflush:success'?: boolean | undefined;
24241
24305
  'ssr:success': boolean | undefined;
24242
24306
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
24243
24307
  'event:browser:name'?: string | undefined;
@@ -1,5 +1,5 @@
1
1
  import type { LastInteractionFinishInfo } from '../common';
2
+ import { LateMutation } from '../common/react-ufo-payload-schema';
2
3
  import type { RevisionPayloadVCDetails } from '../common/vc/types';
3
- import type { LateMutation } from './types';
4
4
  declare function getLateMutations(vcDetails: RevisionPayloadVCDetails, lastInteractionFinish: LastInteractionFinishInfo, postInteractionFinishVCRatios: Record<string, number>): LateMutation[];
5
5
  export default getLateMutations;
@@ -1,5 +1,5 @@
1
1
  import { type PostInteractionLogOutput } from '../common';
2
- import type { LateMutation } from './types';
2
+ import { LateMutation } from '../common/react-ufo-payload-schema';
3
3
  declare function createPostInteractionLogPayload({ lastInteractionFinish, reactProfilerTimings, lastInteractionFinishVCResult, postInteractionFinishVCResult, }: PostInteractionLogOutput): {
4
4
  actionSubject: string;
5
5
  action: string;
@@ -5,5 +5,8 @@ type Props = {
5
5
  mode?: 'list' | 'single';
6
6
  };
7
7
  /** A portion of the page we apply measurement to */
8
- export default function UFOSegment({ name: segmentName, children, mode }: Props): React.JSX.Element;
9
- export {};
8
+ declare function UFOSegment({ name: segmentName, children, mode }: Props): React.JSX.Element;
9
+ declare namespace UFOSegment {
10
+ var displayName: string;
11
+ }
12
+ export default UFOSegment;
@@ -11,12 +11,36 @@ export type SSRFeatureFlags = {
11
11
  [key: string]: FeatureFlagValue;
12
12
  };
13
13
  export type SSRConfig = {
14
+ /**
15
+ * Used to represent whether SSR as a whole was considered successful. You can consider this the success of the "render" phase success
16
+ */
14
17
  getDoneMark: () => number | null;
18
+ /**
19
+ * Used to represent whether certain phases within were successful.
20
+ * It is encouraged to send false even if the phase only partially failed and rely on ssr-side logging/metrics to disambiguate failure severity
21
+ */
22
+ getSsrPhaseSuccess?: () => {
23
+ /**
24
+ * The "prefetch" phase in SSR - where SSR fetches remote data necessary for rendering the page.
25
+ * If any of the fetches fail, this should be false, use server side logging/metrics to dive into more detail into the nature of the failure.
26
+ * UFO - which is client-side only - may not know the nature of the failure if SSR as a whole failed and a static fallback was given to the client.
27
+ */
28
+ prefetch?: boolean;
29
+ /**
30
+ * The "earlyFLush" phase in SSR - where SSR sends the first flush to the client.
31
+ * This is generally expected to be earlier than / independant of the prefetch data and may even be non-visual (eg: <link rel="preload" href="..."> tags).
32
+ */
33
+ earlyFlush?: boolean;
34
+ };
15
35
  getFeatureFlags: () => SSRFeatureFlags | null;
16
36
  getTimings?: () => ReportedTimings | null;
17
37
  };
18
38
  export declare function configure(ssrConfig: SSRConfig): void;
19
39
  export declare function getSSRTimings(): ReportedTimings;
20
40
  export declare function getSSRSuccess(): boolean;
41
+ export declare function getSSRPhaseSuccess(): {
42
+ prefetch?: boolean;
43
+ earlyFlush?: boolean;
44
+ } | undefined;
21
45
  export declare function getSSRDoneTime(): number | undefined;
22
46
  export declare function getSSRFeatureFlags(): SSRFeatureFlags | undefined;
@@ -176,7 +176,7 @@ export type ReactUFOPayload = {
176
176
  };
177
177
  };
178
178
  };
179
- type LateElement = {
179
+ export type LateMutation = {
180
180
  time: number;
181
181
  element: string;
182
182
  viewportHeatmapPercentage: number;
@@ -217,7 +217,7 @@ export type PostInteractionLogPayload = {
217
217
  revisedTtai: number;
218
218
  revisedVC90: number;
219
219
  vcClean: boolean;
220
- lateMutations: LateElement[];
220
+ lateMutations: LateMutation[];
221
221
  reactProfilerTimings: ReactProfilerTiming[];
222
222
  };
223
223
  };
@@ -718,6 +718,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
718
718
  'metric:vc90'?: number | null | undefined;
719
719
  'metrics:navigation'?: undefined;
720
720
  'event:assets'?: undefined;
721
+ 'ssr:prefetch:success'?: boolean | undefined;
722
+ 'ssr:earlyflush:success'?: boolean | undefined;
721
723
  'ssr:success': boolean | undefined;
722
724
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
723
725
  'event:browser:name'?: string | undefined;
@@ -1464,6 +1466,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
1464
1466
  'metric:vc90'?: number | null | undefined;
1465
1467
  'metrics:navigation'?: undefined;
1466
1468
  'event:assets'?: undefined;
1469
+ 'ssr:prefetch:success'?: boolean | undefined;
1470
+ 'ssr:earlyflush:success'?: boolean | undefined;
1467
1471
  'ssr:success': boolean | undefined;
1468
1472
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
1469
1473
  'event:browser:name'?: string | undefined;
@@ -2231,6 +2235,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
2231
2235
  nextHopProtocol: string;
2232
2236
  };
2233
2237
  'event:assets'?: undefined;
2238
+ 'ssr:prefetch:success'?: boolean | undefined;
2239
+ 'ssr:earlyflush:success'?: boolean | undefined;
2234
2240
  'ssr:success': boolean | undefined;
2235
2241
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
2236
2242
  'event:browser:name'?: string | undefined;
@@ -2998,6 +3004,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
2998
3004
  nextHopProtocol: string;
2999
3005
  };
3000
3006
  'event:assets'?: undefined;
3007
+ 'ssr:prefetch:success'?: boolean | undefined;
3008
+ 'ssr:earlyflush:success'?: boolean | undefined;
3001
3009
  'ssr:success': boolean | undefined;
3002
3010
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
3003
3011
  'event:browser:name'?: string | undefined;
@@ -3747,6 +3755,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
3747
3755
  [key: string]: number;
3748
3756
  } | null;
3749
3757
  'event:assets'?: undefined;
3758
+ 'ssr:prefetch:success'?: boolean | undefined;
3759
+ 'ssr:earlyflush:success'?: boolean | undefined;
3750
3760
  'ssr:success': boolean | undefined;
3751
3761
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
3752
3762
  'event:browser:name'?: string | undefined;
@@ -4496,6 +4506,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
4496
4506
  [key: string]: number;
4497
4507
  } | null;
4498
4508
  'event:assets'?: undefined;
4509
+ 'ssr:prefetch:success'?: boolean | undefined;
4510
+ 'ssr:earlyflush:success'?: boolean | undefined;
4499
4511
  'ssr:success': boolean | undefined;
4500
4512
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
4501
4513
  'event:browser:name'?: string | undefined;
@@ -5266,6 +5278,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
5266
5278
  [key: string]: number;
5267
5279
  } | null;
5268
5280
  'event:assets'?: undefined;
5281
+ 'ssr:prefetch:success'?: boolean | undefined;
5282
+ 'ssr:earlyflush:success'?: boolean | undefined;
5269
5283
  'ssr:success': boolean | undefined;
5270
5284
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
5271
5285
  'event:browser:name'?: string | undefined;
@@ -6036,6 +6050,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
6036
6050
  [key: string]: number;
6037
6051
  } | null;
6038
6052
  'event:assets'?: undefined;
6053
+ 'ssr:prefetch:success'?: boolean | undefined;
6054
+ 'ssr:earlyflush:success'?: boolean | undefined;
6039
6055
  'ssr:success': boolean | undefined;
6040
6056
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
6041
6057
  'event:browser:name'?: string | undefined;
@@ -6782,6 +6798,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
6782
6798
  'metric:vc90'?: number | null | undefined;
6783
6799
  'metrics:navigation'?: undefined;
6784
6800
  'event:assets': import("../common").AssetsData;
6801
+ 'ssr:prefetch:success'?: boolean | undefined;
6802
+ 'ssr:earlyflush:success'?: boolean | undefined;
6785
6803
  'ssr:success': boolean | undefined;
6786
6804
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
6787
6805
  'event:browser:name'?: string | undefined;
@@ -7528,6 +7546,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
7528
7546
  'metric:vc90'?: number | null | undefined;
7529
7547
  'metrics:navigation'?: undefined;
7530
7548
  'event:assets': import("../common").AssetsData;
7549
+ 'ssr:prefetch:success'?: boolean | undefined;
7550
+ 'ssr:earlyflush:success'?: boolean | undefined;
7531
7551
  'ssr:success': boolean | undefined;
7532
7552
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
7533
7553
  'event:browser:name'?: string | undefined;
@@ -8295,6 +8315,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
8295
8315
  nextHopProtocol: string;
8296
8316
  };
8297
8317
  'event:assets': import("../common").AssetsData;
8318
+ 'ssr:prefetch:success'?: boolean | undefined;
8319
+ 'ssr:earlyflush:success'?: boolean | undefined;
8298
8320
  'ssr:success': boolean | undefined;
8299
8321
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
8300
8322
  'event:browser:name'?: string | undefined;
@@ -9062,6 +9084,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
9062
9084
  nextHopProtocol: string;
9063
9085
  };
9064
9086
  'event:assets': import("../common").AssetsData;
9087
+ 'ssr:prefetch:success'?: boolean | undefined;
9088
+ 'ssr:earlyflush:success'?: boolean | undefined;
9065
9089
  'ssr:success': boolean | undefined;
9066
9090
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
9067
9091
  'event:browser:name'?: string | undefined;
@@ -9811,6 +9835,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
9811
9835
  [key: string]: number;
9812
9836
  } | null;
9813
9837
  'event:assets': import("../common").AssetsData;
9838
+ 'ssr:prefetch:success'?: boolean | undefined;
9839
+ 'ssr:earlyflush:success'?: boolean | undefined;
9814
9840
  'ssr:success': boolean | undefined;
9815
9841
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
9816
9842
  'event:browser:name'?: string | undefined;
@@ -10560,6 +10586,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
10560
10586
  [key: string]: number;
10561
10587
  } | null;
10562
10588
  'event:assets': import("../common").AssetsData;
10589
+ 'ssr:prefetch:success'?: boolean | undefined;
10590
+ 'ssr:earlyflush:success'?: boolean | undefined;
10563
10591
  'ssr:success': boolean | undefined;
10564
10592
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
10565
10593
  'event:browser:name'?: string | undefined;
@@ -11330,6 +11358,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
11330
11358
  [key: string]: number;
11331
11359
  } | null;
11332
11360
  'event:assets': import("../common").AssetsData;
11361
+ 'ssr:prefetch:success'?: boolean | undefined;
11362
+ 'ssr:earlyflush:success'?: boolean | undefined;
11333
11363
  'ssr:success': boolean | undefined;
11334
11364
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
11335
11365
  'event:browser:name'?: string | undefined;
@@ -12100,6 +12130,8 @@ export declare function createPayloads(interactionId: string, interaction: Inter
12100
12130
  [key: string]: number;
12101
12131
  } | null;
12102
12132
  'event:assets': import("../common").AssetsData;
12133
+ 'ssr:prefetch:success'?: boolean | undefined;
12134
+ 'ssr:earlyflush:success'?: boolean | undefined;
12103
12135
  'ssr:success': boolean | undefined;
12104
12136
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
12105
12137
  'event:browser:name'?: string | undefined;
@@ -12856,6 +12888,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
12856
12888
  'metric:vc90'?: number | null | undefined;
12857
12889
  'metrics:navigation'?: undefined;
12858
12890
  'event:assets'?: undefined;
12891
+ 'ssr:prefetch:success'?: boolean | undefined;
12892
+ 'ssr:earlyflush:success'?: boolean | undefined;
12859
12893
  'ssr:success': boolean | undefined;
12860
12894
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
12861
12895
  'event:browser:name'?: string | undefined;
@@ -13602,6 +13636,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
13602
13636
  'metric:vc90'?: number | null | undefined;
13603
13637
  'metrics:navigation'?: undefined;
13604
13638
  'event:assets'?: undefined;
13639
+ 'ssr:prefetch:success'?: boolean | undefined;
13640
+ 'ssr:earlyflush:success'?: boolean | undefined;
13605
13641
  'ssr:success': boolean | undefined;
13606
13642
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
13607
13643
  'event:browser:name'?: string | undefined;
@@ -14369,6 +14405,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
14369
14405
  nextHopProtocol: string;
14370
14406
  };
14371
14407
  'event:assets'?: undefined;
14408
+ 'ssr:prefetch:success'?: boolean | undefined;
14409
+ 'ssr:earlyflush:success'?: boolean | undefined;
14372
14410
  'ssr:success': boolean | undefined;
14373
14411
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
14374
14412
  'event:browser:name'?: string | undefined;
@@ -15136,6 +15174,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
15136
15174
  nextHopProtocol: string;
15137
15175
  };
15138
15176
  'event:assets'?: undefined;
15177
+ 'ssr:prefetch:success'?: boolean | undefined;
15178
+ 'ssr:earlyflush:success'?: boolean | undefined;
15139
15179
  'ssr:success': boolean | undefined;
15140
15180
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
15141
15181
  'event:browser:name'?: string | undefined;
@@ -15885,6 +15925,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
15885
15925
  [key: string]: number;
15886
15926
  } | null;
15887
15927
  'event:assets'?: undefined;
15928
+ 'ssr:prefetch:success'?: boolean | undefined;
15929
+ 'ssr:earlyflush:success'?: boolean | undefined;
15888
15930
  'ssr:success': boolean | undefined;
15889
15931
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
15890
15932
  'event:browser:name'?: string | undefined;
@@ -16634,6 +16676,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
16634
16676
  [key: string]: number;
16635
16677
  } | null;
16636
16678
  'event:assets'?: undefined;
16679
+ 'ssr:prefetch:success'?: boolean | undefined;
16680
+ 'ssr:earlyflush:success'?: boolean | undefined;
16637
16681
  'ssr:success': boolean | undefined;
16638
16682
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
16639
16683
  'event:browser:name'?: string | undefined;
@@ -17404,6 +17448,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
17404
17448
  [key: string]: number;
17405
17449
  } | null;
17406
17450
  'event:assets'?: undefined;
17451
+ 'ssr:prefetch:success'?: boolean | undefined;
17452
+ 'ssr:earlyflush:success'?: boolean | undefined;
17407
17453
  'ssr:success': boolean | undefined;
17408
17454
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
17409
17455
  'event:browser:name'?: string | undefined;
@@ -18174,6 +18220,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
18174
18220
  [key: string]: number;
18175
18221
  } | null;
18176
18222
  'event:assets'?: undefined;
18223
+ 'ssr:prefetch:success'?: boolean | undefined;
18224
+ 'ssr:earlyflush:success'?: boolean | undefined;
18177
18225
  'ssr:success': boolean | undefined;
18178
18226
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
18179
18227
  'event:browser:name'?: string | undefined;
@@ -18920,6 +18968,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
18920
18968
  'metric:vc90'?: number | null | undefined;
18921
18969
  'metrics:navigation'?: undefined;
18922
18970
  'event:assets': import("../common").AssetsData;
18971
+ 'ssr:prefetch:success'?: boolean | undefined;
18972
+ 'ssr:earlyflush:success'?: boolean | undefined;
18923
18973
  'ssr:success': boolean | undefined;
18924
18974
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
18925
18975
  'event:browser:name'?: string | undefined;
@@ -19666,6 +19716,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
19666
19716
  'metric:vc90'?: number | null | undefined;
19667
19717
  'metrics:navigation'?: undefined;
19668
19718
  'event:assets': import("../common").AssetsData;
19719
+ 'ssr:prefetch:success'?: boolean | undefined;
19720
+ 'ssr:earlyflush:success'?: boolean | undefined;
19669
19721
  'ssr:success': boolean | undefined;
19670
19722
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
19671
19723
  'event:browser:name'?: string | undefined;
@@ -20433,6 +20485,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
20433
20485
  nextHopProtocol: string;
20434
20486
  };
20435
20487
  'event:assets': import("../common").AssetsData;
20488
+ 'ssr:prefetch:success'?: boolean | undefined;
20489
+ 'ssr:earlyflush:success'?: boolean | undefined;
20436
20490
  'ssr:success': boolean | undefined;
20437
20491
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
20438
20492
  'event:browser:name'?: string | undefined;
@@ -21200,6 +21254,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
21200
21254
  nextHopProtocol: string;
21201
21255
  };
21202
21256
  'event:assets': import("../common").AssetsData;
21257
+ 'ssr:prefetch:success'?: boolean | undefined;
21258
+ 'ssr:earlyflush:success'?: boolean | undefined;
21203
21259
  'ssr:success': boolean | undefined;
21204
21260
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
21205
21261
  'event:browser:name'?: string | undefined;
@@ -21949,6 +22005,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
21949
22005
  [key: string]: number;
21950
22006
  } | null;
21951
22007
  'event:assets': import("../common").AssetsData;
22008
+ 'ssr:prefetch:success'?: boolean | undefined;
22009
+ 'ssr:earlyflush:success'?: boolean | undefined;
21952
22010
  'ssr:success': boolean | undefined;
21953
22011
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
21954
22012
  'event:browser:name'?: string | undefined;
@@ -22698,6 +22756,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
22698
22756
  [key: string]: number;
22699
22757
  } | null;
22700
22758
  'event:assets': import("../common").AssetsData;
22759
+ 'ssr:prefetch:success'?: boolean | undefined;
22760
+ 'ssr:earlyflush:success'?: boolean | undefined;
22701
22761
  'ssr:success': boolean | undefined;
22702
22762
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
22703
22763
  'event:browser:name'?: string | undefined;
@@ -23468,6 +23528,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
23468
23528
  [key: string]: number;
23469
23529
  } | null;
23470
23530
  'event:assets': import("../common").AssetsData;
23531
+ 'ssr:prefetch:success'?: boolean | undefined;
23532
+ 'ssr:earlyflush:success'?: boolean | undefined;
23471
23533
  'ssr:success': boolean | undefined;
23472
23534
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
23473
23535
  'event:browser:name'?: string | undefined;
@@ -24238,6 +24300,8 @@ export declare function createExperimentalMetricsPayload(interactionId: string,
24238
24300
  [key: string]: number;
24239
24301
  } | null;
24240
24302
  'event:assets': import("../common").AssetsData;
24303
+ 'ssr:prefetch:success'?: boolean | undefined;
24304
+ 'ssr:earlyflush:success'?: boolean | undefined;
24241
24305
  'ssr:success': boolean | undefined;
24242
24306
  'ssr:featureFlags': ssr.SSRFeatureFlags | undefined;
24243
24307
  'event:browser:name'?: string | undefined;
@@ -1,5 +1,5 @@
1
1
  import type { LastInteractionFinishInfo } from '../common';
2
+ import { LateMutation } from '../common/react-ufo-payload-schema';
2
3
  import type { RevisionPayloadVCDetails } from '../common/vc/types';
3
- import type { LateMutation } from './types';
4
4
  declare function getLateMutations(vcDetails: RevisionPayloadVCDetails, lastInteractionFinish: LastInteractionFinishInfo, postInteractionFinishVCRatios: Record<string, number>): LateMutation[];
5
5
  export default getLateMutations;
@@ -1,5 +1,5 @@
1
1
  import { type PostInteractionLogOutput } from '../common';
2
- import type { LateMutation } from './types';
2
+ import { LateMutation } from '../common/react-ufo-payload-schema';
3
3
  declare function createPostInteractionLogPayload({ lastInteractionFinish, reactProfilerTimings, lastInteractionFinishVCResult, postInteractionFinishVCResult, }: PostInteractionLogOutput): {
4
4
  actionSubject: string;
5
5
  action: string;
@@ -5,5 +5,8 @@ type Props = {
5
5
  mode?: 'list' | 'single';
6
6
  };
7
7
  /** A portion of the page we apply measurement to */
8
- export default function UFOSegment({ name: segmentName, children, mode }: Props): React.JSX.Element;
9
- export {};
8
+ declare function UFOSegment({ name: segmentName, children, mode }: Props): React.JSX.Element;
9
+ declare namespace UFOSegment {
10
+ var displayName: string;
11
+ }
12
+ export default UFOSegment;
@@ -11,12 +11,36 @@ export type SSRFeatureFlags = {
11
11
  [key: string]: FeatureFlagValue;
12
12
  };
13
13
  export type SSRConfig = {
14
+ /**
15
+ * Used to represent whether SSR as a whole was considered successful. You can consider this the success of the "render" phase success
16
+ */
14
17
  getDoneMark: () => number | null;
18
+ /**
19
+ * Used to represent whether certain phases within were successful.
20
+ * It is encouraged to send false even if the phase only partially failed and rely on ssr-side logging/metrics to disambiguate failure severity
21
+ */
22
+ getSsrPhaseSuccess?: () => {
23
+ /**
24
+ * The "prefetch" phase in SSR - where SSR fetches remote data necessary for rendering the page.
25
+ * If any of the fetches fail, this should be false, use server side logging/metrics to dive into more detail into the nature of the failure.
26
+ * UFO - which is client-side only - may not know the nature of the failure if SSR as a whole failed and a static fallback was given to the client.
27
+ */
28
+ prefetch?: boolean;
29
+ /**
30
+ * The "earlyFLush" phase in SSR - where SSR sends the first flush to the client.
31
+ * This is generally expected to be earlier than / independant of the prefetch data and may even be non-visual (eg: <link rel="preload" href="..."> tags).
32
+ */
33
+ earlyFlush?: boolean;
34
+ };
15
35
  getFeatureFlags: () => SSRFeatureFlags | null;
16
36
  getTimings?: () => ReportedTimings | null;
17
37
  };
18
38
  export declare function configure(ssrConfig: SSRConfig): void;
19
39
  export declare function getSSRTimings(): ReportedTimings;
20
40
  export declare function getSSRSuccess(): boolean;
41
+ export declare function getSSRPhaseSuccess(): {
42
+ prefetch?: boolean;
43
+ earlyFlush?: boolean;
44
+ } | undefined;
21
45
  export declare function getSSRDoneTime(): number | undefined;
22
46
  export declare function getSSRFeatureFlags(): SSRFeatureFlags | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/react-ufo",
3
- "version": "3.13.23",
3
+ "version": "3.13.25",
4
4
  "description": "Parts of React UFO that are publicly available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -180,6 +180,9 @@
180
180
  },
181
181
  "platform_ufo_enable_interactivity_jsm": {
182
182
  "type": "boolean"
183
+ },
184
+ "platform_ufo_post_interaction_most_recent_vc_rev": {
185
+ "type": "boolean"
183
186
  }
184
187
  }
185
188
  }
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,5 +0,0 @@
1
- export type LateMutation = {
2
- time: number;
3
- element: string;
4
- viewportHeatmapPercentage: number;
5
- };
@@ -1,5 +0,0 @@
1
- export type LateMutation = {
2
- time: number;
3
- element: string;
4
- viewportHeatmapPercentage: number;
5
- };