@vforsh/argus-watcher 0.1.8 → 0.1.10

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 (249) hide show
  1. package/README.md +5 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/buffer/NetBuffer.d.ts +35 -11
  4. package/dist/buffer/NetBuffer.d.ts.map +1 -1
  5. package/dist/buffer/NetBuffer.js +64 -55
  6. package/dist/buffer/NetBuffer.js.map +1 -1
  7. package/dist/cdp/accessibility.d.ts +12 -1
  8. package/dist/cdp/accessibility.d.ts.map +1 -1
  9. package/dist/cdp/accessibility.js +88 -45
  10. package/dist/cdp/accessibility.js.map +1 -1
  11. package/dist/cdp/auth.d.ts +31 -1
  12. package/dist/cdp/auth.d.ts.map +1 -1
  13. package/dist/cdp/auth.js +299 -10
  14. package/dist/cdp/auth.js.map +1 -1
  15. package/dist/cdp/authState.d.ts +9 -0
  16. package/dist/cdp/authState.d.ts.map +1 -0
  17. package/dist/cdp/authState.js +44 -0
  18. package/dist/cdp/authState.js.map +1 -0
  19. package/dist/cdp/browserCookies.d.ts +8 -0
  20. package/dist/cdp/browserCookies.d.ts.map +1 -0
  21. package/dist/cdp/browserCookies.js +160 -0
  22. package/dist/cdp/browserCookies.js.map +1 -0
  23. package/dist/cdp/dom/fill.d.ts +2 -1
  24. package/dist/cdp/dom/fill.d.ts.map +1 -1
  25. package/dist/cdp/dom/fill.js +7 -7
  26. package/dist/cdp/dom/fill.js.map +1 -1
  27. package/dist/cdp/dom/info.d.ts +4 -2
  28. package/dist/cdp/dom/info.d.ts.map +1 -1
  29. package/dist/cdp/dom/info.js +20 -11
  30. package/dist/cdp/dom/info.js.map +1 -1
  31. package/dist/cdp/dom/selector.d.ts +45 -0
  32. package/dist/cdp/dom/selector.d.ts.map +1 -1
  33. package/dist/cdp/dom/selector.js +130 -25
  34. package/dist/cdp/dom/selector.js.map +1 -1
  35. package/dist/cdp/dom/types.d.ts +1 -0
  36. package/dist/cdp/dom/types.d.ts.map +1 -1
  37. package/dist/cdp/editor.d.ts.map +1 -1
  38. package/dist/cdp/editor.js +55 -3
  39. package/dist/cdp/editor.js.map +1 -1
  40. package/dist/cdp/elementRefs.d.ts +15 -0
  41. package/dist/cdp/elementRefs.d.ts.map +1 -0
  42. package/dist/cdp/elementRefs.js +30 -0
  43. package/dist/cdp/elementRefs.js.map +1 -0
  44. package/dist/cdp/locate.d.ts +7 -0
  45. package/dist/cdp/locate.d.ts.map +1 -0
  46. package/dist/cdp/locate.js +68 -0
  47. package/dist/cdp/locate.js.map +1 -0
  48. package/dist/cdp/mouse.d.ts +8 -7
  49. package/dist/cdp/mouse.d.ts.map +1 -1
  50. package/dist/cdp/mouse.js +42 -49
  51. package/dist/cdp/mouse.js.map +1 -1
  52. package/dist/cdp/networkBody.d.ts +19 -0
  53. package/dist/cdp/networkBody.d.ts.map +1 -0
  54. package/dist/cdp/networkBody.js +70 -0
  55. package/dist/cdp/networkBody.js.map +1 -0
  56. package/dist/cdp/networkCapture.d.ts +4 -0
  57. package/dist/cdp/networkCapture.d.ts.map +1 -1
  58. package/dist/cdp/networkCapture.js +307 -35
  59. package/dist/cdp/networkCapture.js.map +1 -1
  60. package/dist/cdp/pageIndicator.d.ts +1 -1
  61. package/dist/cdp/pageIndicator.d.ts.map +1 -1
  62. package/dist/cdp/redaction.d.ts +4 -0
  63. package/dist/cdp/redaction.d.ts.map +1 -1
  64. package/dist/cdp/redaction.js +37 -1
  65. package/dist/cdp/redaction.js.map +1 -1
  66. package/dist/cdp/screenshot.d.ts +1 -0
  67. package/dist/cdp/screenshot.d.ts.map +1 -1
  68. package/dist/cdp/screenshot.js +66 -15
  69. package/dist/cdp/screenshot.js.map +1 -1
  70. package/dist/cdp/storage.d.ts +8 -0
  71. package/dist/cdp/storage.d.ts.map +1 -0
  72. package/dist/cdp/storage.js +70 -0
  73. package/dist/cdp/storage.js.map +1 -0
  74. package/dist/cdp/watcher.d.ts +4 -21
  75. package/dist/cdp/watcher.d.ts.map +1 -1
  76. package/dist/cdp/watcher.js +7 -279
  77. package/dist/cdp/watcher.js.map +1 -1
  78. package/dist/cdp/watcherEvents.d.ts +18 -0
  79. package/dist/cdp/watcherEvents.d.ts.map +1 -0
  80. package/dist/cdp/watcherEvents.js +169 -0
  81. package/dist/cdp/watcherEvents.js.map +1 -0
  82. package/dist/cdp/watcherTargets.d.ts +18 -0
  83. package/dist/cdp/watcherTargets.d.ts.map +1 -0
  84. package/dist/cdp/watcherTargets.js +95 -0
  85. package/dist/cdp/watcherTargets.js.map +1 -0
  86. package/dist/dialogs/DialogTracker.d.ts +13 -0
  87. package/dist/dialogs/DialogTracker.d.ts.map +1 -0
  88. package/dist/dialogs/DialogTracker.js +22 -0
  89. package/dist/dialogs/DialogTracker.js.map +1 -0
  90. package/dist/events.d.ts +7 -2
  91. package/dist/events.d.ts.map +1 -1
  92. package/dist/http/router.d.ts.map +1 -1
  93. package/dist/http/router.js +3 -77
  94. package/dist/http/router.js.map +1 -1
  95. package/dist/http/routes/authCookies.d.ts +11 -0
  96. package/dist/http/routes/authCookies.d.ts.map +1 -0
  97. package/dist/http/routes/authCookies.js +142 -0
  98. package/dist/http/routes/authCookies.js.map +1 -0
  99. package/dist/http/routes/domSelectorRoute.d.ts +8 -0
  100. package/dist/http/routes/domSelectorRoute.d.ts.map +1 -1
  101. package/dist/http/routes/domSelectorRoute.js +28 -3
  102. package/dist/http/routes/domSelectorRoute.js.map +1 -1
  103. package/dist/http/routes/getAuthState.d.ts +3 -0
  104. package/dist/http/routes/getAuthState.d.ts.map +1 -0
  105. package/dist/http/routes/getAuthState.js +24 -0
  106. package/dist/http/routes/getAuthState.js.map +1 -0
  107. package/dist/http/routes/getDialog.d.ts +3 -0
  108. package/dist/http/routes/getDialog.d.ts.map +1 -0
  109. package/dist/http/routes/getDialog.js +11 -0
  110. package/dist/http/routes/getDialog.js.map +1 -0
  111. package/dist/http/routes/getNet.d.ts.map +1 -1
  112. package/dist/http/routes/getNet.js +14 -8
  113. package/dist/http/routes/getNet.js.map +1 -1
  114. package/dist/http/routes/getNetRequest.d.ts +3 -0
  115. package/dist/http/routes/getNetRequest.d.ts.map +1 -0
  116. package/dist/http/routes/getNetRequest.js +23 -0
  117. package/dist/http/routes/getNetRequest.js.map +1 -0
  118. package/dist/http/routes/getNetRequestBody.d.ts +3 -0
  119. package/dist/http/routes/getNetRequestBody.d.ts.map +1 -0
  120. package/dist/http/routes/getNetRequestBody.js +80 -0
  121. package/dist/http/routes/getNetRequestBody.js.map +1 -0
  122. package/dist/http/routes/getNetRequests.d.ts +3 -0
  123. package/dist/http/routes/getNetRequests.d.ts.map +1 -0
  124. package/dist/http/routes/getNetRequests.js +23 -0
  125. package/dist/http/routes/getNetRequests.js.map +1 -0
  126. package/dist/http/routes/getNetTail.d.ts.map +1 -1
  127. package/dist/http/routes/getNetTail.js +44 -9
  128. package/dist/http/routes/getNetTail.js.map +1 -1
  129. package/dist/http/routes/getStatus.js +1 -0
  130. package/dist/http/routes/getStatus.js.map +1 -1
  131. package/dist/http/routes/index.d.ts +9 -0
  132. package/dist/http/routes/index.d.ts.map +1 -0
  133. package/dist/http/routes/index.js +105 -0
  134. package/dist/http/routes/index.js.map +1 -0
  135. package/dist/http/routes/netFilters.d.ts +29 -0
  136. package/dist/http/routes/netFilters.d.ts.map +1 -0
  137. package/dist/http/routes/netFilters.js +160 -0
  138. package/dist/http/routes/netFilters.js.map +1 -0
  139. package/dist/http/routes/netRequestLookup.d.ts +14 -0
  140. package/dist/http/routes/netRequestLookup.d.ts.map +1 -0
  141. package/dist/http/routes/netRequestLookup.js +39 -0
  142. package/dist/http/routes/netRequestLookup.js.map +1 -0
  143. package/dist/http/routes/postAuthStateLoad.d.ts +3 -0
  144. package/dist/http/routes/postAuthStateLoad.d.ts.map +1 -0
  145. package/dist/http/routes/postAuthStateLoad.js +37 -0
  146. package/dist/http/routes/postAuthStateLoad.js.map +1 -0
  147. package/dist/http/routes/postDialog.d.ts +3 -0
  148. package/dist/http/routes/postDialog.d.ts.map +1 -0
  149. package/dist/http/routes/postDialog.js +39 -0
  150. package/dist/http/routes/postDialog.js.map +1 -0
  151. package/dist/http/routes/postDomClick.d.ts.map +1 -1
  152. package/dist/http/routes/postDomClick.js +39 -27
  153. package/dist/http/routes/postDomClick.js.map +1 -1
  154. package/dist/http/routes/postDomFill.d.ts.map +1 -1
  155. package/dist/http/routes/postDomFill.js +23 -27
  156. package/dist/http/routes/postDomFill.js.map +1 -1
  157. package/dist/http/routes/postDomFocus.d.ts.map +1 -1
  158. package/dist/http/routes/postDomFocus.js +22 -9
  159. package/dist/http/routes/postDomFocus.js.map +1 -1
  160. package/dist/http/routes/postDomHover.d.ts.map +1 -1
  161. package/dist/http/routes/postDomHover.js +22 -9
  162. package/dist/http/routes/postDomHover.js.map +1 -1
  163. package/dist/http/routes/postDomInfo.d.ts.map +1 -1
  164. package/dist/http/routes/postDomInfo.js +7 -3
  165. package/dist/http/routes/postDomInfo.js.map +1 -1
  166. package/dist/http/routes/postDomScroll.d.ts.map +1 -1
  167. package/dist/http/routes/postDomScroll.js +3 -8
  168. package/dist/http/routes/postDomScroll.js.map +1 -1
  169. package/dist/http/routes/postDomScrollTo.d.ts.map +1 -1
  170. package/dist/http/routes/postDomScrollTo.js +3 -8
  171. package/dist/http/routes/postDomScrollTo.js.map +1 -1
  172. package/dist/http/routes/postDomSetFile.d.ts.map +1 -1
  173. package/dist/http/routes/postDomSetFile.js +9 -23
  174. package/dist/http/routes/postDomSetFile.js.map +1 -1
  175. package/dist/http/routes/postLocate.d.ts +5 -0
  176. package/dist/http/routes/postLocate.d.ts.map +1 -0
  177. package/dist/http/routes/postLocate.js +67 -0
  178. package/dist/http/routes/postLocate.js.map +1 -0
  179. package/dist/http/routes/postNetClear.d.ts +3 -0
  180. package/dist/http/routes/postNetClear.d.ts.map +1 -0
  181. package/dist/http/routes/postNetClear.js +14 -0
  182. package/dist/http/routes/postNetClear.js.map +1 -0
  183. package/dist/http/routes/postSnapshot.d.ts.map +1 -1
  184. package/dist/http/routes/postSnapshot.js +1 -1
  185. package/dist/http/routes/postSnapshot.js.map +1 -1
  186. package/dist/http/routes/postStorageLocal.d.ts +1 -2
  187. package/dist/http/routes/postStorageLocal.d.ts.map +1 -1
  188. package/dist/http/routes/postStorageLocal.js +2 -30
  189. package/dist/http/routes/postStorageLocal.js.map +1 -1
  190. package/dist/http/routes/postStorageSession.d.ts +2 -0
  191. package/dist/http/routes/postStorageSession.d.ts.map +1 -0
  192. package/dist/http/routes/postStorageSession.js +3 -0
  193. package/dist/http/routes/postStorageSession.js.map +1 -0
  194. package/dist/http/routes/storage.d.ts +5 -0
  195. package/dist/http/routes/storage.d.ts.map +1 -0
  196. package/dist/http/routes/storage.js +43 -0
  197. package/dist/http/routes/storage.js.map +1 -0
  198. package/dist/http/server.d.ts +27 -3
  199. package/dist/http/server.d.ts.map +1 -1
  200. package/dist/http/server.js.map +1 -1
  201. package/dist/native-messaging/session-manager.d.ts +14 -1
  202. package/dist/native-messaging/session-manager.d.ts.map +1 -1
  203. package/dist/native-messaging/session-manager.js +56 -23
  204. package/dist/native-messaging/session-manager.js.map +1 -1
  205. package/dist/native-messaging/types.d.ts +28 -2
  206. package/dist/native-messaging/types.d.ts.map +1 -1
  207. package/dist/net/filtering.d.ts +32 -0
  208. package/dist/net/filtering.d.ts.map +1 -0
  209. package/dist/net/filtering.js +144 -0
  210. package/dist/net/filtering.js.map +1 -0
  211. package/dist/runtime/watcherInject.d.ts +15 -0
  212. package/dist/runtime/watcherInject.d.ts.map +1 -0
  213. package/dist/runtime/watcherInject.js +21 -0
  214. package/dist/runtime/watcherInject.js.map +1 -0
  215. package/dist/runtime/watcherServices.d.ts +32 -0
  216. package/dist/runtime/watcherServices.d.ts.map +1 -0
  217. package/dist/runtime/watcherServices.js +68 -0
  218. package/dist/runtime/watcherServices.js.map +1 -0
  219. package/dist/runtime/watcherSetup.d.ts +35 -0
  220. package/dist/runtime/watcherSetup.d.ts.map +1 -0
  221. package/dist/runtime/watcherSetup.js +96 -0
  222. package/dist/runtime/watcherSetup.js.map +1 -0
  223. package/dist/sources/cdp-source.d.ts.map +1 -1
  224. package/dist/sources/cdp-source.js +13 -0
  225. package/dist/sources/cdp-source.js.map +1 -1
  226. package/dist/sources/extension-frame-runtime.d.ts +11 -0
  227. package/dist/sources/extension-frame-runtime.d.ts.map +1 -0
  228. package/dist/sources/extension-frame-runtime.js +150 -0
  229. package/dist/sources/extension-frame-runtime.js.map +1 -0
  230. package/dist/sources/extension-frame-state.d.ts +3 -2
  231. package/dist/sources/extension-frame-state.d.ts.map +1 -1
  232. package/dist/sources/extension-frame-state.js +29 -8
  233. package/dist/sources/extension-frame-state.js.map +1 -1
  234. package/dist/sources/extension-session-events.d.ts.map +1 -1
  235. package/dist/sources/extension-session-events.js +4 -2
  236. package/dist/sources/extension-session-events.js.map +1 -1
  237. package/dist/sources/extension-source.d.ts.map +1 -1
  238. package/dist/sources/extension-source.js +134 -140
  239. package/dist/sources/extension-source.js.map +1 -1
  240. package/dist/sources/types.d.ts +15 -1
  241. package/dist/sources/types.d.ts.map +1 -1
  242. package/dist/startWatcherRuntime.d.ts.map +1 -1
  243. package/dist/startWatcherRuntime.js +78 -177
  244. package/dist/startWatcherRuntime.js.map +1 -1
  245. package/package.json +1 -1
  246. package/dist/cdp/storageLocal.d.ts +0 -8
  247. package/dist/cdp/storageLocal.d.ts.map +0 -1
  248. package/dist/cdp/storageLocal.js +0 -70
  249. package/dist/cdp/storageLocal.js.map +0 -1
