@rozenite/network-activity-plugin 1.0.0 → 1.2.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 (53) hide show
  1. package/README.md +9 -0
  2. package/dist/App.html +1 -1
  3. package/dist/assets/{App-C6wCDVkW.js → App-o_iVtD-5.js} +50 -7
  4. package/dist/boot-recording.cjs +1092 -0
  5. package/dist/boot-recording.js +1091 -0
  6. package/dist/react-native.cjs +3 -0
  7. package/dist/react-native.d.ts +3 -0
  8. package/dist/react-native.js +5 -1
  9. package/dist/rozenite.json +1 -1
  10. package/dist/src/react-native/boot-recording.d.ts +41 -0
  11. package/dist/src/react-native/config.d.ts +7 -4
  12. package/dist/src/react-native/events-listener.d.ts +44 -0
  13. package/dist/src/react-native/http/http-inspector.d.ts +10 -0
  14. package/dist/src/react-native/http/http-utils.d.ts +15 -0
  15. package/dist/src/react-native/inspector.d.ts +7 -0
  16. package/dist/src/react-native/network-inspector.d.ts +16 -0
  17. package/dist/src/react-native/sse/sse-inspector.d.ts +4 -7
  18. package/dist/src/react-native/useHttpInspector.d.ts +3 -0
  19. package/dist/src/react-native/useSSEInspector.d.ts +3 -0
  20. package/dist/src/react-native/useWebSocketInspector.d.ts +3 -0
  21. package/dist/src/react-native/websocket/websocket-inspector.d.ts +4 -7
  22. package/dist/src/shared/client.d.ts +3 -98
  23. package/dist/src/shared/http-events.d.ts +106 -0
  24. package/dist/src/shared/sse-events.d.ts +1 -1
  25. package/dist/src/ui/state/hooks.d.ts +3 -3
  26. package/dist/src/ui/state/model.d.ts +10 -0
  27. package/dist/useNetworkActivityDevTools.cjs +112 -993
  28. package/dist/useNetworkActivityDevTools.js +110 -989
  29. package/package.json +4 -4
  30. package/react-native.ts +8 -0
  31. package/src/react-native/boot-recording.ts +90 -0
  32. package/src/react-native/config.ts +9 -4
  33. package/src/react-native/events-listener.ts +102 -0
  34. package/src/react-native/http/http-inspector.ts +174 -0
  35. package/src/react-native/http/http-utils.ts +217 -0
  36. package/src/react-native/inspector.ts +10 -0
  37. package/src/react-native/network-inspector.ts +78 -0
  38. package/src/react-native/sse/sse-inspector.ts +12 -10
  39. package/src/react-native/useHttpInspector.ts +59 -0
  40. package/src/react-native/useNetworkActivityDevTools.ts +60 -115
  41. package/src/react-native/useSSEInspector.ts +35 -0
  42. package/src/react-native/useWebSocketInspector.ts +35 -0
  43. package/src/react-native/websocket/websocket-inspector.ts +18 -10
  44. package/src/shared/client.ts +4 -132
  45. package/src/shared/http-events.ts +140 -0
  46. package/src/shared/sse-events.ts +1 -1
  47. package/src/ui/components/RequestList.tsx +18 -6
  48. package/src/ui/components/Toolbar.tsx +3 -2
  49. package/src/ui/state/derived.ts +9 -3
  50. package/src/ui/state/model.ts +10 -0
  51. package/src/ui/state/store.ts +34 -3
  52. package/dist/src/react-native/http/network-inspector.d.ts +0 -8
  53. package/src/react-native/http/network-inspector.ts +0 -388
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  exports.useNetworkActivityDevTools = void 0;
4
+ exports.withOnBootNetworkActivityRecording = void 0;
4
5
  const isWeb = typeof window !== "undefined" && window.navigator.product !== "ReactNative";
5
6
  const isDev = process.env.NODE_ENV !== "production";
6
7
  const isServer = typeof window === "undefined";
7
8
  if (isDev && !isWeb && !isServer) {
8
9
  exports.useNetworkActivityDevTools = require("./useNetworkActivityDevTools.cjs").useNetworkActivityDevTools;
10
+ exports.withOnBootNetworkActivityRecording = require("./boot-recording.cjs").withOnBootNetworkActivityRecording;
9
11
  } else {
10
12
  exports.useNetworkActivityDevTools = () => null;
13
+ exports.withOnBootNetworkActivityRecording = (options) => null;
11
14
  }
