@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,169 @@
1
+ /**
2
+ * AUTO-GENERATED FILE - DO NOT EDIT
3
+ *
4
+ * Generated from: packages/automation-spec/src/drivers/puppeteer/methods/puppeteer-methods.ts
5
+ * Run `pnpm generate:puppeteer` to regenerate.
6
+ */
7
+ /**
8
+ * Type guard to check if a value is a serialized HTTPResponse.
9
+ */
10
+ export function isSerializedHTTPResponse(value) {
11
+ return (typeof value === 'object' &&
12
+ value !== null &&
13
+ 'responseId' in value &&
14
+ 'url' in value &&
15
+ 'status' in value);
16
+ }
17
+ /**
18
+ * RemotePuppeteerHTTPResponse - Remote Puppeteer HTTPResponse API over RPC.
19
+ *
20
+ * @see https://pptr.dev/api/puppeteer.httpresponse
21
+ */
22
+ export class RemotePuppeteerHTTPResponse {
23
+ sendRpc;
24
+ _responseId;
25
+ _factories;
26
+ constructor(sendRpc, data, factories) {
27
+ this.sendRpc = sendRpc;
28
+ this._responseId = data.responseId;
29
+ this._factories = factories;
30
+ this._data = data;
31
+ }
32
+ _data;
33
+ /**
34
+ * The response ID.
35
+ * @internal
36
+ */
37
+ get id() {
38
+ return this._data.responseId;
39
+ }
40
+ /**
41
+ * Helper to send RPC calls prefixed with the response ID.
42
+ * @internal
43
+ */
44
+ rpc(method, args) {
45
+ return this.sendRpc(`response:${this._data.responseId}:${method}`, args);
46
+ }
47
+ /**
48
+ * The URL of the response.
49
+ * @see https://pptr.dev/api/puppeteer.httpresponse.url
50
+ */
51
+ url() {
52
+ return this._data.url;
53
+ }
54
+ /**
55
+ * The status code of the response (e.g., 200, 404).
56
+ * @see https://pptr.dev/api/puppeteer.httpresponse.status
57
+ */
58
+ status() {
59
+ return this._data.status;
60
+ }
61
+ /**
62
+ * The status text of the response (e.g., 'OK', 'Not Found').
63
+ * @see https://pptr.dev/api/puppeteer.httpresponse.statustext
64
+ */
65
+ statusText() {
66
+ return this._data.statusText;
67
+ }
68
+ /**
69
+ * An object with HTTP headers associated with the response.
70
+ * All header names are lowercase.
71
+ * @see https://pptr.dev/api/puppeteer.httpresponse.headers
72
+ */
73
+ headers() {
74
+ return this._data.headers;
75
+ }
76
+ /**
77
+ * True if the response was successful (status in the range 200-299).
78
+ * @see https://pptr.dev/api/puppeteer.httpresponse.ok
79
+ */
80
+ ok() {
81
+ return this._data.ok;
82
+ }
83
+ /**
84
+ * True if the response was served from the browser's disk cache.
85
+ * @see https://pptr.dev/api/puppeteer.httpresponse.fromcache
86
+ */
87
+ fromCache() {
88
+ return this._data.fromCache;
89
+ }
90
+ /**
91
+ * True if the response was served by a service worker.
92
+ * @see https://pptr.dev/api/puppeteer.httpresponse.fromserviceworker
93
+ */
94
+ fromServiceWorker() {
95
+ return this._data.fromServiceWorker;
96
+ }
97
+ /**
98
+ * The IP address and port number used to connect to the remote server.
99
+ * @see https://pptr.dev/api/puppeteer.httpresponse.remoteaddress
100
+ */
101
+ remoteAddress() {
102
+ return this._data.remoteAddress ?? { ip: undefined, port: undefined };
103
+ }
104
+ /**
105
+ * Security details if the response was received over HTTPS, null otherwise.
106
+ * @see https://pptr.dev/api/puppeteer.httpresponse.securitydetails
107
+ */
108
+ securityDetails() {
109
+ return this._data.securityDetails ?? null;
110
+ }
111
+ /**
112
+ * Timing information related to the response.
113
+ * @see https://pptr.dev/api/puppeteer.httpresponse.timing
114
+ */
115
+ timing() {
116
+ return this._data.timing ?? null;
117
+ }
118
+ /**
119
+ * Promise which resolves to a buffer with the response body.
120
+ * @see https://pptr.dev/api/puppeteer.httpresponse.buffer
121
+ */
122
+ async buffer() {
123
+ const base64 = await this.rpc('buffer', []);
124
+ return Buffer.from(base64, 'base64');
125
+ }
126
+ /**
127
+ * Promise which resolves to the response body as text.
128
+ * @see https://pptr.dev/api/puppeteer.httpresponse.text
129
+ */
130
+ async text() {
131
+ return this.rpc('text', []);
132
+ }
133
+ /**
134
+ * Promise which resolves to the response body as JSON.
135
+ * @throws Error if the response body cannot be parsed as JSON.
136
+ * @see https://pptr.dev/api/puppeteer.httpresponse.json
137
+ */
138
+ async json() {
139
+ return this.rpc('json', []);
140
+ }
141
+ /**
142
+ * Alias for text() - returns the response body as a string.
143
+ * Note: In real Puppeteer, content() is an internal method.
144
+ * This is provided for convenience.
145
+ */
146
+ async content() {
147
+ return this.text();
148
+ }
149
+ /**
150
+ * A matching HTTPRequest object for this response.
151
+ * @see https://pptr.dev/api/puppeteer.httpresponse.request
152
+ */
153
+ request() {
154
+ if (!this._data.requestId || !this._factories?.createRequest) {
155
+ return null;
156
+ }
157
+ return this._factories.createRequest(this._data.requestId);
158
+ }
159
+ /**
160
+ * The Frame that initiated this response, or null if navigating to error pages.
161
+ * @see https://pptr.dev/api/puppeteer.httpresponse.frame
162
+ */
163
+ frame() {
164
+ if (!this._data.frameId || !this._factories?.createFrame) {
165
+ return null;
166
+ }
167
+ return this._factories.createFrame(this._data.frameId);
168
+ }
169
+ }
@@ -0,0 +1,104 @@
1
+ /**
2
+ * AUTO-GENERATED FILE - DO NOT EDIT
3
+ *
4
+ * Generated from: packages/automation-spec/src/drivers/puppeteer/methods/puppeteer-methods.ts
5
+ * Run `pnpm generate:puppeteer` to regenerate.
6
+ */
7
+ import type { RemotePuppeteerElementHandle } from './element-handle.js';
8
+ /** RPC sender function type for JSHandle operations. */
9
+ export type JSHandleRpcSender = <T = unknown>(method: string, args: unknown[]) => Promise<T>;
10
+ /** Factory function to create new JSHandle instances. */
11
+ export type JSHandleFactory = (handleId: string) => RemotePuppeteerJSHandle;
12
+ /** Factory function to create ElementHandle instances (for asElement). */
13
+ export type ElementHandleFactoryForJSHandle = (handleId: string) => RemotePuppeteerElementHandle;
14
+ /** Serialized JSHandle response from backend. */
15
+ export interface SerializedJSHandle {
16
+ __bctrl_type: 'JSHandle';
17
+ id: string;
18
+ handleType: 'JSHandle' | 'ElementHandle';
19
+ }
20
+ /** Type guard for serialized JSHandle responses. */
21
+ export declare function isSerializedJSHandle(value: unknown): value is SerializedJSHandle;
22
+ /**
23
+ * RemotePuppeteerJSHandle - Remote Puppeteer JSHandle API over RPC.
24
+ *
25
+ * @see https://pptr.dev/api/puppeteer.jshandle
26
+ */
27
+ export declare class RemotePuppeteerJSHandle<T = unknown> {
28
+ readonly handleId: string;
29
+ protected sendRpc: JSHandleRpcSender;
30
+ protected createJSHandle: JSHandleFactory;
31
+ protected elementHandleFactory: ElementHandleFactoryForJSHandle | undefined;
32
+ constructor(handleId: string, sendRpc: JSHandleRpcSender, createJSHandle: JSHandleFactory, elementHandleFactory?: ElementHandleFactoryForJSHandle);
33
+ protected _disposed: boolean;
34
+ /**
35
+ * Check if this handle has been disposed.
36
+ */
37
+ get disposed(): boolean;
38
+ /**
39
+ * Internal RPC helper that checks disposed state.
40
+ */
41
+ protected rpc<R = unknown>(method: string, args: unknown[]): Promise<R>;
42
+ /**
43
+ * Evaluates the given function with the current handle as its first argument.
44
+ * @param pageFunction - Function to evaluate, receiving this handle's value as first arg.
45
+ * @param args - Additional arguments to pass to the function.
46
+ *
47
+ * @remarks
48
+ * The element/value referenced by this handle is passed as the first argument to the function.
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const windowHandle = await page.evaluateHandle(() => window);
53
+ * const href = await windowHandle.evaluate(win => win.location.href);
54
+ * ```
55
+ *
56
+ * @see https://pptr.dev/api/puppeteer.jshandle.evaluate
57
+ */
58
+ evaluate<Params extends unknown[] = unknown[], Func extends (value: T, ...args: Params) => unknown = (value: T, ...args: Params) => unknown>(pageFunction: Func | string, ...args: unknown[]): Promise<Awaited<ReturnType<Func>>>;
59
+ /**
60
+ * Evaluates the given function with the current handle as its first argument and returns a new JSHandle.
61
+ * @param pageFunction - Function to evaluate, receiving this handle's value as first arg.
62
+ * @param args - Additional arguments to pass to the function.
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const windowHandle = await page.evaluateHandle(() => window);
67
+ * const documentHandle = await windowHandle.evaluateHandle(win => win.document);
68
+ * ```
69
+ *
70
+ * @see https://pptr.dev/api/puppeteer.jshandle.evaluatehandle
71
+ */
72
+ evaluateHandle<Params extends unknown[] = unknown[], Func extends (value: T, ...args: Params) => unknown = (value: T, ...args: Params) => unknown>(pageFunction: Func | string, ...args: unknown[]): Promise<RemotePuppeteerJSHandle<Awaited<ReturnType<Func>>>>;
73
+ /**
74
+ * Fetches a single property from the referenced object.
75
+ * @param propertyName - The name of the property to fetch.
76
+ * @returns A JSHandle for the property value.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const handle = await page.evaluateHandle(() => ({ foo: 'bar' }));
81
+ * const fooHandle = await handle.getProperty('foo');
82
+ * console.log(await fooHandle.jsonValue()); // 'bar'
83
+ * ```
84
+ *
85
+ * @see https://pptr.dev/api/puppeteer.jshandle.getproperty
86
+ */
87
+ getProperty<K extends keyof T>(propertyName: K | string): Promise<RemotePuppeteerJSHandle<T[K]>>;
88
+ /**
89
+ * Returns a vanilla object representing the serializable portions of the referenced object.
90
+ *
91
+ * @remarks
92
+ * If the object has a `toJSON` function, it will **not** be called.
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const handle = await page.evaluateHandle(() => ({ foo: 'bar' }));
97
+ * const value = await handle.jsonValue();
98
+ * console.log(value); // { foo: 'bar' }
99
+ * ```
100
+ *
101
+ * @see https://pptr.dev/api/puppeteer.jshandle.jsonvalue
102
+ */
103
+ jsonValue(): Promise<T>;
104
+ }
@@ -0,0 +1,125 @@
1
+ /**
2
+ * AUTO-GENERATED FILE - DO NOT EDIT
3
+ *
4
+ * Generated from: packages/automation-spec/src/drivers/puppeteer/methods/puppeteer-methods.ts
5
+ * Run `pnpm generate:puppeteer` to regenerate.
6
+ */
7
+ import { serializeFunctionSource } from '../../../internal/transport.js';
8
+ /** Type guard for serialized JSHandle responses. */
9
+ export function isSerializedJSHandle(value) {
10
+ return (value !== null &&
11
+ typeof value === 'object' &&
12
+ '__bctrl_type' in value &&
13
+ value.__bctrl_type === 'JSHandle' &&
14
+ 'id' in value &&
15
+ typeof value.id === 'string' &&
16
+ 'handleType' in value &&
17
+ typeof value.handleType === 'string');
18
+ }
19
+ /**
20
+ * RemotePuppeteerJSHandle - Remote Puppeteer JSHandle API over RPC.
21
+ *
22
+ * @see https://pptr.dev/api/puppeteer.jshandle
23
+ */
24
+ export class RemotePuppeteerJSHandle {
25
+ handleId;
26
+ sendRpc;
27
+ createJSHandle;
28
+ elementHandleFactory;
29
+ constructor(handleId, sendRpc, createJSHandle, elementHandleFactory) {
30
+ this.handleId = handleId;
31
+ this.sendRpc = sendRpc;
32
+ this.createJSHandle = createJSHandle;
33
+ this.elementHandleFactory = elementHandleFactory;
34
+ }
35
+ _disposed = false;
36
+ /**
37
+ * Check if this handle has been disposed.
38
+ */
39
+ get disposed() {
40
+ return this._disposed;
41
+ }
42
+ /**
43
+ * Internal RPC helper that checks disposed state.
44
+ */
45
+ async rpc(method, args) {
46
+ if (this._disposed) {
47
+ throw new Error('JSHandle has been disposed');
48
+ }
49
+ return this.sendRpc(method, args);
50
+ }
51
+ /**
52
+ * Evaluates the given function with the current handle as its first argument.
53
+ * @param pageFunction - Function to evaluate, receiving this handle's value as first arg.
54
+ * @param args - Additional arguments to pass to the function.
55
+ *
56
+ * @remarks
57
+ * The element/value referenced by this handle is passed as the first argument to the function.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const windowHandle = await page.evaluateHandle(() => window);
62
+ * const href = await windowHandle.evaluate(win => win.location.href);
63
+ * ```
64
+ *
65
+ * @see https://pptr.dev/api/puppeteer.jshandle.evaluate
66
+ */
67
+ async evaluate(pageFunction, ...args) {
68
+ const _pageFunction = serializeFunctionSource(pageFunction);
69
+ return this.rpc('evaluate', [_pageFunction, ...args]);
70
+ }
71
+ /**
72
+ * Evaluates the given function with the current handle as its first argument and returns a new JSHandle.
73
+ * @param pageFunction - Function to evaluate, receiving this handle's value as first arg.
74
+ * @param args - Additional arguments to pass to the function.
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * const windowHandle = await page.evaluateHandle(() => window);
79
+ * const documentHandle = await windowHandle.evaluateHandle(win => win.document);
80
+ * ```
81
+ *
82
+ * @see https://pptr.dev/api/puppeteer.jshandle.evaluatehandle
83
+ */
84
+ async evaluateHandle(pageFunction, ...args) {
85
+ const _pageFunction = serializeFunctionSource(pageFunction);
86
+ const result = await this.rpc('evaluateHandle', [_pageFunction, ...args]);
87
+ return this.createJSHandle(result.id);
88
+ }
89
+ /**
90
+ * Fetches a single property from the referenced object.
91
+ * @param propertyName - The name of the property to fetch.
92
+ * @returns A JSHandle for the property value.
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * const handle = await page.evaluateHandle(() => ({ foo: 'bar' }));
97
+ * const fooHandle = await handle.getProperty('foo');
98
+ * console.log(await fooHandle.jsonValue()); // 'bar'
99
+ * ```
100
+ *
101
+ * @see https://pptr.dev/api/puppeteer.jshandle.getproperty
102
+ */
103
+ async getProperty(propertyName) {
104
+ const result = await this.rpc('getProperty', [propertyName]);
105
+ return this.createJSHandle(result.id);
106
+ }
107
+ /**
108
+ * Returns a vanilla object representing the serializable portions of the referenced object.
109
+ *
110
+ * @remarks
111
+ * If the object has a `toJSON` function, it will **not** be called.
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const handle = await page.evaluateHandle(() => ({ foo: 'bar' }));
116
+ * const value = await handle.jsonValue();
117
+ * console.log(value); // { foo: 'bar' }
118
+ * ```
119
+ *
120
+ * @see https://pptr.dev/api/puppeteer.jshandle.jsonvalue
121
+ */
122
+ async jsonValue() {
123
+ return this.rpc('jsonValue', []);
124
+ }
125
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * AUTO-GENERATED FILE - DO NOT EDIT
3
+ *
4
+ * Generated from: packages/automation-spec/src/drivers/puppeteer/methods/puppeteer-methods.ts
5
+ * Run `pnpm generate:puppeteer` to regenerate.
6
+ */
7
+ import type { SimpleRpcSender } from '../../../internal/transport.js';
8
+ import { RemoteComponentBase } from '../remote-base.js';
9
+ import type { PuppeteerKeyDownOptions, PuppeteerKeyInput, PuppeteerKeyPressOptions, PuppeteerKeyboardTypeOptions } from '../types.js';
10
+ /**
11
+ * RemotePuppeteerKeyboard - Remote Puppeteer Keyboard API over RPC.
12
+ *
13
+ * @see https://pptr.dev/api/puppeteer.keyboard
14
+ */
15
+ export declare class RemotePuppeteerKeyboard extends RemoteComponentBase {
16
+ constructor(sendRpc: SimpleRpcSender);
17
+ /**
18
+ * Dispatches a `keydown` event.
19
+ * @param key - Name of key to press, such as `ArrowLeft`.
20
+ * @param options - Options for the key down event.
21
+ *
22
+ * @remarks
23
+ * If `key` is a single character and no modifier keys besides `Shift` are being held down,
24
+ * a `keypress`/`input` event will also be generated. The `text` option can be specified
25
+ * to force an input event to be generated.
26
+ *
27
+ * Modifier keys DO affect `keyboard.down`. Holding down `Shift` will type the text in upper case.
28
+ *
29
+ * @see https://pptr.dev/api/puppeteer.keyboard.down
30
+ */
31
+ down(key: PuppeteerKeyInput, options?: PuppeteerKeyDownOptions): Promise<void>;
32
+ /**
33
+ * Dispatches a `keyup` event.
34
+ * @param key - Name of key to release, such as `ArrowLeft`.
35
+ *
36
+ * @see https://pptr.dev/api/puppeteer.keyboard.up
37
+ */
38
+ up(key: PuppeteerKeyInput): Promise<void>;
39
+ /**
40
+ * Shortcut for `Keyboard.down` and `Keyboard.up`.
41
+ * @param key - Name of key to press, such as `ArrowLeft`.
42
+ * @param options - Options for the key press event including `delay`, `text`, and `commands`.
43
+ *
44
+ * @remarks
45
+ * If `key` is a single character and no modifier keys besides `Shift` are being held down,
46
+ * a `keypress`/`input` event will also be generated. The `text` option can be specified
47
+ * to force an input event to be generated.
48
+ *
49
+ * Modifier keys DO affect `keyboard.press`. Holding down `Shift` will type the text in upper case.
50
+ *
51
+ * @see https://pptr.dev/api/puppeteer.keyboard.press
52
+ */
53
+ press(key: PuppeteerKeyInput, options?: PuppeteerKeyPressOptions): Promise<void>;
54
+ /**
55
+ * Dispatches a `keypress` and `input` event. This does not send a `keydown` or `keyup` event.
56
+ * @param char - Character to send into the page.
57
+ *
58
+ * @remarks
59
+ * Modifier keys DO NOT affect `keyboard.sendCharacter`. Holding down `Shift` will not
60
+ * type the text in upper case.
61
+ *
62
+ * @see https://pptr.dev/api/puppeteer.keyboard.sendcharacter
63
+ */
64
+ sendCharacter(char: string): Promise<void>;
65
+ /**
66
+ * Sends a `keydown`, `keypress`/`input`, and `keyup` event for each character in the text.
67
+ * @param text - A text to type into a focused element.
68
+ * @param options - Options for typing including `delay` between key presses.
69
+ *
70
+ * @remarks
71
+ * To press a special key, like `Control` or `ArrowDown`, use `Keyboard.press`.
72
+ *
73
+ * Modifier keys DO NOT affect `keyboard.type`. Holding down `Shift` will not type the text
74
+ * in upper case.
75
+ *
76
+ * @see https://pptr.dev/api/puppeteer.keyboard.type
77
+ */
78
+ type(text: string, options?: PuppeteerKeyboardTypeOptions): Promise<void>;
79
+ }
@@ -0,0 +1,89 @@
1
+ /**
2
+ * AUTO-GENERATED FILE - DO NOT EDIT
3
+ *
4
+ * Generated from: packages/automation-spec/src/drivers/puppeteer/methods/puppeteer-methods.ts
5
+ * Run `pnpm generate:puppeteer` to regenerate.
6
+ */
7
+ import { RemoteComponentBase } from '../remote-base.js';
8
+ /**
9
+ * RemotePuppeteerKeyboard - Remote Puppeteer Keyboard API over RPC.
10
+ *
11
+ * @see https://pptr.dev/api/puppeteer.keyboard
12
+ */
13
+ export class RemotePuppeteerKeyboard extends RemoteComponentBase {
14
+ constructor(sendRpc) {
15
+ super(sendRpc);
16
+ }
17
+ /**
18
+ * Dispatches a `keydown` event.
19
+ * @param key - Name of key to press, such as `ArrowLeft`.
20
+ * @param options - Options for the key down event.
21
+ *
22
+ * @remarks
23
+ * If `key` is a single character and no modifier keys besides `Shift` are being held down,
24
+ * a `keypress`/`input` event will also be generated. The `text` option can be specified
25
+ * to force an input event to be generated.
26
+ *
27
+ * Modifier keys DO affect `keyboard.down`. Holding down `Shift` will type the text in upper case.
28
+ *
29
+ * @see https://pptr.dev/api/puppeteer.keyboard.down
30
+ */
31
+ async down(key, options) {
32
+ await this.rpc('keyboard.down', [key, options]);
33
+ }
34
+ /**
35
+ * Dispatches a `keyup` event.
36
+ * @param key - Name of key to release, such as `ArrowLeft`.
37
+ *
38
+ * @see https://pptr.dev/api/puppeteer.keyboard.up
39
+ */
40
+ async up(key) {
41
+ await this.rpc('keyboard.up', [key]);
42
+ }
43
+ /**
44
+ * Shortcut for `Keyboard.down` and `Keyboard.up`.
45
+ * @param key - Name of key to press, such as `ArrowLeft`.
46
+ * @param options - Options for the key press event including `delay`, `text`, and `commands`.
47
+ *
48
+ * @remarks
49
+ * If `key` is a single character and no modifier keys besides `Shift` are being held down,
50
+ * a `keypress`/`input` event will also be generated. The `text` option can be specified
51
+ * to force an input event to be generated.
52
+ *
53
+ * Modifier keys DO affect `keyboard.press`. Holding down `Shift` will type the text in upper case.
54
+ *
55
+ * @see https://pptr.dev/api/puppeteer.keyboard.press
56
+ */
57
+ async press(key, options) {
58
+ await this.rpc('keyboard.press', [key, options]);
59
+ }
60
+ /**
61
+ * Dispatches a `keypress` and `input` event. This does not send a `keydown` or `keyup` event.
62
+ * @param char - Character to send into the page.
63
+ *
64
+ * @remarks
65
+ * Modifier keys DO NOT affect `keyboard.sendCharacter`. Holding down `Shift` will not
66
+ * type the text in upper case.
67
+ *
68
+ * @see https://pptr.dev/api/puppeteer.keyboard.sendcharacter
69
+ */
70
+ async sendCharacter(char) {
71
+ await this.rpc('keyboard.sendCharacter', [char]);
72
+ }
73
+ /**
74
+ * Sends a `keydown`, `keypress`/`input`, and `keyup` event for each character in the text.
75
+ * @param text - A text to type into a focused element.
76
+ * @param options - Options for typing including `delay` between key presses.
77
+ *
78
+ * @remarks
79
+ * To press a special key, like `Control` or `ArrowDown`, use `Keyboard.press`.
80
+ *
81
+ * Modifier keys DO NOT affect `keyboard.type`. Holding down `Shift` will not type the text
82
+ * in upper case.
83
+ *
84
+ * @see https://pptr.dev/api/puppeteer.keyboard.type
85
+ */
86
+ async type(text, options) {
87
+ await this.rpc('keyboard.type', [text, options]);
88
+ }
89
+ }