@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,57 @@
1
+ /**
2
+ * RemoteBase - Base class for all remote Puppeteer objects.
3
+ *
4
+ * Provides common functionality:
5
+ * - Closed state tracking
6
+ * - RPC wrapper with closed-state checks
7
+ * - Common dispose/close patterns
8
+ *
9
+ * Classes that extend RemoteBase get automatic protection against
10
+ * calling methods on disposed/closed objects.
11
+ */
12
+ import type { SimpleRpcSender } from '../../internal/transport.js';
13
+ /**
14
+ * Base class for remote Puppeteer objects.
15
+ * Handles common patterns like closed-state checking and RPC wrapping.
16
+ */
17
+ export declare class RemoteBase {
18
+ readonly id: string;
19
+ protected sendRpc: SimpleRpcSender;
20
+ protected _isClosed: boolean;
21
+ constructor(id: string, sendRpc: SimpleRpcSender);
22
+ /**
23
+ * Protected RPC wrapper that checks closed state before sending.
24
+ * Use this instead of sendRpc directly to get automatic closed-state protection.
25
+ */
26
+ protected rpc<T>(method: string, args: unknown[]): Promise<T>;
27
+ /**
28
+ * Check if this object has been closed/disposed.
29
+ */
30
+ get isClosed(): boolean;
31
+ /**
32
+ * Mark this object as closed.
33
+ * Called internally after close/dispose operations.
34
+ */
35
+ protected markClosed(): void;
36
+ }
37
+ /**
38
+ * Base class for remote objects that don't have an ID.
39
+ * Used for nested components like Mouse, Keyboard that operate on their parent.
40
+ */
41
+ export declare class RemoteComponentBase {
42
+ protected sendRpc: SimpleRpcSender;
43
+ protected _isClosed: boolean;
44
+ constructor(sendRpc: SimpleRpcSender);
45
+ /**
46
+ * Protected RPC wrapper that checks closed state before sending.
47
+ */
48
+ protected rpc<T>(method: string, args: unknown[]): Promise<T>;
49
+ /**
50
+ * Check if this object has been closed/disposed.
51
+ */
52
+ get isClosed(): boolean;
53
+ /**
54
+ * Mark this object as closed.
55
+ */
56
+ protected markClosed(): void;
57
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * RemoteBase - Base class for all remote Puppeteer objects.
3
+ *
4
+ * Provides common functionality:
5
+ * - Closed state tracking
6
+ * - RPC wrapper with closed-state checks
7
+ * - Common dispose/close patterns
8
+ *
9
+ * Classes that extend RemoteBase get automatic protection against
10
+ * calling methods on disposed/closed objects.
11
+ */
12
+ /**
13
+ * Base class for remote Puppeteer objects.
14
+ * Handles common patterns like closed-state checking and RPC wrapping.
15
+ */
16
+ export class RemoteBase {
17
+ id;
18
+ sendRpc;
19
+ _isClosed = false;
20
+ constructor(id, sendRpc) {
21
+ this.id = id;
22
+ this.sendRpc = sendRpc;
23
+ }
24
+ /**
25
+ * Protected RPC wrapper that checks closed state before sending.
26
+ * Use this instead of sendRpc directly to get automatic closed-state protection.
27
+ */
28
+ async rpc(method, args) {
29
+ if (this._isClosed) {
30
+ throw new Error(`Cannot call ${method}: object is closed`);
31
+ }
32
+ return this.sendRpc(method, args);
33
+ }
34
+ /**
35
+ * Check if this object has been closed/disposed.
36
+ */
37
+ get isClosed() {
38
+ return this._isClosed;
39
+ }
40
+ /**
41
+ * Mark this object as closed.
42
+ * Called internally after close/dispose operations.
43
+ */
44
+ markClosed() {
45
+ this._isClosed = true;
46
+ }
47
+ }
48
+ /**
49
+ * Base class for remote objects that don't have an ID.
50
+ * Used for nested components like Mouse, Keyboard that operate on their parent.
51
+ */
52
+ export class RemoteComponentBase {
53
+ sendRpc;
54
+ _isClosed = false;
55
+ constructor(sendRpc) {
56
+ this.sendRpc = sendRpc;
57
+ }
58
+ /**
59
+ * Protected RPC wrapper that checks closed state before sending.
60
+ */
61
+ async rpc(method, args) {
62
+ if (this._isClosed) {
63
+ throw new Error(`Cannot call ${method}: object is closed`);
64
+ }
65
+ return this.sendRpc(method, args);
66
+ }
67
+ /**
68
+ * Check if this object has been closed/disposed.
69
+ */
70
+ get isClosed() {
71
+ return this._isClosed;
72
+ }
73
+ /**
74
+ * Mark this object as closed.
75
+ */
76
+ markClosed() {
77
+ this._isClosed = true;
78
+ }
79
+ }
@@ -0,0 +1,178 @@
1
+ export type { PuppeteerGotoOptions, PuppeteerWaitForNavigationOptions, PuppeteerReloadOptions, PuppeteerWaitForNetworkIdleOptions, PuppeteerWaitUntil, PuppeteerWaitUntilOption, PuppeteerHTTPResponse, PuppeteerRemoteAddress, PuppeteerSecurityDetails, PuppeteerResourceTiming, PuppeteerMouseButton, PuppeteerPoint, PuppeteerOffset, PuppeteerMouseOptions, PuppeteerMouseClickOptions, PuppeteerClickOptions, PuppeteerMouseMoveOptions, PuppeteerMouseWheelOptions, PuppeteerDragDataItem, PuppeteerDragData, PuppeteerKeyInput, PuppeteerKeyboardTypeOptions, PuppeteerKeyDownOptions, PuppeteerKeyPressOptions, PuppeteerWaitForOptions, PuppeteerScreenshotClip, PuppeteerClipRegion, // deprecated alias
2
+ PuppeteerImageFormat, PuppeteerScreenshotOptions, PuppeteerPDFMargin, PuppeteerPaperFormat, PuppeteerPDFOptions, PuppeteerCookiePartitionKey, PuppeteerCookieSameSite, PuppeteerCookiePriority, PuppeteerCookieSourceScheme, PuppeteerCookie, PuppeteerCookieData, PuppeteerDeleteCookiesRequest, PuppeteerWindowState, PuppeteerWindowBounds, PuppeteerTargetType, PuppeteerTarget, PuppeteerWaitForTargetOptions, PuppeteerTargetFilter, PuppeteerDownloadPolicy, PuppeteerDownloadBehavior, PuppeteerBrowserContextOptions, PuppeteerPermission, PuppeteerDevice, PuppeteerIdleOverrides, PuppeteerMediaFeature, PuppeteerNetworkConditions, PuppeteerVisionDeficiency, PuppeteerResourceType, PuppeteerErrorCode, PuppeteerInterceptResolutionAction, PuppeteerInterceptResolutionState, PuppeteerContinueRequestOverrides, PuppeteerResponseForRequest, PuppeteerInitiatorType, PuppeteerInitiator, PuppeteerHTTPRequest, PuppeteerFrame, PuppeteerWebWorker, PuppeteerViewport, PuppeteerGeolocation, PuppeteerBoundingBox, PuppeteerBoxModel, PuppeteerSelectOption, PuppeteerSelectValue, PuppeteerSerializedElement, PuppeteerCreditCard, PuppeteerAutofillData, PuppeteerWaitForSelectorOptions, PuppeteerFrameAddScriptTagOptions, PuppeteerFrameAddStyleTagOptions, PuppeteerVisibilityOption, PuppeteerActionOptions, PuppeteerLocatorScrollOptions, PuppeteerLocatorClickOptions, PuppeteerSerializedAXNode, PuppeteerSnapshotOptions, PuppeteerTracingOptions, PuppeteerDialogType, PuppeteerDialog, PuppeteerConsoleMessageType, PuppeteerConsoleMessageLocation, PuppeteerConsoleMessage, PuppeteerRemoteObjectType, PuppeteerRemoteObjectSubtype, PuppeteerRemoteObject, PuppeteerTouchHandle, PuppeteerCSSCoverageOptions, PuppeteerJSCoverageOptions, PuppeteerCoverageRange, PuppeteerCoverageEntry, PuppeteerJSCoverageEntry, PuppeteerEventType, PuppeteerPageEvent, PuppeteerBrowserEvent, PuppeteerBrowserContextEvent, } from '../../contracts/drivers/puppeteer.js';
3
+ import type { PuppeteerClickOptions, PuppeteerKeyInput, PuppeteerKeyboardTypeOptions, PuppeteerKeyPressOptions, PuppeteerScreenshotOptions, PuppeteerBoundingBox, PuppeteerBoxModel, PuppeteerDragData, PuppeteerAutofillData, PuppeteerWaitForSelectorOptions, PuppeteerPoint, PuppeteerHTTPRequest, PuppeteerHTTPResponse, PuppeteerConsoleMessage, PuppeteerDialog, PuppeteerFrame, PuppeteerTarget, PuppeteerWebWorker } from '../../contracts/drivers/puppeteer.js';
4
+ export interface PuppeteerElementHandle {
5
+ click(options?: PuppeteerClickOptions): Promise<void>;
6
+ tap(): Promise<void>;
7
+ hover(): Promise<void>;
8
+ focus(): Promise<void>;
9
+ type(text: string, options?: PuppeteerKeyboardTypeOptions): Promise<void>;
10
+ press(key: PuppeteerKeyInput, options?: PuppeteerKeyPressOptions): Promise<void>;
11
+ select(...values: string[]): Promise<string[]>;
12
+ uploadFile(...filePaths: string[]): Promise<void>;
13
+ scrollIntoView(): Promise<void>;
14
+ autofill(data: PuppeteerAutofillData): Promise<void>;
15
+ $(selector: string): Promise<PuppeteerElementHandle | null>;
16
+ $$(selector: string): Promise<PuppeteerElementHandle[]>;
17
+ $x(expression: string): Promise<PuppeteerElementHandle[]>;
18
+ getProperty(propertyName: string): Promise<unknown>;
19
+ jsonValue(): Promise<unknown>;
20
+ backendNodeId(): Promise<number>;
21
+ isVisible(): Promise<boolean>;
22
+ isHidden(): Promise<boolean>;
23
+ isIntersectingViewport(options?: {
24
+ threshold?: number;
25
+ }): Promise<boolean>;
26
+ boundingBox(): Promise<PuppeteerBoundingBox | null>;
27
+ boxModel(): Promise<PuppeteerBoxModel | null>;
28
+ clickablePoint(offset?: PuppeteerPoint): Promise<PuppeteerPoint>;
29
+ screenshot(options?: PuppeteerScreenshotOptions): Promise<string | Buffer>;
30
+ evaluate<T = unknown>(pageFunction: string | ((element: Element, ...args: unknown[]) => T | Promise<T>), ...args: unknown[]): Promise<T>;
31
+ $eval<T = unknown>(selector: string, pageFunction: string | ((element: Element, ...args: unknown[]) => T | Promise<T>), ...args: unknown[]): Promise<T>;
32
+ $$eval<T = unknown>(selector: string, pageFunction: string | ((elements: Element[], ...args: unknown[]) => T | Promise<T>), ...args: unknown[]): Promise<T>;
33
+ contentFrame(): Promise<unknown | null>;
34
+ frame(): Promise<unknown | null>;
35
+ drag(target: PuppeteerPoint | PuppeteerElementHandle): Promise<PuppeteerDragData | void>;
36
+ /** @deprecated Do not use. `dragenter` will automatically be performed during dragging. */
37
+ dragEnter(data?: PuppeteerDragData): Promise<void>;
38
+ /** @deprecated Do not use. `dragover` will automatically be performed during dragging. */
39
+ dragOver(data?: PuppeteerDragData): Promise<void>;
40
+ dragAndDrop(target: PuppeteerElementHandle | PuppeteerPoint, options?: {
41
+ delay?: number;
42
+ }): Promise<void>;
43
+ drop(element: PuppeteerElementHandle): Promise<void>;
44
+ touchStart(): Promise<TouchHandle>;
45
+ touchMove(touch?: TouchHandle): Promise<void>;
46
+ touchEnd(): Promise<void>;
47
+ waitForSelector(selector: string, options?: PuppeteerWaitForSelectorOptions): Promise<PuppeteerElementHandle | null>;
48
+ toElement<K extends keyof HTMLElementTagNameMap>(tagName: K): Promise<PuppeteerElementHandle>;
49
+ asLocator(): unknown;
50
+ dispose(): Promise<void>;
51
+ }
52
+ export interface TouchHandle {
53
+ /**
54
+ * Dispatches a `touchMove` event for this touch.
55
+ * @see https://pptr.dev/api/puppeteer.touchhandle.move
56
+ */
57
+ move(x: number, y: number): Promise<void>;
58
+ /**
59
+ * Dispatches a `touchend` event for this touch.
60
+ * @see https://pptr.dev/api/puppeteer.touchhandle.end
61
+ */
62
+ end(): Promise<void>;
63
+ }
64
+ export type EvaluateFunc<V = void, T = unknown> = V extends void ? string | ((...args: unknown[]) => T | Promise<T>) : string | ((first: V, ...args: unknown[]) => T | Promise<T>);
65
+ export type PuppeteerEvaluateFunction<T = unknown> = EvaluateFunc<void, T>;
66
+ export type PuppeteerEvalFunction<T = unknown> = EvaluateFunc<Element, T>;
67
+ export type PuppeteerEvalAllFunction<T = unknown> = EvaluateFunc<Element[], T>;
68
+ import type { PuppeteerGotoOptions, PuppeteerWaitForNavigationOptions, PuppeteerReloadOptions, PuppeteerWaitForOptions, PuppeteerViewport, PuppeteerCookie, PuppeteerPDFOptions, PuppeteerSelectValue } from '../../contracts/drivers/puppeteer.js';
69
+ export interface PuppeteerPage {
70
+ goto(url: string, options?: PuppeteerGotoOptions): Promise<PuppeteerHTTPResponse | null>;
71
+ reload(options?: PuppeteerReloadOptions): Promise<PuppeteerHTTPResponse | null>;
72
+ goBack(options?: PuppeteerWaitForNavigationOptions): Promise<PuppeteerHTTPResponse | null>;
73
+ goForward(options?: PuppeteerWaitForNavigationOptions): Promise<PuppeteerHTTPResponse | null>;
74
+ url(): string;
75
+ title(): Promise<string>;
76
+ content(): Promise<string>;
77
+ click(selector: string, options?: PuppeteerClickOptions): Promise<void>;
78
+ type(selector: string, text: string, options?: PuppeteerKeyboardTypeOptions): Promise<void>;
79
+ focus(selector: string): Promise<void>;
80
+ hover(selector: string): Promise<void>;
81
+ select(selector: string, ...values: PuppeteerSelectValue[]): Promise<string[]>;
82
+ $(selector: string): Promise<PuppeteerElementHandle | null>;
83
+ $$(selector: string): Promise<PuppeteerElementHandle[]>;
84
+ $eval<T>(selector: string, pageFunction: PuppeteerEvalFunction<T>, ...args: unknown[]): Promise<T>;
85
+ $$eval<T>(selector: string, pageFunction: PuppeteerEvalAllFunction<T>, ...args: unknown[]): Promise<T>;
86
+ waitForSelector(selector: string, options?: PuppeteerWaitForOptions): Promise<PuppeteerElementHandle | null>;
87
+ waitForNavigation(options?: PuppeteerWaitForNavigationOptions): Promise<PuppeteerHTTPResponse | null>;
88
+ waitForTimeout(timeout: number): Promise<void>;
89
+ evaluate<T>(pageFunction: PuppeteerEvaluateFunction<T>, ...args: unknown[]): Promise<T>;
90
+ evaluateHandle<T>(pageFunction: PuppeteerEvaluateFunction<T>, ...args: unknown[]): Promise<unknown>;
91
+ screenshot(options?: PuppeteerScreenshotOptions): Promise<string | Buffer>;
92
+ pdf(options?: PuppeteerPDFOptions): Promise<Buffer>;
93
+ setViewport(viewport: PuppeteerViewport | null): Promise<void>;
94
+ viewport(): PuppeteerViewport | null;
95
+ cookies(...urls: string[]): Promise<PuppeteerCookie[]>;
96
+ setCookie(...cookies: PuppeteerCookie[]): Promise<void>;
97
+ deleteCookie(...cookies: {
98
+ name: string;
99
+ domain?: string;
100
+ path?: string;
101
+ }[]): Promise<void>;
102
+ close(): Promise<void>;
103
+ isClosed(): boolean;
104
+ bringToFront(): Promise<void>;
105
+ }
106
+ /**
107
+ * PageEvents - maps event names to their payload types.
108
+ * @see https://pptr.dev/api/puppeteer.pageevents
109
+ */
110
+ export interface PageEvents extends Record<string, unknown> {
111
+ /** Emitted when the page closes. */
112
+ close: undefined;
113
+ /** Emitted when JavaScript within the page calls console API methods. */
114
+ console: PuppeteerConsoleMessage;
115
+ /** Emitted when a JavaScript dialog appears (alert, prompt, confirm, beforeunload). */
116
+ dialog: PuppeteerDialog;
117
+ /** Emitted when the JavaScript DOMContentLoaded event is dispatched. */
118
+ domcontentloaded: undefined;
119
+ /** Emitted when the page crashes. */
120
+ error: Error;
121
+ /** Emitted when a frame is attached. */
122
+ frameattached: PuppeteerFrame;
123
+ /** Emitted when a frame is detached. */
124
+ framedetached: PuppeteerFrame;
125
+ /** Emitted when a frame is navigated to a new URL. */
126
+ framenavigated: PuppeteerFrame;
127
+ /** Emitted when the JavaScript load event is dispatched. */
128
+ load: undefined;
129
+ /** Emitted when console.timeStamp is called. */
130
+ metrics: {
131
+ title: string;
132
+ metrics: Record<string, number>;
133
+ };
134
+ /** Emitted when an uncaught exception happens within the page. */
135
+ pageerror: Error | unknown;
136
+ /** Emitted when the page opens a new tab or window. */
137
+ popup: PuppeteerPage | null;
138
+ /** Emitted when a page issues a request. */
139
+ request: PuppeteerHTTPRequest;
140
+ /** Emitted when a request fails. */
141
+ requestfailed: PuppeteerHTTPRequest;
142
+ /** Emitted when a request finishes successfully. */
143
+ requestfinished: PuppeteerHTTPRequest;
144
+ /** Emitted when a request is served from cache. */
145
+ requestservedfromcache: PuppeteerHTTPRequest;
146
+ /** Emitted when a response is received. */
147
+ response: PuppeteerHTTPResponse;
148
+ /** Emitted when a dedicated WebWorker is spawned by the page. */
149
+ workercreated: PuppeteerWebWorker;
150
+ /** Emitted when a dedicated WebWorker is destroyed by the page. */
151
+ workerdestroyed: PuppeteerWebWorker;
152
+ }
153
+ /**
154
+ * BrowserEvents - maps event names to their payload types.
155
+ * @see https://pptr.dev/api/puppeteer.browserevents
156
+ */
157
+ export interface BrowserEvents extends Record<string, unknown> {
158
+ /** Emitted when the browser is disconnected. */
159
+ disconnected: undefined;
160
+ /** Emitted when the URL of a target changes. */
161
+ targetchanged: PuppeteerTarget;
162
+ /** Emitted when a target is created. */
163
+ targetcreated: PuppeteerTarget;
164
+ /** Emitted when a target is destroyed. */
165
+ targetdestroyed: PuppeteerTarget;
166
+ }
167
+ /**
168
+ * BrowserContextEvents - maps event names to their payload types.
169
+ * @see https://pptr.dev/api/puppeteer.browsercontextevents
170
+ */
171
+ export interface BrowserContextEvents extends Record<string, unknown> {
172
+ /** Emitted when the URL of a target inside the context changes. */
173
+ targetchanged: PuppeteerTarget;
174
+ /** Emitted when a target is created inside the context. */
175
+ targetcreated: PuppeteerTarget;
176
+ /** Emitted when a target is destroyed inside the context. */
177
+ targetdestroyed: PuppeteerTarget;
178
+ }
@@ -0,0 +1,8 @@
1
+ // ============================================================================
2
+ // Puppeteer Type Definitions
3
+ // ============================================================================
4
+ //
5
+ // Driver option and payload types live in the SDK-local generated contract module.
6
+ // This file contains interface definitions for runtime objects with methods.
7
+ // ============================================================================
8
+ export {};
@@ -0,0 +1,28 @@
1
+ import type { WebDriver, WebElement, LocatorStrategy, Navigation, Options, TargetLocator } from './types.js';
2
+ import { type RpcSender } from '../../internal/transport.js';
3
+ /**
4
+ * Remote WebDriver implementation over RPC.
5
+ * Implements the Selenium WebDriver interface.
6
+ */
7
+ export declare class RemoteWebDriver implements WebDriver {
8
+ private sendRpc;
9
+ readonly pageId: string;
10
+ constructor(pageId: string, sendRpc: RpcSender);
11
+ private rpc;
12
+ get(url: string): Promise<void>;
13
+ getCurrentUrl(): Promise<string>;
14
+ getTitle(): Promise<string>;
15
+ getPageSource(): Promise<string>;
16
+ close(): Promise<void>;
17
+ quit(): Promise<void>;
18
+ findElement(locator: LocatorStrategy): Promise<WebElement>;
19
+ findElements(locator: LocatorStrategy): Promise<WebElement[]>;
20
+ executeScript<T>(script: string | ((...args: unknown[]) => T), ...args: unknown[]): Promise<T>;
21
+ executeAsyncScript<T>(script: string | ((...args: unknown[]) => T), ...args: unknown[]): Promise<T>;
22
+ takeScreenshot(): Promise<string>;
23
+ getWindowHandle(): Promise<string>;
24
+ getAllWindowHandles(): Promise<string[]>;
25
+ navigate(): Navigation;
26
+ manage(): Options;
27
+ switchTo(): TargetLocator;
28
+ }
@@ -0,0 +1,169 @@
1
+ // ============================================================================
2
+ // RemoteWebDriver - WebDriver over RPC
3
+ // ============================================================================
4
+ import { RemoteWebElement } from './element.js';
5
+ import { serializeFunctionSource } from '../../internal/transport.js';
6
+ /**
7
+ * Remote WebDriver implementation over RPC.
8
+ * Implements the Selenium WebDriver interface.
9
+ */
10
+ export class RemoteWebDriver {
11
+ sendRpc;
12
+ pageId;
13
+ constructor(pageId, sendRpc) {
14
+ this.sendRpc = sendRpc;
15
+ this.pageId = pageId;
16
+ }
17
+ rpc(method, args = []) {
18
+ return this.sendRpc('selenium', method, args, { pageId: this.pageId });
19
+ }
20
+ // Navigation
21
+ async get(url) {
22
+ await this.rpc('get', [url]);
23
+ }
24
+ async getCurrentUrl() {
25
+ return this.rpc('getCurrentUrl');
26
+ }
27
+ async getTitle() {
28
+ return this.rpc('getTitle');
29
+ }
30
+ async getPageSource() {
31
+ return this.rpc('getPageSource');
32
+ }
33
+ async close() {
34
+ await this.rpc('close');
35
+ }
36
+ async quit() {
37
+ await this.rpc('quit');
38
+ }
39
+ // Element finding
40
+ async findElement(locator) {
41
+ const elementId = await this.rpc('findElement', [locator]);
42
+ return new RemoteWebElement(elementId, this.pageId, this.sendRpc);
43
+ }
44
+ async findElements(locator) {
45
+ const elementIds = await this.rpc('findElements', [locator]);
46
+ return elementIds.map((id) => new RemoteWebElement(id, this.pageId, this.sendRpc));
47
+ }
48
+ // Script execution
49
+ async executeScript(script, ...args) {
50
+ const scriptStr = serializeFunctionSource(script);
51
+ return this.rpc('executeScript', [scriptStr, args]);
52
+ }
53
+ async executeAsyncScript(script, ...args) {
54
+ const scriptStr = serializeFunctionSource(script);
55
+ return this.rpc('executeAsyncScript', [scriptStr, args]);
56
+ }
57
+ // Screenshot
58
+ async takeScreenshot() {
59
+ return this.rpc('takeScreenshot');
60
+ }
61
+ // Window handles
62
+ async getWindowHandle() {
63
+ return this.rpc('getWindowHandle');
64
+ }
65
+ async getAllWindowHandles() {
66
+ return this.rpc('getAllWindowHandles');
67
+ }
68
+ // Navigation sub-interface
69
+ navigate() {
70
+ return {
71
+ to: async (url) => {
72
+ await this.rpc('navigate.to', [url]);
73
+ },
74
+ back: async () => {
75
+ await this.rpc('navigate.back');
76
+ },
77
+ forward: async () => {
78
+ await this.rpc('navigate.forward');
79
+ },
80
+ refresh: async () => {
81
+ await this.rpc('navigate.refresh');
82
+ },
83
+ };
84
+ }
85
+ // Options/manage sub-interface
86
+ manage() {
87
+ // Use arrow function to preserve 'this' and generic types
88
+ const rpc = (method, args = []) => this.rpc(method, args);
89
+ return {
90
+ addCookie: async (cookie) => {
91
+ await rpc('manage.addCookie', [cookie]);
92
+ },
93
+ deleteAllCookies: async () => {
94
+ await rpc('manage.deleteAllCookies');
95
+ },
96
+ deleteCookie: async (name) => {
97
+ await rpc('manage.deleteCookie', [name]);
98
+ },
99
+ getCookie: async (name) => {
100
+ return rpc('manage.getCookie', [name]);
101
+ },
102
+ getCookies: async () => {
103
+ return rpc('manage.getCookies');
104
+ },
105
+ window: () => ({
106
+ getRect: async () => {
107
+ return rpc('manage.window.getRect');
108
+ },
109
+ setRect: async (rect) => {
110
+ await rpc('manage.window.setRect', [rect]);
111
+ },
112
+ maximize: async () => {
113
+ await rpc('manage.window.maximize');
114
+ },
115
+ minimize: async () => {
116
+ await rpc('manage.window.minimize');
117
+ },
118
+ fullscreen: async () => {
119
+ await rpc('manage.window.fullscreen');
120
+ },
121
+ }),
122
+ };
123
+ }
124
+ // Target locator (switchTo)
125
+ switchTo() {
126
+ // Use arrow function to preserve 'this' and generic types
127
+ const rpc = (method, args = []) => this.rpc(method, args);
128
+ const sendRpc = this.sendRpc;
129
+ const pageId = this.pageId;
130
+ return {
131
+ window: async (nameOrHandle) => {
132
+ await rpc('switchTo.window', [nameOrHandle]);
133
+ },
134
+ frame: async (indexOrElement) => {
135
+ const arg = indexOrElement instanceof RemoteWebElement
136
+ ? { elementId: indexOrElement.id }
137
+ : indexOrElement;
138
+ await rpc('switchTo.frame', [arg]);
139
+ },
140
+ parentFrame: async () => {
141
+ await rpc('switchTo.parentFrame');
142
+ },
143
+ activeElement: async () => {
144
+ const elementId = await rpc('switchTo.activeElement');
145
+ return new RemoteWebElement(elementId, pageId, sendRpc);
146
+ },
147
+ alert: async () => {
148
+ await rpc('switchTo.alert');
149
+ return {
150
+ accept: async () => {
151
+ await rpc('alert.accept');
152
+ },
153
+ dismiss: async () => {
154
+ await rpc('alert.dismiss');
155
+ },
156
+ getText: async () => {
157
+ return rpc('alert.getText');
158
+ },
159
+ sendKeys: async (text) => {
160
+ await rpc('alert.sendKeys', [text]);
161
+ },
162
+ };
163
+ },
164
+ defaultContent: async () => {
165
+ await rpc('switchTo.defaultContent');
166
+ },
167
+ };
168
+ }
169
+ }
@@ -0,0 +1,34 @@
1
+ import type { WebElement, LocatorStrategy } from './types.js';
2
+ import type { RpcSender } from '../../internal/transport.js';
3
+ /**
4
+ * Remote WebElement implementation over RPC.
5
+ * Implements the WebDriver WebElement interface.
6
+ */
7
+ export declare class RemoteWebElement implements WebElement {
8
+ private elementId;
9
+ private pageId;
10
+ private sendRpc;
11
+ constructor(elementId: string, pageId: string, sendRpc: RpcSender);
12
+ get id(): string;
13
+ private rpc;
14
+ click(): Promise<void>;
15
+ sendKeys(...text: string[]): Promise<void>;
16
+ clear(): Promise<void>;
17
+ getText(): Promise<string>;
18
+ getAttribute(name: string): Promise<string | null>;
19
+ getCssValue(propertyName: string): Promise<string>;
20
+ getTagName(): Promise<string>;
21
+ isDisplayed(): Promise<boolean>;
22
+ isEnabled(): Promise<boolean>;
23
+ isSelected(): Promise<boolean>;
24
+ submit(): Promise<void>;
25
+ getRect(): Promise<{
26
+ x: number;
27
+ y: number;
28
+ width: number;
29
+ height: number;
30
+ }>;
31
+ takeScreenshot(): Promise<string>;
32
+ findElement(locator: LocatorStrategy): Promise<WebElement>;
33
+ findElements(locator: LocatorStrategy): Promise<WebElement[]>;
34
+ }
@@ -0,0 +1,73 @@
1
+ // ============================================================================
2
+ // RemoteWebElement - WebDriver Element over RPC
3
+ // ============================================================================
4
+ /**
5
+ * Remote WebElement implementation over RPC.
6
+ * Implements the WebDriver WebElement interface.
7
+ */
8
+ export class RemoteWebElement {
9
+ elementId;
10
+ pageId;
11
+ sendRpc;
12
+ constructor(elementId, pageId, sendRpc) {
13
+ this.elementId = elementId;
14
+ this.pageId = pageId;
15
+ this.sendRpc = sendRpc;
16
+ }
17
+ get id() {
18
+ return this.elementId;
19
+ }
20
+ rpc(method, args = []) {
21
+ return this.sendRpc('selenium-element', method, [this.elementId, ...args], {
22
+ pageId: this.pageId,
23
+ });
24
+ }
25
+ async click() {
26
+ await this.rpc('click');
27
+ }
28
+ async sendKeys(...text) {
29
+ await this.rpc('sendKeys', [text.join('')]);
30
+ }
31
+ async clear() {
32
+ await this.rpc('clear');
33
+ }
34
+ async getText() {
35
+ return this.rpc('getText');
36
+ }
37
+ async getAttribute(name) {
38
+ return this.rpc('getAttribute', [name]);
39
+ }
40
+ async getCssValue(propertyName) {
41
+ return this.rpc('getCssValue', [propertyName]);
42
+ }
43
+ async getTagName() {
44
+ return this.rpc('getTagName');
45
+ }
46
+ async isDisplayed() {
47
+ return this.rpc('isDisplayed');
48
+ }
49
+ async isEnabled() {
50
+ return this.rpc('isEnabled');
51
+ }
52
+ async isSelected() {
53
+ return this.rpc('isSelected');
54
+ }
55
+ async submit() {
56
+ await this.rpc('submit');
57
+ }
58
+ async getRect() {
59
+ return this.rpc('getRect');
60
+ }
61
+ async takeScreenshot() {
62
+ return this.rpc('takeScreenshot');
63
+ }
64
+ // Additional methods for finding child elements
65
+ async findElement(locator) {
66
+ const elementId = await this.rpc('findElement', [locator]);
67
+ return new RemoteWebElement(elementId, this.pageId, this.sendRpc);
68
+ }
69
+ async findElements(locator) {
70
+ const elementIds = await this.rpc('findElements', [locator]);
71
+ return elementIds.map((id) => new RemoteWebElement(id, this.pageId, this.sendRpc));
72
+ }
73
+ }
@@ -0,0 +1,3 @@
1
+ export * from './types.js';
2
+ export { RemoteWebDriver } from './driver.js';
3
+ export { RemoteWebElement } from './element.js';
@@ -0,0 +1,5 @@
1
+ // Selenium driver exports.
2
+ // Re-export types and classes
3
+ export * from './types.js';
4
+ export { RemoteWebDriver } from './driver.js';
5
+ export { RemoteWebElement } from './element.js';
@@ -0,0 +1,2 @@
1
+ export { SeleniumCookieSchema, SeleniumRectSchema, SeleniumSetRectSchema, LocatorByCssSchema, LocatorByXpathSchema, LocatorByIdSchema, LocatorByNameSchema, LocatorByClassNameSchema, LocatorByLinkTextSchema, LocatorByPartialLinkTextSchema, LocatorByTagNameSchema, LocatorStrategySchema, By, } from '../../contracts/drivers/selenium.js';
2
+ export type { Cookie, SeleniumRect, SeleniumSetRect, LocatorStrategy, WebElement, Navigation, Window, Options, Alert, TargetLocator, WebDriver, } from '../../contracts/drivers/selenium.js';
@@ -0,0 +1,12 @@
1
+ // ============================================================================
2
+ // Selenium/WebDriver Type Definitions
3
+ // ============================================================================
4
+ //
5
+ // Public Selenium types are localized into the SDK so the package ships without
6
+ // internal workspace dependencies.
7
+ // ============================================================================
8
+ export {
9
+ // Zod schemas (for validation)
10
+ SeleniumCookieSchema, SeleniumRectSchema, SeleniumSetRectSchema, LocatorByCssSchema, LocatorByXpathSchema, LocatorByIdSchema, LocatorByNameSchema, LocatorByClassNameSchema, LocatorByLinkTextSchema, LocatorByPartialLinkTextSchema, LocatorByTagNameSchema, LocatorStrategySchema,
11
+ // Runtime helper
12
+ By, } from '../../contracts/drivers/selenium.js';