@atlaskit/react-ufo 3.3.2 → 3.4.0

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 (69) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/assets/index.js +26 -16
  3. package/dist/cjs/assets/utils.js +47 -4
  4. package/dist/cjs/create-payload/index.js +58 -27
  5. package/dist/cjs/interaction-metrics-init/index.js +11 -9
  6. package/dist/cjs/vc/index.js +6 -2
  7. package/dist/cjs/vc/vc-observer-new/get-element-name.js +19 -6
  8. package/dist/cjs/vc/vc-observer-new/index.js +6 -3
  9. package/dist/cjs/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -2
  10. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +10 -11
  11. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +23 -30
  12. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +7 -7
  13. package/dist/cjs/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -3
  14. package/dist/cjs/vc/vc-observer-new/window-event-observer/index.js +5 -1
  15. package/dist/es2019/assets/index.js +27 -13
  16. package/dist/es2019/assets/utils.js +47 -3
  17. package/dist/es2019/create-payload/index.js +14 -9
  18. package/dist/es2019/interaction-metrics-init/index.js +11 -9
  19. package/dist/es2019/vc/index.js +6 -2
  20. package/dist/es2019/vc/vc-observer-new/get-element-name.js +19 -6
  21. package/dist/es2019/vc/vc-observer-new/index.js +7 -3
  22. package/dist/es2019/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -0
  23. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +1 -2
  24. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +15 -12
  25. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +5 -4
  26. package/dist/es2019/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -2
  27. package/dist/es2019/vc/vc-observer-new/window-event-observer/index.js +5 -1
  28. package/dist/esm/assets/index.js +27 -17
  29. package/dist/esm/assets/utils.js +46 -3
  30. package/dist/esm/create-payload/index.js +58 -27
  31. package/dist/esm/interaction-metrics-init/index.js +11 -9
  32. package/dist/esm/vc/index.js +6 -2
  33. package/dist/esm/vc/vc-observer-new/get-element-name.js +19 -6
  34. package/dist/esm/vc/vc-observer-new/index.js +6 -3
  35. package/dist/esm/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.js +4 -2
  36. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/canvas-pixel.js +10 -11
  37. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.js +23 -30
  38. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.js +7 -7
  39. package/dist/esm/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.js +3 -3
  40. package/dist/esm/vc/vc-observer-new/window-event-observer/index.js +5 -1
  41. package/dist/types/assets/index.d.ts +5 -5
  42. package/dist/types/assets/utils.d.ts +4 -1
  43. package/dist/types/common/assets/types.d.ts +14 -8
  44. package/dist/types/common/index.d.ts +11 -1
  45. package/dist/types/config/index.d.ts +6 -0
  46. package/dist/types/create-payload/index.d.ts +769 -1
  47. package/dist/types/resource-timing/common/types.d.ts +1 -1
  48. package/dist/types/vc/vc-observer-new/index.d.ts +3 -2
  49. package/dist/types/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +1 -1
  50. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +2 -2
  51. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +2 -1
  52. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -1
  53. package/dist/types/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +2 -0
  54. package/dist/types/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
  55. package/dist/types-ts4.5/assets/index.d.ts +5 -5
  56. package/dist/types-ts4.5/assets/utils.d.ts +4 -1
  57. package/dist/types-ts4.5/common/assets/types.d.ts +14 -8
  58. package/dist/types-ts4.5/common/index.d.ts +11 -1
  59. package/dist/types-ts4.5/config/index.d.ts +6 -0
  60. package/dist/types-ts4.5/create-payload/index.d.ts +769 -1
  61. package/dist/types-ts4.5/resource-timing/common/types.d.ts +1 -1
  62. package/dist/types-ts4.5/vc/vc-observer-new/index.d.ts +3 -2
  63. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/abstract-base-vc-calculator.d.ts +1 -1
  64. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/canvas-heatmap/index.d.ts +2 -2
  65. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/heatmap/index.d.ts +2 -1
  66. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/rect-sweeping-line/index.d.ts +2 -1
  67. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/percentile-calc/types.d.ts +2 -0
  68. package/dist/types-ts4.5/vc/vc-observer-new/metric-calculator/types.d.ts +2 -0
  69. package/package.json +2 -2
