@vforsh/argus-watcher 0.1.12 → 0.1.14

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 (92) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/cdp/keyboard.d.ts +14 -1
  3. package/dist/cdp/keyboard.d.ts.map +1 -1
  4. package/dist/cdp/keyboard.js +77 -27
  5. package/dist/cdp/keyboard.js.map +1 -1
  6. package/dist/cdp/mouse.d.ts +19 -3
  7. package/dist/cdp/mouse.d.ts.map +1 -1
  8. package/dist/cdp/mouse.js +57 -9
  9. package/dist/cdp/mouse.js.map +1 -1
  10. package/dist/cdp/pageIndicator.d.ts +5 -0
  11. package/dist/cdp/pageIndicator.d.ts.map +1 -1
  12. package/dist/cdp/pageIndicator.js +21 -5
  13. package/dist/cdp/pageIndicator.js.map +1 -1
  14. package/dist/cdp/pageIndicatorScript.d.ts +4 -3
  15. package/dist/cdp/pageIndicatorScript.d.ts.map +1 -1
  16. package/dist/cdp/pageIndicatorScript.js +61 -7
  17. package/dist/cdp/pageIndicatorScript.js.map +1 -1
  18. package/dist/cdp/recording.d.ts +15 -0
  19. package/dist/cdp/recording.d.ts.map +1 -0
  20. package/dist/cdp/recording.js +389 -0
  21. package/dist/cdp/recording.js.map +1 -0
  22. package/dist/cdp/screenshot.d.ts.map +1 -1
  23. package/dist/cdp/screenshot.js +2 -133
  24. package/dist/cdp/screenshot.js.map +1 -1
  25. package/dist/cdp/visualCapture.d.ts +38 -0
  26. package/dist/cdp/visualCapture.d.ts.map +1 -0
  27. package/dist/cdp/visualCapture.js +156 -0
  28. package/dist/cdp/visualCapture.js.map +1 -0
  29. package/dist/events.d.ts +1 -1
  30. package/dist/events.d.ts.map +1 -1
  31. package/dist/http/routes/getExtensionDiagnostics.d.ts +2 -0
  32. package/dist/http/routes/getExtensionDiagnostics.d.ts.map +1 -0
  33. package/dist/http/routes/getExtensionDiagnostics.js +16 -0
  34. package/dist/http/routes/getExtensionDiagnostics.js.map +1 -0
  35. package/dist/http/routes/index.d.ts.map +1 -1
  36. package/dist/http/routes/index.js +6 -0
  37. package/dist/http/routes/index.js.map +1 -1
  38. package/dist/http/routes/netMock.js +3 -0
  39. package/dist/http/routes/netMock.js.map +1 -1
  40. package/dist/http/routes/postAttach.d.ts.map +1 -1
  41. package/dist/http/routes/postAttach.js +6 -3
  42. package/dist/http/routes/postAttach.js.map +1 -1
  43. package/dist/http/routes/postDetach.d.ts.map +1 -1
  44. package/dist/http/routes/postDetach.js +6 -3
  45. package/dist/http/routes/postDetach.js.map +1 -1
  46. package/dist/http/routes/postDomClick.d.ts.map +1 -1
  47. package/dist/http/routes/postDomClick.js +12 -20
  48. package/dist/http/routes/postDomClick.js.map +1 -1
  49. package/dist/http/routes/postDomDrag.d.ts +2 -0
  50. package/dist/http/routes/postDomDrag.d.ts.map +1 -0
  51. package/dist/http/routes/postDomDrag.js +54 -0
  52. package/dist/http/routes/postDomDrag.js.map +1 -0
  53. package/dist/http/routes/postDomKeydown.d.ts.map +1 -1
  54. package/dist/http/routes/postDomKeydown.js +22 -3
  55. package/dist/http/routes/postDomKeydown.js.map +1 -1
  56. package/dist/http/routes/postRecord.d.ts +3 -0
  57. package/dist/http/routes/postRecord.d.ts.map +1 -0
  58. package/dist/http/routes/postRecord.js +88 -0
  59. package/dist/http/routes/postRecord.js.map +1 -0
  60. package/dist/http/server.d.ts +3 -1
  61. package/dist/http/server.d.ts.map +1 -1
  62. package/dist/http/server.js.map +1 -1
  63. package/dist/native-messaging/control-session-manager.d.ts +24 -4
  64. package/dist/native-messaging/control-session-manager.d.ts.map +1 -1
  65. package/dist/native-messaging/control-session-manager.js +69 -23
  66. package/dist/native-messaging/control-session-manager.js.map +1 -1
  67. package/dist/native-messaging/types.d.ts +62 -3
  68. package/dist/native-messaging/types.d.ts.map +1 -1
  69. package/dist/net/NetMockController.d.ts +6 -4
  70. package/dist/net/NetMockController.d.ts.map +1 -1
  71. package/dist/net/NetMockController.js +37 -100
  72. package/dist/net/NetMockController.js.map +1 -1
  73. package/dist/net/NetMockInterception.d.ts +45 -0
  74. package/dist/net/NetMockInterception.d.ts.map +1 -0
  75. package/dist/net/NetMockInterception.js +144 -0
  76. package/dist/net/NetMockInterception.js.map +1 -0
  77. package/dist/runtime/watcherServices.d.ts +3 -0
  78. package/dist/runtime/watcherServices.d.ts.map +1 -1
  79. package/dist/runtime/watcherServices.js +12 -0
  80. package/dist/runtime/watcherServices.js.map +1 -1
  81. package/dist/sources/extension-control-source.d.ts.map +1 -1
  82. package/dist/sources/extension-control-source.js +25 -4
  83. package/dist/sources/extension-control-source.js.map +1 -1
  84. package/dist/sources/extension-source.d.ts.map +1 -1
  85. package/dist/sources/extension-source.js +16 -3
  86. package/dist/sources/extension-source.js.map +1 -1
  87. package/dist/sources/types.d.ts +7 -3
  88. package/dist/sources/types.d.ts.map +1 -1
  89. package/dist/startWatcherRuntime.d.ts.map +1 -1
  90. package/dist/startWatcherRuntime.js +21 -3
  91. package/dist/startWatcherRuntime.js.map +1 -1
  92. package/package.json +1 -1