@@ -1 +1,4 @@
1
1
  export declare let useNetworkActivityDevTools: typeof import('./src/react-native/useNetworkActivityDevTools').useNetworkActivityDevTools;
2
+ export declare let withOnBootNetworkActivityRecording: typeof import('./src/react-native/boot-recording').withOnBootNetworkActivityRecording;
3
+ export type { NetworkActivityDevToolsConfig } from './src/react-native/config';
4
+ export type { BootRecordingOptions } from './src/react-native/boot-recording';
@@ -1,12 +1,16 @@
1
1
  let useNetworkActivityDevTools;
2
+ let withOnBootNetworkActivityRecording;
2
3
  const isWeb = typeof window !== "undefined" && window.navigator.product !== "ReactNative";
3
4
  const isDev = process.env.NODE_ENV !== "production";
4
5
  const isServer = typeof window === "undefined";
5
6
  if (isDev && !isWeb && !isServer) {
6
7
  useNetworkActivityDevTools = require("./useNetworkActivityDevTools.js").useNetworkActivityDevTools;
8
+ withOnBootNetworkActivityRecording = require("./boot-recording.js").withOnBootNetworkActivityRecording;
7
9
  } else {
8
10
  useNetworkActivityDevTools = () => null;
11
+ withOnBootNetworkActivityRecording = (options) => null;
9
12
  }
10
13
  export {
11
- useNetworkActivityDevTools
14
+ useNetworkActivityDevTools,
15
+ withOnBootNetworkActivityRecording
12
16
  };
@@ -1 +1 @@
1
- {"name":"@rozenite/network-activity-plugin","version":"1.0.0-alpha.16","description":"Network Activity for Rozenite.","panels":[{"name":"Network Activity","source":"/App.html"}]}
1
+ {"name":"@rozenite/network-activity-plugin","version":"1.1.0","description":"Network Activity for Rozenite.","panels":[{"name":"Network Activity","source":"/App.html"}]}
@@ -0,0 +1,41 @@
1
+ import { NetworkActivityEventMap } from '../shared/client';
2
+ import { createEventsListener, EventsListenerOptions } from './events-listener';
3
+ import { NetworkInspector } from './network-inspector';
4
+ import { NetworkInspectorConfig } from './config';
5
+ type InspectorsConfiguration = {
6
+ eventsListener: ReturnType<typeof createEventsListener<NetworkActivityEventMap>>;
7
+ networkInspector: NetworkInspector;
8
+ };
9
+ export type BootRecordingOptions = NetworkInspectorConfig & EventsListenerOptions & {
10
+ /**
11
+ * Enable queuing of events during boot before DevTools connects.
12
+ * When true, network activity is captured and queued until DevTools is ready.
13
+ * When false, nothing is queued and inspectors are not even set up.
14
+ * @default true
15
+ */
16
+ enableBootRecording?: boolean;
17
+ };
18
+ /**
19
+ *
20
+ * @internal
21
+ */
22
+ export declare const createNetworkInspectorsConfiguration: (options?: BootRecordingOptions) => InspectorsConfiguration;
23
+ /**
24
+ * Enable network activity recording during app boot, before DevTools connects.
25
+ * Call this at the root of your app to capture early network requests.
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * import { withOnBootNetworkActivityRecording } from '@rozenite/network-activity-plugin';
30
+ *
31
+ * // At app entry point, before any network requests
32
+ * withOnBootNetworkActivityRecording();
33
+ *
34
+ * function App() {
35
+ * useNetworkActivityDevTools();
36
+ * // ...
37
+ * }
38
+ * ```
39
+ */
40
+ export declare const withOnBootNetworkActivityRecording: (options?: BootRecordingOptions) => void;
41
+ export {};
@@ -1,13 +1,16 @@
1
1
  export type InspectorType = 'http' | 'websocket' | 'sse';