@@ -1,7 +1,7 @@
1
1
  export type ResourceEntry = {
2
2
  name: string;
3
3
  initiatorType: string;
4
- transferSize: number | void;
4
+ transferSize: number | undefined;
5
5
  startTime: number;
6
6
  duration: number;
7
7
  responseStart: number;
@@ -5,13 +5,14 @@ export type VCObserverNewConfig = {
5
5
  selectorConfig?: SelectorConfig;
6
6
  };
7
7
  export default class VCObserverNew {
8
- startTime: number;
9
8
  private selectorConfig;
10
9
  private viewportObserver;
11
10
  private windowEventObserver;
12
11
  private entriesTimeline;
13
12
  constructor(config: VCObserverNewConfig);
14
- start(): void;
13
+ start({ startTime }: {
14
+ startTime: DOMHighResTimeStamp;
15
+ }): void;
15
16
  stop(): void;
16
17
  getVCResult(param: VCObserverGetVCResultParam): Promise<RevisionPayloadEntry[]>;
17
18
  private getElementName;
@@ -5,5 +5,5 @@ export default abstract class AbstractVCCalculatorBase implements VCCalculator {
5
5
  constructor(revisionNo: string);
6
6
  protected abstract isEntryIncluded(entry: VCObserverEntry): boolean;
7
7
  protected abstract isVCClean(filteredEntries: ReadonlyArray<VCObserverEntry>): boolean;
8
- calculate({ orderedEntries, }: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
8
+ calculate({ startTime, stopTime, orderedEntries, }: VCCalculatorParam): Promise<RevisionPayloadEntry | undefined>;
9
9
  }
@@ -1,4 +1,4 @@
1
1
  import type { RevisionPayloadVCDetails } from '../../types';
2
2
  import type { CalcTTVCPercentilesArg } from '../types';
3
- export default function calculateTTVCPercentiles({ viewport, orderedEntries, percentiles, }: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails>;
4
- export declare function calculatePercentiles(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, Set<string>>, unorderedPercentiles: number[], totalPixels: number): RevisionPayloadVCDetails;
3
+ export default function calculateTTVCPercentiles({ viewport, orderedEntries, percentiles, startTime, }: CalcTTVCPercentilesArg): Promise<RevisionPayloadVCDetails>;
4
+ export declare function calculatePercentiles(timePixelCounts: Map<DOMHighResTimeStamp, number>, elementMap: ReadonlyMap<DOMHighResTimeStamp, Set<string>>, unorderedPercentiles: number[], totalPixels: number, startTime: DOMHighResTimeStamp): RevisionPayloadVCDetails;
@@ -1,8 +1,9 @@
1
1
  import type { VCObserverEntry } from '../../../types';
2
2
  import type { RevisionPayloadVCDetails } from '../../types';
3
3
  import type { Viewport } from './types';
4
- export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, }: {
4
+ export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, startTime, }: {
5
5
  orderedEntries: ReadonlyArray<VCObserverEntry>;
6
6
  viewport: Viewport;
7
7
  percentiles: number[];
8
+ startTime: DOMHighResTimeStamp;
8
9
  }): Promise<RevisionPayloadVCDetails>;
@@ -16,8 +16,9 @@ export type CheckpointMetrics = {
16
16
  e: DOMSelector[];
17
17
  };
18
18
  };
19
- export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, }: {
19
+ export default function calculateTTVCPercentiles({ orderedEntries, viewport, percentiles, startTime, }: {
20
20
  orderedEntries: ReadonlyArray<VCObserverEntry>;
21
21
  viewport: Viewport;
22
22
  percentiles: number[];
23
+ startTime: DOMHighResTimeStamp;
23
24
  }): Promise<CheckpointMetrics>;
@@ -4,6 +4,8 @@ export type CalcTTVCPercentilesArg = {
4
4
  width: number;
5
5
  height: number;
6
6
  };
7
+ startTime: DOMHighResTimeStamp;
8
+ stopTime: DOMHighResTimeStamp;
7
9
  orderedEntries: ReadonlyArray<VCObserverEntry>;
8
10
  percentiles: number[];
9
11
  };
@@ -13,6 +13,8 @@ export type RevisionPayloadEntry = {
13
13
  };
14
14
  export type RevisionPayload = RevisionPayloadEntry[];
15
15
  export type VCCalculatorParam = {
16
+ startTime: DOMHighResTimeStamp;
17
+ stopTime: DOMHighResTimeStamp;
16
18
  orderedEntries: ReadonlyArray<VCObserverEntry>;
17
19
  };
