@@ -35,11 +35,135 @@ export interface WorkerRequest {
3535// PerformancePaintTiming and PerformanceNavigationTiming are only available with TS 4.4 and newer
3636// Therefore, we're exporting them here to make them available in older TS versions
3737export type PerformancePaintTiming = PerformanceEntry ;
38- export type PerformanceNavigationTiming = PerformanceEntry & {
39- type : string ;
40- transferSize : number ;
41- domComplete : number ;
38+ export type PerformanceNavigationTiming = PerformanceEntry &
39+ PerformanceResourceTiming & {
40+ type : string ;
41+ transferSize : number ;
42+
43+ /**
44+ * A DOMHighResTimeStamp representing the time immediately before the user agent
45+ * sets the document's readyState to "interactive".
46+ */
47+ domInteractive : number ;
48+
49+ /**
50+ * A DOMHighResTimeStamp representing the time immediately before the current
51+ * document's DOMContentLoaded event handler starts.
52+ */
53+ domContentLoadedEventStart : number ;
54+ /**
55+ * A DOMHighResTimeStamp representing the time immediately after the current
56+ * document's DOMContentLoaded event handler completes.
57+ */
58+ domContentLoadedEventEnd : number ;
59+
60+ /**
61+ * A DOMHighResTimeStamp representing the time immediately before the current
62+ * document's load event handler starts.
63+ */
64+ loadEventStart : number ;
65+
66+ /**
67+ * A DOMHighResTimeStamp representing the time immediately after the current
68+ * document's load event handler completes.
69+ */
70+ loadEventEnd : number ;
71+
72+ /**
73+ * A DOMHighResTimeStamp representing the time immediately before the user agent
74+ * sets the document's readyState to "complete".
75+ */
76+ domComplete : number ;
77+
78+ /**
79+ * A number representing the number of redirects since the last non-redirect
80+ * navigation in the current browsing context.
81+ */
82+ redirectCount : number ;
83+ } ;
84+ export type ExperimentalPerformanceResourceTiming = PerformanceResourceTiming & {
85+ // Experimental, see: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceResourceTiming/responseStatus
86+ // Requires Chrome 109
87+ responseStatus ?: number ;
88+ } ;
89+
90+ export type PaintData = undefined ;
91+
92+ /**
93+ * See https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming
94+ *
95+ * Note `navigation.push` will not have any data
96+ */
97+ export type NavigationData = Partial <
98+ Pick <
99+ PerformanceNavigationTiming ,
100+ | 'decodedBodySize'
101+ | 'encodedBodySize'
102+ | 'duration'
103+ | 'domInteractive'
104+ | 'domContentLoadedEventEnd'
105+ | 'domContentLoadedEventStart'
106+ | 'loadEventStart'
107+ | 'loadEventEnd'
108+ | 'domComplete'
109+ | 'redirectCount'
110+ >
111+ > & {
112+ /**
113+ * Transfer size of resource
114+ */
115+ size ?: number ;
116+ } ;
117+
118+ export type ResourceData = Pick < PerformanceResourceTiming , 'decodedBodySize' | 'encodedBodySize' > & {
119+ /**
120+ * Transfer size of resource
121+ */
122+ size : number ;
123+ /**
124+ * HTTP status code. Note this is experimental and not available on all browsers.
125+ */
126+ statusCode ?: number ;
42127} ;
128+
129+ export interface LargestContentfulPaintData {
130+ /**
131+ * Render time (in ms) of the LCP
132+ */
133+ value : number ;
134+ size : number ;
135+ /**
136+ * The recording id of the LCP node. -1 if not found
137+ */
138+ nodeId ?: number ;
139+ }
140+
141+ /**
142+ * Entries that come from window.performance
143+ */
144+ export type AllPerformanceEntryData = PaintData | NavigationData | ResourceData | LargestContentfulPaintData ;
145+
146+ export interface MemoryData {
147+ memory : {
148+ jsHeapSizeLimit : number ;
149+ totalJSHeapSize : number ;
150+ usedJSHeapSize : number ;
151+ } ;
152+ }
153+
154+ export interface NetworkRequestData {
155+ method ?: string ;
156+ statusCode ?: number ;
157+ requestBodySize ?: number ;
158+ responseBodySize ?: number ;
159+ }
160+
161+ export interface HistoryData {
162+ previous : string ;
163+ }
164+
165+ export type AllEntryData = AllPerformanceEntryData | MemoryData | NetworkRequestData | HistoryData ;
166+
43167/**
44168 * The response from the worker
45169 */
@@ -319,7 +443,7 @@ export interface ReplayContainer {
319443 setInitialState ( ) : void ;
320444}
321445
322- export interface ReplayPerformanceEntry {
446+ export interface ReplayPerformanceEntry < T > {
323447 /**
324448 * One of these types https://developer.mozilla.org/en-US/docs/Web/API/PerformanceEntry/entryType
325449 */
@@ -343,5 +467,5 @@ export interface ReplayPerformanceEntry {
343467 /**
344468 * Additional unstructured data to be included
345469 */
346- data ?: Record < string , unknown > ;
470+ data : T ;
347471}
0 commit comments