@rozenite/network-activity-plugin 1.5.0 → 1.6.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.
@@ -0,0 +1,733 @@
1
+ import { HttpEventMap, Request, RequestId, Response, ResourceType, Initiator } from '../../shared/client';
2
+ import { WebSocketEventMap } from '../../shared/websocket-events';
3
+ import { SSEEventMap } from '../../shared/sse-events';
4
+ type HttpAgentRecord = {
5
+ requestId: RequestId;
6
+ request: Request;
7
+ resourceType: ResourceType;
8
+ initiator: Initiator;
9
+ startTimeMs: number;
10
+ status: 'pending' | 'loading' | 'finished' | 'failed';
11
+ progress?: HttpEventMap['request-progress'];
12
+ response?: Response;
13
+ endTimeMs?: number;
14
+ durationMs?: number;
15
+ size?: number | null;
16
+ ttfb?: number;
17
+ error?: string;
18
+ canceled?: boolean;
19
+ };
20
+ type WebSocketAgentMessage = {
21
+ id: string;
22
+ direction: 'sent' | 'received';
23
+ data: string;
24
+ messageType: 'text' | 'binary';
25
+ timestamp: number;
26
+ };
27
+ type WebSocketAgentRecord = {
28
+ requestId: string;
29
+ kind: 'websocket';
30
+ url: string;
31
+ socketId: number;
32
+ status: 'connecting' | 'open' | 'closing' | 'closed' | 'error';
33
+ startedAt: number;
34
+ endedAt?: number;
35
+ durationMs?: number;
36
+ protocols?: string[] | null;
37
+ options?: string[];
38
+ error?: string;
39
+ closeCode?: number;
40
+ closeReason?: string;
41
+ messages: WebSocketAgentMessage[];
42
+ };
43
+ type SSEAgentMessage = {
44
+ id: string;
45
+ type: string;
46
+ data: string;
47
+ timestamp: number;
48
+ };
49
+ type SSEAgentRecord = {
50
+ requestId: string;
51
+ kind: 'sse';
52
+ status: 'connecting' | 'open' | 'closed' | 'error';
53
+ startedAt: number;
54
+ endedAt?: number;
55
+ durationMs?: number;
56
+ request?: Request;
57
+ response?: Response;
58
+ initiator?: Initiator;
59
+ resourceType?: ResourceType;
60
+ error?: string;
61
+ messages: SSEAgentMessage[];
62
+ };
63
+ type RealtimeAgentRecord = WebSocketAgentRecord | SSEAgentRecord;
64
+ export type NetworkActivityAgentBodyResult = {
65
+ requestId: string;
66
+ available: boolean;
67
+ body?: string;
68
+ base64Encoded?: boolean;
69
+ decoded?: boolean;
70
+ mimeType?: string;
71
+ reason?: string;
72
+ };
73
+ type RecordingMetadata = {
74
+ enabledInspectors: {
75
+ http: boolean;
76
+ websocket: boolean;
77
+ sse: boolean;
78
+ };
79
+ };
80
+ export declare const createNetworkActivityAgentState: () => {
81
+ startRecording(metadata?: Partial<RecordingMetadata>): {
82
+ recording: {
83
+ isRecording: boolean;
84
+ startedAt: number | null;
85
+ stoppedAt: number | null;
86
+ httpRequestCount: number;
87
+ realtimeConnectionCount: number;
88
+ http: {
89
+ totalRecorded: number;
90
+ evictedCount: number;
91
+ truncated: boolean;
92
+ capacity: number;
93
+ };
94
+ realtime: {
95
+ totalRecorded: number;
96
+ evictedCount: number;
97
+ truncated: boolean;
98
+ capacity: number;
99
+ };
100
+ generation: number;
101
+ enabledInspectors: {
102
+ http: boolean;
103
+ websocket: boolean;
104
+ sse: boolean;
105
+ };
106
+ };
107
+ };
108
+ stopRecording(): {
109
+ recording: {
110
+ isRecording: boolean;
111
+ startedAt: number | null;
112
+ stoppedAt: number | null;
113
+ httpRequestCount: number;
114
+ realtimeConnectionCount: number;
115
+ http: {
116
+ totalRecorded: number;
117
+ evictedCount: number;
118
+ truncated: boolean;
119
+ capacity: number;
120
+ };
121
+ realtime: {
122
+ totalRecorded: number;
123
+ evictedCount: number;
124
+ truncated: boolean;
125
+ capacity: number;
126
+ };
127
+ generation: number;
128
+ enabledInspectors: {
129
+ http: boolean;
130
+ websocket: boolean;
131
+ sse: boolean;
132
+ };
133
+ };
134
+ };
135
+ getStatus: () => {
136
+ recording: {
137
+ isRecording: boolean;
138
+ startedAt: number | null;
139
+ stoppedAt: number | null;
140
+ httpRequestCount: number;
141
+ realtimeConnectionCount: number;
142
+ http: {
143
+ totalRecorded: number;
144
+ evictedCount: number;
145
+ truncated: boolean;
146
+ capacity: number;
147
+ };
148
+ realtime: {
149
+ totalRecorded: number;
150
+ evictedCount: number;
151
+ truncated: boolean;
152
+ capacity: number;
153
+ };
154
+ generation: number;
155
+ enabledInspectors: {
156
+ http: boolean;
157
+ websocket: boolean;
158
+ sse: boolean;
159
+ };
160
+ };
161
+ };
162
+ getHttpRecord(requestId: string): HttpAgentRecord | null;
163
+ getRealtimeRecord(requestId: string): RealtimeAgentRecord | null;
164
+ listRequests(input: {
165
+ limit?: number;
166
+ cursor?: string;
167
+ }): {
168
+ items: {
169
+ requestId: string;
170
+ method: import('../../shared/http-events').HttpMethod;
171
+ url: string;
172
+ status: number | null;
173
+ type: ResourceType;
174
+ startTimeMs: number;
175
+ endTimeMs: number | null;
176
+ durationMs: number | null;
177
+ transferSize: number | null;
178
+ encodedDataLength: number | null;
179
+ outcome: string;
180
+ }[];
181
+ page: {
182
+ limit: number;
183
+ hasMore: boolean;
184
+ nextCursor?: string;
185
+ };
186
+ recording: {
187
+ isRecording: boolean;
188
+ startedAt: number | null;
189
+ stoppedAt: number | null;
190
+ httpRequestCount: number;
191
+ realtimeConnectionCount: number;
192
+ http: {
193
+ totalRecorded: number;
194
+ evictedCount: number;
195
+ truncated: boolean;
196
+ capacity: number;
197
+ };
198
+ realtime: {
199
+ totalRecorded: number;
200
+ evictedCount: number;
201
+ truncated: boolean;
202
+ capacity: number;
203
+ };
204
+ generation: number;
205
+ enabledInspectors: {
206
+ http: boolean;
207
+ websocket: boolean;
208
+ sse: boolean;
209
+ };
210
+ };
211
+ };
212
+ listRealtimeConnections(input: {
213
+ limit?: number;
214
+ cursor?: string;
215
+ }): {
216
+ items: ({
217
+ requestId: string;
218
+ kind: "websocket";
219
+ url: string;
220
+ status: "connecting" | "open" | "closing" | "closed" | "error";
221
+ startedAt: number;
222
+ endedAt: number | null;
223
+ durationMs: number | null;
224
+ messageCount: number;
225
+ error: string | null;
226
+ closeCode: number | null;
227
+ httpStatus?: undefined;
228
+ } | {
229
+ requestId: string;
230
+ kind: "sse";
231
+ url: string | null;
232
+ status: "connecting" | "open" | "closed" | "error";
233
+ startedAt: number;
234
+ endedAt: number | null;
235
+ durationMs: number | null;
236
+ messageCount: number;
237
+ error: string | null;
238
+ httpStatus: number | null;
239
+ closeCode?: undefined;
240
+ })[];
241
+ page: {
242
+ limit: number;
243
+ hasMore: boolean;
244
+ nextCursor?: string;
245
+ };
246
+ recording: {
247
+ isRecording: boolean;
248
+ startedAt: number | null;
249
+ stoppedAt: number | null;
250
+ httpRequestCount: number;
251
+ realtimeConnectionCount: number;
252
+ http: {
253
+ totalRecorded: number;
254
+ evictedCount: number;
255
+ truncated: boolean;
256
+ capacity: number;
257
+ };
258
+ realtime: {
259
+ totalRecorded: number;
260
+ evictedCount: number;
261
+ truncated: boolean;
262
+ capacity: number;
263
+ };
264
+ generation: number;
265
+ enabledInspectors: {
266
+ http: boolean;
267
+ websocket: boolean;
268
+ sse: boolean;
269
+ };
270
+ };
271
+ };
272
+ getRequestDetails(requestId: string): {
273
+ request: {
274
+ requestId: string;
275
+ method: import('../../shared/http-events').HttpMethod;
276
+ url: string;
277
+ type: ResourceType;
278
+ initiator: Initiator;
279
+ startTimeMs: number;
280
+ endTimeMs: number | null;
281
+ durationMs: number | null;
282
+ request: Request;
283
+ response: Response | null;
284
+ loadingFinished: boolean;
285
+ loadingFailed: boolean;
286
+ failureText: string | null;
287
+ canceled: boolean;
288
+ progress: {
289
+ loaded: number;
290
+ total: number;
291
+ lengthComputable: boolean;
292
+ } | null;
293
+ ttfb: number | null;
294
+ size: number | null;
295
+ };
296
+ recording: {
297
+ isRecording: boolean;
298
+ startedAt: number | null;
299
+ stoppedAt: number | null;
300
+ httpRequestCount: number;
301
+ realtimeConnectionCount: number;
302
+ http: {
303
+ totalRecorded: number;
304
+ evictedCount: number;
305
+ truncated: boolean;
306
+ capacity: number;
307
+ };
308
+ realtime: {
309
+ totalRecorded: number;
310
+ evictedCount: number;
311
+ truncated: boolean;
312
+ capacity: number;
313
+ };
314
+ generation: number;
315
+ enabledInspectors: {
316
+ http: boolean;
317
+ websocket: boolean;
318
+ sse: boolean;
319
+ };
320
+ };
321
+ };
322
+ getRealtimeConnectionDetails(requestId: string): {
323
+ connection: {
324
+ requestId: string;
325
+ kind: "websocket";
326
+ url: string;
327
+ socketId: number;
328
+ status: "connecting" | "open" | "closing" | "closed" | "error";
329
+ startedAt: number;
330
+ endedAt: number | null;
331
+ durationMs: number | null;
332
+ protocols: string[] | null;
333
+ options: string[];
334
+ error: string | null;
335
+ closeCode: number | null;
336
+ closeReason: string | null;
337
+ messages: WebSocketAgentMessage[];
338
+ request?: undefined;
339
+ response?: undefined;
340
+ initiator?: undefined;
341
+ resourceType?: undefined;
342
+ } | {
343
+ requestId: string;
344
+ kind: "sse";
345
+ status: "connecting" | "open" | "closed" | "error";
346
+ startedAt: number;
347
+ endedAt: number | null;
348
+ durationMs: number | null;
349
+ request: Request | null;
350
+ response: Response | null;
351
+ initiator: Initiator | null;
352
+ resourceType: ResourceType | null;
353
+ error: string | null;
354
+ messages: SSEAgentMessage[];
355
+ url?: undefined;
356
+ socketId?: undefined;
357
+ protocols?: undefined;
358
+ options?: undefined;
359
+ closeCode?: undefined;
360
+ closeReason?: undefined;
361
+ };
362
+ recording: {
363
+ isRecording: boolean;
364
+ startedAt: number | null;
365
+ stoppedAt: number | null;
366
+ httpRequestCount: number;
367
+ realtimeConnectionCount: number;
368
+ http: {
369
+ totalRecorded: number;
370
+ evictedCount: number;
371
+ truncated: boolean;
372
+ capacity: number;
373
+ };
374
+ realtime: {
375
+ totalRecorded: number;
376
+ evictedCount: number;
377
+ truncated: boolean;
378
+ capacity: number;
379
+ };
380
+ generation: number;
381
+ enabledInspectors: {
382
+ http: boolean;
383
+ websocket: boolean;
384
+ sse: boolean;
385
+ };
386
+ };
387
+ };
388
+ getRequestBody(requestId: string): NetworkActivityAgentBodyResult;
389
+ onRequestSent(event: HttpEventMap["request-sent"]): void;
390
+ onRequestProgress(event: HttpEventMap["request-progress"]): void;
391
+ onResponseReceived(event: HttpEventMap["response-received"]): void;
392
+ onRequestCompleted(event: HttpEventMap["request-completed"]): void;
393
+ onRequestFailed(event: HttpEventMap["request-failed"]): void;
394
+ onWebSocketConnect(event: WebSocketEventMap["websocket-connect"]): void;
395
+ onWebSocketOpen(event: WebSocketEventMap["websocket-open"]): void;
396
+ onWebSocketClose(event: WebSocketEventMap["websocket-close"]): void;
397
+ onWebSocketMessageSent(event: WebSocketEventMap["websocket-message-sent"]): void;
398
+ onWebSocketMessageReceived(event: WebSocketEventMap["websocket-message-received"]): void;
399
+ onWebSocketError(event: WebSocketEventMap["websocket-error"]): void;
400
+ onWebSocketConnectionStatusChanged(event: WebSocketEventMap["websocket-connection-status-changed"]): void;
401
+ onSSEOpen(event: SSEEventMap["sse-open"]): void;
402
+ onSSEMessage(event: SSEEventMap["sse-message"]): void;
403
+ onSSEError(event: SSEEventMap["sse-error"]): void;
404
+ onSSEClose(event: SSEEventMap["sse-close"]): void;
405
+ };
406
+ export type NetworkActivityAgentState = ReturnType<typeof createNetworkActivityAgentState>;
407
+ export declare const getNetworkActivityAgentState: () => {
408
+ startRecording(metadata?: Partial<RecordingMetadata>): {
409
+ recording: {
410
+ isRecording: boolean;
411
+ startedAt: number | null;
412
+ stoppedAt: number | null;
413
+ httpRequestCount: number;
414
+ realtimeConnectionCount: number;
415
+ http: {
416
+ totalRecorded: number;
417
+ evictedCount: number;
418
+ truncated: boolean;
419
+ capacity: number;
420
+ };
421
+ realtime: {
422
+ totalRecorded: number;
423
+ evictedCount: number;
424
+ truncated: boolean;
425
+ capacity: number;
426
+ };
427
+ generation: number;
428
+ enabledInspectors: {
429
+ http: boolean;
430
+ websocket: boolean;
431
+ sse: boolean;
432
+ };
433
+ };
434
+ };
435
+ stopRecording(): {
436
+ recording: {
437
+ isRecording: boolean;
438
+ startedAt: number | null;
439
+ stoppedAt: number | null;
440
+ httpRequestCount: number;
441
+ realtimeConnectionCount: number;
442
+ http: {
443
+ totalRecorded: number;
444
+ evictedCount: number;
445
+ truncated: boolean;
446
+ capacity: number;
447
+ };
448
+ realtime: {
449
+ totalRecorded: number;
450
+ evictedCount: number;
451
+ truncated: boolean;
452
+ capacity: number;
453
+ };
454
+ generation: number;
455
+ enabledInspectors: {
456
+ http: boolean;
457
+ websocket: boolean;
458
+ sse: boolean;
459
+ };
460
+ };
461
+ };
462
+ getStatus: () => {
463
+ recording: {
464
+ isRecording: boolean;
465
+ startedAt: number | null;
466
+ stoppedAt: number | null;
467
+ httpRequestCount: number;
468
+ realtimeConnectionCount: number;
469
+ http: {
470
+ totalRecorded: number;
471
+ evictedCount: number;
472
+ truncated: boolean;
473
+ capacity: number;
474
+ };
475
+ realtime: {
476
+ totalRecorded: number;
477
+ evictedCount: number;
478
+ truncated: boolean;
479
+ capacity: number;
480
+ };
481
+ generation: number;
482
+ enabledInspectors: {
483
+ http: boolean;
484
+ websocket: boolean;
485
+ sse: boolean;
486
+ };
487
+ };
488
+ };
489
+ getHttpRecord(requestId: string): HttpAgentRecord | null;
490
+ getRealtimeRecord(requestId: string): RealtimeAgentRecord | null;
491
+ listRequests(input: {
492
+ limit?: number;
493
+ cursor?: string;
494
+ }): {
495
+ items: {
496
+ requestId: string;
497
+ method: import('../../shared/http-events').HttpMethod;
498
+ url: string;
499
+ status: number | null;
500
+ type: ResourceType;
501
+ startTimeMs: number;
502
+ endTimeMs: number | null;
503
+ durationMs: number | null;
504
+ transferSize: number | null;
505
+ encodedDataLength: number | null;
506
+ outcome: string;
507
+ }[];
508
+ page: {
509
+ limit: number;
510
+ hasMore: boolean;
511
+ nextCursor?: string;
512
+ };
513
+ recording: {
514
+ isRecording: boolean;
515
+ startedAt: number | null;
516
+ stoppedAt: number | null;
517
+ httpRequestCount: number;
518
+ realtimeConnectionCount: number;
519
+ http: {
520
+ totalRecorded: number;
521
+ evictedCount: number;
522
+ truncated: boolean;
523
+ capacity: number;
524
+ };
525
+ realtime: {
526
+ totalRecorded: number;
527
+ evictedCount: number;
528
+ truncated: boolean;
529
+ capacity: number;
530
+ };
531
+ generation: number;
532
+ enabledInspectors: {
533
+ http: boolean;
534
+ websocket: boolean;
535
+ sse: boolean;
536
+ };
537
+ };
538
+ };
539
+ listRealtimeConnections(input: {
540
+ limit?: number;
541
+ cursor?: string;
542
+ }): {
543
+ items: ({
544
+ requestId: string;
545
+ kind: "websocket";
546
+ url: string;
547
+ status: "connecting" | "open" | "closing" | "closed" | "error";
548
+ startedAt: number;
549
+ endedAt: number | null;
550
+ durationMs: number | null;
551
+ messageCount: number;
552
+ error: string | null;
553
+ closeCode: number | null;
554
+ httpStatus?: undefined;
555
+ } | {
556
+ requestId: string;
557
+ kind: "sse";
558
+ url: string | null;
559
+ status: "connecting" | "open" | "closed" | "error";
560
+ startedAt: number;
561
+ endedAt: number | null;
562
+ durationMs: number | null;
563
+ messageCount: number;
564
+ error: string | null;
565
+ httpStatus: number | null;
566
+ closeCode?: undefined;
567
+ })[];
568
+ page: {
569
+ limit: number;
570
+ hasMore: boolean;
571
+ nextCursor?: string;
572
+ };
573
+ recording: {
574
+ isRecording: boolean;
575
+ startedAt: number | null;
576
+ stoppedAt: number | null;
577
+ httpRequestCount: number;
578
+ realtimeConnectionCount: number;
579
+ http: {
580
+ totalRecorded: number;
581
+ evictedCount: number;
582
+ truncated: boolean;
583
+ capacity: number;
584
+ };
585
+ realtime: {
586
+ totalRecorded: number;
587
+ evictedCount: number;
588
+ truncated: boolean;
589
+ capacity: number;
590
+ };
591
+ generation: number;
592
+ enabledInspectors: {
593
+ http: boolean;
594
+ websocket: boolean;
595
+ sse: boolean;
596
+ };
597
+ };
598
+ };
599
+ getRequestDetails(requestId: string): {
600
+ request: {
601
+ requestId: string;
602
+ method: import('../../shared/http-events').HttpMethod;
603
+ url: string;
604
+ type: ResourceType;
605
+ initiator: Initiator;
606
+ startTimeMs: number;
607
+ endTimeMs: number | null;
608
+ durationMs: number | null;
609
+ request: Request;
610
+ response: Response | null;
611
+ loadingFinished: boolean;
612
+ loadingFailed: boolean;
613
+ failureText: string | null;
614
+ canceled: boolean;
615
+ progress: {
616
+ loaded: number;
617
+ total: number;
618
+ lengthComputable: boolean;
619
+ } | null;
620
+ ttfb: number | null;
621
+ size: number | null;
622
+ };
623
+ recording: {
624
+ isRecording: boolean;
625
+ startedAt: number | null;
626
+ stoppedAt: number | null;
627
+ httpRequestCount: number;
628
+ realtimeConnectionCount: number;
629
+ http: {
630
+ totalRecorded: number;
631
+ evictedCount: number;
632
+ truncated: boolean;
633
+ capacity: number;
634
+ };
635
+ realtime: {
636
+ totalRecorded: number;
637
+ evictedCount: number;
638
+ truncated: boolean;
639
+ capacity: number;
640
+ };
641
+ generation: number;
642
+ enabledInspectors: {
643
+ http: boolean;
644
+ websocket: boolean;
645
+ sse: boolean;
646
+ };
647
+ };
648
+ };
649
+ getRealtimeConnectionDetails(requestId: string): {
650
+ connection: {
651
+ requestId: string;
652
+ kind: "websocket";
653
+ url: string;
654
+ socketId: number;
655
+ status: "connecting" | "open" | "closing" | "closed" | "error";
656
+ startedAt: number;
657
+ endedAt: number | null;
658
+ durationMs: number | null;
659
+ protocols: string[] | null;
660
+ options: string[];
661
+ error: string | null;
662
+ closeCode: number | null;
663
+ closeReason: string | null;
664
+ messages: WebSocketAgentMessage[];
665
+ request?: undefined;
666
+ response?: undefined;
667
+ initiator?: undefined;
668
+ resourceType?: undefined;
669
+ } | {
670
+ requestId: string;
671
+ kind: "sse";
672
+ status: "connecting" | "open" | "closed" | "error";
673
+ startedAt: number;
674
+ endedAt: number | null;
675
+ durationMs: number | null;
676
+ request: Request | null;
677
+ response: Response | null;
678
+ initiator: Initiator | null;
679
+ resourceType: ResourceType | null;
680
+ error: string | null;
681
+ messages: SSEAgentMessage[];
682
+ url?: undefined;
683
+ socketId?: undefined;
684
+ protocols?: undefined;
685
+ options?: undefined;
686
+ closeCode?: undefined;
687
+ closeReason?: undefined;
688
+ };
689
+ recording: {
690
+ isRecording: boolean;
691
+ startedAt: number | null;
692
+ stoppedAt: number | null;
693
+ httpRequestCount: number;
694
+ realtimeConnectionCount: number;
695
+ http: {
696
+ totalRecorded: number;
697
+ evictedCount: number;
698
+ truncated: boolean;
699
+ capacity: number;
700
+ };
701
+ realtime: {
702
+ totalRecorded: number;
703
+ evictedCount: number;
704
+ truncated: boolean;
705
+ capacity: number;
706
+ };
707
+ generation: number;
708
+ enabledInspectors: {
709
+ http: boolean;
710
+ websocket: boolean;
711
+ sse: boolean;
712
+ };
713
+ };
714
+ };
715
+ getRequestBody(requestId: string): NetworkActivityAgentBodyResult;
716
+ onRequestSent(event: HttpEventMap["request-sent"]): void;
717
+ onRequestProgress(event: HttpEventMap["request-progress"]): void;
718
+ onResponseReceived(event: HttpEventMap["response-received"]): void;
719
+ onRequestCompleted(event: HttpEventMap["request-completed"]): void;
720
+ onRequestFailed(event: HttpEventMap["request-failed"]): void;
721
+ onWebSocketConnect(event: WebSocketEventMap["websocket-connect"]): void;
722
+ onWebSocketOpen(event: WebSocketEventMap["websocket-open"]): void;
723
+ onWebSocketClose(event: WebSocketEventMap["websocket-close"]): void;
724
+ onWebSocketMessageSent(event: WebSocketEventMap["websocket-message-sent"]): void;
725
+ onWebSocketMessageReceived(event: WebSocketEventMap["websocket-message-received"]): void;
726
+ onWebSocketError(event: WebSocketEventMap["websocket-error"]): void;
727
+ onWebSocketConnectionStatusChanged(event: WebSocketEventMap["websocket-connection-status-changed"]): void;
728
+ onSSEOpen(event: SSEEventMap["sse-open"]): void;
729
+ onSSEMessage(event: SSEEventMap["sse-message"]): void;
730
+ onSSEError(event: SSEEventMap["sse-error"]): void;
731
+ onSSEClose(event: SSEEventMap["sse-close"]): void;
732
+ };
733
+ export {};