@@ -42,8 +42,24 @@ export type CookieQueryResponseMessage = {
42
42
  };
43
43
  export type ListTabsResponseMessage = {
44
44
  type: 'list_tabs_response';
45
+ requestId: number;
45
46
  tabs: TabInfo[];
46
47
  };
48
+ export type TabActionResponseMessage = {
49
+ type: 'tab_action_response';
50
+ requestId: number;
51
+ ok: boolean;
52
+ tab?: TabInfo;
53
+ watcherId?: string;
54
+ error?: {
55
+ message: string;
56
+ };
57
+ };
58
+ export type ControlStatusResponseMessage = {
59
+ type: 'control_status_response';
60
+ requestId: number;
61
+ diagnostics: ControlDiagnostics;
62
+ };
47
63
  export type TargetSelectedMessage = {
48
64
  type: 'target_selected';
49
65
  tabId: number;
@@ -67,6 +83,10 @@ export type TargetInfoMessage = {
67
83
  attachedAt: number;
68
84
  targetReady?: boolean | null;
69
85
  };
86
+ export type InitTabWatcherMessage = {
87
+ type: 'init_tab_watcher';
88
+ watcherId?: string;
89
+ };
70
90
  export type TabInfo = {
71
91
  tabId: number;
72
92
  url: string;
@@ -75,6 +95,37 @@ export type TabInfo = {
75
95
  attached: boolean;
76
96
  watcherId?: string;
77
97
  };
98
+ export type ControlDiagnostics = {
99
+ extensionId: string | null;
100
+ extensionVersion: string | null;
101
+ control: {
102
+ connected: boolean;
103
+ watcherId: string | null;
104
+ watcherHost: string | null;
105
+ watcherPort: number | null;
106
+ pid: number | null;
107
+ lastMessageAt: number | null;
108
+ };
109
+ tabWatchers: Array<{
110
+ tabId: number;
111
+ connected: boolean;
112
+ watcherId: string | null;
113
+ watcherHost: string | null;
114
+ watcherPort: number | null;
115
+ pid: number | null;
116
+ targetId: string | null;
117
+ targetTitle: string | null;
118
+ targetUrl: string | null;
119
+ targetReady: boolean | null;
120
+ lastMessageAt: number | null;
121
+ }>;
122
+ recentEvents: Array<{
123
+ ts: number;
124
+ level: 'info' | 'error';
125
+ source: 'popup' | 'bridge' | 'debugger';
126
+ message: string;
127
+ }>;
128
+ };
78
129
  export type FrameSnapshot = {
79
130
  frameId: string;
80
131
  parentFrameId: string | null;
@@ -94,18 +145,21 @@ export type NativeCookie = {
94
145
  sameSite: string | null;
95
146
  };
96
147
  export type ExtensionToHost = TabAttachedMessage | TabDetachedMessage | CdpEventMessage | CdpResponseMessage | CookieQueryResponseMessage | TargetSelectedMessage;
97
- export type ExtensionToControlHost = ListTabsResponseMessage;
98
- export type ExtensionToTabHost = ExtensionToHost;
148
+ export type ExtensionToControlHost = ListTabsResponseMessage | TabActionResponseMessage | ControlStatusResponseMessage;
149
+ export type ExtensionToTabHost = ExtensionToHost | InitTabWatcherMessage;
99
150
  export type AttachTabMessage = {
100
151
  type: 'attach_tab';
101
152
  tabId: number;
102
153
  };
103
154
  export type AttachTabWatcherMessage = {
104
155
  type: 'attach_tab_watcher';
156
+ requestId: number;
105
157
  tabId: number;
158
+ watcherId?: string;
106
159
  };
107
160
  export type DetachTabWatcherMessage = {
108
161
  type: 'detach_tab_watcher';
162
+ requestId: number;
109
163
  tabId: number;
110
164
  };
111
165
  export type DetachTabMessage = {
@@ -122,11 +176,16 @@ export type CdpCommandMessage = {
122
176
  };
123
177
  export type ListTabsMessage = {
124
178
  type: 'list_tabs';
179
+ requestId: number;
125
180
  filter?: {
126
181
  url?: string;
127
182
  title?: string;
128
183
  };
129
184
  };
185
+ export type ControlStatusMessage = {
186
+ type: 'control_status';
187
+ requestId: number;
188
+ };
130
189
  export type EnableDomainMessage = {
131
190
  type: 'enable_domain';
132
191
  tabId: number;
@@ -140,7 +199,7 @@ export type CookieQueryMessage = {
140
199
  url?: string;
141
200
  };
142
201
  export type HostToExtension = AttachTabMessage | DetachTabMessage | CdpCommandMessage | CookieQueryMessage | EnableDomainMessage | HostInfoMessage | HostReadyMessage | TargetInfoMessage;
143
- export type ControlHostToExtension = AttachTabWatcherMessage | DetachTabWatcherMessage | ListTabsMessage | HostInfoMessage | HostReadyMessage;
202
+ export type ControlHostToExtension = AttachTabWatcherMessage | DetachTabWatcherMessage | ListTabsMessage | ControlStatusMessage | HostInfoMessage | HostReadyMessage;
144
203
  export type TabHostToExtension = HostToExtension;
145
204
  export type PendingRequest = {
146
205
  requestId: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/native-messaging/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/native-messaging/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { NetMockAddRequest, NetMockAddResponse, NetMockClearResponse, NetMockRemoveResponse, NetMockStatusResponse } from '@vforsh/argus-core';
2
- import type { CdpSessionHandle } from '../cdp/connection.js';
2
+ import { type NetMockInterceptionBinding } from './NetMockInterception.js';
3
3
  /**
4
4
  * Watcher-side network mocking via the CDP `Fetch` domain.
5
5
  *
@@ -9,8 +9,8 @@ import type { CdpSessionHandle } from '../cdp/connection.js';
9
9
  * rule is removed, so an idle watcher adds zero request latency.
10
10
  */
11
11
  export type NetMockController = {
12
- /** Subscribe to `Fetch.requestPaused` on the watcher session. Call once at startup. */
13
- bind: (session: CdpSessionHandle) => void;
12
+ /** Subscribe to `Fetch.requestPaused` and provide page/selected target routing. Call once at startup. */
13
+ bind: (binding: NetMockInterceptionBinding) => void;
14
14
  getStatus: (ctx: {
15
15
  attached: boolean;
16
16
  }) => NetMockStatusResponse;
@@ -18,7 +18,9 @@ export type NetMockController = {
18
18
  removeRule: (id: number) => Promise<NetMockRemoveResponse>;
19
19
  clearRules: () => Promise<NetMockClearResponse>;
20
20
  /** Re-arm interception on a freshly attached target when rules exist. */
21
- onAttach: (session: CdpSessionHandle) => Promise<void>;
21
+ onAttach: () => Promise<void>;
22
+ /** Move selected-scope interception when iframe selection changes. */
23
+ onTargetChanged: () => Promise<void>;
22
24
  /** Mark interception as inactive after the target detached. */
23
25
  onDetach: () => void;
24
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NetMockController.d.ts","sourceRoot":"","sources":["../../src/net/NetMockController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EAEpB,qBAAqB,EAErB,qBAAqB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAmB5D;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,uFAAuF;IACvF,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACzC,SAAS,EAAE,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,qBAAqB,CAAA;IAChE,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACrF,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC1D,UAAU,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC/C,yEAAyE;IACzE,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,uBAAuB,QAAO,iBAiN1C,CAAA"}
1
+ {"version":3,"file":"NetMockController.d.ts","sourceRoot":"","sources":["../../src/net/NetMockController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EAEpB,qBAAqB,EAGrB,qBAAqB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAuB,KAAK,0BAA0B,EAA6B,MAAM,0BAA0B,CAAA;AAS1H;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,yGAAyG;IACzG,IAAI,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,IAAI,CAAA;IACnD,SAAS,EAAE,CAAC,GAAG,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,qBAAqB,CAAA;IAChE,OAAO,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACrF,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAA;IAC1D,UAAU,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC/C,yEAAyE;IACzE,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,sEAAsE;IACtE,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,uBAAuB,QAAO,iBA2J1C,CAAA"}
@@ -1,11 +1,8 @@
1
+ import { NetMockInterception } from './NetMockInterception.js';
1
2
  export const createNetMockController = () => {
2
- let session = null;
3
- let bound = false;
4
- let enabled = false;
5
3
  let lastError = null;
6
4
  let nextRuleId = 1;
7
5
  const rules = [];
8
- const hasActiveRules = () => rules.some(isRuleActive);
9
6
  const recordError = (error) => {
10
7
  lastError = { message: error instanceof Error ? error.message : String(error) };
11
8
  const code = error?.code;
@@ -13,59 +10,16 @@ export const createNetMockController = () => {
13
10
  lastError.code = code;
14
11
  }
15
12
  };
16
- const enableInterception = async () => {
17
- if (!session || !session.isAttached()) {
18
- enabled = false;
19
- return false;
20
- }
21
- try {
22
- await session.sendAndWait('Fetch.enable', { patterns: [{ urlPattern: '*', requestStage: 'Request' }] });
23
- enabled = true;
24
- return true;
25
- }
26
- catch (error) {
27
- enabled = false;
28
- recordError(error);
29
- return false;
30
- }
31
- };
32
- const disableInterception = async () => {
33
- if (!enabled) {
34
- return;
35
- }
36
- enabled = false;
37
- if (!session || !session.isAttached()) {
38
- return;
39
- }
40
- try {
41
- await session.sendAndWait('Fetch.disable');
42
- }
43
- catch (error) {
44
- recordError(error);
45
- }
13
+ const interception = new NetMockInterception((request) => void handleRequestPaused(request), recordError);
14
+ const bind = (binding) => {
15
+ interception.bind(binding);
16
+ void interception.reconcile(getActiveScopes(rules));
46
17
  };
47
- const bind = (nextSession) => {
48
- session = nextSession;
49
- if (bound) {
50
- return;
51
- }
52
- bound = true;
53
- nextSession.onEvent('Fetch.requestPaused', (params) => {
54
- void handleRequestPaused(params);
55
- });
56
- };
57
- const handleRequestPaused = async (params) => {
58
- const paused = params;
59
- const requestId = paused?.requestId;
60
- if (typeof requestId !== 'string' || requestId === '') {
61
- return;
62
- }
63
- const url = paused.request?.url ?? '';
64
- const method = paused.request?.method ?? 'GET';
65
- const resourceType = paused.resourceType ?? '';
66
- const rule = rules.find((candidate) => ruleMatches(candidate, url, method, resourceType));
18
+ const handleRequestPaused = async (paused) => {
19
+ const rule = rules.find((candidate) => interception.matchesScope(candidate.scope ?? 'page', paused) &&
20
+ ruleMatches(candidate, paused.url, paused.method, paused.resourceType));
67
21
  if (!rule) {
68
- await sendAction('Fetch.continueRequest', { requestId });
22
+ await sendAction(paused, 'Fetch.continueRequest', { requestId: paused.requestId });
69
23
  return;
70
24
  }
71
25
  rule.hits += 1;
@@ -74,60 +28,47 @@ export const createNetMockController = () => {
74
28
  }
75
29
  const action = rule.action;
76
30
  if (action.kind === 'block') {
77
- await sendAction('Fetch.failRequest', { requestId, errorReason: 'BlockedByClient' });
31
+ await sendAction(paused, 'Fetch.failRequest', { requestId: paused.requestId, errorReason: 'BlockedByClient' });
78
32
  return;
79
33
  }
80
34
  if (action.kind === 'fail') {
81
- await sendAction('Fetch.failRequest', { requestId, errorReason: action.reason });
35
+ await sendAction(paused, 'Fetch.failRequest', { requestId: paused.requestId, errorReason: action.reason });
82
36
  return;
83
37
  }
84
38
  if (action.kind === 'fulfill') {
85
- const fulfillParams = { requestId, responseCode: action.status };
39
+ const fulfillParams = { requestId: paused.requestId, responseCode: action.status };
86
40
  if (action.headers && action.headers.length > 0) {
87
41
  fulfillParams.responseHeaders = action.headers;
88
42
  }
89
43
  if (action.bodyBase64 != null) {
90
44
  fulfillParams.body = action.bodyBase64;
91
45
  }
92
- await sendAction('Fetch.fulfillRequest', fulfillParams);
46
+ await sendAction(paused, 'Fetch.fulfillRequest', fulfillParams);
93
47
  return;
94
48
  }
95
49
  // action.kind === 'continue'
96
- const continueParams = { requestId };
50
+ const continueParams = { requestId: paused.requestId };
97
51
  if (action.rewriteHost) {
98
- const rewritten = rewriteUrlHost(url, action.rewriteHost);
52
+ const rewritten = rewriteUrlHost(paused.url, action.rewriteHost);
99
53
  if (rewritten) {
100
54
  continueParams.url = rewritten;
101
55
  }
102
56
  }
103
57
  if (action.setHeaders && action.setHeaders.length > 0) {
104
- continueParams.headers = mergeHeaders(paused.request?.headers ?? {}, action.setHeaders);
58
+ continueParams.headers = mergeHeaders(paused.headers, action.setHeaders);
105
59
  }
106
- await sendAction('Fetch.continueRequest', continueParams);
60
+ await sendAction(paused, 'Fetch.continueRequest', continueParams);
107
61
  };
108
62
  /**
109
63
  * Resolve a paused request. Failures are expected when the request was
110
64
  * canceled mid-flight (navigation, tab close) — those are swallowed so a
111
65
  * noisy page cannot poison `lastError`.
112
66
  */
113
- const sendAction = async (cdpMethod, params) => {
114
- if (!session || !session.isAttached()) {
115
- return;
116
- }
117
- try {
118
- await session.sendAndWait(cdpMethod, params);
119
- }
120
- catch (error) {
121
- if (isBenignInterceptionError(error)) {
122
- return;
123
- }
124
- recordError(error);
125
- }
126
- };
67
+ const sendAction = async (request, cdpMethod, params) => interception.sendRequestCommand(request, cdpMethod, params);
127
68
  const getStatus = (ctx) => ({
128
69
  ok: true,
129
70
  attached: ctx.attached,
130
- enabled,
71
+ enabled: interception.enabled,
131
72
  rules: rules.map(toPublicRule),
132
73
  lastError,
133
74
  });
@@ -135,6 +76,7 @@ export const createNetMockController = () => {
135
76
  lastError = null;
136
77
  const rule = {
137
78
  id: nextRuleId++,
79
+ scope: input.scope ?? 'page',
138
80
  match: input.match,
139
81
  action: input.action,
140
82
  delayMs: input.delayMs,
@@ -147,7 +89,7 @@ export const createNetMockController = () => {
147
89
  if (!attached) {
148
90
  return { ok: true, attached: false, enabled: false, rule: toPublicRule(rule) };
149
91
  }
150
- const applied = enabled || (await enableInterception());
92
+ const applied = await interception.reconcile(getActiveScopes(rules));
151
93
  return {
152
94
  ok: true,
153
95
  attached: true,
@@ -163,32 +105,34 @@ export const createNetMockController = () => {
163
105
  rules.splice(index, 1);
164
106
  }
165
107
  if (rules.length === 0) {
166
- await disableInterception();
108
+ await interception.reconcile(new Set());
167
109
  }
168
- return { ok: true, removed, enabled };
110
+ else {
111
+ await interception.reconcile(getActiveScopes(rules));
112
+ }
113
+ return { ok: true, removed, enabled: interception.enabled };
169
114
  };
170
115
  const clearRules = async () => {
171
116
  const removed = rules.length;
172
117
  rules.length = 0;
173
- await disableInterception();
174
- return { ok: true, removed, enabled };
118
+ await interception.reconcile(new Set());
119
+ return { ok: true, removed, enabled: interception.enabled };
175
120
  };
176
- const onAttach = async (nextSession) => {
177
- session = nextSession;
178
- enabled = false;
179
- if (!hasActiveRules()) {
180
- return;
181
- }
182
- const applied = await enableInterception();
121
+ const onAttach = async () => {
122
+ const applied = await interception.reconcile(getActiveScopes(rules), true);
183
123
  if (!applied && lastError) {
184
124
  console.warn(`[NetMock] Failed to re-enable interception on attach: ${lastError.message}`);
185
125
  }
186
126
  };
127
+ const onTargetChanged = async () => {
128
+ await interception.reconcile(getActiveScopes(rules));
129
+ };
187
130
  const onDetach = () => {
188
- enabled = false;
131
+ interception.onDetach();
189
132
  };
190
- return { bind, getStatus, addRule, removeRule, clearRules, onAttach, onDetach };
133
+ return { bind, getStatus, addRule, removeRule, clearRules, onAttach, onTargetChanged, onDetach };
191
134
  };
135
+ const getActiveScopes = (rules) => new Set(rules.filter(isRuleActive).map((rule) => rule.scope ?? 'page'));
192
136
  const isRuleActive = (rule) => rule.times == null || rule.hits < rule.times;
193
137
  const ruleMatches = (rule, url, method, resourceType) => {
194
138
  if (!isRuleActive(rule)) {
@@ -243,16 +187,9 @@ const mergeHeaders = (original, overrides) => {
243
187
  }
244
188
  return [...merged.values()];
245
189
  };
246
- const isBenignInterceptionError = (error) => {
247
- const code = error?.code;
248
- if (code === 'cdp_not_attached') {
249
- return true;
250
- }
251
- const message = error instanceof Error ? error.message : String(error);
252
- return message.includes('Invalid InterceptionId') || message.includes('Inspected target navigated or closed');
253
- };
254
190
  const toPublicRule = (rule) => ({
255
191
  id: rule.id,
192
+ scope: rule.scope ?? 'page',
256
193
  match: rule.match,
257
194
  action: rule.action,
258
195
  delayMs: rule.delayMs,
@@ -1 +1 @@
1
- {"version":3,"file":"NetMockController.js","sourceRoot":"","sources":["../../src/net/NetMockController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NetMockController.js","sourceRoot":"","sources":["../../src/net/NetMockController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { NetMockScope } from '@vforsh/argus-core';
2
+ import type { CdpSessionHandle } from '../cdp/connection.js';
3
+ /** CDP routing information for the target currently selected by the watcher. */
4
+ export type NetMockSelectedTarget = {
5
+ frameId: string | null;
6
+ topFrameId: string | null;
7
+ sessionId: string | null;
8
+ };
9
+ /** Normalized `Fetch.requestPaused` event with the originating CDP session. */
10
+ export type NetMockPausedRequest = {
11
+ requestId: string;
12
+ url: string;
13
+ method: string;
14
+ resourceType: string;
15
+ frameId: string | null;
16
+ sessionId: string | null;
17
+ headers: Record<string, string>;
18
+ };
19
+ /** Stable CDP session and dynamic selected-target lookup used by interception. */
20
+ export type NetMockInterceptionBinding = {
21
+ /** Stable top-level session; child-target commands are routed with explicit CDP session ids. */
22
+ pageSession: CdpSessionHandle;
23
+ /** Resolves the currently selected target each time so `selected` rules follow iframe selection. */
24
+ getSelectedTarget: () => NetMockSelectedTarget | null;
25
+ };
26
+ /** Owns Fetch-domain lifecycle across the top-level page and the currently selected iframe target. */
27
+ export declare class NetMockInterception {
28
+ private readonly onPaused;
29
+ private readonly onError;
30
+ private binding;
31
+ private bound;
32
+ private readonly enabledTargets;
33
+ private reconcileTail;
34
+ constructor(onPaused: (request: NetMockPausedRequest) => void, onError: (error: unknown) => void);
35
+ bind(binding: NetMockInterceptionBinding): void;
36
+ get enabled(): boolean;
37
+ matchesScope(scope: NetMockScope, request: NetMockPausedRequest): boolean;
38
+ sendRequestCommand(request: NetMockPausedRequest, method: string, params: Record<string, unknown>): Promise<void>;
39
+ reconcile(scopes: ReadonlySet<NetMockScope>, reset?: boolean): Promise<boolean>;
40
+ private applyReconcile;
41
+ onDetach(): void;
42
+ private getDesiredTargets;
43
+ private sendCommand;
44
+ }
45
+ //# sourceMappingURL=NetMockInterception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetMockInterception.d.ts","sourceRoot":"","sources":["../../src/net/NetMockInterception.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE1E,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACxB,CAAA;AAED,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,GAAG;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B,CAAA;AAED,kFAAkF;AAClF,MAAM,MAAM,0BAA0B,GAAG;IACxC,gGAAgG;IAChG,WAAW,EAAE,gBAAgB,CAAA;IAC7B,oGAAoG;IACpG,iBAAiB,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAA;CACrD,CAAA;AAoBD,sGAAsG;AACtG,qBAAa,mBAAmB;IAO9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPzB,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,OAAO,CAAC,aAAa,CAAmC;gBAGtC,QAAQ,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,EACjD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAG5C,IAAI,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAetD,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO;IAkBnE,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvH,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;YAYtE,cAAc;IAiCrB,QAAQ,IAAI,IAAI;IAIvB,OAAO,CAAC,iBAAiB;YAeX,WAAW;CAgBzB"}
@@ -0,0 +1,144 @@
1
+ const PAGE_TARGET = { key: 'page', sessionId: null };
2
+ /** Owns Fetch-domain lifecycle across the top-level page and the currently selected iframe target. */
3
+ export class NetMockInterception {
4
+ onPaused;
5
+ onError;
6
+ binding = null;
7
+ bound = false;
8
+ enabledTargets = new Map();
9
+ reconcileTail = Promise.resolve();
10
+ constructor(onPaused, onError) {
11
+ this.onPaused = onPaused;
12
+ this.onError = onError;
13
+ }
14
+ bind(binding) {
15
+ this.binding = binding;
16
+ if (this.bound) {
17
+ return;
18
+ }
19
+ this.bound = true;
20
+ binding.pageSession.onEvent('Fetch.requestPaused', (params, meta) => {
21
+ const request = parsePausedRequest(params, meta);
22
+ if (request) {
23
+ this.onPaused(request);
24
+ }
25
+ });
26
+ }
27
+ get enabled() {
28
+ return this.enabledTargets.size > 0;
29
+ }
30
+ matchesScope(scope, request) {
31
+ if (scope === 'page') {
32
+ return request.sessionId === null;
33
+ }
34
+ const selected = this.binding?.getSelectedTarget() ?? null;
35
+ if (selected?.sessionId) {
36
+ return request.sessionId === selected.sessionId;
37
+ }
38
+ if (request.sessionId !== null) {
39
+ return false;
40
+ }
41
+ const selectedFrameId = selected?.frameId ?? null;
42
+ const selectedIsChildFrame = selectedFrameId !== null && selectedFrameId !== selected?.topFrameId;
43
+ return !selectedIsChildFrame || request.frameId === selectedFrameId;
44
+ }
45
+ async sendRequestCommand(request, method, params) {
46
+ await this.sendCommand({ key: request.sessionId ? `session:${request.sessionId}` : 'page', sessionId: request.sessionId }, method, params);
47
+ }
48
+ reconcile(scopes, reset = false) {
49
+ const requestedScopes = new Set(scopes);
50
+ const operation = this.reconcileTail.then(() => this.applyReconcile(requestedScopes, reset));
51
+ // Target-change events can arrive while CDP commands are in flight. Keep
52
+ // lifecycle mutations ordered so an older iframe cannot remain enabled.
53
+ this.reconcileTail = operation.then(() => undefined, () => undefined);
54
+ return operation;
55
+ }
56
+ async applyReconcile(scopes, reset) {
57
+ if (reset) {
58
+ // A fresh underlying attachment invalidates old session ids; there is nothing useful to disable.
59
+ this.enabledTargets.clear();
60
+ }
61
+ const session = this.binding?.pageSession;
62
+ if (!session?.isAttached()) {
63
+ this.enabledTargets.clear();
64
+ return false;
65
+ }
66
+ const desiredTargets = this.getDesiredTargets(scopes);
67
+ for (const [key, target] of this.enabledTargets) {
68
+ if (!desiredTargets.has(key)) {
69
+ await this.sendCommand(target, 'Fetch.disable');
70
+ this.enabledTargets.delete(key);
71
+ }
72
+ }
73
+ for (const [key, target] of desiredTargets) {
74
+ if (this.enabledTargets.has(key)) {
75
+ continue;
76
+ }
77
+ const enabled = await this.sendCommand(target, 'Fetch.enable', { patterns: [{ urlPattern: '*', requestStage: 'Request' }] });
78
+ if (enabled) {
79
+ this.enabledTargets.set(key, target);
80
+ }
81
+ }
82
+ return this.enabled;
83
+ }
84
+ onDetach() {
85
+ this.enabledTargets.clear();
86
+ }
87
+ getDesiredTargets(scopes) {
88
+ const targets = new Map();
89
+ if (scopes.has('page')) {
90
+ targets.set(PAGE_TARGET.key, PAGE_TARGET);
91
+ }
92
+ if (!scopes.has('selected')) {
93
+ return targets;
94
+ }
95
+ const sessionId = this.binding?.getSelectedTarget()?.sessionId ?? null;
96
+ const selectedTarget = sessionId ? { key: `session:${sessionId}`, sessionId } : PAGE_TARGET;
97
+ targets.set(selectedTarget.key, selectedTarget);
98
+ return targets;
99
+ }
100
+ async sendCommand(target, method, params = {}) {
101
+ const session = this.binding?.pageSession;
102
+ if (!session?.isAttached()) {
103
+ return false;
104
+ }
105
+ try {
106
+ await session.sendAndWait(method, params, target.sessionId ? { sessionId: target.sessionId } : undefined);
107
+ return true;
108
+ }
109
+ catch (error) {
110
+ if (!isBenignInterceptionError(error)) {
111
+ this.onError(error);
112
+ }
113
+ return false;
114
+ }
115
+ }
116
+ }
117
+ const parsePausedRequest = (params, meta) => {
118
+ const paused = params;
119
+ const requestId = paused?.requestId;
120
+ if (typeof requestId !== 'string' || requestId === '') {
121
+ return null;
122
+ }
123
+ return {
124
+ requestId,
125
+ url: paused.request?.url ?? '',
126
+ method: paused.request?.method ?? 'GET',
127
+ resourceType: paused.resourceType ?? '',
128
+ frameId: paused.frameId ?? null,
129
+ sessionId: meta.sessionId ?? null,
130
+ headers: paused.request?.headers ?? {},
131
+ };
132
+ };
133
+ const isBenignInterceptionError = (error) => {
134
+ const code = error?.code;
135
+ if (code === 'cdp_not_attached') {
136
+ return true;
137
+ }
138
+ const message = error instanceof Error ? error.message : String(error);
139
+ return (message.includes('Invalid InterceptionId') ||
140
+ message.includes('Inspected target navigated or closed') ||
141
+ message.includes('Session with given id not found') ||
142
+ message.includes('No target with given id'));
143
+ };
144
+ //# sourceMappingURL=NetMockInterception.js.map