@@ -1,4 +1,8 @@
1
- import { mergeCapturedAuthHeaders, pickCapturedAuthHeaders, redactUrl } from './redaction.js';
1
+ import { captureHeaders, mergeCapturedAuthHeaders, mergeCapturedHeaders, pickCapturedAuthHeaders, redactUrl } from './redaction.js';
2
+ /**
3
+ * Subscribe to CDP network events and keep a compact summary plus a richer request record.
4
+ * `/net` stays cheap, while `/net/request` can expose the high-signal debugging fields.
5
+ */
2
6
  export const createNetworkCapture = (options) => {
3
7
  const inflight = new Map();
4
8
  const getOrCreate = (requestId) => {
@@ -6,21 +10,17 @@ export const createNetworkCapture = (options) => {
6
10
  if (existing) {
7
11
  return existing;
8
12
  }
9
- const next = {
10
- requestId,
11
- url: '',
12
- method: 'GET',
13
- requestHeaders: undefined,
14
- resourceType: null,
15
- status: null,
16
- encodedDataLength: null,
17
- errorText: null,
18
- startTime: null,
19
- endTime: null,
20
- };
13
+ const next = createInflightRequest(requestId);
21
14
  inflight.set(requestId, next);
22
15
  return next;
23
16
  };
17
+ const getOrCreateForSession = (requestId, sessionId) => {
18
+ const entry = getOrCreate(requestId);
19
+ if (sessionId != null) {
20
+ entry.bodySessionId = sessionId;
21
+ }
22
+ return entry;
23
+ };
24
24
  const finalize = (requestId) => {
25
25
  const record = inflight.get(requestId);
26
26
  if (!record) {
@@ -28,73 +28,154 @@ export const createNetworkCapture = (options) => {
28
28
  }
29
29
  inflight.delete(requestId);
30
30
  const durationMs = record.startTime != null && record.endTime != null ? Math.max(0, Math.round((record.endTime - record.startTime) * 1000)) : null;
31
+ const timingPhases = buildTimingPhases(record.responseTiming, durationMs);
31
32
  const summary = {
32
33
  ts: Date.now(),
33
34
  requestId: record.requestId,
34
- url: redactUrl(record.url),
35
+ url: sanitizeUrl(record.url),
35
36
  method: record.method,
36
- requestHeaders: record.requestHeaders,
37
+ documentUrl: sanitizeOptionalUrl(record.documentUrl),
38
+ requestHeaders: record.summaryRequestHeaders,
37
39
  resourceType: record.resourceType,
40
+ mimeType: record.mimeType,
41
+ frameId: record.frameId,
38
42
  status: record.status,
39
43
  encodedDataLength: record.encodedDataLength,
40
44
  errorText: record.errorText,
41
45
  durationMs,
42
46
  };
43
- options.buffer.add(summary);
47
+ const detail = {
48
+ ...summary,
49
+ requestHeaders: record.requestHeaders,
50
+ responseHeaders: record.responseHeaders,
51
+ statusText: record.statusText,
52
+ loaderId: record.loaderId,
53
+ initiator: record.initiator,
54
+ redirects: record.redirects,
55
+ servedFromCache: record.servedFromCache,
56
+ fromDiskCache: record.fromDiskCache,
57
+ fromPrefetchCache: record.fromPrefetchCache,
58
+ fromServiceWorker: record.fromServiceWorker,
59
+ serviceWorkerResponseSource: record.serviceWorkerResponseSource,
60
+ remoteAddress: record.remoteAddress,
61
+ remotePort: record.remotePort,
62
+ protocol: record.protocol,
63
+ priority: record.priority,
64
+ timingPhases,
65
+ body: {
66
+ request: record.hasRequestBody,
67
+ response: hasResponseBody(record),
68
+ },
69
+ };
70
+ options.buffer.add({ summary, detail, bodySessionId: record.bodySessionId });
44
71
  };
45
- options.session.onEvent('Network.requestWillBeSent', (params) => {
72
+ options.session.onEvent('Network.requestWillBeSent', (params, meta) => {
46
73
  const payload = params;
47
74
  const requestId = payload.requestId;
48
75
  if (!requestId) {
49
76
  return;
50
77
  }
51
- const entry = getOrCreate(requestId);
52
- entry.url = payload.request?.url ?? entry.url;
78
+ const entry = getOrCreateForSession(requestId, meta.sessionId);
79
+ const nextUrl = payload.request?.url ?? entry.url;
80
+ if (payload.redirectResponse && entry.url) {
81
+ entry.redirects.push({
82
+ fromUrl: sanitizeUrl(entry.url),
83
+ toUrl: sanitizeUrl(nextUrl),
84
+ status: pickNumber(payload.redirectResponse.status),
85
+ statusText: normalizeString(payload.redirectResponse.statusText),
86
+ });
87
+ resetRedirectState(entry);
88
+ }
89
+ entry.url = nextUrl;
53
90
  entry.method = payload.request?.method ?? entry.method;
54
- entry.requestHeaders = mergeCapturedAuthHeaders(entry.requestHeaders, pickCapturedAuthHeaders(payload.request?.headers));
91
+ entry.hasRequestBody = hasRequestBody(payload.request) || entry.hasRequestBody;
92
+ mergeRequestHeaders(entry, payload.request?.headers);
55
93
  entry.resourceType = payload.type ?? entry.resourceType;
56
- entry.startTime = typeof payload.timestamp === 'number' ? payload.timestamp : entry.startTime;
94
+ entry.startTime = pickNumber(payload.timestamp) ?? entry.startTime;
95
+ entry.documentUrl = payload.documentURL ?? entry.documentUrl;
96
+ entry.frameId = payload.frameId ?? entry.frameId;
97
+ entry.loaderId = payload.loaderId ?? entry.loaderId;
98
+ entry.initiator = normalizeInitiator(payload.initiator) ?? entry.initiator;
99
+ entry.priority = normalizeString(payload.request?.initialPriority) ?? entry.priority;
57
100
  });
58
- options.session.onEvent('Network.requestWillBeSentExtraInfo', (params) => {
101
+ options.session.onEvent('Network.requestWillBeSentExtraInfo', (params, meta) => {
59
102
  const payload = params;
60
103
  const requestId = payload.requestId;
61
104
  if (!requestId) {
62
105
  return;
63
106
  }
64
- const entry = getOrCreate(requestId);
65
- entry.requestHeaders = mergeCapturedAuthHeaders(entry.requestHeaders, pickCapturedAuthHeaders(payload.headers));
107
+ const entry = getOrCreateForSession(requestId, meta.sessionId);
108
+ mergeRequestHeaders(entry, payload.headers);
66
109
  });
67
- options.session.onEvent('Network.responseReceived', (params) => {
110
+ options.session.onEvent('Network.responseReceived', (params, meta) => {
68
111
  const payload = params;
69
112
  const requestId = payload.requestId;
70
113
  if (!requestId) {
71
114
  return;
72
115
  }
73
- const entry = getOrCreate(requestId);
74
- entry.status = typeof payload.response?.status === 'number' ? payload.response.status : entry.status;
75
- entry.requestHeaders = mergeCapturedAuthHeaders(entry.requestHeaders, pickCapturedAuthHeaders(payload.response?.requestHeaders));
116
+ const entry = getOrCreateForSession(requestId, meta.sessionId);
117
+ entry.url = payload.response?.url ?? entry.url;
118
+ entry.status = pickNumber(payload.response?.status) ?? entry.status;
119
+ entry.statusText = normalizeString(payload.response?.statusText) ?? entry.statusText;
120
+ entry.mimeType = normalizeString(payload.response?.mimeType) ?? entry.mimeType;
121
+ entry.protocol = normalizeString(payload.response?.protocol) ?? entry.protocol;
122
+ entry.remoteAddress = normalizeString(payload.response?.remoteIPAddress) ?? entry.remoteAddress;
123
+ entry.remotePort = pickNumber(payload.response?.remotePort) ?? entry.remotePort;
124
+ mergeRequestHeaders(entry, payload.response?.requestHeaders);
125
+ mergeResponseHeaders(entry, payload.response?.headers);
76
126
  entry.resourceType = payload.type ?? entry.resourceType;
127
+ entry.fromDiskCache = Boolean(payload.response?.fromDiskCache) || entry.fromDiskCache;
128
+ entry.fromPrefetchCache = Boolean(payload.response?.fromPrefetchCache) || entry.fromPrefetchCache;
129
+ entry.fromServiceWorker = Boolean(payload.response?.fromServiceWorker) || entry.fromServiceWorker;
130
+ entry.serviceWorkerResponseSource = normalizeString(payload.response?.serviceWorkerResponseSource) ?? entry.serviceWorkerResponseSource;
131
+ entry.responseTiming = payload.response?.timing ?? entry.responseTiming;
77
132
  });
78
- options.session.onEvent('Network.loadingFinished', (params) => {
133
+ options.session.onEvent('Network.responseReceivedExtraInfo', (params, meta) => {
79
134
  const payload = params;
80
135
  const requestId = payload.requestId;
81
136
  if (!requestId) {
82
137
  return;
83
138
  }
84
- const entry = getOrCreate(requestId);
85
- entry.encodedDataLength = typeof payload.encodedDataLength === 'number' ? payload.encodedDataLength : entry.encodedDataLength;
86
- entry.endTime = typeof payload.timestamp === 'number' ? payload.timestamp : entry.endTime;
139
+ const entry = getOrCreateForSession(requestId, meta.sessionId);
140
+ entry.status = pickNumber(payload.statusCode) ?? entry.status;
141
+ mergeResponseHeaders(entry, payload.headers);
142
+ });
143
+ options.session.onEvent('Network.requestServedFromCache', (params, meta) => {
144
+ const payload = params;
145
+ if (!payload.requestId) {
146
+ return;
147
+ }
148
+ const entry = getOrCreateForSession(payload.requestId, meta.sessionId);
149
+ entry.servedFromCache = true;
150
+ });
151
+ options.session.onEvent('Network.resourceChangedPriority', (params, meta) => {
152
+ const payload = params;
153
+ if (!payload.requestId) {
154
+ return;
155
+ }
156
+ const entry = getOrCreateForSession(payload.requestId, meta.sessionId);
157
+ entry.priority = normalizeString(payload.newPriority) ?? entry.priority;
158
+ });
159
+ options.session.onEvent('Network.loadingFinished', (params, meta) => {
160
+ const payload = params;
161
+ const requestId = payload.requestId;
162
+ if (!requestId) {
163
+ return;
164
+ }
165
+ const entry = getOrCreateForSession(requestId, meta.sessionId);
166
+ entry.encodedDataLength = pickNumber(payload.encodedDataLength) ?? entry.encodedDataLength;
167
+ entry.endTime = pickNumber(payload.timestamp) ?? entry.endTime;
87
168
  finalize(requestId);
88
169
  });
89
- options.session.onEvent('Network.loadingFailed', (params) => {
170
+ options.session.onEvent('Network.loadingFailed', (params, meta) => {
90
171
  const payload = params;
91
172
  const requestId = payload.requestId;
92
173
  if (!requestId) {
93
174
  return;
94
175
  }
95
- const entry = getOrCreate(requestId);
176
+ const entry = getOrCreateForSession(requestId, meta.sessionId);
96
177
  entry.errorText = payload.errorText ?? entry.errorText;
97
- entry.endTime = typeof payload.timestamp === 'number' ? payload.timestamp : entry.endTime;
178
+ entry.endTime = pickNumber(payload.timestamp) ?? entry.endTime;
98
179
  finalize(requestId);
99
180
  });
100
181
  return {
@@ -106,4 +187,195 @@ export const createNetworkCapture = (options) => {
106
187
  },
107
188
  };
108
189
  };
190
+ const createInflightRequest = (requestId) => ({
191
+ requestId,
192
+ url: '',
193
+ method: 'GET',
194
+ hasRequestBody: false,
195
+ bodySessionId: null,
196
+ summaryRequestHeaders: undefined,
197
+ requestHeaders: undefined,
198
+ responseHeaders: undefined,
199
+ resourceType: null,
200
+ status: null,
201
+ statusText: null,
202
+ mimeType: null,
203
+ encodedDataLength: null,
204
+ errorText: null,
205
+ startTime: null,
206
+ endTime: null,
207
+ documentUrl: null,
208
+ frameId: null,
209
+ loaderId: null,
210
+ initiator: null,
211
+ redirects: [],
212
+ servedFromCache: false,
213
+ fromDiskCache: false,
214
+ fromPrefetchCache: false,
215
+ fromServiceWorker: false,
216
+ serviceWorkerResponseSource: null,
217
+ remoteAddress: null,
218
+ remotePort: null,
219
+ protocol: null,
220
+ priority: null,
221
+ responseTiming: null,
222
+ });
223
+ const mergeRequestHeaders = (entry, headers) => {
224
+ entry.summaryRequestHeaders = mergeCapturedAuthHeaders(entry.summaryRequestHeaders, pickCapturedAuthHeaders(headers));
225
+ entry.requestHeaders = mergeCapturedHeaders(entry.requestHeaders, captureHeaders(headers));
226
+ };
227
+ const mergeResponseHeaders = (entry, headers) => {
228
+ entry.responseHeaders = mergeCapturedHeaders(entry.responseHeaders, captureHeaders(headers));
229
+ };
230
+ const resetRedirectState = (entry) => {
231
+ entry.status = null;
232
+ entry.statusText = null;
233
+ entry.mimeType = null;
234
+ entry.encodedDataLength = null;
235
+ entry.errorText = null;
236
+ entry.endTime = null;
237
+ entry.responseHeaders = undefined;
238
+ entry.servedFromCache = false;
239
+ entry.fromDiskCache = false;
240
+ entry.fromPrefetchCache = false;
241
+ entry.fromServiceWorker = false;
242
+ entry.serviceWorkerResponseSource = null;
243
+ entry.remoteAddress = null;
244
+ entry.remotePort = null;
245
+ entry.protocol = null;
246
+ entry.responseTiming = null;
247
+ };
248
+ const hasRequestBody = (request) => {
249
+ if (!request) {
250
+ return false;
251
+ }
252
+ if (request.hasPostData === true) {
253
+ return true;
254
+ }
255
+ if (typeof request.postData === 'string' && request.postData !== '') {
256
+ return true;
257
+ }
258
+ return Array.isArray(request.postDataEntries) && request.postDataEntries.length > 0;
259
+ };
260
+ /**
261
+ * Bodies are fetched lazily via CDP, so this flag answers "is a body worth trying to read?"
262
+ * rather than "did we eagerly store bytes in the buffer?"
263
+ */
264
+ const hasResponseBody = (entry) => {
265
+ if (entry.errorText) {
266
+ return false;
267
+ }
268
+ if (entry.method.toUpperCase() === 'HEAD') {
269
+ return false;
270
+ }
271
+ if (entry.status == null) {
272
+ return false;
273
+ }
274
+ if (parseContentLength(entry.responseHeaders) === 0) {
275
+ return false;
276
+ }
277
+ return !RESPONSE_STATUSES_WITHOUT_BODY.has(entry.status);
278
+ };
279
+ const RESPONSE_STATUSES_WITHOUT_BODY = new Set([101, 103, 204, 205, 304]);
280
+ const parseContentLength = (headers) => {
281
+ if (!headers) {
282
+ return null;
283
+ }
284
+ for (const [name, value] of Object.entries(headers)) {
285
+ if (name.toLowerCase() !== 'content-length') {
286
+ continue;
287
+ }
288
+ const parsed = Number(value);
289
+ return Number.isFinite(parsed) && parsed >= 0 ? parsed : null;
290
+ }
291
+ return null;
292
+ };
293
+ const buildTimingPhases = (timing, totalMs) => {
294
+ if (!timing && totalMs == null) {
295
+ return null;
296
+ }
297
+ const receiveHeadersEnd = normalizePhaseValue(timing?.receiveHeadersEnd);
298
+ return {
299
+ totalMs,
300
+ blockedMs: receiveHeadersEnd != null ? derivePositiveDuration(0, timing?.dnsStart) : null,
301
+ dnsMs: derivePositiveDuration(timing?.dnsStart, timing?.dnsEnd),
302
+ connectMs: derivePositiveDuration(timing?.connectStart, timing?.connectEnd),
303
+ sslMs: derivePositiveDuration(timing?.sslStart, timing?.sslEnd),
304
+ sendMs: derivePositiveDuration(timing?.sendStart, timing?.sendEnd),
305
+ waitMs: derivePositiveDuration(timing?.sendEnd, timing?.receiveHeadersEnd),
306
+ downloadMs: totalMs != null && receiveHeadersEnd != null ? Math.max(0, totalMs - receiveHeadersEnd) : null,
307
+ };
308
+ };
309
+ const derivePositiveDuration = (start, end) => {
310
+ const normalizedStart = normalizePhaseValue(start);
311
+ const normalizedEnd = normalizePhaseValue(end);
312
+ if (normalizedStart == null || normalizedEnd == null) {
313
+ return null;
314
+ }
315
+ return Math.max(0, Math.round(normalizedEnd - normalizedStart));
316
+ };
317
+ const normalizePhaseValue = (value) => {
318
+ if (typeof value !== 'number' || !Number.isFinite(value) || value < 0) {
319
+ return null;
320
+ }
321
+ return value;
322
+ };
323
+ const normalizeInitiator = (value) => {
324
+ if (!value || typeof value !== 'object') {
325
+ return null;
326
+ }
327
+ const payload = value;
328
+ const stack = flattenInitiatorStack(payload.stack);
329
+ const url = typeof payload.url === 'string' ? sanitizeUrl(payload.url) : null;
330
+ const lineNumber = pickNumber(payload.lineNumber);
331
+ const columnNumber = pickNumber(payload.columnNumber);
332
+ const requestId = typeof payload.requestId === 'string' ? payload.requestId : null;
333
+ if (!stack.length && url == null && lineNumber == null && columnNumber == null && requestId == null && typeof payload.type !== 'string') {
334
+ return null;
335
+ }
336
+ return {
337
+ type: typeof payload.type === 'string' ? payload.type : null,
338
+ url,
339
+ lineNumber,
340
+ columnNumber,
341
+ requestId,
342
+ stack,
343
+ };
344
+ };
345
+ const flattenInitiatorStack = (stack) => {
346
+ const frames = [];
347
+ let current = stack;
348
+ let depth = 0;
349
+ while (current && depth < 4) {
350
+ const payload = current;
351
+ for (const frame of payload.callFrames ?? []) {
352
+ if (!frame || typeof frame !== 'object') {
353
+ continue;
354
+ }
355
+ const callFrame = frame;
356
+ if (typeof callFrame.url !== 'string' || callFrame.url.trim() === '') {
357
+ continue;
358
+ }
359
+ frames.push({
360
+ functionName: normalizeString(callFrame.functionName),
361
+ url: sanitizeUrl(callFrame.url),
362
+ lineNumber: pickNumber(callFrame.lineNumber),
363
+ columnNumber: pickNumber(callFrame.columnNumber),
364
+ });
365
+ }
366
+ current = payload.parent;
367
+ depth += 1;
368
+ }
369
+ return frames;
370
+ };
371
+ const sanitizeUrl = (value) => redactUrl(value);
372
+ const sanitizeOptionalUrl = (value) => (value ? sanitizeUrl(value) : null);
373
+ const pickNumber = (value) => (typeof value === 'number' && Number.isFinite(value) ? value : null);
374
+ const normalizeString = (value) => {
375
+ if (typeof value !== 'string') {
376
+ return null;
377
+ }
378
+ const trimmed = value.trim();
379
+ return trimmed || null;
380
+ };
109
381
  //# sourceMappingURL=networkCapture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"networkCapture.js","sourceRoot":"","sources":["../../src/cdp/networkCapture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"networkCapture.js","sourceRoot":"","sources":["../../src/cdp/networkCapture.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { CdpSessionHandle } from './connection.js';
2
- import type { CdpTarget } from './watcher.js';
2
+ import type { CdpTarget } from './watcherTargets.js';
3
3
  export type PageIndicatorPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right' | 'left-center' | 'right-center';
4
4
  export type PageIndicatorOptions = {
5
5
  /** Whether the in-page indicator is enabled. */
@@ -1 +1 @@
1
- {"version":3,"file":"pageIndicator.d.ts","sourceRoot":"","sources":["../../src/cdp/pageIndicator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,qBAAqB,GAC9B,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,GACd,aAAa,GACb,cAAc,CAAA;AAEjB,MAAM,MAAM,oBAAoB,GAAG;IAClC,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IAChC,uGAAuG;IACvG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gJAAgJ;IAChJ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACzF,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAC1E,+GAA+G;IAC/G,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,IAAI,CAAA;CAChB,CAAA;AAOD,eAAO,MAAM,4BAA4B,GAAI,SAAS,oBAAoB,GAAG,SAAS,KAAG,IAgBxF,CAAA;AAOD,eAAO,MAAM,6BAA6B,GAAI,SAAS,oBAAoB,KAAG,uBAsF7E,CAAA"}
1
+ {"version":3,"file":"pageIndicator.d.ts","sourceRoot":"","sources":["../../src/cdp/pageIndicator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,MAAM,qBAAqB,GAC9B,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,GACd,aAAa,GACb,cAAc,CAAA;AAEjB,MAAM,MAAM,oBAAoB,GAAG;IAClC,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IAChC,uGAAuG;IACvG,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gJAAgJ;IAChJ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACzF,YAAY,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAC1E,+GAA+G;IAC/G,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,IAAI,CAAA;CAChB,CAAA;AAOD,eAAO,MAAM,4BAA4B,GAAI,SAAS,oBAAoB,GAAG,SAAS,KAAG,IAgBxF,CAAA;AAOD,eAAO,MAAM,6BAA6B,GAAI,SAAS,oBAAoB,KAAG,uBAsF7E,CAAA"}
@@ -2,6 +2,10 @@
2
2
  export declare const redactUrl: (value: string) => string;
3
3
  /** Pick a narrow allowlist of auth-related headers and redact their values. */
4
4
  export declare const pickCapturedAuthHeaders: (headers: Record<string, unknown> | undefined) => Record<string, string> | undefined;
5
+ /** Capture all headers while redacting sensitive values. */
6
+ export declare const captureHeaders: (headers: Record<string, unknown> | undefined) => Record<string, string> | undefined;
5
7
  /** Merge two captured auth-header maps, preferring newer values for the same header name. */
6
8
  export declare const mergeCapturedAuthHeaders: (current: Record<string, string> | undefined, incoming: Record<string, string> | undefined) => Record<string, string> | undefined;
9
+ /** Merge two captured header maps, preferring newer values for the same header name. */
10
+ export declare const mergeCapturedHeaders: (current: Record<string, string> | undefined, incoming: Record<string, string> | undefined) => Record<string, string> | undefined;
7
11
  //# sourceMappingURL=redaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/cdp/redaction.ts"],"names":[],"mappings":"AAaA,qDAAqD;AACrD,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MAmCzC,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAsB/G,CAAA;AAED,6FAA6F;AAC7F,eAAO,MAAM,wBAAwB,GACpC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,KAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAS3B,CAAA"}
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../../src/cdp/redaction.ts"],"names":[],"mappings":"AAcA,qDAAqD;AACrD,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,MAmCzC,CAAA;AAED,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,GAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAsB/G,CAAA;AAED,4DAA4D;AAC5D,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAsBtG,CAAA;AAED,6FAA6F;AAC7F,eAAO,MAAM,wBAAwB,GACpC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,KAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAS3B,CAAA;AAED,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,GAChC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EAC3C,UAAU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,KAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAS3B,CAAA"}
@@ -2,6 +2,7 @@ const SENSITIVE_KEYS = new Set(['token', 'access_token', 'auth', 'authorization'
2
2
  const AUTH_HEADER_NAMES = new Set([
3
3
  'authorization',
4
4
  'cookie',
5
+ 'set-cookie',
5
6
  'x-api-key',
6
7
  'x-auth-token',
7
8
  'x-csrf-token',
@@ -62,6 +63,25 @@ export const pickCapturedAuthHeaders = (headers) => {
62
63
  }
63
64
  return Object.keys(captured).length > 0 ? captured : undefined;
64
65
  };
66
+ /** Capture all headers while redacting sensitive values. */
67
+ export const captureHeaders = (headers) => {
68
+ if (!headers) {
69
+ return undefined;
70
+ }
71
+ const captured = {};
72
+ for (const [name, rawValue] of Object.entries(headers)) {
73
+ const normalizedName = name.trim().toLowerCase();
74
+ if (!normalizedName) {
75
+ continue;
76
+ }
77
+ const value = normalizeHeaderValue(rawValue);
78
+ if (!value) {
79
+ continue;
80
+ }
81
+ captured[normalizedName] = shouldRedactHeader(normalizedName) ? redactHeaderValue(normalizedName, value) : value;
82
+ }
83
+ return Object.keys(captured).length > 0 ? captured : undefined;
84
+ };
65
85
  /** Merge two captured auth-header maps, preferring newer values for the same header name. */
66
86
  export const mergeCapturedAuthHeaders = (current, incoming) => {
67
87
  if (!current) {
@@ -72,6 +92,16 @@ export const mergeCapturedAuthHeaders = (current, incoming) => {
72
92
  }
73
93
  return { ...current, ...incoming };
74
94
  };
95
+ /** Merge two captured header maps, preferring newer values for the same header name. */
96
+ export const mergeCapturedHeaders = (current, incoming) => {
97
+ if (!current) {
98
+ return incoming;
99
+ }
100
+ if (!incoming) {
101
+ return current;
102
+ }
103
+ return { ...current, ...incoming };
104
+ };
75
105
  const normalizeHeaderValue = (value) => {
76
106
  if (typeof value === 'string') {
77
107
  const trimmed = value.trim();
@@ -93,11 +123,17 @@ const redactHeaderValue = (name, value) => {
93
123
  if (name === 'authorization') {
94
124
  return redactAuthorizationHeader(value);
95
125
  }
96
- if (name === 'cookie') {
126
+ if (name === 'cookie' || name === 'set-cookie') {
97
127
  return redactCookieHeader(value);
98
128
  }
99
129
  return redactToken(value);
100
130
  };
131
+ const shouldRedactHeader = (name) => {
132
+ if (AUTH_HEADER_NAMES.has(name)) {
133
+ return true;
134
+ }
135
+ return name.includes('token') || name.includes('secret') || name.includes('auth') || name.includes('key') || name.includes('session');
136
+ };
101
137
  const redactAuthorizationHeader = (value) => {
102
138
  const match = value.match(/^([A-Za-z]+)\s+(.+)$/);
103
139
  if (!match) {
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../src/cdp/redaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../../src/cdp/redaction.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export type Screenshotter = {
5
5
  };
6
6
  export declare const createScreenshotter: (options: {
7
7
  session: CdpSessionHandle;
8
+ pageSession?: CdpSessionHandle;
8
9
  artifactsDir: string;
9
10
  }) => Screenshotter;
10
11
  //# sourceMappingURL=screenshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/cdp/screenshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAWvD,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACpE,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KAAG,aAsBlG,CAAA"}
1
+ {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../src/cdp/screenshot.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,iBAAiB,CAAA;AAgBzE,MAAM,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;CACpE,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,KAAG,aAuBlI,CAAA"}