@bctrl/sdk 1.0.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/README.md +75 -0
- package/dist/agents/browser-use/index.d.ts +1 -0
- package/dist/agents/browser-use/index.js +9 -0
- package/dist/agents/browser-use/namespace.d.ts +39 -0
- package/dist/agents/browser-use/namespace.js +93 -0
- package/dist/agents/index.d.ts +2 -0
- package/dist/agents/index.js +17 -0
- package/dist/agents/stagehand/core.d.ts +93 -0
- package/dist/agents/stagehand/core.js +144 -0
- package/dist/agents/stagehand/index.d.ts +3 -0
- package/dist/agents/stagehand/index.js +24 -0
- package/dist/agents/stagehand/namespace.d.ts +51 -0
- package/dist/agents/stagehand/namespace.js +65 -0
- package/dist/ai-credentials/client.d.ts +12 -0
- package/dist/ai-credentials/client.js +70 -0
- package/dist/ai-credentials/index.d.ts +1 -0
- package/dist/ai-credentials/index.js +1 -0
- package/dist/base/event-binding.d.ts +7 -0
- package/dist/base/event-binding.js +23 -0
- package/dist/base/types.d.ts +109 -0
- package/dist/base/types.js +4 -0
- package/dist/bctrl.d.ts +37 -0
- package/dist/bctrl.js +77 -0
- package/dist/browser-extensions/client.d.ts +15 -0
- package/dist/browser-extensions/client.js +72 -0
- package/dist/browser-extensions/index.d.ts +2 -0
- package/dist/browser-extensions/index.js +1 -0
- package/dist/browser-profiles/client.d.ts +11 -0
- package/dist/browser-profiles/client.js +63 -0
- package/dist/browser-profiles/index.d.ts +1 -0
- package/dist/browser-profiles/index.js +1 -0
- package/dist/captcha/index.d.ts +1 -0
- package/dist/captcha/index.js +1 -0
- package/dist/captcha/namespace.d.ts +34 -0
- package/dist/captcha/namespace.js +41 -0
- package/dist/client/index.d.ts +1 -0
- package/dist/client/index.js +1 -0
- package/dist/client/rpc.d.ts +83 -0
- package/dist/client/rpc.js +354 -0
- package/dist/config.d.ts +5 -0
- package/dist/config.js +28 -0
- package/dist/constants/browser.d.ts +2 -0
- package/dist/constants/browser.js +1 -0
- package/dist/contracts/agent-tools.d.ts +45 -0
- package/dist/contracts/agent-tools.js +31 -0
- package/dist/contracts/automation.d.ts +265 -0
- package/dist/contracts/automation.js +109 -0
- package/dist/contracts/browser-management.d.ts +179 -0
- package/dist/contracts/browser-management.js +95 -0
- package/dist/contracts/browser-use.d.ts +136 -0
- package/dist/contracts/browser-use.js +93 -0
- package/dist/contracts/captcha.d.ts +114 -0
- package/dist/contracts/captcha.js +40 -0
- package/dist/contracts/desktop.d.ts +223 -0
- package/dist/contracts/desktop.js +121 -0
- package/dist/contracts/drivers/playwright.d.ts +2008 -0
- package/dist/contracts/drivers/playwright.js +2033 -0
- package/dist/contracts/drivers/puppeteer.d.ts +1221 -0
- package/dist/contracts/drivers/puppeteer.js +941 -0
- package/dist/contracts/drivers/selenium.d.ts +156 -0
- package/dist/contracts/drivers/selenium.js +61 -0
- package/dist/contracts/drivers/stagehand.d.ts +155 -0
- package/dist/contracts/drivers/stagehand.js +7 -0
- package/dist/contracts/extensions.d.ts +13 -0
- package/dist/contracts/extensions.js +9 -0
- package/dist/contracts/index.d.ts +13 -0
- package/dist/contracts/index.js +13 -0
- package/dist/contracts/public-api.d.ts +360 -0
- package/dist/contracts/public-api.js +17 -0
- package/dist/contracts/runtime.d.ts +81 -0
- package/dist/contracts/runtime.js +16 -0
- package/dist/contracts/stagehand.d.ts +253 -0
- package/dist/contracts/stagehand.js +145 -0
- package/dist/contracts/storage.d.ts +51 -0
- package/dist/contracts/storage.js +56 -0
- package/dist/contracts/vault.d.ts +119 -0
- package/dist/contracts/vault.js +112 -0
- package/dist/contracts/version.d.ts +3 -0
- package/dist/contracts/version.js +16 -0
- package/dist/desktop.d.ts +2 -0
- package/dist/desktop.js +3 -0
- package/dist/drivers/desktop/index.d.ts +65 -0
- package/dist/drivers/desktop/index.js +68 -0
- package/dist/drivers/desktop/session.d.ts +313 -0
- package/dist/drivers/desktop/session.js +432 -0
- package/dist/drivers/playwright/event-emitter.d.ts +160 -0
- package/dist/drivers/playwright/event-emitter.js +297 -0
- package/dist/drivers/playwright/generated/api-request-context.d.ts +137 -0
- package/dist/drivers/playwright/generated/api-request-context.js +154 -0
- package/dist/drivers/playwright/generated/api-response.d.ts +119 -0
- package/dist/drivers/playwright/generated/api-response.js +123 -0
- package/dist/drivers/playwright/generated/browser-context.d.ts +284 -0
- package/dist/drivers/playwright/generated/browser-context.js +458 -0
- package/dist/drivers/playwright/generated/browser.d.ts +120 -0
- package/dist/drivers/playwright/generated/browser.js +151 -0
- package/dist/drivers/playwright/generated/clock.d.ts +80 -0
- package/dist/drivers/playwright/generated/clock.js +94 -0
- package/dist/drivers/playwright/generated/console-message.d.ts +94 -0
- package/dist/drivers/playwright/generated/console-message.js +89 -0
- package/dist/drivers/playwright/generated/coverage.d.ts +57 -0
- package/dist/drivers/playwright/generated/coverage.js +66 -0
- package/dist/drivers/playwright/generated/dialog.d.ts +79 -0
- package/dist/drivers/playwright/generated/dialog.js +80 -0
- package/dist/drivers/playwright/generated/element-handle.d.ts +399 -0
- package/dist/drivers/playwright/generated/element-handle.js +501 -0
- package/dist/drivers/playwright/generated/frame-locator.d.ts +34 -0
- package/dist/drivers/playwright/generated/frame-locator.js +63 -0
- package/dist/drivers/playwright/generated/frame.d.ts +557 -0
- package/dist/drivers/playwright/generated/frame.js +634 -0
- package/dist/drivers/playwright/generated/js-handle.d.ts +72 -0
- package/dist/drivers/playwright/generated/js-handle.js +92 -0
- package/dist/drivers/playwright/generated/keyboard.d.ts +103 -0
- package/dist/drivers/playwright/generated/keyboard.js +113 -0
- package/dist/drivers/playwright/generated/locator.d.ts +795 -0
- package/dist/drivers/playwright/generated/locator.js +974 -0
- package/dist/drivers/playwright/generated/mouse.d.ts +97 -0
- package/dist/drivers/playwright/generated/mouse.js +109 -0
- package/dist/drivers/playwright/generated/page.d.ts +762 -0
- package/dist/drivers/playwright/generated/page.js +988 -0
- package/dist/drivers/playwright/generated/touchscreen.d.ts +34 -0
- package/dist/drivers/playwright/generated/touchscreen.js +37 -0
- package/dist/drivers/playwright/generated/tracing.d.ts +78 -0
- package/dist/drivers/playwright/generated/tracing.js +80 -0
- package/dist/drivers/playwright/generated/worker.d.ts +53 -0
- package/dist/drivers/playwright/generated/worker.js +59 -0
- package/dist/drivers/playwright/index.d.ts +19 -0
- package/dist/drivers/playwright/index.js +20 -0
- package/dist/drivers/playwright/remote-base.d.ts +62 -0
- package/dist/drivers/playwright/remote-base.js +86 -0
- package/dist/drivers/playwright/types.d.ts +148 -0
- package/dist/drivers/playwright/types.js +8 -0
- package/dist/drivers/puppeteer/errors.d.ts +50 -0
- package/dist/drivers/puppeteer/errors.js +71 -0
- package/dist/drivers/puppeteer/event-emitter.d.ts +145 -0
- package/dist/drivers/puppeteer/event-emitter.js +259 -0
- package/dist/drivers/puppeteer/generated/accessibility.d.ts +77 -0
- package/dist/drivers/puppeteer/generated/accessibility.js +74 -0
- package/dist/drivers/puppeteer/generated/browser-context.d.ts +116 -0
- package/dist/drivers/puppeteer/generated/browser-context.js +168 -0
- package/dist/drivers/puppeteer/generated/browser.d.ts +169 -0
- package/dist/drivers/puppeteer/generated/browser.js +246 -0
- package/dist/drivers/puppeteer/generated/console-message.d.ts +54 -0
- package/dist/drivers/puppeteer/generated/console-message.js +69 -0
- package/dist/drivers/puppeteer/generated/coverage.d.ts +49 -0
- package/dist/drivers/puppeteer/generated/coverage.js +57 -0
- package/dist/drivers/puppeteer/generated/dialog.d.ts +46 -0
- package/dist/drivers/puppeteer/generated/dialog.js +60 -0
- package/dist/drivers/puppeteer/generated/element-handle.d.ts +261 -0
- package/dist/drivers/puppeteer/generated/element-handle.js +341 -0
- package/dist/drivers/puppeteer/generated/file-chooser.d.ts +34 -0
- package/dist/drivers/puppeteer/generated/file-chooser.js +43 -0
- package/dist/drivers/puppeteer/generated/frame.d.ts +221 -0
- package/dist/drivers/puppeteer/generated/frame.js +302 -0
- package/dist/drivers/puppeteer/generated/http-request.d.ts +195 -0
- package/dist/drivers/puppeteer/generated/http-request.js +243 -0
- package/dist/drivers/puppeteer/generated/http-response.d.ts +142 -0
- package/dist/drivers/puppeteer/generated/http-response.js +169 -0
- package/dist/drivers/puppeteer/generated/js-handle.d.ts +104 -0
- package/dist/drivers/puppeteer/generated/js-handle.js +125 -0
- package/dist/drivers/puppeteer/generated/keyboard.d.ts +79 -0
- package/dist/drivers/puppeteer/generated/keyboard.js +89 -0
- package/dist/drivers/puppeteer/generated/locator.d.ts +141 -0
- package/dist/drivers/puppeteer/generated/locator.js +164 -0
- package/dist/drivers/puppeteer/generated/mouse.d.ts +74 -0
- package/dist/drivers/puppeteer/generated/mouse.js +94 -0
- package/dist/drivers/puppeteer/generated/page.d.ts +604 -0
- package/dist/drivers/puppeteer/generated/page.js +776 -0
- package/dist/drivers/puppeteer/generated/target.d.ts +105 -0
- package/dist/drivers/puppeteer/generated/target.js +123 -0
- package/dist/drivers/puppeteer/generated/touchscreen.d.ts +87 -0
- package/dist/drivers/puppeteer/generated/touchscreen.js +103 -0
- package/dist/drivers/puppeteer/generated/tracing.d.ts +38 -0
- package/dist/drivers/puppeteer/generated/tracing.js +43 -0
- package/dist/drivers/puppeteer/generated/web-worker.d.ts +63 -0
- package/dist/drivers/puppeteer/generated/web-worker.js +73 -0
- package/dist/drivers/puppeteer/index.d.ts +21 -0
- package/dist/drivers/puppeteer/index.js +23 -0
- package/dist/drivers/puppeteer/remote-base.d.ts +57 -0
- package/dist/drivers/puppeteer/remote-base.js +79 -0
- package/dist/drivers/puppeteer/types.d.ts +178 -0
- package/dist/drivers/puppeteer/types.js +8 -0
- package/dist/drivers/selenium/driver.d.ts +28 -0
- package/dist/drivers/selenium/driver.js +169 -0
- package/dist/drivers/selenium/element.d.ts +34 -0
- package/dist/drivers/selenium/element.js +73 -0
- package/dist/drivers/selenium/index.d.ts +3 -0
- package/dist/drivers/selenium/index.js +5 -0
- package/dist/drivers/selenium/types.d.ts +2 -0
- package/dist/drivers/selenium/types.js +12 -0
- package/dist/drivers/stagehand/generated/context.d.ts +127 -0
- package/dist/drivers/stagehand/generated/context.js +153 -0
- package/dist/drivers/stagehand/generated/locator.d.ts +324 -0
- package/dist/drivers/stagehand/generated/locator.js +368 -0
- package/dist/drivers/stagehand/generated/page.d.ts +377 -0
- package/dist/drivers/stagehand/generated/page.js +439 -0
- package/dist/drivers/stagehand/generated/response.d.ts +197 -0
- package/dist/drivers/stagehand/generated/response.js +232 -0
- package/dist/drivers/stagehand/index.d.ts +5 -0
- package/dist/drivers/stagehand/index.js +8 -0
- package/dist/drivers/stagehand/types.d.ts +1 -0
- package/dist/drivers/stagehand/types.js +7 -0
- package/dist/errors.d.ts +47 -0
- package/dist/errors.js +157 -0
- package/dist/extensions/client.d.ts +47 -0
- package/dist/extensions/client.js +154 -0
- package/dist/extensions/index.d.ts +1 -0
- package/dist/extensions/index.js +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +23 -0
- package/dist/internal/dev-client.d.ts +5 -0
- package/dist/internal/dev-client.js +9 -0
- package/dist/internal/rpc-targets.d.ts +17 -0
- package/dist/internal/rpc-targets.js +58 -0
- package/dist/internal/serialization.d.ts +32 -0
- package/dist/internal/serialization.js +42 -0
- package/dist/internal/transport.d.ts +24 -0
- package/dist/internal/transport.js +29 -0
- package/dist/playwright.d.ts +1 -0
- package/dist/playwright.js +2 -0
- package/dist/puppeteer.d.ts +1 -0
- package/dist/puppeteer.js +2 -0
- package/dist/selenium.d.ts +1 -0
- package/dist/selenium.js +2 -0
- package/dist/stagehand.d.ts +1 -0
- package/dist/stagehand.js +2 -0
- package/dist/storage/client.d.ts +151 -0
- package/dist/storage/client.js +329 -0
- package/dist/storage/index.d.ts +2 -0
- package/dist/storage/index.js +4 -0
- package/dist/telemetry.d.ts +18 -0
- package/dist/telemetry.js +93 -0
- package/dist/updates/client.d.ts +8 -0
- package/dist/updates/client.js +128 -0
- package/dist/updates/index.d.ts +1 -0
- package/dist/updates/index.js +1 -0
- package/dist/utils/http.d.ts +39 -0
- package/dist/utils/http.js +88 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/logger.d.ts +27 -0
- package/dist/utils/logger.js +74 -0
- package/dist/utils/schema.d.ts +17 -0
- package/dist/utils/schema.js +31 -0
- package/dist/utils/url.d.ts +5 -0
- package/dist/utils/url.js +7 -0
- package/dist/vault/client.d.ts +43 -0
- package/dist/vault/client.js +123 -0
- package/dist/vault/index.d.ts +1 -0
- package/dist/vault/index.js +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +4 -0
- package/dist/workspaces/browser-runtime.d.ts +251 -0
- package/dist/workspaces/browser-runtime.js +1025 -0
- package/dist/workspaces/client.d.ts +48 -0
- package/dist/workspaces/client.js +222 -0
- package/dist/workspaces/index.d.ts +2 -0
- package/dist/workspaces/index.js +2 -0
- package/dist/workspaces/runtime-event-pump.d.ts +65 -0
- package/dist/workspaces/runtime-event-pump.js +716 -0
- package/package.json +56 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED FILE - DO NOT EDIT
|
|
3
|
+
*
|
|
4
|
+
* Generated from: packages/automation-spec/src/drivers/playwright/methods/
|
|
5
|
+
* Run `pnpm generate:playwright` to regenerate.
|
|
6
|
+
*/
|
|
7
|
+
import { extractHandleId, serializeFunctionSource, } from '../../../internal/transport.js';
|
|
8
|
+
import { RemoteBase } from '../remote-base.js';
|
|
9
|
+
import { getRemoteListenerBinding } from '../../../base/event-binding.js';
|
|
10
|
+
import { RemotePlaywrightClock } from './clock.js';
|
|
11
|
+
import { RemotePlaywrightTracing } from './tracing.js';
|
|
12
|
+
import { RemotePlaywrightAPIRequestContext } from './api-request-context.js';
|
|
13
|
+
/**
|
|
14
|
+
* RemotePlaywrightBrowserContext - Remote Playwright BrowserContext API over RPC.
|
|
15
|
+
*
|
|
16
|
+
* @see https://playwright.dev/docs/api/class-browsercontext
|
|
17
|
+
*/
|
|
18
|
+
export class RemotePlaywrightBrowserContext extends RemoteBase {
|
|
19
|
+
constructor(id, sendRpc, createPage, browserRef) {
|
|
20
|
+
super(id, sendRpc);
|
|
21
|
+
this.createPage = createPage;
|
|
22
|
+
this._browser = browserRef ?? null;
|
|
23
|
+
}
|
|
24
|
+
_browser;
|
|
25
|
+
_defaultTimeout = 30000;
|
|
26
|
+
_defaultNavigationTimeout = 30000;
|
|
27
|
+
_listeners = new Map();
|
|
28
|
+
_clock = null;
|
|
29
|
+
_request = null;
|
|
30
|
+
_tracing = null;
|
|
31
|
+
createPage;
|
|
32
|
+
notifyFirstListener(event) {
|
|
33
|
+
const binding = getRemoteListenerBinding(this);
|
|
34
|
+
if (!binding)
|
|
35
|
+
return;
|
|
36
|
+
binding.onFirstListener(event);
|
|
37
|
+
}
|
|
38
|
+
notifyNoListeners(event) {
|
|
39
|
+
const binding = getRemoteListenerBinding(this);
|
|
40
|
+
if (!binding)
|
|
41
|
+
return;
|
|
42
|
+
binding.onNoListeners(event);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns the browser this context belongs to.
|
|
46
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-browser
|
|
47
|
+
*/
|
|
48
|
+
browser() {
|
|
49
|
+
return this._browser;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Playwright Clock API for mocking time.
|
|
53
|
+
* @see https://playwright.dev/docs/api/class-clock
|
|
54
|
+
*/
|
|
55
|
+
get clock() {
|
|
56
|
+
if (!this._clock) {
|
|
57
|
+
this._clock = new RemotePlaywrightClock(this.sendRpc, this.id);
|
|
58
|
+
}
|
|
59
|
+
return this._clock;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* API testing helper associated with this context.
|
|
63
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-request
|
|
64
|
+
*/
|
|
65
|
+
get request() {
|
|
66
|
+
if (!this._request) {
|
|
67
|
+
this._request = new RemotePlaywrightAPIRequestContext(this.sendRpc);
|
|
68
|
+
}
|
|
69
|
+
return this._request;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Tracing helper for recording execution traces.
|
|
73
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-tracing
|
|
74
|
+
*/
|
|
75
|
+
get tracing() {
|
|
76
|
+
if (!this._tracing) {
|
|
77
|
+
this._tracing = new RemotePlaywrightTracing(this.sendRpc, this.id);
|
|
78
|
+
}
|
|
79
|
+
return this._tracing;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Sets the default maximum navigation timeout.
|
|
83
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-navigation-timeout
|
|
84
|
+
*/
|
|
85
|
+
async setDefaultNavigationTimeout(timeout) {
|
|
86
|
+
await this.sendRpc('setDefaultNavigationTimeout', [this.id, timeout]);
|
|
87
|
+
this._defaultNavigationTimeout = timeout;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Sets the default maximum time for all methods accepting timeout option.
|
|
91
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-set-default-timeout
|
|
92
|
+
*/
|
|
93
|
+
async setDefaultTimeout(timeout) {
|
|
94
|
+
await this.sendRpc('setDefaultTimeout', [this.id, timeout]);
|
|
95
|
+
this._defaultTimeout = timeout;
|
|
96
|
+
}
|
|
97
|
+
on(event, handler) {
|
|
98
|
+
const listeners = this._listeners.get(event) ?? [];
|
|
99
|
+
const hadListeners = listeners.length > 0;
|
|
100
|
+
listeners.push({ handler, once: false });
|
|
101
|
+
this._listeners.set(event, listeners);
|
|
102
|
+
if (!hadListeners) {
|
|
103
|
+
this.notifyFirstListener(event);
|
|
104
|
+
}
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
once(event, handler) {
|
|
108
|
+
const listeners = this._listeners.get(event) ?? [];
|
|
109
|
+
const hadListeners = listeners.length > 0;
|
|
110
|
+
listeners.push({ handler, once: true });
|
|
111
|
+
this._listeners.set(event, listeners);
|
|
112
|
+
if (!hadListeners) {
|
|
113
|
+
this.notifyFirstListener(event);
|
|
114
|
+
}
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
off(event, handler) {
|
|
118
|
+
if (!handler) {
|
|
119
|
+
const hadListeners = (this._listeners.get(event)?.length ?? 0) > 0;
|
|
120
|
+
this._listeners.delete(event);
|
|
121
|
+
if (hadListeners) {
|
|
122
|
+
this.notifyNoListeners(event);
|
|
123
|
+
}
|
|
124
|
+
return this;
|
|
125
|
+
}
|
|
126
|
+
const listeners = this._listeners.get(event);
|
|
127
|
+
if (!listeners)
|
|
128
|
+
return this;
|
|
129
|
+
const remaining = listeners.filter((entry) => entry.handler !== handler);
|
|
130
|
+
if (remaining.length === 0) {
|
|
131
|
+
this._listeners.delete(event);
|
|
132
|
+
if (listeners.length > 0) {
|
|
133
|
+
this.notifyNoListeners(event);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this._listeners.set(event, remaining);
|
|
138
|
+
}
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
addListener(event, handler) {
|
|
142
|
+
return this.on(event, handler);
|
|
143
|
+
}
|
|
144
|
+
removeListener(event, handler) {
|
|
145
|
+
return this.off(event, handler);
|
|
146
|
+
}
|
|
147
|
+
listenerCount(event) {
|
|
148
|
+
return this._listeners.get(event)?.length ?? 0;
|
|
149
|
+
}
|
|
150
|
+
emit(event, payload) {
|
|
151
|
+
const listeners = this._listeners.get(event);
|
|
152
|
+
if (!listeners || listeners.length === 0)
|
|
153
|
+
return false;
|
|
154
|
+
const listenersCopy = [...listeners];
|
|
155
|
+
const toRemove = [];
|
|
156
|
+
for (const entry of listenersCopy) {
|
|
157
|
+
try {
|
|
158
|
+
entry.handler(payload);
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
console.error(`Error in BrowserContext event handler for "${event}":`, error);
|
|
162
|
+
}
|
|
163
|
+
if (entry.once) {
|
|
164
|
+
toRemove.push(entry);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (toRemove.length > 0) {
|
|
168
|
+
const remaining = listeners.filter((entry) => !toRemove.includes(entry));
|
|
169
|
+
if (remaining.length === 0) {
|
|
170
|
+
this._listeners.delete(event);
|
|
171
|
+
if (listeners.length > 0) {
|
|
172
|
+
this.notifyNoListeners(event);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
this._listeners.set(event, remaining);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Removes all listeners for the specified event, or all events if no event is specified.
|
|
183
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-remove-all-listeners
|
|
184
|
+
*/
|
|
185
|
+
removeAllListeners(event) {
|
|
186
|
+
if (event === undefined) {
|
|
187
|
+
const existingEvents = Array.from(this._listeners.entries())
|
|
188
|
+
.filter(([, listeners]) => listeners.length > 0)
|
|
189
|
+
.map(([eventName]) => eventName);
|
|
190
|
+
this._listeners.clear();
|
|
191
|
+
for (const eventName of existingEvents) {
|
|
192
|
+
this.notifyNoListeners(eventName);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
const hadListeners = (this._listeners.get(event)?.length ?? 0) > 0;
|
|
197
|
+
this._listeners.delete(event);
|
|
198
|
+
if (hadListeners) {
|
|
199
|
+
this.notifyNoListeners(event);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return this;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Returns all open pages in the context.
|
|
206
|
+
*
|
|
207
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-pages
|
|
208
|
+
*/
|
|
209
|
+
async pages() {
|
|
210
|
+
const pageIds = await this.rpc('pages', []);
|
|
211
|
+
return pageIds.map((id) => this.createPage(id));
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Returns all service workers in the context.
|
|
215
|
+
*
|
|
216
|
+
* @remarks
|
|
217
|
+
* Service workers are only available on Chromium-based browsers.
|
|
218
|
+
*
|
|
219
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-service-workers
|
|
220
|
+
*/
|
|
221
|
+
async serviceWorkers() {
|
|
222
|
+
return this.rpc('serviceWorkers', []);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Creates a new page in the browser context.
|
|
226
|
+
*
|
|
227
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-new-page
|
|
228
|
+
*/
|
|
229
|
+
async newPage() {
|
|
230
|
+
const pageId = await this.rpc('newPage', []);
|
|
231
|
+
return this.createPage(pageId);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Returns the newly created CDP session attached to the given page.
|
|
235
|
+
* @param page - Target page to create CDP session for.
|
|
236
|
+
*
|
|
237
|
+
* @remarks
|
|
238
|
+
* CDP Sessions are only supported on Chromium-based browsers.
|
|
239
|
+
*
|
|
240
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-new-cdp-session
|
|
241
|
+
*/
|
|
242
|
+
async newCDPSession(page) {
|
|
243
|
+
const _page = extractHandleId(page);
|
|
244
|
+
return this.rpc('newCDPSession', [_page]);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Adds cookies into this browser context. All pages within this context will have these cookies installed.
|
|
248
|
+
*
|
|
249
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-add-cookies
|
|
250
|
+
*/
|
|
251
|
+
async addCookies(cookies) {
|
|
252
|
+
await this.rpc('addCookies', [cookies]);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Returns cookies for the specified URLs, or all cookies if no URLs are specified.
|
|
256
|
+
*
|
|
257
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-cookies
|
|
258
|
+
*/
|
|
259
|
+
async cookies(urls) {
|
|
260
|
+
return this.rpc('cookies', [urls]);
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Removes cookies from context. Accepts optional filter to remove specific cookies.
|
|
264
|
+
*
|
|
265
|
+
* @remarks
|
|
266
|
+
* If no options are provided, removes all cookies from the context.
|
|
267
|
+
*
|
|
268
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-clear-cookies
|
|
269
|
+
*/
|
|
270
|
+
async clearCookies(options) {
|
|
271
|
+
await this.rpc('clearCookies', [options]);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Grants specified permissions to the browser context.
|
|
275
|
+
*
|
|
276
|
+
* @remarks
|
|
277
|
+
* Only grants corresponding permissions to the given origin if specified.
|
|
278
|
+
*
|
|
279
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-grant-permissions
|
|
280
|
+
*/
|
|
281
|
+
async grantPermissions(permissions, options) {
|
|
282
|
+
await this.rpc('grantPermissions', [permissions, options]);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Clears all permission overrides for the browser context.
|
|
286
|
+
*
|
|
287
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-clear-permissions
|
|
288
|
+
*/
|
|
289
|
+
async clearPermissions() {
|
|
290
|
+
await this.rpc('clearPermissions', []);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Adds a script which would be evaluated in one of the following scenarios: whenever a page is created in the context or navigated.
|
|
294
|
+
*
|
|
295
|
+
* @remarks
|
|
296
|
+
* The script is evaluated before any page script. Use when you want to inject JavaScript before the page loads.
|
|
297
|
+
*
|
|
298
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-add-init-script
|
|
299
|
+
*/
|
|
300
|
+
async addInitScript(script, arg) {
|
|
301
|
+
const _script = serializeFunctionSource(script);
|
|
302
|
+
await this.rpc('addInitScript', [_script, arg]);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Adds a function called name on the window object of every frame in every page in the context.
|
|
306
|
+
*
|
|
307
|
+
* @remarks
|
|
308
|
+
* When called, the function executes callback and returns a Promise which resolves to the return value of callback. The first argument of the callback function contains information about the caller.
|
|
309
|
+
*
|
|
310
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-expose-binding
|
|
311
|
+
*/
|
|
312
|
+
async exposeBinding(name, callback, options) {
|
|
313
|
+
const _callback = serializeFunctionSource(callback);
|
|
314
|
+
await this.rpc('exposeBinding', [name, _callback, options]);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Routing provides the capability to modify network requests that are made by any page in the browser context.
|
|
318
|
+
*
|
|
319
|
+
* @remarks
|
|
320
|
+
* Once routing is enabled, every request matching the url pattern will stall unless it is continued, fulfilled, or aborted.
|
|
321
|
+
*
|
|
322
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-route
|
|
323
|
+
*/
|
|
324
|
+
async route(url, handler, options) {
|
|
325
|
+
const _handler = serializeFunctionSource(handler);
|
|
326
|
+
await this.rpc('route', [url, _handler, options]);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* If specified, network requests that are made in the context will be served from the HAR file.
|
|
330
|
+
* @param har - Path to a HAR file with recorded network data.
|
|
331
|
+
*
|
|
332
|
+
* @remarks
|
|
333
|
+
* Read more about Replaying from HAR.
|
|
334
|
+
*
|
|
335
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-route-from-har
|
|
336
|
+
*/
|
|
337
|
+
async routeFromHAR(har, options) {
|
|
338
|
+
await this.rpc('routeFromHAR', [har, options]);
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Removes a route created with browserContext.route(). When handler is not specified, removes all routes for the url.
|
|
342
|
+
*
|
|
343
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-unroute
|
|
344
|
+
*/
|
|
345
|
+
async unroute(url, handler) {
|
|
346
|
+
const _handler = serializeFunctionSource(handler);
|
|
347
|
+
await this.rpc('unroute', [url, _handler]);
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Removes all routes created with browserContext.route() and browserContext.routeFromHAR().
|
|
351
|
+
*
|
|
352
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-unroute-all
|
|
353
|
+
*/
|
|
354
|
+
async unrouteAll(options) {
|
|
355
|
+
await this.rpc('unrouteAll', [options]);
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Sets extra HTTP headers that will be sent with every request in the context.
|
|
359
|
+
*
|
|
360
|
+
* @remarks
|
|
361
|
+
* These headers are merged with page-specific extra HTTP headers set with page.setExtraHTTPHeaders(). If page overrides a particular header, page-specific header value will be used instead of the browser context header value.
|
|
362
|
+
*
|
|
363
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-set-extra-http-headers
|
|
364
|
+
*/
|
|
365
|
+
async setExtraHTTPHeaders(headers) {
|
|
366
|
+
await this.rpc('setExtraHTTPHeaders', [headers]);
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Sets HTTP credentials for HTTP authentication.
|
|
370
|
+
*
|
|
371
|
+
* @remarks
|
|
372
|
+
* Deprecated: Browsers may cache credentials after successful authentication. Create a new browser context instead.
|
|
373
|
+
*
|
|
374
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-set-http-credentials
|
|
375
|
+
*/
|
|
376
|
+
async setHTTPCredentials(httpCredentials) {
|
|
377
|
+
await this.rpc('setHTTPCredentials', [httpCredentials]);
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Sets whether to emulate network being offline for the browser context.
|
|
381
|
+
*
|
|
382
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-set-offline
|
|
383
|
+
*/
|
|
384
|
+
async setOffline(offline) {
|
|
385
|
+
await this.rpc('setOffline', [offline]);
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Sets the contexts geolocation. Passing null clears geolocation.
|
|
389
|
+
*
|
|
390
|
+
* @remarks
|
|
391
|
+
* Requires the geolocation permission to be granted.
|
|
392
|
+
*
|
|
393
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-set-geolocation
|
|
394
|
+
*/
|
|
395
|
+
async setGeolocation(geolocation) {
|
|
396
|
+
await this.rpc('setGeolocation', [geolocation]);
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Returns storage state for this browser context.
|
|
400
|
+
*
|
|
401
|
+
* @remarks
|
|
402
|
+
* Contains current cookies and local storage snapshot.
|
|
403
|
+
*
|
|
404
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-storage-state
|
|
405
|
+
*/
|
|
406
|
+
async storageState(options) {
|
|
407
|
+
return this.rpc('storageState', [options]);
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Waits for event to fire and passes its value into the predicate function.
|
|
411
|
+
*
|
|
412
|
+
* @remarks
|
|
413
|
+
* Returns when the predicate returns truthy value. Will throw an error if the context closes before the event is fired.
|
|
414
|
+
*
|
|
415
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-wait-for-event
|
|
416
|
+
*/
|
|
417
|
+
async waitForEvent(event, optionsOrPredicate) {
|
|
418
|
+
return this.rpc('waitForEvent', [event, optionsOrPredicate]);
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Allows modifying WebSocket connections made by pages in the context.
|
|
422
|
+
* @param url - URL pattern to match WebSocket connections.
|
|
423
|
+
* @param handler - Handler function to route the WebSocket.
|
|
424
|
+
*
|
|
425
|
+
* @remarks
|
|
426
|
+
* Only WebSockets created after this method was called will be routed. It is recommended to call this method before creating any pages.
|
|
427
|
+
*
|
|
428
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-route-web-socket
|
|
429
|
+
*/
|
|
430
|
+
async routeWebSocket(url, handler) {
|
|
431
|
+
const _handler = serializeFunctionSource(handler);
|
|
432
|
+
await this.rpc('routeWebSocket', [url, _handler]);
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Closes the browser context. All the pages that belong to the browser context will be closed.
|
|
436
|
+
*
|
|
437
|
+
* @remarks
|
|
438
|
+
* The default browser context cannot be closed.
|
|
439
|
+
*
|
|
440
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-close
|
|
441
|
+
*/
|
|
442
|
+
async close(options) {
|
|
443
|
+
await this.rpc('close', [options]);
|
|
444
|
+
this.markClosed();
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Returns all background pages in the context.
|
|
448
|
+
*
|
|
449
|
+
* @remarks
|
|
450
|
+
* Deprecated. Background pages are only supported on Chromium-based browsers.
|
|
451
|
+
*
|
|
452
|
+
* @see https://playwright.dev/docs/api/class-browsercontext#browser-context-background-pages
|
|
453
|
+
*/
|
|
454
|
+
async backgroundPages() {
|
|
455
|
+
const pageIds = await this.rpc('backgroundPages', []);
|
|
456
|
+
return pageIds.map((id) => this.createPage(id));
|
|
457
|
+
}
|
|
458
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED FILE - DO NOT EDIT
|
|
3
|
+
*
|
|
4
|
+
* Generated from: packages/automation-spec/src/drivers/playwright/methods/
|
|
5
|
+
* Run `pnpm generate:playwright` to regenerate.
|
|
6
|
+
*/
|
|
7
|
+
import type { HasHandleId, SimpleRpcSender } from '../../../internal/transport.js';
|
|
8
|
+
import type { PlaywrightNewContextOptions, PlaywrightNewPageOptions, PlaywrightStartTracingOptions } from '../types.js';
|
|
9
|
+
import { RemoteBase } from '../remote-base.js';
|
|
10
|
+
import type { RemotePlaywrightBrowserContext } from './browser-context.js';
|
|
11
|
+
import type { RemotePlaywrightPage } from './page.js';
|
|
12
|
+
/**
|
|
13
|
+
* RemotePlaywrightBrowser - Remote Playwright Browser API over RPC.
|
|
14
|
+
*
|
|
15
|
+
* @see https://playwright.dev/docs/api/class-browser
|
|
16
|
+
*/
|
|
17
|
+
export declare class RemotePlaywrightBrowser extends RemoteBase {
|
|
18
|
+
constructor(id: string, sendRpc: SimpleRpcSender, createBrowserContext: (id: string) => RemotePlaywrightBrowserContext, createPage: (id: string) => RemotePlaywrightPage);
|
|
19
|
+
private _listeners;
|
|
20
|
+
private createBrowserContext;
|
|
21
|
+
private createPage;
|
|
22
|
+
/**
|
|
23
|
+
* Stops Chromium Tracing and returns the trace data.
|
|
24
|
+
* @remarks This is a Chromium-only API.
|
|
25
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-stop-tracing
|
|
26
|
+
*/
|
|
27
|
+
stopTracing(): Promise<Buffer>;
|
|
28
|
+
/**
|
|
29
|
+
* Removes all listeners for the specified event, or all events if no event is specified.
|
|
30
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-remove-all-listeners
|
|
31
|
+
*/
|
|
32
|
+
removeAllListeners(event?: string): this;
|
|
33
|
+
/**
|
|
34
|
+
* Get the browser type name (chromium, firefox, or webkit) that was used to launch this browser.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* Note: Returns the name string. This is async in the remote SDK, unlike the native Playwright API.
|
|
38
|
+
*
|
|
39
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-browser-type
|
|
40
|
+
*/
|
|
41
|
+
browserType(): Promise<'chromium' | 'firefox' | 'webkit'>;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the browser version.
|
|
44
|
+
*
|
|
45
|
+
* @remarks
|
|
46
|
+
* Note: This is async in the remote SDK, unlike the native Playwright API.
|
|
47
|
+
*
|
|
48
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-version
|
|
49
|
+
*/
|
|
50
|
+
version(): Promise<string>;
|
|
51
|
+
/**
|
|
52
|
+
* Indicates that the browser is connected.
|
|
53
|
+
*
|
|
54
|
+
* @remarks
|
|
55
|
+
* Note: This is async in the remote SDK, unlike the native Playwright API.
|
|
56
|
+
*
|
|
57
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-is-connected
|
|
58
|
+
*/
|
|
59
|
+
isConnected(): Promise<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* Returns an array of all open browser contexts.
|
|
62
|
+
*
|
|
63
|
+
* @remarks
|
|
64
|
+
* In a newly created browser, this will return zero browser contexts. Note: This is async in the remote SDK, unlike the native Playwright API.
|
|
65
|
+
*
|
|
66
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-contexts
|
|
67
|
+
*/
|
|
68
|
+
contexts(): Promise<RemotePlaywrightBrowserContext[]>;
|
|
69
|
+
/**
|
|
70
|
+
* Creates a new browser context. It will not share cookies/cache with other browser contexts.
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* If directly using this method to create BrowserContexts, it is best practice to explicitly close the returned context via browserContext.close() when your code is done with the BrowserContext, and before calling browser.close().
|
|
74
|
+
*
|
|
75
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-new-context
|
|
76
|
+
*/
|
|
77
|
+
newContext(options?: PlaywrightNewContextOptions): Promise<RemotePlaywrightBrowserContext>;
|
|
78
|
+
/**
|
|
79
|
+
* Creates a new page in a new browser context. Closing this page will close the context as well.
|
|
80
|
+
*
|
|
81
|
+
* @remarks
|
|
82
|
+
* This is a convenience API that should only be used for single-page scenarios and short snippets. Production code and testing frameworks should explicitly create browser.newContext() followed by browserContext.newPage() to control their exact life times.
|
|
83
|
+
*
|
|
84
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-new-page
|
|
85
|
+
*/
|
|
86
|
+
newPage(options?: PlaywrightNewPageOptions): Promise<RemotePlaywrightPage>;
|
|
87
|
+
/**
|
|
88
|
+
* Returns the newly created browser session.
|
|
89
|
+
*
|
|
90
|
+
* @remarks
|
|
91
|
+
* CDP Sessions are only supported on Chromium-based browsers.
|
|
92
|
+
*
|
|
93
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-new-browser-cdp-session
|
|
94
|
+
*/
|
|
95
|
+
newBrowserCDPSession(): Promise<{
|
|
96
|
+
sessionId: string;
|
|
97
|
+
}>;
|
|
98
|
+
/**
|
|
99
|
+
* Starts Chromium Tracing.
|
|
100
|
+
* @param page - Optional page to capture screenshots from.
|
|
101
|
+
* @param options - Tracing options.
|
|
102
|
+
*
|
|
103
|
+
* @remarks
|
|
104
|
+
* This is a Chromium-only API. Only one trace can be active at a time per browser.
|
|
105
|
+
*
|
|
106
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-start-tracing
|
|
107
|
+
*/
|
|
108
|
+
startTracing(page?: HasHandleId, options?: PlaywrightStartTracingOptions): Promise<void>;
|
|
109
|
+
/**
|
|
110
|
+
* Closes the browser and all of its pages (if any were opened).
|
|
111
|
+
*
|
|
112
|
+
* @remarks
|
|
113
|
+
* The Browser object itself is considered to be disposed and cannot be used anymore. This is similar to force-quitting the browser.
|
|
114
|
+
*
|
|
115
|
+
* @see https://playwright.dev/docs/api/class-browser#browser-close
|
|
116
|
+
*/
|
|
117
|
+
close(options?: {
|
|
118
|
+
reason?: string;
|
|
119
|
+
}): Promise<void>;
|
|
120
|
+
}
|