18
20
  export interface VCCalculator {
@@ -1,5 +1,5 @@
1
- import type { AssetsClassification, AssetsData, AssetsReporter } from '../common';
2
- import type { ResourceTiming, ResourceTimings } from '../resource-timing';
1
+ import type { AssetsConfig, AssetsData, AssetsReporter } from '../common';
2
+ import type { ResourceEntry } from '../resource-timing/common/types';
3
3
  export declare class CHRSummary {
4
4
  bundles: {
5
5
  mem: number;
@@ -13,13 +13,13 @@ export declare class CHRSummary {
13
13
  net: number;
14
14
  };
15
15
  sizeTotal: number;
16
- add(asset: ResourceTiming): void;
16
+ add(asset: ResourceEntry): void;
17
17
  static makePayload(summary: CHRSummary): AssetsReporter;
18
18
  }
19
19
  export declare class CHRReporter {
20
20
  all: CHRSummary;
21
21
  allAtlassian: CHRSummary;
22
22
  preloaded: CHRSummary;
23
- constructor();
24
- get(resourceTimings: ResourceTimings, assetsClassification: AssetsClassification): AssetsData | null;
23
+ defaultAllowedTypes: string[];
24
+ get(resourceTimings: ResourceEntry[] | null, assetsConfig: AssetsConfig, SSRDoneTime: number | undefined): AssetsData | null;
25
25
  }
@@ -1,6 +1,9 @@
1
+ import type { ResourceEntry } from "../resource-timing/common/types";
1
2
  export declare const cacheableTypes: string[];
2
3
  export declare const MEMORY_KEY = "mem";
3
4
  export declare const DISK_KEY = "disk";
4
5
  export declare const NETWORK_KEY = "net";
5
- export declare const calculateTransferType: (type: string, duration: number, size: number | undefined) => "disk" | "mem" | "net" | null;
6
+ export declare const calculateTransferType: (name: string, type: string, duration: number, size: number | undefined) => "disk" | "mem" | "net" | null;
7
+ export declare const getTypeOfRequest: ({ name, initiatorType: type }: ResourceEntry) => string;
8
+ export declare const checkIfTimingsAvailable: (entry: ResourceEntry) => boolean;
6
9
  export declare const round: (n: number) => number;
@@ -1,12 +1,18 @@
1
- import type { ResourceTiming } from '../../resource-timing';
2
- export type AssetResourceEntry = {
3
- label: string;
4
- entry: ResourceTiming;
1
+ import type { ResourceEntry } from '../../resource-timing/common/types';
2
+ export type AssetsConfigAllAtlassianArgs = {
3
+ entry: ResourceEntry;
5
4
  };
6
- export type AssetsClassification = {
7
- all: boolean;
8
- allAtlassian: (entry: AssetResourceEntry) => boolean;
9
- preloaded: (entry: AssetResourceEntry) => boolean;
5
+ export type AssetsConfigPreloadedArgs = {
6
+ entry: ResourceEntry;
7
+ SSRDoneTime?: number;
8
+ };
9
+ export type AssetsConfig = {
10
+ allowedTypes: string[];
11
+ classification: {
12
+ all: boolean;
13
+ allAtlassian: (args: AssetsConfigAllAtlassianArgs) => boolean;
14
+ preloaded: (args: AssetsConfigPreloadedArgs) => boolean;
15
+ };
10
16
  };
11
17
  export type AssetsReporter = {
12
18
  size: number | null;
@@ -1,4 +1,14 @@
1
- export type { AssetResourceEntry, AssetsClassification, AssetsData, AssetsReporter, } from './assets/types';
1
+ /**
2
+ * @private
3
+ * @deprecated API - clean up with next reactUFO major version
4
+ */
5
+ export type AssetResourceEntry = any;
6
+ /**
7
+ * @private
8
+ * @deprecated API - clean up with next reactUFO major version
9
+ */
10
+ export type AssetsClassification = any;
11
+ export type { AssetsConfig, AssetsData, AssetsReporter, AssetsConfigAllAtlassianArgs, AssetsConfigPreloadedArgs, } from './assets/types';
2
12
  export type { LifecycleMarkType, MarkType, SpanType, InteractionType, AbortReasonType, CustomTiming, HoldInfo, LoadProfilerEventInfo, ReactProfilerTiming, Span, Mark, InteractionError, RequestInfo, ApdexType, SegmentInfo, CustomData, HoldActive, Redirect, InteractionMetrics, EnhancedUFOInteractionContextType, BM3Event, PostInteractionLogOutput, LastInteractionFinishInfo, } from './common/types';
3
13
  export type { MultiHeatmapPayload } from './vc/types';
4
14
  /**
@@ -57,7 +57,12 @@ export type Config = {
57
57
  readonly getSSRTimings?: () => SSRTiming[];
58
58
  readonly getSSRDoneTime?: () => number | undefined;
59
59
  };
60
+ /**
61
+ * @private
62
+ * @deprecated remove me with next major release
63
+ */
60
64
  readonly assetsClassification?: AssetsClassification;
65
+ readonly assetsConfig?: AssetsClassification;
61
66
  readonly enableBetterPageVisibilityApi?: boolean;
62
67
  readonly vc?: {
63
68
  readonly enabled?: boolean;
@@ -68,6 +73,7 @@ export type Config = {
68
73
  readonly ssr?: boolean;
69
74
  readonly ssrWhitelist?: string[];
70
75
  readonly stopVCAtInteractionFinish?: boolean;
76
+ readonly enableVCObserverNew?: boolean;
71
77
  };
72
78
  readonly postInteractionLog?: {
73
79
  readonly enabled?: boolean;