2
- export type NetworkActivityDevToolsConfig = {
2
+ export type InspectorsConfig = {
3
+ [key in InspectorType]?: boolean;
4
+ };
5
+ export type NetworkInspectorConfig = {
3
6
  /**
4
7
  * Specifies which network inspectors are enabled.
5
8
  * Set to `false` to disable monitoring for a specific type of network traffic.
6
9
  * @default { http: true, websocket: true, sse: true }
7
10
  */
8
- inspectors?: {
9
- [key in InspectorType]?: boolean;
10
- };
11
+ inspectors?: InspectorsConfig;
12
+ };
13
+ export type NetworkActivityDevToolsConfig = NetworkInspectorConfig & {
11
14
  clientUISettings?: {
12
15
  /**
13
16
  * If true, display the entire relative URL as the request name in the UI instead of only the last path segment.
@@ -0,0 +1,44 @@
1
+ type QueuedMessage<TEventMap extends Record<string, unknown>> = {
2
+ type: keyof TEventMap;
3
+ data: TEventMap[keyof TEventMap];
4
+ };
5
+ type SendFunction<TEventMap extends Record<string, unknown>> = <K extends keyof TEventMap>(type: K, data: TEventMap[K]) => void;
6
+ /**
7
+ * Generic events listener that queues messages until a send function is registered.
8
+ * This allows capturing events before the DevTools client connects and so be boot compliant.
9
+ */
10
+ export declare class EventsListener<TEventMap extends Record<string, unknown>> {
11
+ private messageQueue;
12
+ private sendFunction;
13
+ private maxQueueSize;
14
+ private isQueuing;
15
+ setMaxQueueSize(size: number): void;
16
+ /**
17
+ * Enable queuing mode to capture events before client is connected
18
+ */
19
+ enableQueuing(): void;
20
+ /**
21
+ * Connect the actual send function and automatically flush queued messages
22
+ */
23
+ connect(sendFn: SendFunction<TEventMap>, filterFn?: (message: QueuedMessage<TEventMap>) => boolean): void;
24
+ isInQueueMode(): boolean;
25
+ /**
26
+ * Send a message (queued if not connected, sent directly if connected)
27
+ */
28
+ send<K extends keyof TEventMap>(type: K, data: TEventMap[K]): void;
29
+ private enqueueMessage;
30
+ private flushQueue;
31
+ }
32
+ export type EventsListenerOptions = {
33
+ /**
34
+ * Maximum number of messages to queue before DevTools connects.
35
+ * @default 200
36
+ */
37
+ maxQueueSize?: number;
38
+ };
39
+ /**
40
+ * Create a new events listener instance for a specific event map.
41
+ * This factory can be used to create listeners for different protocols or plugins.
42
+ */
43
+ export declare const createEventsListener: <TEventMap extends Record<string, unknown>>() => EventsListener<TEventMap>;
44
+ export {};
@@ -0,0 +1,10 @@
1
+ import { getNetworkRequestsRegistry } from './network-requests-registry';
2
+ import { HttpEventMap } from '../../shared/http-events';
3
+ import { Inspector } from '../inspector';
4
+ export type { HttpEventMap };
5
+ export declare const HTTP_EVENTS: (keyof HttpEventMap)[];
6
+ export declare const isHttpEvent: (type: string) => type is keyof HttpEventMap;
7
+ export type HTTPInspector = Inspector<HttpEventMap> & {
8
+ getNetworkRequestsRegistry: () => ReturnType<typeof getNetworkRequestsRegistry>;
9
+ };
10
+ export declare const getHTTPInspector: () => HTTPInspector;
@@ -0,0 +1,15 @@
1
+ import { XHRPostData, RequestPostData } from '../../shared/client';
2
+ import { OverridesRegistry } from './overrides-registry';
3
+ export declare const getRequestBody: (body: XHRPostData) => RequestPostData;
4
+ export declare const getResponseSize: (request: XMLHttpRequest) => number | null;
5
+ export declare const getResponseBody: (request: XMLHttpRequest) => Promise<string | null>;
6
+ export declare const getInitiatorFromStack: () => {
7
+ type: string;
8
+ url?: string;
9
+ lineNumber?: number;
10
+ columnNumber?: number;
11
+ };
12
+ /**
13
+ * Applies override body and status to XMLHttpRequest objects.
14
+ */
15
+ export declare const setupRequestOverride: (overridesRegistry: OverridesRegistry, request: XMLHttpRequest) => void;
@@ -0,0 +1,7 @@
1
+ export interface Inspector<TEventMap> {
2
+ enable: () => void;
3
+ disable: () => void;
4
+ isEnabled: () => boolean;
5
+ dispose: () => void;
6
+ on<TEventType extends keyof TEventMap>(type: TEventType, callback: (event: TEventMap[TEventType]) => void): () => void;
7
+ }
@@ -0,0 +1,16 @@
1
+ import { HTTPInspector } from './http/http-inspector';
2
+ import { SSEInspector } from './sse/sse-inspector';
3
+ import { WebSocketInspector } from './websocket/websocket-inspector';
4
+ import { EventsListener } from './events-listener';
5
+ import { NetworkActivityEventMap } from '../shared/client';
6
+ import { InspectorsConfig } from './config';
7
+ export type NetworkInspector = {
8
+ readonly http: HTTPInspector;
9
+ readonly sse: SSEInspector;
10
+ readonly websocket: WebSocketInspector;
11
+ setup: (eventsListener: EventsListener<NetworkActivityEventMap>) => void;
12
+ enable: (config?: InspectorsConfig) => void;
13
+ disable: () => void;
14
+ dispose: () => void;
15
+ };
16
+ export declare const getNetworkInspector: () => NetworkInspector;
@@ -1,9 +1,6 @@
1
1
  import { SSEEventMap } from '../../shared/sse-events';
2
- export type SSEInspector = {
3
- enable: () => void;
4
- disable: () => void;
5
- isEnabled: () => boolean;
6
- dispose: () => void;
7
- on: <TEventType extends keyof SSEEventMap>(event: TEventType, callback: (data: SSEEventMap[TEventType]) => void) => () => void;
8
- };
2
+ import { Inspector } from '../inspector';
3
+ export type SSEInspector = Inspector<SSEEventMap>;
4
+ export declare const SSE_EVENTS: (keyof SSEEventMap)[];
5
+ export declare const isSSEEvent: (type: string) => type is keyof SSEEventMap;
9
6
  export declare const getSSEInspector: () => SSEInspector;
@@ -0,0 +1,3 @@
1
+ import { HTTPInspector } from './http/http-inspector';
2
+ import { NetworkActivityDevToolsClient } from '../shared/client';
3
+ export declare const useHttpInspector: (client: NetworkActivityDevToolsClient | null, httpInspector: HTTPInspector, isEnabled: boolean, isRecordingEnabled: boolean) => void;
@@ -0,0 +1,3 @@
1
+ import { SSEInspector } from './sse/sse-inspector';
2
+ import { NetworkActivityDevToolsClient } from '../shared/client';
3
+ export declare const useSSEInspector: (client: NetworkActivityDevToolsClient | null, sseInspector: SSEInspector, isEnabled: boolean, isRecordingEnabled: boolean) => void;
@@ -0,0 +1,3 @@
1
+ import { WebSocketInspector } from './websocket/websocket-inspector';
2
+ import { NetworkActivityDevToolsClient } from '../shared/client';
3
+ export declare const useWebSocketInspector: (client: NetworkActivityDevToolsClient | null, websocketInspector: WebSocketInspector, isEnabled: boolean, isRecordingEnabled: boolean) => void;
@@ -1,9 +1,6 @@
1
1
  import { WebSocketEventMap } from '../../shared/websocket-events';
2
- export type WebSocketInspector = {
3
- enable: () => void;
4
- disable: () => void;
5
- isEnabled: () => boolean;
6
- dispose: () => void;
7
- on: <TEventType extends keyof WebSocketEventMap>(event: TEventType, callback: (data: WebSocketEventMap[TEventType]) => void) => () => void;
8
- };
2
+ import { Inspector } from '../inspector';
3
+ export type WebSocketInspector = Inspector<WebSocketEventMap>;
4
+ export declare const WEBSOCKET_EVENTS: (keyof WebSocketEventMap)[];
5
+ export declare const isWebSocketEvent: (type: string) => type is keyof WebSocketEventMap;
9
6
  export declare const getWebSocketInspector: () => WebSocketInspector;
@@ -1,66 +1,8 @@
1
1
  import { RozeniteDevToolsClient } from '@rozenite/plugin-bridge';
2
2
  import { WebSocketEventMap } from './websocket-events';
3
3
  import { SSEEventMap } from './sse-events';
4
- export type HttpHeaders = Record<string, string | string[]>;
5
- export type XHRHeaders = NonNullable<XMLHttpRequest['responseHeaders']>;
6
- export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD';
7
- export type RequestId = string;
8
- export type Timestamp = number;
9
- export type XHRPostData = string | Blob | FormData | ArrayBuffer | ArrayBufferView | unknown | null | undefined;
10
- export type RequestTextPostData = {
11
- type: 'text';
12
- value: string;
13
- };
14
- export type RequestBinaryPostData = {
15
- type: 'binary';
16
- value: {
17
- size: number;
18
- type?: string;
19
- name?: string;
20
- };
21
- };
22
- export type RequestFormDataPostData = {
23
- type: 'form-data';
24
- value: Record<string, RequestTextPostData | RequestBinaryPostData>;
25
- };
26
- export type RequestPostData = RequestTextPostData | RequestFormDataPostData | RequestBinaryPostData | null | undefined;
27
- export type Cookie = {
28
- name: string;
29
- value: string;
30
- domain?: string;
31
- path?: string;
32
- expires?: string;
33
- maxAge?: string;
34
- secure?: boolean;
35
- httpOnly?: boolean;
36
- sameSite?: string;
37
- };
38
- export type Request = {
39
- url: string;
40
- method: HttpMethod;
41
- headers: HttpHeaders;
42
- postData?: RequestPostData;
43
- };
44
- export type Response = {
45
- url: string;
46
- status: number;
47
- statusText: string;
48
- headers: HttpHeaders;
49
- contentType: string;
50
- size: number | null;
51
- responseTime: Timestamp;
52
- };
53
- export type Initiator = {
54
- type: string;
55
- url?: string;
56
- lineNumber?: number;
57
- columnNumber?: number;
58
- };
59
- export type ResourceType = 'XHR' | 'Fetch' | 'Other';
60
- export type RequestOverride = {
61
- status?: number;
62
- body?: string;
63
- };
4
+ import { HttpEventMap } from './http-events';
5
+ export * from './http-events';
64
6
  export type NetworkActivityClientUISettings = {
65
7
  showUrlAsName?: boolean;
66
8
  };
@@ -71,42 +13,5 @@ export type NetworkActivityEventMap = {
71
13
  'client-ui-settings': {
72
14
  settings?: NetworkActivityClientUISettings;
73
15
  };
74
- 'request-sent': {
75
- requestId: RequestId;
76
- request: Request;
77
- timestamp: Timestamp;
78
- initiator: Initiator;
79
- type: ResourceType;
80
- };
81
- 'response-received': {
82
- requestId: RequestId;
83
- timestamp: Timestamp;
84
- type: ResourceType;
85
- response: Response;
86
- };
87
- 'request-completed': {
88
- requestId: RequestId;
89
- timestamp: Timestamp;
90
- duration: number;
91
- size: number | null;
92
- ttfb: number;
93
- };
94
- 'request-failed': {
95
- requestId: RequestId;
96
- timestamp: Timestamp;
97
- type: ResourceType;
98
- error: string;
99
- canceled: boolean;
100
- };
101
- 'get-response-body': {
102
- requestId: RequestId;
103
- };
104
- 'response-body': {
105
- requestId: RequestId;
106
- body: string | null;
107
- };
108
- 'set-overrides': {
109
- overrides: [string, RequestOverride][];
110
- };
111
- } & WebSocketEventMap & SSEEventMap;
16
+ } & HttpEventMap & WebSocketEventMap & SSEEventMap;
112
17
  export type NetworkActivityDevToolsClient = RozeniteDevToolsClient<NetworkActivityEventMap>;
@@ -0,0 +1,106 @@
1
+ export type HttpHeaders = Record<string, string | string[]>;
2
+ export type XHRHeaders = NonNullable<XMLHttpRequest['responseHeaders']>;
3
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD';
4
+ export type RequestId = string;
5
+ export type Timestamp = number;
6
+ export type XHRPostData = string | Blob | FormData | ArrayBuffer | ArrayBufferView | unknown | null | undefined;
7
+ export type RequestTextPostData = {
8
+ type: 'text';
9
+ value: string;
10
+ };
11
+ export type RequestBinaryPostData = {
12
+ type: 'binary';
13
+ value: {
14
+ size: number;
15
+ type?: string;
16
+ name?: string;
17
+ };
18
+ };
19
+ export type RequestFormDataPostData = {
20
+ type: 'form-data';
21
+ value: Record<string, RequestTextPostData | RequestBinaryPostData>;
22
+ };
23
+ export type RequestPostData = RequestTextPostData | RequestFormDataPostData | RequestBinaryPostData | null | undefined;
24
+ export type Cookie = {
25
+ name: string;
26
+ value: string;
27
+ domain?: string;
28
+ path?: string;
29
+ expires?: string;
30
+ maxAge?: string;
31
+ secure?: boolean;
32
+ httpOnly?: boolean;
33
+ sameSite?: string;
34
+ };
35
+ export type Request = {
36
+ url: string;
37
+ method: HttpMethod;
38
+ headers: HttpHeaders;
39
+ postData?: RequestPostData;
40
+ };
41
+ export type Response = {
42
+ url: string;
43
+ status: number;
44
+ statusText: string;
45
+ headers: HttpHeaders;
46
+ contentType: string;
47
+ size: number | null;
48
+ responseTime: Timestamp;
49
+ };
50
+ export type Initiator = {
51
+ type: string;
52
+ url?: string;
53
+ lineNumber?: number;
54
+ columnNumber?: number;
55
+ };
56
+ export type ResourceType = 'XHR' | 'Fetch' | 'Other';
57
+ export type RequestOverride = {
58
+ status?: number;
59
+ body?: string;
60
+ };
61
+ export type HttpEventMap = {
62
+ 'request-sent': {
63
+ requestId: RequestId;
64
+ request: Request;
65
+ timestamp: Timestamp;
66
+ initiator: Initiator;
67
+ type: ResourceType;
68
+ };
69
+ 'response-received': {
70
+ requestId: RequestId;
71
+ timestamp: Timestamp;
72
+ type: ResourceType;
73
+ response: Response;
74
+ };
75
+ 'request-completed': {
76
+ requestId: RequestId;
77
+ timestamp: Timestamp;
78
+ duration: number;
79
+ size: number | null;
80
+ ttfb: number;
81
+ };
82
+ 'request-failed': {
83
+ requestId: RequestId;
84
+ timestamp: Timestamp;
85
+ type: ResourceType;
86
+ error: string;
87
+ canceled: boolean;
88
+ };
89
+ 'request-progress': {
90
+ requestId: RequestId;
91
+ timestamp: Timestamp;
92
+ loaded: number;
93
+ total: number;
94
+ lengthComputable: boolean;
95
+ };
96
+ 'get-response-body': {
97
+ requestId: RequestId;
98
+ };
99
+ 'response-body': {
100
+ requestId: RequestId;
101
+ body: string | null;
102
+ };
103
+ 'set-overrides': {
104
+ overrides: [string, RequestOverride][];
105
+ };
106
+ };
@@ -1,4 +1,4 @@
1
- import { Response } from './client';
1
+ import { Response } from './http-events';
2
2
  export type SSEConnectionStatus = 'connecting' | 'open' | 'closed';
3
3
  export type SSERequestId = string;
4
4
  export type SSEOpenEvent = {
@@ -7,9 +7,9 @@ export declare const useSelectedRequestId: () => string | null;
7
7
  export declare const useIsRecording: () => boolean;
8
8
  export declare const useNetworkActivityActions: () => {
9
9
  setRecording: (isRecording: boolean) => void;
10
- setSelectedRequest: (requestId: import('../../shared/client').RequestId | null) => void;
10
+ setSelectedRequest: (requestId: import('../../shared/http-events').RequestId | null) => void;
11
11
  clearRequests: () => void;
12
- addOverride: (requestUrl: string, override: import('../../shared/client').RequestOverride) => void;
12
+ addOverride: (requestUrl: string, override: import('../../shared/http-events').RequestOverride) => void;
13
13
  clearOverride: (requestUrl: string) => void;
14
14
  };
15
15
  export declare const useNetworkActivityClientManagement: () => {
@@ -17,5 +17,5 @@ export declare const useNetworkActivityClientManagement: () => {
17
17
  cleanupClient: () => void;
18
18
  };
19
19
  export declare const useWebSocketMessages: (requestId: string) => import('./model').WebSocketMessage[];
20
- export declare const useOverrides: () => Map<string, import('../../shared/client').RequestOverride>;
20
+ export declare const useOverrides: () => Map<string, import('../../shared/http-events').RequestOverride>;
21
21
  export declare const useClientUISettings: () => import('../../shared/client').NetworkActivityClientUISettings | null;
@@ -43,6 +43,11 @@ export type HttpNetworkEntry = {
43
43
  size?: number;
44
44
  initiator?: Initiator;
45
45
  resourceType?: ResourceType;
46
+ progress?: {
47
+ loaded: number;
48
+ total: number;
49
+ lengthComputable: boolean;
50
+ };
46
51
  };
47
52
  export type SSEMessage = {
48
53
  id: string;
@@ -100,4 +105,9 @@ export type ProcessedRequest = {
100
105
  size: number | null;
101
106
  method: HttpMethod | 'WS' | 'SSE';
102
107
  httpStatus?: number;
108
+ progress?: {
109
+ loaded: number;
110
+ total: number;
111
+ lengthComputable: boolean;
112
+ };
103
113
  };