craftdriver 0.1.0 → 0.2.1
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.
- package/CHANGELOG.md +111 -0
- package/README.md +157 -45
- package/bin/craftdriver.mjs +26 -0
- package/dist/cli/client.d.ts +17 -0
- package/dist/cli/client.d.ts.map +1 -0
- package/dist/cli/client.js +88 -0
- package/dist/cli/client.js.map +1 -0
- package/dist/cli/daemon.d.ts +15 -0
- package/dist/cli/daemon.d.ts.map +1 -0
- package/dist/cli/daemon.js +145 -0
- package/dist/cli/daemon.js.map +1 -0
- package/dist/cli/defaults.d.ts +10 -0
- package/dist/cli/defaults.d.ts.map +1 -0
- package/dist/cli/defaults.js +42 -0
- package/dist/cli/defaults.js.map +1 -0
- package/dist/cli/dispatcher.d.ts +28 -0
- package/dist/cli/dispatcher.d.ts.map +1 -0
- package/dist/cli/dispatcher.js +319 -0
- package/dist/cli/dispatcher.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +404 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +24 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +192 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/mcp/artifacts.d.ts +43 -0
- package/dist/cli/mcp/artifacts.d.ts.map +1 -0
- package/dist/cli/mcp/artifacts.js +104 -0
- package/dist/cli/mcp/artifacts.js.map +1 -0
- package/dist/cli/mcp/server.d.ts +34 -0
- package/dist/cli/mcp/server.d.ts.map +1 -0
- package/dist/cli/mcp/server.js +214 -0
- package/dist/cli/mcp/server.js.map +1 -0
- package/dist/cli/mcp/tools.d.ts +34 -0
- package/dist/cli/mcp/tools.d.ts.map +1 -0
- package/dist/cli/mcp/tools.js +236 -0
- package/dist/cli/mcp/tools.js.map +1 -0
- package/dist/cli/parseArgs.d.ts +37 -0
- package/dist/cli/parseArgs.d.ts.map +1 -0
- package/dist/cli/parseArgs.js +215 -0
- package/dist/cli/parseArgs.js.map +1 -0
- package/dist/cli/protocol.d.ts +34 -0
- package/dist/cli/protocol.d.ts.map +1 -0
- package/dist/cli/protocol.js +2 -0
- package/dist/cli/protocol.js.map +1 -0
- package/dist/cli/selector.d.ts +29 -0
- package/dist/cli/selector.d.ts.map +1 -0
- package/dist/cli/selector.js +100 -0
- package/dist/cli/selector.js.map +1 -0
- package/dist/cli/snapshot.d.ts +48 -0
- package/dist/cli/snapshot.d.ts.map +1 -0
- package/dist/cli/snapshot.js +179 -0
- package/dist/cli/snapshot.js.map +1 -0
- package/dist/index.d.ts +14 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/a11y.d.ts +81 -0
- package/dist/lib/a11y.d.ts.map +1 -0
- package/dist/lib/a11y.js +171 -0
- package/dist/lib/a11y.js.map +1 -0
- package/dist/lib/bidi/index.d.ts +26 -1
- package/dist/lib/bidi/index.d.ts.map +1 -1
- package/dist/lib/bidi/index.js +49 -0
- package/dist/lib/bidi/index.js.map +1 -1
- package/dist/lib/bidi/logs.d.ts +2 -2
- package/dist/lib/bidi/logs.d.ts.map +1 -1
- package/dist/lib/bidi/logs.js +2 -2
- package/dist/lib/bidi/logs.js.map +1 -1
- package/dist/lib/bidi/network.d.ts +74 -1
- package/dist/lib/bidi/network.d.ts.map +1 -1
- package/dist/lib/bidi/network.js +222 -4
- package/dist/lib/bidi/network.js.map +1 -1
- package/dist/lib/bidi/storage.d.ts +5 -3
- package/dist/lib/bidi/storage.d.ts.map +1 -1
- package/dist/lib/bidi/storage.js +14 -7
- package/dist/lib/bidi/storage.js.map +1 -1
- package/dist/lib/bidi/types.d.ts +27 -6
- package/dist/lib/bidi/types.d.ts.map +1 -1
- package/dist/lib/browser.d.ts +637 -16
- package/dist/lib/browser.d.ts.map +1 -1
- package/dist/lib/browser.js +1428 -102
- package/dist/lib/browser.js.map +1 -1
- package/dist/lib/browserContext.d.ts +486 -0
- package/dist/lib/browserContext.d.ts.map +1 -0
- package/dist/lib/browserContext.js +937 -0
- package/dist/lib/browserContext.js.map +1 -0
- package/dist/lib/builder.d.ts +3 -0
- package/dist/lib/builder.d.ts.map +1 -1
- package/dist/lib/builder.js +31 -4
- package/dist/lib/builder.js.map +1 -1
- package/dist/lib/by.d.ts +18 -2
- package/dist/lib/by.d.ts.map +1 -1
- package/dist/lib/by.js +20 -2
- package/dist/lib/by.js.map +1 -1
- package/dist/lib/chrome.d.ts +13 -1
- package/dist/lib/chrome.d.ts.map +1 -1
- package/dist/lib/chrome.js +13 -17
- package/dist/lib/chrome.js.map +1 -1
- package/dist/lib/clock.d.ts +115 -0
- package/dist/lib/clock.d.ts.map +1 -0
- package/dist/lib/clock.js +407 -0
- package/dist/lib/clock.js.map +1 -0
- package/dist/lib/driver.d.ts +43 -0
- package/dist/lib/driver.d.ts.map +1 -1
- package/dist/lib/driver.js +120 -0
- package/dist/lib/driver.js.map +1 -1
- package/dist/lib/driverManager.d.ts +25 -0
- package/dist/lib/driverManager.d.ts.map +1 -0
- package/dist/lib/driverManager.js +399 -0
- package/dist/lib/driverManager.js.map +1 -0
- package/dist/lib/elementHandle.d.ts +67 -3
- package/dist/lib/elementHandle.d.ts.map +1 -1
- package/dist/lib/elementHandle.js +209 -67
- package/dist/lib/elementHandle.js.map +1 -1
- package/dist/lib/errors.d.ts +71 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +73 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/expect.d.ts +6 -1
- package/dist/lib/expect.d.ts.map +1 -1
- package/dist/lib/expect.js +55 -37
- package/dist/lib/expect.js.map +1 -1
- package/dist/lib/firefox.d.ts +18 -0
- package/dist/lib/firefox.d.ts.map +1 -0
- package/dist/lib/firefox.js +33 -0
- package/dist/lib/firefox.js.map +1 -0
- package/dist/lib/frame.d.ts +57 -0
- package/dist/lib/frame.d.ts.map +1 -0
- package/dist/lib/frame.js +277 -0
- package/dist/lib/frame.js.map +1 -0
- package/dist/lib/keyboard.d.ts +1 -1
- package/dist/lib/keyboard.d.ts.map +1 -1
- package/dist/lib/keyboard.js +1 -1
- package/dist/lib/keyboard.js.map +1 -1
- package/dist/lib/locator.d.ts +71 -2
- package/dist/lib/locator.d.ts.map +1 -1
- package/dist/lib/locator.js +289 -31
- package/dist/lib/locator.js.map +1 -1
- package/dist/lib/mouse.d.ts +1 -1
- package/dist/lib/mouse.d.ts.map +1 -1
- package/dist/lib/mouse.js +1 -1
- package/dist/lib/mouse.js.map +1 -1
- package/dist/lib/page.d.ts +107 -0
- package/dist/lib/page.d.ts.map +1 -0
- package/dist/lib/page.js +388 -0
- package/dist/lib/page.js.map +1 -0
- package/dist/lib/tracing.d.ts +128 -0
- package/dist/lib/tracing.d.ts.map +1 -0
- package/dist/lib/tracing.js +272 -0
- package/dist/lib/tracing.js.map +1 -0
- package/dist/lib/wait.d.ts.map +1 -1
- package/dist/lib/wait.js +14 -1
- package/dist/lib/wait.js.map +1 -1
- package/dist/lib/webelement.d.ts +2 -0
- package/dist/lib/webelement.d.ts.map +1 -1
- package/dist/lib/webelement.js +18 -0
- package/dist/lib/webelement.js.map +1 -1
- package/docs/accessibility.md +177 -0
- package/docs/api-reference.md +71 -0
- package/docs/assertions.md +182 -0
- package/docs/bidi-features.md +462 -0
- package/docs/browser-api.md +673 -0
- package/docs/browser-context.md +522 -0
- package/docs/cli.md +233 -0
- package/docs/clock.md +245 -0
- package/docs/dialogs.md +143 -0
- package/docs/driver-configuration.md +64 -0
- package/docs/element-api.md +219 -0
- package/docs/emulation.md +155 -0
- package/docs/error-codes.md +67 -0
- package/docs/getting-started.md +168 -0
- package/docs/keyboard-mouse.md +250 -0
- package/docs/mcp.md +250 -0
- package/docs/mobile-emulation.md +194 -0
- package/docs/screenshots.md +146 -0
- package/docs/selectors.md +382 -0
- package/docs/session-management.md +229 -0
- package/docs/tracing.md +282 -0
- package/package.json +26 -8
- package/skills/craftdriver/SKILL.md +84 -0
- package/skills/craftdriver/cheatsheet.md +194 -0
- package/skills/craftdriver/cli.md +104 -0
- package/skills/craftdriver/patterns.md +139 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"a11y.js","sourceRoot":"","sources":["../../src/lib/a11y.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/bidi/index.d.ts
CHANGED
|
@@ -55,6 +55,31 @@ export declare class BiDiSession {
|
|
|
55
55
|
* Load session state from file
|
|
56
56
|
*/
|
|
57
57
|
loadState(path: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Get the active browsing context id
|
|
60
|
+
*/
|
|
61
|
+
getContext(): string | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Register a one-shot handler for the next `browsingContext.load` event
|
|
64
|
+
* on the active top-level context. Returns an unsubscribe function.
|
|
65
|
+
*/
|
|
66
|
+
onLoad(handler: (params: Record<string, unknown>) => void): () => void;
|
|
67
|
+
/**
|
|
68
|
+
* Register a handler for the next `browsingContext.domContentLoaded`
|
|
69
|
+
* event on the active top-level context. Returns an unsubscribe function.
|
|
70
|
+
*/
|
|
71
|
+
onDomContentLoaded(handler: (params: Record<string, unknown>) => void): () => void;
|
|
72
|
+
/**
|
|
73
|
+
* Register a persistent handler for `browsingContext.userPromptOpened` events.
|
|
74
|
+
* Called every time a dialog (alert/confirm/prompt) opens. Returns an unsubscribe function.
|
|
75
|
+
*/
|
|
76
|
+
onDialog(handler: (params: Record<string, unknown>) => void): () => void;
|
|
77
|
+
/**
|
|
78
|
+
* Handle an open user prompt (alert / confirm / prompt) via BiDi.
|
|
79
|
+
* @param accept true to accept (OK), false to dismiss (Cancel / close)
|
|
80
|
+
* @param userText Text to type into a prompt dialog before accepting
|
|
81
|
+
*/
|
|
82
|
+
handleUserPrompt(accept: boolean, userText?: string): Promise<void>;
|
|
58
83
|
/**
|
|
59
84
|
* Subscribe to BiDi events
|
|
60
85
|
*/
|
|
@@ -69,7 +94,7 @@ export declare class BiDiSession {
|
|
|
69
94
|
close(): Promise<void>;
|
|
70
95
|
}
|
|
71
96
|
export { BiDiConnection } from './connection.js';
|
|
72
|
-
export { NetworkInterceptor, type MockResponse, type InterceptedRequest } from './network.js';
|
|
97
|
+
export { NetworkInterceptor, type MockResponse, type InterceptedRequest, type InterceptedResponse } from './network.js';
|
|
73
98
|
export { LogMonitor, type ConsoleMessage, type JavaScriptError, type LogMessage } from './logs.js';
|
|
74
99
|
export { SessionStateManager, type StorageStateOptions } from './storage.js';
|
|
75
100
|
export * from './types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,kBAAkB;IACjC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAkB;IAClC,OAAO,CAAC,QAAQ,CAAC,CAAqB;IACtC,OAAO,CAAC,KAAK,CAAC,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAsB;IACvC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IAK5D;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/bidi/index.js
CHANGED
|
@@ -28,9 +28,18 @@ export class BiDiSession {
|
|
|
28
28
|
if (result.contexts?.[0]) {
|
|
29
29
|
this.context = result.contexts[0].context;
|
|
30
30
|
}
|
|
31
|
+
// Subscribe to browsing-context lifecycle events needed for waitForLoadState
|
|
32
|
+
await this.connection.subscribe([
|
|
33
|
+
'browsingContext.load',
|
|
34
|
+
'browsingContext.domContentLoaded',
|
|
35
|
+
'browsingContext.userPromptOpened',
|
|
36
|
+
]);
|
|
31
37
|
// Eagerly initialize log monitoring so console/error capture starts immediately
|
|
32
38
|
this._logs = new LogMonitor(this.connection, this.context);
|
|
33
39
|
await this._logs.initialize();
|
|
40
|
+
// Eagerly initialize network so in-flight tracking starts from the first request
|
|
41
|
+
this._network = new NetworkInterceptor(this.connection, this.context);
|
|
42
|
+
await this._network.initialize();
|
|
34
43
|
this.initialized = true;
|
|
35
44
|
}
|
|
36
45
|
/**
|
|
@@ -85,6 +94,46 @@ export class BiDiSession {
|
|
|
85
94
|
async loadState(path) {
|
|
86
95
|
return this.storage.loadState(path);
|
|
87
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Get the active browsing context id
|
|
99
|
+
*/
|
|
100
|
+
getContext() {
|
|
101
|
+
return this.context;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Register a one-shot handler for the next `browsingContext.load` event
|
|
105
|
+
* on the active top-level context. Returns an unsubscribe function.
|
|
106
|
+
*/
|
|
107
|
+
onLoad(handler) {
|
|
108
|
+
return this.connection.on('browsingContext.load', handler);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Register a handler for the next `browsingContext.domContentLoaded`
|
|
112
|
+
* event on the active top-level context. Returns an unsubscribe function.
|
|
113
|
+
*/
|
|
114
|
+
onDomContentLoaded(handler) {
|
|
115
|
+
return this.connection.on('browsingContext.domContentLoaded', handler);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Register a persistent handler for `browsingContext.userPromptOpened` events.
|
|
119
|
+
* Called every time a dialog (alert/confirm/prompt) opens. Returns an unsubscribe function.
|
|
120
|
+
*/
|
|
121
|
+
onDialog(handler) {
|
|
122
|
+
return this.connection.on('browsingContext.userPromptOpened', handler);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Handle an open user prompt (alert / confirm / prompt) via BiDi.
|
|
126
|
+
* @param accept true to accept (OK), false to dismiss (Cancel / close)
|
|
127
|
+
* @param userText Text to type into a prompt dialog before accepting
|
|
128
|
+
*/
|
|
129
|
+
async handleUserPrompt(accept, userText) {
|
|
130
|
+
if (!this.context)
|
|
131
|
+
throw new Error('No active browsing context');
|
|
132
|
+
const params = { context: this.context, accept };
|
|
133
|
+
if (userText !== undefined)
|
|
134
|
+
params.userText = userText;
|
|
135
|
+
await this.connection.send('browsingContext.handleUserPrompt', params);
|
|
136
|
+
}
|
|
88
137
|
/**
|
|
89
138
|
* Subscribe to BiDi events
|
|
90
139
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/bidi/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/bidi/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/bidi/logs.d.ts
CHANGED
|
@@ -72,9 +72,9 @@ export declare class LogMonitor {
|
|
|
72
72
|
*/
|
|
73
73
|
getLogsByLevel(level: LogLevel): LogMessage[];
|
|
74
74
|
/**
|
|
75
|
-
* Get all console messages
|
|
75
|
+
* Get all captured console messages.
|
|
76
76
|
*/
|
|
77
|
-
|
|
77
|
+
getMessages(): ConsoleMessage[];
|
|
78
78
|
/**
|
|
79
79
|
* Get all JavaScript errors
|
|
80
80
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/logs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAY,QAAQ,EAA2B,MAAM,YAAY,CAAC;AAE/F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,eAAe,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;AACvD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AAE5D,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAkB;IAElC,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,aAAa,CAA2B;IAEhD,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,OAAO,CAAQ;gBAEX,UAAU,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,eAAe;IAKjE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,IAAI;IAKtC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,IAAI;IAK9C;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,IAAI;IAK1C;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,IAAI;IAQpD;;OAEG;IACH,OAAO,IAAI,UAAU,EAAE;IAIvB;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,EAAE;IAI7C;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/logs.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/bidi/logs.js
CHANGED
|
@@ -72,9 +72,9 @@ export class LogMonitor {
|
|
|
72
72
|
return this.logs.filter((log) => log.level === level);
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
|
-
* Get all console messages
|
|
75
|
+
* Get all captured console messages.
|
|
76
76
|
*/
|
|
77
|
-
|
|
77
|
+
getMessages() {
|
|
78
78
|
return this.logs.filter((log) => log.type === 'console');
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/lib/bidi/logs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsCH,MAAM,OAAO,UAAU;IACb,UAAU,CAAiB;IAC3B,UAAU,GAAG,KAAK,CAAC;IACnB,OAAO,CAAmB;IAE1B,WAAW,GAAG,IAAI,GAAG,EAAc,CAAC;IACpC,aAAa,GAAG,IAAI,GAAG,EAA6B,CAAC;IACrD,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,aAAa,GAAG,IAAI,GAAG,EAAgB,CAAC;IAExC,IAAI,GAAiB,EAAE,CAAC;IACxB,OAAO,GAAG,IAAI,CAAC;IAEvB,YAAY,UAA0B,EAAE,OAAyB;QAC/D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAE5B,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAC7B,CAAC,gBAAgB,CAAC,EAClB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAC1C,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC9C,IAAI,CAAC,cAAc,CAAC,MAA6B,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAmB;QACvB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,OAAuB;QAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAqB;QAC3B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,EAAE,CAAC,KAAe,EAAE,OAAmB;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAe;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/lib/bidi/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,15 @@ export interface InterceptedRequest {
|
|
|
23
23
|
isBlocked: boolean;
|
|
24
24
|
context: BrowsingContext | null;
|
|
25
25
|
}
|
|
26
|
+
export interface InterceptedResponse {
|
|
27
|
+
url: string;
|
|
28
|
+
status: number;
|
|
29
|
+
statusText: string;
|
|
30
|
+
headers: Record<string, string>;
|
|
31
|
+
mimeType: string;
|
|
32
|
+
fromCache: boolean;
|
|
33
|
+
request: Pick<InterceptedRequest, 'id' | 'url' | 'method' | 'headers'>;
|
|
34
|
+
}
|
|
26
35
|
export interface InterceptRule {
|
|
27
36
|
id: NetworkIntercept;
|
|
28
37
|
patterns: UrlPattern[];
|
|
@@ -35,6 +44,12 @@ export declare class NetworkInterceptor {
|
|
|
35
44
|
private handlers;
|
|
36
45
|
private subscribed;
|
|
37
46
|
private context?;
|
|
47
|
+
private requestListeners;
|
|
48
|
+
private responseListeners;
|
|
49
|
+
/** Set of request IDs currently in-flight (sent but not yet completed/errored). */
|
|
50
|
+
private inFlightRequests;
|
|
51
|
+
/** Callbacks to notify when inFlightRequests changes — used by waitForNetworkIdle. */
|
|
52
|
+
private idleListeners;
|
|
38
53
|
constructor(connection: BiDiConnection, context?: BrowsingContext);
|
|
39
54
|
/**
|
|
40
55
|
* Initialize network event subscriptions
|
|
@@ -43,7 +58,7 @@ export declare class NetworkInterceptor {
|
|
|
43
58
|
/**
|
|
44
59
|
* Add a network intercept for specific URL patterns
|
|
45
60
|
*/
|
|
46
|
-
intercept(patterns: string | string[] | UrlPattern | UrlPattern[], handler: RequestHandler, phases?: InterceptPhase[]): Promise<string>;
|
|
61
|
+
intercept(patterns: string | string[] | UrlPattern | UrlPattern[], handler: RequestHandler, phases?: InterceptPhase[], contexts?: BrowsingContext[]): Promise<string>;
|
|
47
62
|
/**
|
|
48
63
|
* Mock all requests matching pattern with a fixed response
|
|
49
64
|
*/
|
|
@@ -73,6 +88,64 @@ export declare class NetworkInterceptor {
|
|
|
73
88
|
* Fail a blocked request
|
|
74
89
|
*/
|
|
75
90
|
failRequest(requestId: string): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Number of network requests currently in-flight (sent but no response yet).
|
|
93
|
+
* Used to implement `waitForNetworkIdle`.
|
|
94
|
+
*/
|
|
95
|
+
get inFlightCount(): number;
|
|
96
|
+
/**
|
|
97
|
+
* Resolves when no network requests have been in-flight for `idleDuration` ms.
|
|
98
|
+
* Event-driven: subscribes to network events internally; no polling.
|
|
99
|
+
*
|
|
100
|
+
* @param idleDuration Milliseconds of network silence required (default: 500)
|
|
101
|
+
*/
|
|
102
|
+
waitForNetworkIdle(opts?: {
|
|
103
|
+
idleDuration?: number;
|
|
104
|
+
timeout?: number;
|
|
105
|
+
}): Promise<void>;
|
|
106
|
+
private _notifyIdleListeners;
|
|
107
|
+
/**
|
|
108
|
+
* Subscribe to **every** matching request or response. Returns an
|
|
109
|
+
* `off()` function that unsubscribes the listener.
|
|
110
|
+
*
|
|
111
|
+
* Unlike {@link waitForRequest} / {@link waitForResponse}, this is
|
|
112
|
+
* persistent — the callback fires for the lifetime of the browser
|
|
113
|
+
* session (or until you call `off()`).
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* const off = network.on('response', (res) => {
|
|
117
|
+
* console.log(res.status, res.url);
|
|
118
|
+
* });
|
|
119
|
+
* // …
|
|
120
|
+
* off();
|
|
121
|
+
*/
|
|
122
|
+
on(event: 'request', listener: (req: InterceptedRequest) => void): () => void;
|
|
123
|
+
on(event: 'response', listener: (res: InterceptedResponse) => void): () => void;
|
|
124
|
+
/**
|
|
125
|
+
* Wait for the first request matching a URL glob or predicate.
|
|
126
|
+
* Must be registered **before** the action that triggers the request.
|
|
127
|
+
*/
|
|
128
|
+
waitForRequest(pattern: string | ((req: InterceptedRequest) => boolean), opts?: {
|
|
129
|
+
timeout?: number;
|
|
130
|
+
}): Promise<InterceptedRequest>;
|
|
131
|
+
/**
|
|
132
|
+
* Wait for the first completed response matching a URL glob or predicate.
|
|
133
|
+
* Must be registered **before** the action that triggers the request.
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* ```ts
|
|
137
|
+
* const [res] = await Promise.all([
|
|
138
|
+
* browser.waitForResponse('/api/users'),
|
|
139
|
+
* browser.click('#load-btn'),
|
|
140
|
+
* ]);
|
|
141
|
+
* expect(res.status).toBe(200);
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
waitForResponse(pattern: string | ((res: InterceptedResponse) => boolean), opts?: {
|
|
145
|
+
timeout?: number;
|
|
146
|
+
}): Promise<InterceptedResponse>;
|
|
147
|
+
private _waitFor;
|
|
148
|
+
private _matchesGlob;
|
|
76
149
|
/**
|
|
77
150
|
* Remove an intercept
|
|
78
151
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/network.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EAGd,gBAAgB,EAEhB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,OAAO,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,gBAAgB,CAAC;IACrB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAC,CAAkB;
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/lib/bidi/network.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/bidi/network.js
CHANGED
|
@@ -8,6 +8,12 @@ export class NetworkInterceptor {
|
|
|
8
8
|
handlers = new Map();
|
|
9
9
|
subscribed = false;
|
|
10
10
|
context;
|
|
11
|
+
requestListeners = [];
|
|
12
|
+
responseListeners = [];
|
|
13
|
+
/** Set of request IDs currently in-flight (sent but not yet completed/errored). */
|
|
14
|
+
inFlightRequests = new Set();
|
|
15
|
+
/** Callbacks to notify when inFlightRequests changes — used by waitForNetworkIdle. */
|
|
16
|
+
idleListeners = [];
|
|
11
17
|
constructor(connection, context) {
|
|
12
18
|
this.connection = connection;
|
|
13
19
|
this.context = context;
|
|
@@ -26,22 +32,71 @@ export class NetworkInterceptor {
|
|
|
26
32
|
'network.fetchError',
|
|
27
33
|
'network.authRequired',
|
|
28
34
|
]);
|
|
29
|
-
// Handle intercepted requests
|
|
35
|
+
// Handle intercepted requests + track in-flight
|
|
30
36
|
this.connection.on('network.beforeRequestSent', async (params) => {
|
|
31
|
-
|
|
37
|
+
const event = params;
|
|
38
|
+
// Track in-flight (before intercept handling, so count is always accurate)
|
|
39
|
+
this.inFlightRequests.add(event.request.request);
|
|
40
|
+
await this.handleBeforeRequestSent(event);
|
|
41
|
+
// Notify passive request listeners (waitForRequest)
|
|
42
|
+
if (this.requestListeners.length > 0) {
|
|
43
|
+
const req = {
|
|
44
|
+
id: event.request.request,
|
|
45
|
+
url: event.request.url,
|
|
46
|
+
method: event.request.method,
|
|
47
|
+
headers: this.headersToObject(event.request.headers),
|
|
48
|
+
isBlocked: event.isBlocked,
|
|
49
|
+
context: event.context,
|
|
50
|
+
};
|
|
51
|
+
for (const l of [...this.requestListeners])
|
|
52
|
+
l(req);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
// Track completed responses + notify waitForResponse listeners
|
|
56
|
+
this.connection.on('network.responseCompleted', (params) => {
|
|
57
|
+
const event = params;
|
|
58
|
+
this.inFlightRequests.delete(event.request.request);
|
|
59
|
+
this._notifyIdleListeners();
|
|
60
|
+
if (this.responseListeners.length > 0) {
|
|
61
|
+
const res = {
|
|
62
|
+
url: event.response.url,
|
|
63
|
+
status: event.response.status,
|
|
64
|
+
statusText: event.response.statusText,
|
|
65
|
+
headers: this.headersToObject(event.response.headers),
|
|
66
|
+
mimeType: event.response.mimeType,
|
|
67
|
+
fromCache: event.response.fromCache,
|
|
68
|
+
request: {
|
|
69
|
+
id: event.request.request,
|
|
70
|
+
url: event.request.url,
|
|
71
|
+
method: event.request.method,
|
|
72
|
+
headers: this.headersToObject(event.request.headers),
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
for (const l of [...this.responseListeners])
|
|
76
|
+
l(res);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
// Track fetch errors (request failed before a response)
|
|
80
|
+
this.connection.on('network.fetchError', (params) => {
|
|
81
|
+
const reqId = params?.request?.request;
|
|
82
|
+
if (reqId) {
|
|
83
|
+
this.inFlightRequests.delete(reqId);
|
|
84
|
+
this._notifyIdleListeners();
|
|
85
|
+
}
|
|
32
86
|
});
|
|
33
87
|
this.subscribed = true;
|
|
34
88
|
}
|
|
35
89
|
/**
|
|
36
90
|
* Add a network intercept for specific URL patterns
|
|
37
91
|
*/
|
|
38
|
-
async intercept(patterns, handler, phases = ['beforeRequestSent']) {
|
|
92
|
+
async intercept(patterns, handler, phases = ['beforeRequestSent'], contexts) {
|
|
39
93
|
await this.initialize();
|
|
40
94
|
const urlPatterns = this.normalizePatterns(patterns);
|
|
95
|
+
const ctxs = contexts ?? (this.context ? [this.context] : undefined);
|
|
41
96
|
const result = await this.connection.send('network.addIntercept', {
|
|
42
97
|
phases,
|
|
43
98
|
urlPatterns,
|
|
44
|
-
...(
|
|
99
|
+
...(ctxs ? { contexts: ctxs } : {}),
|
|
45
100
|
});
|
|
46
101
|
const interceptId = result.intercept;
|
|
47
102
|
this.intercepts.set(interceptId, {
|
|
@@ -146,6 +201,169 @@ export class NetworkInterceptor {
|
|
|
146
201
|
async failRequest(requestId) {
|
|
147
202
|
await this.connection.send('network.failRequest', { request: requestId });
|
|
148
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Number of network requests currently in-flight (sent but no response yet).
|
|
206
|
+
* Used to implement `waitForNetworkIdle`.
|
|
207
|
+
*/
|
|
208
|
+
get inFlightCount() {
|
|
209
|
+
return this.inFlightRequests.size;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Resolves when no network requests have been in-flight for `idleDuration` ms.
|
|
213
|
+
* Event-driven: subscribes to network events internally; no polling.
|
|
214
|
+
*
|
|
215
|
+
* @param idleDuration Milliseconds of network silence required (default: 500)
|
|
216
|
+
*/
|
|
217
|
+
async waitForNetworkIdle(opts) {
|
|
218
|
+
await this.initialize();
|
|
219
|
+
// Validate-or-fallback to bound timer durations (defends against resource
|
|
220
|
+
// exhaustion from a hostile / buggy caller). CodeQL does not treat
|
|
221
|
+
// Math.min as a sanitizer, so we use explicit range checks.
|
|
222
|
+
const MAX_IDLE_MS = 60_000;
|
|
223
|
+
const MAX_TIMEOUT_MS = 300_000;
|
|
224
|
+
const reqIdle = opts?.idleDuration;
|
|
225
|
+
const reqTimeout = opts?.timeout;
|
|
226
|
+
const idleDuration = typeof reqIdle === 'number' && reqIdle >= 0 && reqIdle <= MAX_IDLE_MS ? reqIdle : 500;
|
|
227
|
+
const timeout = typeof reqTimeout === 'number' && reqTimeout >= 0 && reqTimeout <= MAX_TIMEOUT_MS
|
|
228
|
+
? reqTimeout
|
|
229
|
+
: 30_000;
|
|
230
|
+
return new Promise((resolve, reject) => {
|
|
231
|
+
let idleTimer;
|
|
232
|
+
const timeoutTimer = setTimeout(() => {
|
|
233
|
+
cleanup();
|
|
234
|
+
reject(new Error(`waitForNetworkIdle() timed out after ${timeout}ms`));
|
|
235
|
+
}, timeout);
|
|
236
|
+
const scheduleIdle = () => {
|
|
237
|
+
if (idleTimer)
|
|
238
|
+
clearTimeout(idleTimer);
|
|
239
|
+
if (this.inFlightRequests.size === 0) {
|
|
240
|
+
idleTimer = setTimeout(() => { cleanup(); resolve(); }, idleDuration);
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
const onNetworkChange = () => scheduleIdle();
|
|
244
|
+
const cleanup = () => {
|
|
245
|
+
clearTimeout(timeoutTimer);
|
|
246
|
+
if (idleTimer)
|
|
247
|
+
clearTimeout(idleTimer);
|
|
248
|
+
this.idleListeners = this.idleListeners.filter(l => l !== onNetworkChange);
|
|
249
|
+
};
|
|
250
|
+
this.idleListeners.push(onNetworkChange);
|
|
251
|
+
// Kick off immediately in case already idle
|
|
252
|
+
scheduleIdle();
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
_notifyIdleListeners() {
|
|
256
|
+
for (const l of [...this.idleListeners])
|
|
257
|
+
l();
|
|
258
|
+
}
|
|
259
|
+
on(event, listener) {
|
|
260
|
+
if (event === 'request') {
|
|
261
|
+
const fn = listener;
|
|
262
|
+
this.requestListeners.push(fn);
|
|
263
|
+
// Ensure subscriptions are active so events arrive
|
|
264
|
+
this.initialize().catch(() => { });
|
|
265
|
+
return () => {
|
|
266
|
+
this.requestListeners = this.requestListeners.filter((l) => l !== fn);
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
const fn = listener;
|
|
270
|
+
this.responseListeners.push(fn);
|
|
271
|
+
this.initialize().catch(() => { });
|
|
272
|
+
return () => {
|
|
273
|
+
this.responseListeners = this.responseListeners.filter((l) => l !== fn);
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Wait for the first request matching a URL glob or predicate.
|
|
278
|
+
* Must be registered **before** the action that triggers the request.
|
|
279
|
+
*/
|
|
280
|
+
waitForRequest(pattern, opts) {
|
|
281
|
+
return this._waitFor('request', pattern, opts);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Wait for the first completed response matching a URL glob or predicate.
|
|
285
|
+
* Must be registered **before** the action that triggers the request.
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* ```ts
|
|
289
|
+
* const [res] = await Promise.all([
|
|
290
|
+
* browser.waitForResponse('/api/users'),
|
|
291
|
+
* browser.click('#load-btn'),
|
|
292
|
+
* ]);
|
|
293
|
+
* expect(res.status).toBe(200);
|
|
294
|
+
* ```
|
|
295
|
+
*/
|
|
296
|
+
waitForResponse(pattern, opts) {
|
|
297
|
+
return this._waitFor('response', pattern, opts);
|
|
298
|
+
}
|
|
299
|
+
_waitFor(kind, pattern, opts) {
|
|
300
|
+
const timeout = opts?.timeout ?? 30000;
|
|
301
|
+
const matcher = typeof pattern === 'function'
|
|
302
|
+
? pattern
|
|
303
|
+
: (v) => this._matchesGlob(v.url, pattern);
|
|
304
|
+
return new Promise((resolve, reject) => {
|
|
305
|
+
let done = false;
|
|
306
|
+
const timer = setTimeout(() => {
|
|
307
|
+
if (done)
|
|
308
|
+
return;
|
|
309
|
+
done = true;
|
|
310
|
+
cleanup();
|
|
311
|
+
const desc = typeof pattern === 'string' ? `"${pattern}"` : '[predicate]';
|
|
312
|
+
reject(new Error(`waitFor${kind === 'request' ? 'Request' : 'Response'}(${desc}) timed out after ${timeout}ms`));
|
|
313
|
+
}, timeout);
|
|
314
|
+
const listener = (v) => {
|
|
315
|
+
if (done)
|
|
316
|
+
return;
|
|
317
|
+
if (matcher(v)) {
|
|
318
|
+
done = true;
|
|
319
|
+
cleanup();
|
|
320
|
+
resolve(v);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
const cleanup = () => {
|
|
324
|
+
clearTimeout(timer);
|
|
325
|
+
if (kind === 'request') {
|
|
326
|
+
this.requestListeners = this.requestListeners.filter(l => l !== listener);
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
this.responseListeners = this.responseListeners.filter(l => l !== listener);
|
|
330
|
+
}
|
|
331
|
+
};
|
|
332
|
+
if (kind === 'request') {
|
|
333
|
+
this.requestListeners.push(listener);
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
this.responseListeners.push(listener);
|
|
337
|
+
}
|
|
338
|
+
// Ensure we are subscribed so events arrive
|
|
339
|
+
this.initialize().catch(reject);
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
_matchesGlob(url, pattern) {
|
|
343
|
+
// Re-use the same logic as normalizePatterns but do a JS-side string match
|
|
344
|
+
// so callers can use Playwright-style ** globs without relying on BiDi
|
|
345
|
+
// pattern registration.
|
|
346
|
+
let pathname;
|
|
347
|
+
try {
|
|
348
|
+
pathname = new URL(url).pathname;
|
|
349
|
+
}
|
|
350
|
+
catch {
|
|
351
|
+
pathname = url;
|
|
352
|
+
}
|
|
353
|
+
if (pattern.includes('**') || pattern.includes('*')) {
|
|
354
|
+
let pat = pattern;
|
|
355
|
+
pat = pat.replace(/^\*\*/, '');
|
|
356
|
+
pat = pat.replace(/\/?\*\*$/, '');
|
|
357
|
+
pat = pat.replace(/\/?\*$/, '');
|
|
358
|
+
pat = pat.replace(/\*/g, '');
|
|
359
|
+
if (!pat.startsWith('/'))
|
|
360
|
+
pat = '/' + pat;
|
|
361
|
+
pat = pat.replace(/\/+/g, '/');
|
|
362
|
+
return pathname.includes(pat);
|
|
363
|
+
}
|
|
364
|
+
// Exact string match against full URL
|
|
365
|
+
return url === pattern || url.startsWith(pattern);
|
|
366
|
+
}
|
|
149
367
|
/**
|
|
150
368
|
* Remove an intercept
|
|
151
369
|
*/
|