@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.
Files changed (260) hide show
  1. package/README.md +75 -0
  2. package/dist/agents/browser-use/index.d.ts +1 -0
  3. package/dist/agents/browser-use/index.js +9 -0
  4. package/dist/agents/browser-use/namespace.d.ts +39 -0
  5. package/dist/agents/browser-use/namespace.js +93 -0
  6. package/dist/agents/index.d.ts +2 -0
  7. package/dist/agents/index.js +17 -0
  8. package/dist/agents/stagehand/core.d.ts +93 -0
  9. package/dist/agents/stagehand/core.js +144 -0
  10. package/dist/agents/stagehand/index.d.ts +3 -0
  11. package/dist/agents/stagehand/index.js +24 -0
  12. package/dist/agents/stagehand/namespace.d.ts +51 -0
  13. package/dist/agents/stagehand/namespace.js +65 -0
  14. package/dist/ai-credentials/client.d.ts +12 -0
  15. package/dist/ai-credentials/client.js +70 -0
  16. package/dist/ai-credentials/index.d.ts +1 -0
  17. package/dist/ai-credentials/index.js +1 -0
  18. package/dist/base/event-binding.d.ts +7 -0
  19. package/dist/base/event-binding.js +23 -0
  20. package/dist/base/types.d.ts +109 -0
  21. package/dist/base/types.js +4 -0
  22. package/dist/bctrl.d.ts +37 -0
  23. package/dist/bctrl.js +77 -0
  24. package/dist/browser-extensions/client.d.ts +15 -0
  25. package/dist/browser-extensions/client.js +72 -0
  26. package/dist/browser-extensions/index.d.ts +2 -0
  27. package/dist/browser-extensions/index.js +1 -0
  28. package/dist/browser-profiles/client.d.ts +11 -0
  29. package/dist/browser-profiles/client.js +63 -0
  30. package/dist/browser-profiles/index.d.ts +1 -0
  31. package/dist/browser-profiles/index.js +1 -0
  32. package/dist/captcha/index.d.ts +1 -0
  33. package/dist/captcha/index.js +1 -0
  34. package/dist/captcha/namespace.d.ts +34 -0
  35. package/dist/captcha/namespace.js +41 -0
  36. package/dist/client/index.d.ts +1 -0
  37. package/dist/client/index.js +1 -0
  38. package/dist/client/rpc.d.ts +83 -0
  39. package/dist/client/rpc.js +354 -0
  40. package/dist/config.d.ts +5 -0
  41. package/dist/config.js +28 -0
  42. package/dist/constants/browser.d.ts +2 -0
  43. package/dist/constants/browser.js +1 -0
  44. package/dist/contracts/agent-tools.d.ts +45 -0
  45. package/dist/contracts/agent-tools.js +31 -0
  46. package/dist/contracts/automation.d.ts +265 -0
  47. package/dist/contracts/automation.js +109 -0
  48. package/dist/contracts/browser-management.d.ts +179 -0
  49. package/dist/contracts/browser-management.js +95 -0
  50. package/dist/contracts/browser-use.d.ts +136 -0
  51. package/dist/contracts/browser-use.js +93 -0
  52. package/dist/contracts/captcha.d.ts +114 -0
  53. package/dist/contracts/captcha.js +40 -0
  54. package/dist/contracts/desktop.d.ts +223 -0
  55. package/dist/contracts/desktop.js +121 -0
  56. package/dist/contracts/drivers/playwright.d.ts +2008 -0
  57. package/dist/contracts/drivers/playwright.js +2033 -0
  58. package/dist/contracts/drivers/puppeteer.d.ts +1221 -0
  59. package/dist/contracts/drivers/puppeteer.js +941 -0
  60. package/dist/contracts/drivers/selenium.d.ts +156 -0
  61. package/dist/contracts/drivers/selenium.js +61 -0
  62. package/dist/contracts/drivers/stagehand.d.ts +155 -0
  63. package/dist/contracts/drivers/stagehand.js +7 -0
  64. package/dist/contracts/extensions.d.ts +13 -0
  65. package/dist/contracts/extensions.js +9 -0
  66. package/dist/contracts/index.d.ts +13 -0
  67. package/dist/contracts/index.js +13 -0
  68. package/dist/contracts/public-api.d.ts +360 -0
  69. package/dist/contracts/public-api.js +17 -0
  70. package/dist/contracts/runtime.d.ts +81 -0
  71. package/dist/contracts/runtime.js +16 -0
  72. package/dist/contracts/stagehand.d.ts +253 -0
  73. package/dist/contracts/stagehand.js +145 -0
  74. package/dist/contracts/storage.d.ts +51 -0
  75. package/dist/contracts/storage.js +56 -0
  76. package/dist/contracts/vault.d.ts +119 -0
  77. package/dist/contracts/vault.js +112 -0
  78. package/dist/contracts/version.d.ts +3 -0
  79. package/dist/contracts/version.js +16 -0
  80. package/dist/desktop.d.ts +2 -0
  81. package/dist/desktop.js +3 -0
  82. package/dist/drivers/desktop/index.d.ts +65 -0
  83. package/dist/drivers/desktop/index.js +68 -0
  84. package/dist/drivers/desktop/session.d.ts +313 -0
  85. package/dist/drivers/desktop/session.js +432 -0
  86. package/dist/drivers/playwright/event-emitter.d.ts +160 -0
  87. package/dist/drivers/playwright/event-emitter.js +297 -0
  88. package/dist/drivers/playwright/generated/api-request-context.d.ts +137 -0
  89. package/dist/drivers/playwright/generated/api-request-context.js +154 -0
  90. package/dist/drivers/playwright/generated/api-response.d.ts +119 -0
  91. package/dist/drivers/playwright/generated/api-response.js +123 -0
  92. package/dist/drivers/playwright/generated/browser-context.d.ts +284 -0
  93. package/dist/drivers/playwright/generated/browser-context.js +458 -0
  94. package/dist/drivers/playwright/generated/browser.d.ts +120 -0
  95. package/dist/drivers/playwright/generated/browser.js +151 -0
  96. package/dist/drivers/playwright/generated/clock.d.ts +80 -0
  97. package/dist/drivers/playwright/generated/clock.js +94 -0
  98. package/dist/drivers/playwright/generated/console-message.d.ts +94 -0
  99. package/dist/drivers/playwright/generated/console-message.js +89 -0
  100. package/dist/drivers/playwright/generated/coverage.d.ts +57 -0
  101. package/dist/drivers/playwright/generated/coverage.js +66 -0
  102. package/dist/drivers/playwright/generated/dialog.d.ts +79 -0
  103. package/dist/drivers/playwright/generated/dialog.js +80 -0
  104. package/dist/drivers/playwright/generated/element-handle.d.ts +399 -0
  105. package/dist/drivers/playwright/generated/element-handle.js +501 -0
  106. package/dist/drivers/playwright/generated/frame-locator.d.ts +34 -0
  107. package/dist/drivers/playwright/generated/frame-locator.js +63 -0
  108. package/dist/drivers/playwright/generated/frame.d.ts +557 -0
  109. package/dist/drivers/playwright/generated/frame.js +634 -0
  110. package/dist/drivers/playwright/generated/js-handle.d.ts +72 -0
  111. package/dist/drivers/playwright/generated/js-handle.js +92 -0
  112. package/dist/drivers/playwright/generated/keyboard.d.ts +103 -0
  113. package/dist/drivers/playwright/generated/keyboard.js +113 -0
  114. package/dist/drivers/playwright/generated/locator.d.ts +795 -0
  115. package/dist/drivers/playwright/generated/locator.js +974 -0
  116. package/dist/drivers/playwright/generated/mouse.d.ts +97 -0
  117. package/dist/drivers/playwright/generated/mouse.js +109 -0
  118. package/dist/drivers/playwright/generated/page.d.ts +762 -0
  119. package/dist/drivers/playwright/generated/page.js +988 -0
  120. package/dist/drivers/playwright/generated/touchscreen.d.ts +34 -0
  121. package/dist/drivers/playwright/generated/touchscreen.js +37 -0
  122. package/dist/drivers/playwright/generated/tracing.d.ts +78 -0
  123. package/dist/drivers/playwright/generated/tracing.js +80 -0
  124. package/dist/drivers/playwright/generated/worker.d.ts +53 -0
  125. package/dist/drivers/playwright/generated/worker.js +59 -0
  126. package/dist/drivers/playwright/index.d.ts +19 -0
  127. package/dist/drivers/playwright/index.js +20 -0
  128. package/dist/drivers/playwright/remote-base.d.ts +62 -0
  129. package/dist/drivers/playwright/remote-base.js +86 -0
  130. package/dist/drivers/playwright/types.d.ts +148 -0
  131. package/dist/drivers/playwright/types.js +8 -0
  132. package/dist/drivers/puppeteer/errors.d.ts +50 -0
  133. package/dist/drivers/puppeteer/errors.js +71 -0
  134. package/dist/drivers/puppeteer/event-emitter.d.ts +145 -0
  135. package/dist/drivers/puppeteer/event-emitter.js +259 -0
  136. package/dist/drivers/puppeteer/generated/accessibility.d.ts +77 -0
  137. package/dist/drivers/puppeteer/generated/accessibility.js +74 -0
  138. package/dist/drivers/puppeteer/generated/browser-context.d.ts +116 -0
  139. package/dist/drivers/puppeteer/generated/browser-context.js +168 -0
  140. package/dist/drivers/puppeteer/generated/browser.d.ts +169 -0
  141. package/dist/drivers/puppeteer/generated/browser.js +246 -0
  142. package/dist/drivers/puppeteer/generated/console-message.d.ts +54 -0
  143. package/dist/drivers/puppeteer/generated/console-message.js +69 -0
  144. package/dist/drivers/puppeteer/generated/coverage.d.ts +49 -0
  145. package/dist/drivers/puppeteer/generated/coverage.js +57 -0
  146. package/dist/drivers/puppeteer/generated/dialog.d.ts +46 -0
  147. package/dist/drivers/puppeteer/generated/dialog.js +60 -0
  148. package/dist/drivers/puppeteer/generated/element-handle.d.ts +261 -0
  149. package/dist/drivers/puppeteer/generated/element-handle.js +341 -0
  150. package/dist/drivers/puppeteer/generated/file-chooser.d.ts +34 -0
  151. package/dist/drivers/puppeteer/generated/file-chooser.js +43 -0
  152. package/dist/drivers/puppeteer/generated/frame.d.ts +221 -0
  153. package/dist/drivers/puppeteer/generated/frame.js +302 -0
  154. package/dist/drivers/puppeteer/generated/http-request.d.ts +195 -0
  155. package/dist/drivers/puppeteer/generated/http-request.js +243 -0
  156. package/dist/drivers/puppeteer/generated/http-response.d.ts +142 -0
  157. package/dist/drivers/puppeteer/generated/http-response.js +169 -0
  158. package/dist/drivers/puppeteer/generated/js-handle.d.ts +104 -0
  159. package/dist/drivers/puppeteer/generated/js-handle.js +125 -0
  160. package/dist/drivers/puppeteer/generated/keyboard.d.ts +79 -0
  161. package/dist/drivers/puppeteer/generated/keyboard.js +89 -0
  162. package/dist/drivers/puppeteer/generated/locator.d.ts +141 -0
  163. package/dist/drivers/puppeteer/generated/locator.js +164 -0
  164. package/dist/drivers/puppeteer/generated/mouse.d.ts +74 -0
  165. package/dist/drivers/puppeteer/generated/mouse.js +94 -0
  166. package/dist/drivers/puppeteer/generated/page.d.ts +604 -0
  167. package/dist/drivers/puppeteer/generated/page.js +776 -0
  168. package/dist/drivers/puppeteer/generated/target.d.ts +105 -0
  169. package/dist/drivers/puppeteer/generated/target.js +123 -0
  170. package/dist/drivers/puppeteer/generated/touchscreen.d.ts +87 -0
  171. package/dist/drivers/puppeteer/generated/touchscreen.js +103 -0
  172. package/dist/drivers/puppeteer/generated/tracing.d.ts +38 -0
  173. package/dist/drivers/puppeteer/generated/tracing.js +43 -0
  174. package/dist/drivers/puppeteer/generated/web-worker.d.ts +63 -0
  175. package/dist/drivers/puppeteer/generated/web-worker.js +73 -0
  176. package/dist/drivers/puppeteer/index.d.ts +21 -0
  177. package/dist/drivers/puppeteer/index.js +23 -0
  178. package/dist/drivers/puppeteer/remote-base.d.ts +57 -0
  179. package/dist/drivers/puppeteer/remote-base.js +79 -0
  180. package/dist/drivers/puppeteer/types.d.ts +178 -0
  181. package/dist/drivers/puppeteer/types.js +8 -0
  182. package/dist/drivers/selenium/driver.d.ts +28 -0
  183. package/dist/drivers/selenium/driver.js +169 -0
  184. package/dist/drivers/selenium/element.d.ts +34 -0
  185. package/dist/drivers/selenium/element.js +73 -0
  186. package/dist/drivers/selenium/index.d.ts +3 -0
  187. package/dist/drivers/selenium/index.js +5 -0
  188. package/dist/drivers/selenium/types.d.ts +2 -0
  189. package/dist/drivers/selenium/types.js +12 -0
  190. package/dist/drivers/stagehand/generated/context.d.ts +127 -0
  191. package/dist/drivers/stagehand/generated/context.js +153 -0
  192. package/dist/drivers/stagehand/generated/locator.d.ts +324 -0
  193. package/dist/drivers/stagehand/generated/locator.js +368 -0
  194. package/dist/drivers/stagehand/generated/page.d.ts +377 -0
  195. package/dist/drivers/stagehand/generated/page.js +439 -0
  196. package/dist/drivers/stagehand/generated/response.d.ts +197 -0
  197. package/dist/drivers/stagehand/generated/response.js +232 -0
  198. package/dist/drivers/stagehand/index.d.ts +5 -0
  199. package/dist/drivers/stagehand/index.js +8 -0
  200. package/dist/drivers/stagehand/types.d.ts +1 -0
  201. package/dist/drivers/stagehand/types.js +7 -0
  202. package/dist/errors.d.ts +47 -0
  203. package/dist/errors.js +157 -0
  204. package/dist/extensions/client.d.ts +47 -0
  205. package/dist/extensions/client.js +154 -0
  206. package/dist/extensions/index.d.ts +1 -0
  207. package/dist/extensions/index.js +1 -0
  208. package/dist/index.d.ts +12 -0
  209. package/dist/index.js +23 -0
  210. package/dist/internal/dev-client.d.ts +5 -0
  211. package/dist/internal/dev-client.js +9 -0
  212. package/dist/internal/rpc-targets.d.ts +17 -0
  213. package/dist/internal/rpc-targets.js +58 -0
  214. package/dist/internal/serialization.d.ts +32 -0
  215. package/dist/internal/serialization.js +42 -0
  216. package/dist/internal/transport.d.ts +24 -0
  217. package/dist/internal/transport.js +29 -0
  218. package/dist/playwright.d.ts +1 -0
  219. package/dist/playwright.js +2 -0
  220. package/dist/puppeteer.d.ts +1 -0
  221. package/dist/puppeteer.js +2 -0
  222. package/dist/selenium.d.ts +1 -0
  223. package/dist/selenium.js +2 -0
  224. package/dist/stagehand.d.ts +1 -0
  225. package/dist/stagehand.js +2 -0
  226. package/dist/storage/client.d.ts +151 -0
  227. package/dist/storage/client.js +329 -0
  228. package/dist/storage/index.d.ts +2 -0
  229. package/dist/storage/index.js +4 -0
  230. package/dist/telemetry.d.ts +18 -0
  231. package/dist/telemetry.js +93 -0
  232. package/dist/updates/client.d.ts +8 -0
  233. package/dist/updates/client.js +128 -0
  234. package/dist/updates/index.d.ts +1 -0
  235. package/dist/updates/index.js +1 -0
  236. package/dist/utils/http.d.ts +39 -0
  237. package/dist/utils/http.js +88 -0
  238. package/dist/utils/index.d.ts +4 -0
  239. package/dist/utils/index.js +4 -0
  240. package/dist/utils/logger.d.ts +27 -0
  241. package/dist/utils/logger.js +74 -0
  242. package/dist/utils/schema.d.ts +17 -0
  243. package/dist/utils/schema.js +31 -0
  244. package/dist/utils/url.d.ts +5 -0
  245. package/dist/utils/url.js +7 -0
  246. package/dist/vault/client.d.ts +43 -0
  247. package/dist/vault/client.js +123 -0
  248. package/dist/vault/index.d.ts +1 -0
  249. package/dist/vault/index.js +1 -0
  250. package/dist/version.d.ts +1 -0
  251. package/dist/version.js +4 -0
  252. package/dist/workspaces/browser-runtime.d.ts +251 -0
  253. package/dist/workspaces/browser-runtime.js +1025 -0
  254. package/dist/workspaces/client.d.ts +48 -0
  255. package/dist/workspaces/client.js +222 -0
  256. package/dist/workspaces/index.d.ts +2 -0
  257. package/dist/workspaces/index.js +2 -0
  258. package/dist/workspaces/runtime-event-pump.d.ts +65 -0
  259. package/dist/workspaces/runtime-event-pump.js +716 -0
  260. 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
+ }