@browserbasehq/orca 3.4.0-preview.0 → 3.5.0-preview.0

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 (829) hide show
  1. package/dist/cjs/lib/inference.d.ts +2 -1
  2. package/dist/cjs/lib/inference.js +10 -3
  3. package/dist/cjs/lib/inference.js.map +1 -1
  4. package/dist/cjs/lib/prompt.d.ts +2 -2
  5. package/dist/cjs/lib/prompt.js +19 -4
  6. package/dist/cjs/lib/prompt.js.map +1 -1
  7. package/dist/cjs/lib/v3/agent/AgentProvider.d.ts +1 -1
  8. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
  9. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +10 -0
  10. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  11. package/dist/cjs/lib/v3/handlers/extractHandler.js +19 -2
  12. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -1
  13. package/dist/cjs/lib/v3/handlers/observeHandler.js +2 -1
  14. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -1
  15. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  16. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  17. package/dist/cjs/lib/v3/index.d.ts +1 -0
  18. package/dist/cjs/lib/v3/index.js.map +1 -1
  19. package/dist/cjs/lib/v3/launch/local.d.ts +2 -7
  20. package/dist/cjs/lib/v3/launch/local.js +47 -7
  21. package/dist/cjs/lib/v3/launch/local.js.map +1 -1
  22. package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
  23. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
  24. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -0
  25. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -1
  26. package/dist/cjs/lib/v3/types/private/snapshot.d.ts +2 -0
  27. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -1
  28. package/dist/cjs/lib/v3/types/public/agent.d.ts +1 -1
  29. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  30. package/dist/cjs/lib/v3/types/public/api.d.ts +287 -0
  31. package/dist/cjs/lib/v3/types/public/api.js +61 -3
  32. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  33. package/dist/cjs/lib/v3/types/public/methods.d.ts +2 -0
  34. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -1
  35. package/dist/cjs/lib/v3/types/public/model.d.ts +11 -7
  36. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  37. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  38. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  39. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  40. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  41. package/dist/cjs/lib/v3/v3.js +7 -47
  42. package/dist/cjs/lib/v3/v3.js.map +1 -1
  43. package/dist/cjs/lib/v3Evaluator.d.ts +20 -12
  44. package/dist/cjs/lib/v3Evaluator.js +41 -199
  45. package/dist/cjs/lib/v3Evaluator.js.map +1 -1
  46. package/dist/cjs/lib/v3LegacyEvaluator.d.ts +20 -0
  47. package/dist/cjs/lib/v3LegacyEvaluator.js +215 -0
  48. package/dist/cjs/lib/v3LegacyEvaluator.js.map +1 -0
  49. package/dist/cjs/lib/version.d.ts +1 -1
  50. package/dist/cjs/lib/version.js +1 -1
  51. package/dist/cjs/lib/version.js.map +1 -1
  52. package/dist/esm/lib/inference.d.ts +2 -1
  53. package/dist/esm/lib/inference.js +10 -3
  54. package/dist/esm/lib/inference.js.map +1 -1
  55. package/dist/esm/lib/prompt.d.ts +2 -2
  56. package/dist/esm/lib/prompt.js +19 -4
  57. package/dist/esm/lib/prompt.js.map +1 -1
  58. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
  59. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  60. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +10 -0
  61. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  62. package/dist/esm/lib/v3/handlers/extractHandler.js +19 -2
  63. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  64. package/dist/esm/lib/v3/handlers/observeHandler.js +2 -1
  65. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  66. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +1 -0
  67. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  68. package/dist/esm/lib/v3/index.d.ts +1 -0
  69. package/dist/esm/lib/v3/index.js.map +1 -1
  70. package/dist/esm/lib/v3/launch/local.d.ts +2 -7
  71. package/dist/esm/lib/v3/launch/local.js +48 -8
  72. package/dist/esm/lib/v3/launch/local.js.map +1 -1
  73. package/dist/esm/lib/v3/llm/aisdk.js +5 -0
  74. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  75. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -0
  76. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  77. package/dist/esm/lib/v3/types/private/snapshot.d.ts +2 -0
  78. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -1
  79. package/dist/esm/lib/v3/types/public/agent.d.ts +1 -1
  80. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  81. package/dist/esm/lib/v3/types/public/api.d.ts +287 -0
  82. package/dist/esm/lib/v3/types/public/api.js +59 -1
  83. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  84. package/dist/esm/lib/v3/types/public/methods.d.ts +2 -0
  85. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  86. package/dist/esm/lib/v3/types/public/model.d.ts +11 -7
  87. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  88. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  89. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  90. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  91. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  92. package/dist/esm/lib/v3/v3.js +7 -47
  93. package/dist/esm/lib/v3/v3.js.map +1 -1
  94. package/dist/esm/lib/v3Evaluator.d.ts +20 -12
  95. package/dist/esm/lib/v3Evaluator.js +41 -199
  96. package/dist/esm/lib/v3Evaluator.js.map +1 -1
  97. package/dist/esm/lib/v3LegacyEvaluator.d.ts +20 -0
  98. package/dist/esm/lib/v3LegacyEvaluator.js +211 -0
  99. package/dist/esm/lib/v3LegacyEvaluator.js.map +1 -0
  100. package/dist/esm/lib/version.d.ts +1 -1
  101. package/dist/esm/lib/version.js +1 -1
  102. package/dist/esm/lib/version.js.map +1 -1
  103. package/package.json +30 -18
  104. package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
  105. package/dist/cjs/tests/cache-variables.test.js +0 -221
  106. package/dist/cjs/tests/cache-variables.test.js.map +0 -1
  107. package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  108. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
  109. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
  110. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  111. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
  112. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  113. package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
  114. package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
  115. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
  116. package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  117. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
  118. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  119. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  120. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
  121. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  122. package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  123. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
  124. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
  125. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
  126. package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
  127. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
  128. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  129. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
  130. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  131. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  132. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
  133. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
  134. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  135. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
  136. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
  137. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  138. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
  139. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  140. package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
  141. package/dist/cjs/tests/integration/click-count.spec.js +0 -163
  142. package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
  143. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  144. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
  145. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  146. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
  147. package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
  148. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
  149. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  150. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
  151. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  152. package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
  153. package/dist/cjs/tests/integration/cookies.spec.js +0 -187
  154. package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
  155. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
  156. package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
  157. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
  158. package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
  159. package/dist/cjs/tests/integration/downloads.spec.js +0 -52
  160. package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
  161. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
  162. package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
  163. package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
  164. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  165. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
  166. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  167. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  168. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
  169. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  170. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  171. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
  172. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  173. package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
  174. package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
  175. package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
  176. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
  177. package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
  178. package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
  179. package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
  180. package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
  181. package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
  182. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  183. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
  184. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  185. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
  186. package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
  187. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
  188. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  189. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
  190. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
  191. package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
  192. package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
  193. package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
  194. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
  195. package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
  196. package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
  197. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
  198. package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
  199. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
  200. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
  201. package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
  202. package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
  203. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
  204. package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
  205. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
  206. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
  207. package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
  208. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
  209. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  210. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
  211. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
  212. package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
  213. package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
  214. package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
  215. package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  216. package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
  217. package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
  218. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
  219. package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
  220. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
  221. package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
  222. package/dist/cjs/tests/integration/page-console.spec.js +0 -47
  223. package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
  224. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  225. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
  226. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  227. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  228. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
  229. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  230. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
  231. package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
  232. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
  233. package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
  234. package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
  235. package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
  236. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
  237. package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
  238. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
  239. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
  240. package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
  241. package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
  242. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
  243. package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
  244. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
  245. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  246. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
  247. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
  248. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
  249. package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
  250. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
  251. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  252. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
  253. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  254. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  255. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
  256. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  257. package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
  258. package/dist/cjs/tests/integration/testUtils.js +0 -188
  259. package/dist/cjs/tests/integration/testUtils.js.map +0 -1
  260. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  261. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
  262. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
  263. package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
  264. package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
  265. package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
  266. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
  267. package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
  268. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
  269. package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
  270. package/dist/cjs/tests/integration/v3.config.js +0 -11
  271. package/dist/cjs/tests/integration/v3.config.js.map +0 -1
  272. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
  273. package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
  274. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
  275. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
  276. package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
  277. package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
  278. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
  279. package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
  280. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
  281. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  282. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
  283. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
  284. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  285. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
  286. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  287. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  288. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
  289. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  290. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
  291. package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
  292. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
  293. package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
  294. package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
  295. package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
  296. package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
  297. package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
  298. package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
  299. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  300. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
  301. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  302. package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
  303. package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
  304. package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
  305. package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
  306. package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
  307. package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
  308. package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
  309. package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
  310. package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
  311. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  312. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
  313. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  314. package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  315. package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -133
  316. package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
  317. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
  318. package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
  319. package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
  320. package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  321. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
  322. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  323. package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
  324. package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -62
  325. package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
  326. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  327. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
  328. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  329. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  330. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
  331. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
  332. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
  333. package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
  334. package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
  335. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
  336. package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
  337. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
  338. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  339. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
  340. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
  341. package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
  342. package/dist/cjs/tests/unit/cookies.test.js +0 -944
  343. package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
  344. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  345. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
  346. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  347. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  348. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
  349. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  350. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  351. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
  352. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  353. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  354. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
  355. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  356. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  357. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
  358. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
  359. package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
  360. package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
  361. package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
  362. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
  363. package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
  364. package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
  365. package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
  366. package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
  367. package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
  368. package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  369. package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
  370. package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
  371. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
  372. package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
  373. package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
  374. package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
  375. package/dist/cjs/tests/unit/model-utils.test.js +0 -42
  376. package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
  377. package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  378. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
  379. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  380. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
  381. package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
  382. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
  383. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  384. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
  385. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
  386. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
  387. package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
  388. package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
  389. package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  390. package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
  391. package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
  392. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
  393. package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
  394. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
  395. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  396. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
  397. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  398. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  399. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
  400. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
  401. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
  402. package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
  403. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
  404. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  405. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
  406. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  407. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  408. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
  409. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
  410. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  411. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
  412. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  413. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  414. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
  415. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  416. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
  417. package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
  418. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
  419. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
  420. package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
  421. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
  422. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  423. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
  424. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  425. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  426. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -306
  427. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  428. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  429. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
  430. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  431. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
  432. package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
  433. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
  434. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  435. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
  436. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  437. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  438. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
  439. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  440. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  441. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
  442. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  443. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  444. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
  445. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  446. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  447. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -84
  448. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  449. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  450. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
  451. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  452. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
  453. package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -897
  454. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
  455. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
  456. package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
  457. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
  458. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
  459. package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
  460. package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
  461. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
  462. package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
  463. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
  464. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  465. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
  466. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
  467. package/dist/esm/tests/cache-variables.test.d.ts +0 -1
  468. package/dist/esm/tests/cache-variables.test.js +0 -219
  469. package/dist/esm/tests/cache-variables.test.js.map +0 -1
  470. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  471. package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
  472. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
  473. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  474. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
  475. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  476. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
  477. package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
  478. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
  479. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  480. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
  481. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  482. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  483. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
  484. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  485. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  486. package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
  487. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
  488. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
  489. package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
  490. package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
  491. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  492. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
  493. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  494. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  495. package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
  496. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
  497. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  498. package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
  499. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
  500. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  501. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
  502. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  503. package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
  504. package/dist/esm/tests/integration/click-count.spec.js +0 -161
  505. package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
  506. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  507. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
  508. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  509. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
  510. package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
  511. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
  512. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  513. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
  514. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  515. package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
  516. package/dist/esm/tests/integration/cookies.spec.js +0 -185
  517. package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
  518. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
  519. package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
  520. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
  521. package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
  522. package/dist/esm/tests/integration/downloads.spec.js +0 -47
  523. package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
  524. package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
  525. package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
  526. package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
  527. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  528. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
  529. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  530. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  531. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
  532. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  533. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  534. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
  535. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  536. package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
  537. package/dist/esm/tests/integration/keep-alive.child.js +0 -83
  538. package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
  539. package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
  540. package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
  541. package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
  542. package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
  543. package/dist/esm/tests/integration/keyboard.spec.js +0 -257
  544. package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
  545. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  546. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
  547. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  548. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
  549. package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
  550. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
  551. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  552. package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
  553. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
  554. package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
  555. package/dist/esm/tests/integration/locator-count.spec.js +0 -66
  556. package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
  557. package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
  558. package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
  559. package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
  560. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
  561. package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
  562. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
  563. package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
  564. package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
  565. package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
  566. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
  567. package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
  568. package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
  569. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
  570. package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
  571. package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
  572. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  573. package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
  574. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
  575. package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
  576. package/dist/esm/tests/integration/nested-div.spec.js +0 -20
  577. package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
  578. package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  579. package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
  580. package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
  581. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
  582. package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
  583. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
  584. package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
  585. package/dist/esm/tests/integration/page-console.spec.js +0 -45
  586. package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
  587. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  588. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
  589. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  590. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  591. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
  592. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  593. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
  594. package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
  595. package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
  596. package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
  597. package/dist/esm/tests/integration/page-hover.spec.js +0 -163
  598. package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
  599. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
  600. package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
  601. package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
  602. package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
  603. package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
  604. package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
  605. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
  606. package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
  607. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
  608. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  609. package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
  610. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
  611. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
  612. package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
  613. package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
  614. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  615. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
  616. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  617. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  618. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
  619. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  620. package/dist/esm/tests/integration/testUtils.d.ts +0 -40
  621. package/dist/esm/tests/integration/testUtils.js +0 -178
  622. package/dist/esm/tests/integration/testUtils.js.map +0 -1
  623. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  624. package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
  625. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
  626. package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
  627. package/dist/esm/tests/integration/timeouts.spec.js +0 -307
  628. package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
  629. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
  630. package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
  631. package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
  632. package/dist/esm/tests/integration/v3.config.d.ts +0 -4
  633. package/dist/esm/tests/integration/v3.config.js +0 -7
  634. package/dist/esm/tests/integration/v3.config.js.map +0 -1
  635. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
  636. package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
  637. package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
  638. package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
  639. package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
  640. package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
  641. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
  642. package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
  643. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
  644. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  645. package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
  646. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
  647. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  648. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
  649. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  650. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  651. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
  652. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  653. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
  654. package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
  655. package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
  656. package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
  657. package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
  658. package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
  659. package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
  660. package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
  661. package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
  662. package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  663. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
  664. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  665. package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
  666. package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
  667. package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
  668. package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
  669. package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
  670. package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
  671. package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
  672. package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
  673. package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
  674. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  675. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
  676. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  677. package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  678. package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -131
  679. package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
  680. package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
  681. package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
  682. package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
  683. package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  684. package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
  685. package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  686. package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
  687. package/dist/esm/tests/unit/api-variables-schema.test.js +0 -60
  688. package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
  689. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  690. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
  691. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  692. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  693. package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
  694. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
  695. package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
  696. package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
  697. package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
  698. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
  699. package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
  700. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
  701. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  702. package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
  703. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
  704. package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
  705. package/dist/esm/tests/unit/cookies.test.js +0 -909
  706. package/dist/esm/tests/unit/cookies.test.js.map +0 -1
  707. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  708. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
  709. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  710. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  711. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
  712. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  713. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  714. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
  715. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  716. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  717. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
  718. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  719. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  720. package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
  721. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
  722. package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
  723. package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
  724. package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
  725. package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
  726. package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
  727. package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
  728. package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
  729. package/dist/esm/tests/unit/llm-provider.test.js +0 -62
  730. package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
  731. package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  732. package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
  733. package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
  734. package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
  735. package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
  736. package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
  737. package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
  738. package/dist/esm/tests/unit/model-utils.test.js +0 -40
  739. package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
  740. package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  741. package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
  742. package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  743. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
  744. package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
  745. package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
  746. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  747. package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
  748. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
  749. package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
  750. package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
  751. package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
  752. package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  753. package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
  754. package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
  755. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
  756. package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
  757. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
  758. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  759. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
  760. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  761. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  762. package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
  763. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
  764. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
  765. package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
  766. package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
  767. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  768. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
  769. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  770. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  771. package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
  772. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
  773. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  774. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
  775. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  776. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  777. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
  778. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  779. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
  780. package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
  781. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
  782. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
  783. package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
  784. package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
  785. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  786. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
  787. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  788. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  789. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -304
  790. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  791. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  792. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
  793. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  794. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
  795. package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
  796. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
  797. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  798. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
  799. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  800. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  801. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
  802. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  803. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  804. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
  805. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  806. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  807. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
  808. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  809. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  810. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -82
  811. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  812. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  813. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
  814. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  815. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
  816. package/dist/esm/tests/unit/timeout-handlers.test.js +0 -862
  817. package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
  818. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
  819. package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
  820. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
  821. package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
  822. package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
  823. package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
  824. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
  825. package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
  826. package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
  827. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  828. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
  829. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +0 -1
@@ -1,292 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const test_1 = require("@playwright/test");
37
- const fs_1 = require("fs");
38
- const os = __importStar(require("os"));
39
- const path = __importStar(require("path"));
40
- const v3_js_1 = require("../../lib/v3/v3.js");
41
- const v3_config_js_1 = require("./v3.config.js");
42
- const frame_js_1 = require("../../lib/v3/understudy/frame.js");
43
- const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
44
- test_1.test.describe("Page.screenshot options", () => {
45
- let v3;
46
- test_1.test.beforeEach(async () => {
47
- v3 = new v3_js_1.V3(v3_config_js_1.v3TestConfig);
48
- await v3.init();
49
- });
50
- test_1.test.afterEach(async () => {
51
- await v3?.close?.().catch(() => { });
52
- });
53
- (0, test_1.test)("rejects clip combined with fullPage", async () => {
54
- const page = v3.context.pages()[0];
55
- await page.goto("data:text/html,<html><body>test</body></html>");
56
- await (0, test_1.expect)(page.screenshot({
57
- fullPage: true,
58
- clip: { x: 0, y: 0, width: 100, height: 100 },
59
- })).rejects.toThrow(/clip and fullPage/);
60
- });
61
- (0, test_1.test)("rejects unsupported image type", async () => {
62
- const page = v3.context.pages()[0];
63
- await page.goto("data:text/html,<html><body>noop</body></html>");
64
- await (0, test_1.expect)(page.screenshot({
65
- // @ts-expect-error intentional invalid type for runtime validation
66
- type: "webp",
67
- })).rejects.toThrow(/unsupported image type/);
68
- });
69
- (0, test_1.test)("rejects jpeg quality for png screenshots", async () => {
70
- const page = v3.context.pages()[0];
71
- await page.goto("data:text/html,<html><body>noop</body></html>");
72
- await (0, test_1.expect)(page.screenshot({ type: "png", quality: 50 })).rejects.toThrow(/quality option is only valid/);
73
- });
74
- (0, test_1.test)("honours timeout option", async () => {
75
- const page = v3.context.pages()[0];
76
- await page.goto("data:text/html,<html><body>noop</body></html>");
77
- const mainFrame = page.mainFrame();
78
- const originalScreenshot = mainFrame.screenshot.bind(mainFrame);
79
- mainFrame.screenshot = async () => {
80
- await wait(50);
81
- return Buffer.from("late");
82
- };
83
- try {
84
- await (0, test_1.expect)(page.screenshot({ timeout: 10 })).rejects.toThrow(/timed out|timeout/i);
85
- }
86
- finally {
87
- mainFrame.screenshot = originalScreenshot;
88
- }
89
- });
90
- (0, test_1.test)("applies advanced options and cleans up overlays", async () => {
91
- const page = v3.context.pages()[0];
92
- const screenshotTimeout = process.env.CI ? 15000 : 5000;
93
- const testStart = Date.now();
94
- console.log(`[screenshot-test] start ${new Date(testStart).toISOString()} timeout=${screenshotTimeout}`);
95
- const html = `
96
- <!doctype html>
97
- <html>
98
- <head>
99
- <meta charset="utf-8" />
100
- <style>
101
- body { background: #aaccee; margin: 0; height: 100vh; display: flex; flex-direction: column; align-items: flex-start; }
102
- .mask-target { width: 80px; height: 80px; margin: 40px; background: rgb(0, 180, 60); animation: pulse 1s infinite alternate; }
103
- @keyframes pulse { from { transform: scale(1); } to { transform: scale(1.2); } }
104
- </style>
105
- </head>
106
- <body>
107
- <div class="mask-target"></div>
108
- <div class="mask-target"></div>
109
- <input id="focus-me" value="focus" />
110
- <script>document.getElementById('focus-me').focus();</script>
111
- </body>
112
- </html>
113
- `;
114
- await page.goto("data:text/html," + encodeURIComponent(html));
115
- console.log(`[screenshot-test] page loaded in ${Date.now() - testStart}ms`);
116
- const maskLocator = page.locator(".mask-target");
117
- const tempPath = path.join(os.tmpdir(), `stagehand-screenshot-${Date.now()}-${Math.random().toString(36).slice(2)}.jpeg`);
118
- console.log(`[screenshot-test] tempPath=${tempPath}`);
119
- const targetId = page.targetId();
120
- const screenshotCalls = [];
121
- const evaluateCalls = [];
122
- const originalScreenshot = frame_js_1.Frame.prototype.screenshot;
123
- const originalEvaluate = frame_js_1.Frame.prototype.evaluate;
124
- // Hook Frame.screenshot so we can assert which options reach CDP without writing real data.
125
- frame_js_1.Frame.prototype.screenshot = async function screenshotSpy(options) {
126
- const frame = this;
127
- if (frame.pageId === targetId) {
128
- screenshotCalls.push({ frameId: frame.frameId, options });
129
- return Buffer.from("stub-image");
130
- }
131
- return originalScreenshot.call(this, options);
132
- };
133
- // Spy on Frame.evaluate to capture the arguments used to inject CSS/masks.
134
- frame_js_1.Frame.prototype.evaluate = async function evaluateSpy(expression, arg) {
135
- const frame = this;
136
- if (frame.pageId === targetId) {
137
- evaluateCalls.push({ frameId: frame.frameId, arg });
138
- }
139
- return originalEvaluate.call(this, expression, arg);
140
- };
141
- const internalPage = page;
142
- const sendCalls = [];
143
- const originalSend = internalPage.mainSession.send.bind(internalPage.mainSession);
144
- // Capture background overrides so we can confirm omitBackground toggles on/off.
145
- internalPage.mainSession.send = async (method, params) => {
146
- sendCalls.push({ method, params });
147
- return originalSend(method, params);
148
- };
149
- try {
150
- const maskCount = await maskLocator.count();
151
- console.log(`[screenshot-test] maskLocator.count=${maskCount}`);
152
- const buffer = await page.screenshot({
153
- animations: "disabled",
154
- caret: "hide",
155
- clip: { x: 0, y: 0, width: 200, height: 200 },
156
- mask: [maskLocator],
157
- maskColor: "rgba(255, 0, 0, 0.4)",
158
- omitBackground: true,
159
- path: tempPath,
160
- quality: 80,
161
- scale: "css",
162
- style: "body { border: 3px solid black; }",
163
- timeout: screenshotTimeout,
164
- type: "jpeg",
165
- });
166
- console.log(`[screenshot-test] screenshot returned bytes=${buffer.length} elapsed=${Date.now() - testStart}ms`);
167
- (0, test_1.expect)(Buffer.isBuffer(buffer)).toBeTruthy();
168
- (0, test_1.expect)(screenshotCalls.length).toBeGreaterThanOrEqual(1);
169
- console.log(`[screenshot-test] screenshotCalls=${screenshotCalls.length} evaluateCalls=${evaluateCalls.length} sendCalls=${sendCalls.length}`);
170
- const recorded = screenshotCalls[0]?.options ?? {};
171
- (0, test_1.expect)(recorded).toMatchObject({ type: "jpeg", quality: 80 });
172
- (0, test_1.expect)(recorded?.clip).toMatchObject({
173
- x: 0,
174
- y: 0,
175
- width: 200,
176
- height: 200,
177
- });
178
- if (typeof recorded?.scale === "number") {
179
- (0, test_1.expect)(recorded.scale).toBeGreaterThan(0);
180
- (0, test_1.expect)(recorded.scale).toBeLessThanOrEqual(2);
181
- }
182
- await fs_1.promises.stat(tempPath);
183
- const maskNodes = await page.evaluate(() => document.querySelectorAll("[data-stagehand-mask]").length);
184
- (0, test_1.expect)(maskNodes).toBe(0);
185
- const styleNodes = await page.evaluate(() => document.querySelectorAll("[data-stagehand-style]").length);
186
- (0, test_1.expect)(styleNodes).toBe(0);
187
- const backgroundCalls = sendCalls.filter((call) => call.method === "Emulation.setDefaultBackgroundColorOverride");
188
- (0, test_1.expect)(backgroundCalls.length).toBeGreaterThan(1);
189
- (0, test_1.expect)(backgroundCalls.some((call) => call.params &&
190
- typeof call.params === "object" &&
191
- "color" in call.params)).toBeTruthy();
192
- (0, test_1.expect)(backgroundCalls.some((call) => !call.params ||
193
- Object.keys(call.params).length === 0)).toBeTruthy();
194
- const cssArgs = evaluateCalls
195
- .map((entry) => {
196
- const value = entry.arg;
197
- return value?.css ?? null;
198
- })
199
- .filter((css) => typeof css === "string");
200
- const tokens = evaluateCalls
201
- .map((entry) => {
202
- const arg = entry.arg;
203
- return arg?.token ?? null;
204
- })
205
- .filter((token) => typeof token === "string");
206
- // Tokens include which helper injected the style (animations/caret/custom).
207
- (0, test_1.expect)(tokens.some((token) => token.includes("animations"))).toBeTruthy();
208
- (0, test_1.expect)(tokens.some((token) => token.includes("caret"))).toBeTruthy();
209
- (0, test_1.expect)(tokens.some((token) => token.includes("custom"))).toBeTruthy();
210
- // Custom style should bubble through so we check the actual CSS text.
211
- (0, test_1.expect)(cssArgs.some((css) => css.includes("border: 3px solid black"))).toBeTruthy();
212
- const maskCalls = evaluateCalls.filter((entry) => {
213
- const arg = entry.arg;
214
- return (arg &&
215
- typeof arg === "object" &&
216
- "rects" in arg);
217
- });
218
- (0, test_1.expect)(maskCalls.length).toBeGreaterThan(0);
219
- const rects = maskCalls[0]?.arg
220
- ?.rects;
221
- (0, test_1.expect)(Array.isArray(rects)).toBeTruthy();
222
- (0, test_1.expect)(rects.length).toBe(2);
223
- }
224
- finally {
225
- frame_js_1.Frame.prototype.screenshot = originalScreenshot;
226
- frame_js_1.Frame.prototype.evaluate = originalEvaluate;
227
- internalPage.mainSession.send = originalSend;
228
- await fs_1.promises.unlink(tempPath).catch(() => { });
229
- }
230
- });
231
- (0, test_1.test)("masks elements inside dialog top layer", async () => {
232
- const page = v3.context.pages()[0];
233
- const html = `
234
- <!doctype html>
235
- <html>
236
- <head>
237
- <meta charset="utf-8" />
238
- <style>
239
- dialog { padding: 16px; border: 2px solid #444; }
240
- #dialog-input { display: block; width: 160px; height: 32px; }
241
- </style>
242
- </head>
243
- <body>
244
- <dialog id="dialog">
245
- <label>Secret <input id="dialog-input" value="top-layer" /></label>
246
- </dialog>
247
- <script>
248
- const dialog = document.getElementById("dialog");
249
- if (dialog) {
250
- if (typeof dialog.showModal === "function") {
251
- try {
252
- dialog.showModal();
253
- } catch {
254
- dialog.setAttribute("open", "");
255
- }
256
- } else {
257
- dialog.setAttribute("open", "");
258
- }
259
- }
260
- </script>
261
- </body>
262
- </html>
263
- `;
264
- await page.goto("data:text/html," + encodeURIComponent(html));
265
- const targetId = page.targetId();
266
- const originalScreenshot = frame_js_1.Frame.prototype.screenshot;
267
- let dialogMaskCount = 0;
268
- frame_js_1.Frame.prototype.screenshot = async function screenshotSpy(options) {
269
- const frame = this;
270
- if (frame.pageId === targetId) {
271
- dialogMaskCount = await frame.evaluate(() => {
272
- const dialog = document.querySelector("dialog[open]");
273
- if (!dialog)
274
- return 0;
275
- return dialog.querySelectorAll("[data-stagehand-mask]").length;
276
- });
277
- return Buffer.from("stub-image");
278
- }
279
- return originalScreenshot.call(this, options);
280
- };
281
- try {
282
- await page.screenshot({
283
- mask: [page.locator("#dialog-input")],
284
- });
285
- (0, test_1.expect)(dialogMaskCount).toBeGreaterThan(0);
286
- }
287
- finally {
288
- frame_js_1.Frame.prototype.screenshot = originalScreenshot;
289
- }
290
- });
291
- });
292
- //# sourceMappingURL=page-screenshot.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-screenshot.spec.js","sourceRoot":"","sources":["../../../../tests/integration/page-screenshot.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport { promises as fs } from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\nimport { Frame } from \"../../lib/v3/understudy/frame.js\";\n\nconst wait = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\ntest.describe(\"Page.screenshot options\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3(v3TestConfig);\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"rejects clip combined with fullPage\", async () => {\n const page = v3.context.pages()[0];\n await page.goto(\"data:text/html,<html><body>test</body></html>\");\n\n await expect(\n page.screenshot({\n fullPage: true,\n clip: { x: 0, y: 0, width: 100, height: 100 },\n }),\n ).rejects.toThrow(/clip and fullPage/);\n });\n\n test(\"rejects unsupported image type\", async () => {\n const page = v3.context.pages()[0];\n await page.goto(\"data:text/html,<html><body>noop</body></html>\");\n\n await expect(\n page.screenshot({\n // @ts-expect-error intentional invalid type for runtime validation\n type: \"webp\",\n }),\n ).rejects.toThrow(/unsupported image type/);\n });\n\n test(\"rejects jpeg quality for png screenshots\", async () => {\n const page = v3.context.pages()[0];\n await page.goto(\"data:text/html,<html><body>noop</body></html>\");\n\n await expect(page.screenshot({ type: \"png\", quality: 50 })).rejects.toThrow(\n /quality option is only valid/,\n );\n });\n\n test(\"honours timeout option\", async () => {\n const page = v3.context.pages()[0];\n await page.goto(\"data:text/html,<html><body>noop</body></html>\");\n\n const mainFrame = page.mainFrame();\n const originalScreenshot = mainFrame.screenshot.bind(mainFrame);\n\n (\n mainFrame as typeof mainFrame & {\n screenshot: typeof mainFrame.screenshot;\n }\n ).screenshot = async () => {\n await wait(50);\n return Buffer.from(\"late\");\n };\n\n try {\n await expect(page.screenshot({ timeout: 10 })).rejects.toThrow(\n /timed out|timeout/i,\n );\n } finally {\n (\n mainFrame as typeof mainFrame & {\n screenshot: typeof mainFrame.screenshot;\n }\n ).screenshot = originalScreenshot;\n }\n });\n\n test(\"applies advanced options and cleans up overlays\", async () => {\n const page = v3.context.pages()[0];\n const screenshotTimeout = process.env.CI ? 15000 : 5000;\n const testStart = Date.now();\n console.log(\n `[screenshot-test] start ${new Date(testStart).toISOString()} timeout=${screenshotTimeout}`,\n );\n\n const html = `\n <!doctype html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <style>\n body { background: #aaccee; margin: 0; height: 100vh; display: flex; flex-direction: column; align-items: flex-start; }\n .mask-target { width: 80px; height: 80px; margin: 40px; background: rgb(0, 180, 60); animation: pulse 1s infinite alternate; }\n @keyframes pulse { from { transform: scale(1); } to { transform: scale(1.2); } }\n </style>\n </head>\n <body>\n <div class=\"mask-target\"></div>\n <div class=\"mask-target\"></div>\n <input id=\"focus-me\" value=\"focus\" />\n <script>document.getElementById('focus-me').focus();</script>\n </body>\n </html>\n `;\n\n await page.goto(\"data:text/html,\" + encodeURIComponent(html));\n console.log(`[screenshot-test] page loaded in ${Date.now() - testStart}ms`);\n\n const maskLocator = page.locator(\".mask-target\");\n const tempPath = path.join(\n os.tmpdir(),\n `stagehand-screenshot-${Date.now()}-${Math.random().toString(36).slice(2)}.jpeg`,\n );\n console.log(`[screenshot-test] tempPath=${tempPath}`);\n\n const targetId = page.targetId();\n const screenshotCalls: Array<{\n frameId: string;\n options: Parameters<Frame[\"screenshot\"]>[0];\n }> = [];\n const evaluateCalls: Array<{ frameId: string; arg: unknown }> = [];\n const originalScreenshot = Frame.prototype.screenshot;\n const originalEvaluate = Frame.prototype.evaluate;\n\n // Hook Frame.screenshot so we can assert which options reach CDP without writing real data.\n Frame.prototype.screenshot = async function screenshotSpy(options) {\n const frame = this as Frame;\n if (frame.pageId === targetId) {\n screenshotCalls.push({ frameId: frame.frameId, options });\n return Buffer.from(\"stub-image\");\n }\n return originalScreenshot.call(this, options);\n };\n\n // Spy on Frame.evaluate to capture the arguments used to inject CSS/masks.\n Frame.prototype.evaluate = async function evaluateSpy(expression, arg?) {\n const frame = this as Frame;\n if (frame.pageId === targetId) {\n evaluateCalls.push({ frameId: frame.frameId, arg });\n }\n return originalEvaluate.call(this, expression as never, arg);\n } as Frame[\"evaluate\"];\n\n const internalPage = page as unknown as {\n mainSession: {\n send: (method: string, params?: unknown) => Promise<unknown>;\n };\n };\n const sendCalls: Array<{ method: string; params: unknown }> = [];\n const originalSend = internalPage.mainSession.send.bind(\n internalPage.mainSession,\n ) as (method: string, params?: unknown) => Promise<unknown>;\n // Capture background overrides so we can confirm omitBackground toggles on/off.\n internalPage.mainSession.send = async (\n method: string,\n params?: unknown,\n ) => {\n sendCalls.push({ method, params });\n return originalSend(method, params);\n };\n\n try {\n const maskCount = await maskLocator.count();\n console.log(`[screenshot-test] maskLocator.count=${maskCount}`);\n\n const buffer = await page.screenshot({\n animations: \"disabled\",\n caret: \"hide\",\n clip: { x: 0, y: 0, width: 200, height: 200 },\n mask: [maskLocator],\n maskColor: \"rgba(255, 0, 0, 0.4)\",\n omitBackground: true,\n path: tempPath,\n quality: 80,\n scale: \"css\",\n style: \"body { border: 3px solid black; }\",\n timeout: screenshotTimeout,\n type: \"jpeg\",\n });\n console.log(\n `[screenshot-test] screenshot returned bytes=${buffer.length} elapsed=${Date.now() - testStart}ms`,\n );\n\n expect(Buffer.isBuffer(buffer)).toBeTruthy();\n expect(screenshotCalls.length).toBeGreaterThanOrEqual(1);\n console.log(\n `[screenshot-test] screenshotCalls=${screenshotCalls.length} evaluateCalls=${evaluateCalls.length} sendCalls=${sendCalls.length}`,\n );\n const recorded = screenshotCalls[0]?.options ?? {};\n expect(recorded).toMatchObject({ type: \"jpeg\", quality: 80 });\n expect(recorded?.clip).toMatchObject({\n x: 0,\n y: 0,\n width: 200,\n height: 200,\n });\n if (typeof recorded?.scale === \"number\") {\n expect(recorded.scale).toBeGreaterThan(0);\n expect(recorded.scale).toBeLessThanOrEqual(2);\n }\n\n await fs.stat(tempPath);\n\n const maskNodes = await page.evaluate(\n () => document.querySelectorAll(\"[data-stagehand-mask]\").length,\n );\n expect(maskNodes).toBe(0);\n\n const styleNodes = await page.evaluate(\n () => document.querySelectorAll(\"[data-stagehand-style]\").length,\n );\n expect(styleNodes).toBe(0);\n\n const backgroundCalls = sendCalls.filter(\n (call) => call.method === \"Emulation.setDefaultBackgroundColorOverride\",\n );\n expect(backgroundCalls.length).toBeGreaterThan(1);\n expect(\n backgroundCalls.some(\n (call) =>\n call.params &&\n typeof call.params === \"object\" &&\n \"color\" in (call.params as Record<string, unknown>),\n ),\n ).toBeTruthy();\n expect(\n backgroundCalls.some(\n (call) =>\n !call.params ||\n Object.keys(call.params as Record<string, unknown>).length === 0,\n ),\n ).toBeTruthy();\n\n const cssArgs = evaluateCalls\n .map((entry) => {\n const value = entry.arg as { css?: string } | undefined;\n return value?.css ?? null;\n })\n .filter((css): css is string => typeof css === \"string\");\n\n const tokens = evaluateCalls\n .map((entry) => {\n const arg = entry.arg as { token?: string } | undefined;\n return arg?.token ?? null;\n })\n .filter((token): token is string => typeof token === \"string\");\n\n // Tokens include which helper injected the style (animations/caret/custom).\n expect(tokens.some((token) => token.includes(\"animations\"))).toBeTruthy();\n expect(tokens.some((token) => token.includes(\"caret\"))).toBeTruthy();\n expect(tokens.some((token) => token.includes(\"custom\"))).toBeTruthy();\n // Custom style should bubble through so we check the actual CSS text.\n expect(\n cssArgs.some((css) => css.includes(\"border: 3px solid black\")),\n ).toBeTruthy();\n\n const maskCalls = evaluateCalls.filter((entry) => {\n const arg = entry.arg;\n return (\n arg &&\n typeof arg === \"object\" &&\n \"rects\" in (arg as Record<string, unknown>)\n );\n });\n expect(maskCalls.length).toBeGreaterThan(0);\n const rects = (maskCalls[0]?.arg as { rects?: unknown } | undefined)\n ?.rects;\n expect(Array.isArray(rects)).toBeTruthy();\n expect((rects as unknown[]).length).toBe(2);\n } finally {\n Frame.prototype.screenshot = originalScreenshot;\n Frame.prototype.evaluate = originalEvaluate;\n internalPage.mainSession.send = originalSend;\n await fs.unlink(tempPath).catch(() => {});\n }\n });\n\n test(\"masks elements inside dialog top layer\", async () => {\n const page = v3.context.pages()[0];\n\n const html = `\n <!doctype html>\n <html>\n <head>\n <meta charset=\"utf-8\" />\n <style>\n dialog { padding: 16px; border: 2px solid #444; }\n #dialog-input { display: block; width: 160px; height: 32px; }\n </style>\n </head>\n <body>\n <dialog id=\"dialog\">\n <label>Secret <input id=\"dialog-input\" value=\"top-layer\" /></label>\n </dialog>\n <script>\n const dialog = document.getElementById(\"dialog\");\n if (dialog) {\n if (typeof dialog.showModal === \"function\") {\n try {\n dialog.showModal();\n } catch {\n dialog.setAttribute(\"open\", \"\");\n }\n } else {\n dialog.setAttribute(\"open\", \"\");\n }\n }\n </script>\n </body>\n </html>\n `;\n\n await page.goto(\"data:text/html,\" + encodeURIComponent(html));\n\n const targetId = page.targetId();\n const originalScreenshot = Frame.prototype.screenshot;\n let dialogMaskCount = 0;\n\n Frame.prototype.screenshot = async function screenshotSpy(options) {\n const frame = this as Frame;\n if (frame.pageId === targetId) {\n dialogMaskCount = await frame.evaluate(() => {\n const dialog = document.querySelector(\"dialog[open]\");\n if (!dialog) return 0;\n return dialog.querySelectorAll(\"[data-stagehand-mask]\").length;\n });\n return Buffer.from(\"stub-image\");\n }\n return originalScreenshot.call(this, options);\n };\n\n try {\n await page.screenshot({\n mask: [page.locator(\"#dialog-input\")],\n });\n expect(dialogMaskCount).toBeGreaterThan(0);\n } finally {\n Frame.prototype.screenshot = originalScreenshot;\n }\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,183 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const v3_js_1 = require("../../lib/v3/v3.js");
5
- const v3_config_js_1 = require("./v3.config.js");
6
- test_1.test.describe("Page.scroll() - mouse wheel scrolling", () => {
7
- let v3;
8
- test_1.test.beforeEach(async () => {
9
- v3 = new v3_js_1.V3(v3_config_js_1.v3TestConfig);
10
- await v3.init();
11
- });
12
- test_1.test.afterEach(async () => {
13
- await v3?.close?.().catch(() => { });
14
- });
15
- (0, test_1.test)("scrolls page vertically with positive deltaY", async () => {
16
- const page = v3.context.pages()[0];
17
- await page.goto("data:text/html," +
18
- encodeURIComponent(`<!doctype html><html><body style="height: 2000px;">
19
- <div style="height: 400px; background: lightblue;">Section 1</div>
20
- <div style="height: 400px; background: lightgreen;">Section 2</div>
21
- <div style="height: 400px; background: lightyellow;">Section 3</div>
22
- <div style="height: 400px; background: lightcoral;">Section 4</div>
23
- <div style="height: 400px; background: lightgray;">Section 5</div>
24
- </body></html>`));
25
- // Get initial scroll position
26
- let scrollY = await page.evaluate(() => window.scrollY);
27
- (0, test_1.expect)(scrollY).toBe(0);
28
- // Scroll down (positive deltaY)
29
- await page.scroll(640, 400, 0, 300);
30
- // Wait for scroll to complete
31
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
32
- // Check that we've scrolled down
33
- scrollY = await page.evaluate(() => window.scrollY);
34
- (0, test_1.expect)(scrollY).toBeGreaterThan(0);
35
- });
36
- (0, test_1.test)("scrolls page horizontally with positive deltaX", async () => {
37
- const page = v3.context.pages()[0];
38
- await page.goto("data:text/html," +
39
- encodeURIComponent(`<!doctype html><html><body style="width: 2000px; height: 600px;">
40
- <div style="display: inline-block; width: 400px; height: 100%; background: lightblue;">Section 1</div>
41
- <div style="display: inline-block; width: 400px; height: 100%; background: lightgreen;">Section 2</div>
42
- <div style="display: inline-block; width: 400px; height: 100%; background: lightyellow;">Section 3</div>
43
- <div style="display: inline-block; width: 400px; height: 100%; background: lightcoral;">Section 4</div>
44
- <div style="display: inline-block; width: 400px; height: 100%; background: lightgray;">Section 5</div>
45
- </body></html>`));
46
- let scrollX = await page.evaluate(() => window.scrollX);
47
- (0, test_1.expect)(scrollX).toBe(0);
48
- // Scroll right (positive deltaX)
49
- await page.scroll(640, 400, 300, 0);
50
- // Wait for scroll to complete
51
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
52
- // Check that we've scrolled right
53
- scrollX = await page.evaluate(() => window.scrollX);
54
- (0, test_1.expect)(scrollX).toBeGreaterThan(0);
55
- });
56
- (0, test_1.test)("scrolls in both directions simultaneously", async () => {
57
- const page = v3.context.pages()[0];
58
- await page.goto("data:text/html," +
59
- encodeURIComponent(`<!doctype html><html><body style="width: 2000px; height: 2000px;">
60
- <div style="width: 100%; height: 100%; background: linear-gradient(135deg, lightblue, lightcoral);">
61
- Diagonal content
62
- </div>
63
- </body></html>`));
64
- // Scroll both horizontally and vertically
65
- await page.scroll(640, 400, 200, 200);
66
- // Wait for scroll to complete
67
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
68
- // Check both directions changed
69
- const scrollPos = await page.evaluate(() => ({
70
- x: window.scrollX,
71
- y: window.scrollY,
72
- }));
73
- (0, test_1.expect)(scrollPos.x).toBeGreaterThan(0);
74
- (0, test_1.expect)(scrollPos.y).toBeGreaterThan(0);
75
- });
76
- (0, test_1.test)("scrolls at specific coordinate on page", async () => {
77
- const page = v3.context.pages()[0];
78
- await page.goto("data:text/html," +
79
- encodeURIComponent(`<!doctype html><html><body style="height: 2000px;">
80
- <div id="marker" style="position: fixed; top: 400px; left: 640px; width: 2px; height: 2px; background: red;"></div>
81
- <div style="height: 500px; background: lightblue;">Top</div>
82
- <div style="height: 500px; background: lightgreen;">Middle</div>
83
- <div style="height: 500px; background: lightyellow;">Bottom</div>
84
- </body></html>`));
85
- // Scroll from specific coordinates
86
- await page.scroll(640, 400, 0, 400);
87
- // Wait for scroll to complete
88
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
89
- // Verify scroll happened
90
- const scrollY = await page.evaluate(() => window.scrollY);
91
- (0, test_1.expect)(scrollY).toBeGreaterThan(0);
92
- });
93
- (0, test_1.test)("scrolls with large deltaY values", async () => {
94
- const page = v3.context.pages()[0];
95
- await page.goto("data:text/html," +
96
- encodeURIComponent(`<!doctype html><html><body style="height: 5000px;">
97
- <div style="height: 1000px; background: lightblue;">Section 1</div>
98
- <div style="height: 1000px; background: lightgreen;">Section 2</div>
99
- <div style="height: 1000px; background: lightyellow;">Section 3</div>
100
- <div style="height: 1000px; background: lightcoral;">Section 4</div>
101
- <div style="height: 1000px; background: lightgray;">Section 5</div>
102
- </body></html>`));
103
- // Scroll with large delta
104
- await page.scroll(640, 400, 0, 1000);
105
- // Wait for scroll to complete
106
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
107
- // Should scroll significantly
108
- const scrollY = await page.evaluate(() => window.scrollY);
109
- (0, test_1.expect)(scrollY).toBeGreaterThan(500);
110
- });
111
- (0, test_1.test)("negative deltaY scrolls up", async () => {
112
- const page = v3.context.pages()[0];
113
- await page.goto("data:text/html," +
114
- encodeURIComponent(`<!doctype html><html><body style="height: 2000px;">
115
- <div style="height: 500px; background: lightblue;">Top</div>
116
- <div style="height: 500px; background: lightgreen;">Middle 1</div>
117
- <div style="height: 500px; background: lightyellow;">Middle 2</div>
118
- <div style="height: 500px; background: lightcoral;">Bottom</div>
119
- </body></html>`));
120
- // First scroll down
121
- await page.scroll(640, 400, 0, 500);
122
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
123
- let scrollY = await page.evaluate(() => window.scrollY);
124
- const scrolledDown = scrollY;
125
- (0, test_1.expect)(scrolledDown).toBeGreaterThan(0);
126
- // Now scroll up (negative delta)
127
- await page.scroll(640, 400, 0, -300);
128
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
129
- scrollY = await page.evaluate(() => window.scrollY);
130
- (0, test_1.expect)(scrollY).toBeLessThan(scrolledDown);
131
- });
132
- (0, test_1.test)("scroll returns xpath when requested", async () => {
133
- const page = v3.context.pages()[0];
134
- await page.goto("data:text/html," +
135
- encodeURIComponent(`<!doctype html><html><body style="height: 2000px; margin: 0; padding: 0;">
136
- <div id="target" style="position: absolute; top: 0px; left: 400px; width: 300px; height: 100px; background: blue;">
137
- Target element
138
- </div>
139
- <p style="position: absolute; top: 200px; left: 0px;">Content below</p>
140
- </body></html>`));
141
- // Scroll at coordinate (550, 50) which should be directly over the target div
142
- // div spans: left 400-700px, top 0-100px
143
- // coordinate 550,50 is within that range
144
- const xpath = await page.scroll(550, 50, 0, 200, { returnXpath: true });
145
- // Should return a non-empty xpath string for the element at that coordinate
146
- (0, test_1.expect)(typeof xpath).toBe("string");
147
- (0, test_1.expect)(xpath.length).toBeGreaterThan(0);
148
- // Xpath should reference the div or contain "target"
149
- (0, test_1.expect)(xpath.toLowerCase()).toMatch(/div|target/);
150
- });
151
- (0, test_1.test)("scroll without returnXpath returns empty string", async () => {
152
- const page = v3.context.pages()[0];
153
- await page.goto("data:text/html," +
154
- encodeURIComponent(`<!doctype html><html><body style="height: 2000px;">
155
- <div style="height: 500px; background: lightblue;">Content</div>
156
- </body></html>`));
157
- // Scroll without returnXpath
158
- const result = await page.scroll(640, 400, 0, 200);
159
- // Should return empty string
160
- (0, test_1.expect)(result).toBe("");
161
- });
162
- (0, test_1.test)("multiple sequential scrolls accumulate", async () => {
163
- const page = v3.context.pages()[0];
164
- await page.goto("data:text/html," +
165
- encodeURIComponent(`<!doctype html><html><body style="height: 3000px;">
166
- <div style="height: 750px; background: lightblue;">Section 1</div>
167
- <div style="height: 750px; background: lightgreen;">Section 2</div>
168
- <div style="height: 750px; background: lightyellow;">Section 3</div>
169
- <div style="height: 750px; background: lightcoral;">Section 4</div>
170
- </body></html>`));
171
- // First scroll
172
- await page.scroll(640, 400, 0, 200);
173
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
174
- const after1 = await page.evaluate(() => window.scrollY);
175
- (0, test_1.expect)(after1).toBeGreaterThan(0);
176
- // Second scroll
177
- await page.scroll(640, 400, 0, 200);
178
- await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));
179
- const after2 = await page.evaluate(() => window.scrollY);
180
- (0, test_1.expect)(after2).toBeGreaterThan(after1);
181
- });
182
- });
183
- //# sourceMappingURL=page-scroll.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-scroll.spec.js","sourceRoot":"","sources":["../../../../tests/integration/page-scroll.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\n\ntest.describe(\"Page.scroll() - mouse wheel scrolling\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3(v3TestConfig);\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"scrolls page vertically with positive deltaY\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"height: 2000px;\">\n <div style=\"height: 400px; background: lightblue;\">Section 1</div>\n <div style=\"height: 400px; background: lightgreen;\">Section 2</div>\n <div style=\"height: 400px; background: lightyellow;\">Section 3</div>\n <div style=\"height: 400px; background: lightcoral;\">Section 4</div>\n <div style=\"height: 400px; background: lightgray;\">Section 5</div>\n </body></html>`,\n ),\n );\n\n // Get initial scroll position\n let scrollY = await page.evaluate(() => window.scrollY);\n expect(scrollY).toBe(0);\n\n // Scroll down (positive deltaY)\n await page.scroll(640, 400, 0, 300);\n\n // Wait for scroll to complete\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n // Check that we've scrolled down\n scrollY = await page.evaluate(() => window.scrollY);\n expect(scrollY).toBeGreaterThan(0);\n });\n\n test(\"scrolls page horizontally with positive deltaX\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"width: 2000px; height: 600px;\">\n <div style=\"display: inline-block; width: 400px; height: 100%; background: lightblue;\">Section 1</div>\n <div style=\"display: inline-block; width: 400px; height: 100%; background: lightgreen;\">Section 2</div>\n <div style=\"display: inline-block; width: 400px; height: 100%; background: lightyellow;\">Section 3</div>\n <div style=\"display: inline-block; width: 400px; height: 100%; background: lightcoral;\">Section 4</div>\n <div style=\"display: inline-block; width: 400px; height: 100%; background: lightgray;\">Section 5</div>\n </body></html>`,\n ),\n );\n\n let scrollX = await page.evaluate(() => window.scrollX);\n expect(scrollX).toBe(0);\n\n // Scroll right (positive deltaX)\n await page.scroll(640, 400, 300, 0);\n\n // Wait for scroll to complete\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n // Check that we've scrolled right\n scrollX = await page.evaluate(() => window.scrollX);\n expect(scrollX).toBeGreaterThan(0);\n });\n\n test(\"scrolls in both directions simultaneously\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"width: 2000px; height: 2000px;\">\n <div style=\"width: 100%; height: 100%; background: linear-gradient(135deg, lightblue, lightcoral);\">\n Diagonal content\n </div>\n </body></html>`,\n ),\n );\n\n // Scroll both horizontally and vertically\n await page.scroll(640, 400, 200, 200);\n\n // Wait for scroll to complete\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n // Check both directions changed\n const scrollPos = await page.evaluate(() => ({\n x: window.scrollX,\n y: window.scrollY,\n }));\n\n expect(scrollPos.x).toBeGreaterThan(0);\n expect(scrollPos.y).toBeGreaterThan(0);\n });\n\n test(\"scrolls at specific coordinate on page\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"height: 2000px;\">\n <div id=\"marker\" style=\"position: fixed; top: 400px; left: 640px; width: 2px; height: 2px; background: red;\"></div>\n <div style=\"height: 500px; background: lightblue;\">Top</div>\n <div style=\"height: 500px; background: lightgreen;\">Middle</div>\n <div style=\"height: 500px; background: lightyellow;\">Bottom</div>\n </body></html>`,\n ),\n );\n\n // Scroll from specific coordinates\n await page.scroll(640, 400, 0, 400);\n\n // Wait for scroll to complete\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n // Verify scroll happened\n const scrollY = await page.evaluate(() => window.scrollY);\n expect(scrollY).toBeGreaterThan(0);\n });\n\n test(\"scrolls with large deltaY values\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"height: 5000px;\">\n <div style=\"height: 1000px; background: lightblue;\">Section 1</div>\n <div style=\"height: 1000px; background: lightgreen;\">Section 2</div>\n <div style=\"height: 1000px; background: lightyellow;\">Section 3</div>\n <div style=\"height: 1000px; background: lightcoral;\">Section 4</div>\n <div style=\"height: 1000px; background: lightgray;\">Section 5</div>\n </body></html>`,\n ),\n );\n\n // Scroll with large delta\n await page.scroll(640, 400, 0, 1000);\n\n // Wait for scroll to complete\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n // Should scroll significantly\n const scrollY = await page.evaluate(() => window.scrollY);\n expect(scrollY).toBeGreaterThan(500);\n });\n\n test(\"negative deltaY scrolls up\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"height: 2000px;\">\n <div style=\"height: 500px; background: lightblue;\">Top</div>\n <div style=\"height: 500px; background: lightgreen;\">Middle 1</div>\n <div style=\"height: 500px; background: lightyellow;\">Middle 2</div>\n <div style=\"height: 500px; background: lightcoral;\">Bottom</div>\n </body></html>`,\n ),\n );\n\n // First scroll down\n await page.scroll(640, 400, 0, 500);\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n let scrollY = await page.evaluate(() => window.scrollY);\n const scrolledDown = scrollY;\n expect(scrolledDown).toBeGreaterThan(0);\n\n // Now scroll up (negative delta)\n await page.scroll(640, 400, 0, -300);\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n scrollY = await page.evaluate(() => window.scrollY);\n expect(scrollY).toBeLessThan(scrolledDown);\n });\n\n test(\"scroll returns xpath when requested\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"height: 2000px; margin: 0; padding: 0;\">\n <div id=\"target\" style=\"position: absolute; top: 0px; left: 400px; width: 300px; height: 100px; background: blue;\">\n Target element\n </div>\n <p style=\"position: absolute; top: 200px; left: 0px;\">Content below</p>\n </body></html>`,\n ),\n );\n\n // Scroll at coordinate (550, 50) which should be directly over the target div\n // div spans: left 400-700px, top 0-100px\n // coordinate 550,50 is within that range\n const xpath = await page.scroll(550, 50, 0, 200, { returnXpath: true });\n\n // Should return a non-empty xpath string for the element at that coordinate\n expect(typeof xpath).toBe(\"string\");\n expect(xpath.length).toBeGreaterThan(0);\n // Xpath should reference the div or contain \"target\"\n expect(xpath.toLowerCase()).toMatch(/div|target/);\n });\n\n test(\"scroll without returnXpath returns empty string\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"height: 2000px;\">\n <div style=\"height: 500px; background: lightblue;\">Content</div>\n </body></html>`,\n ),\n );\n\n // Scroll without returnXpath\n const result = await page.scroll(640, 400, 0, 200);\n\n // Should return empty string\n expect(result).toBe(\"\");\n });\n\n test(\"multiple sequential scrolls accumulate\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body style=\"height: 3000px;\">\n <div style=\"height: 750px; background: lightblue;\">Section 1</div>\n <div style=\"height: 750px; background: lightgreen;\">Section 2</div>\n <div style=\"height: 750px; background: lightyellow;\">Section 3</div>\n <div style=\"height: 750px; background: lightcoral;\">Section 4</div>\n </body></html>`,\n ),\n );\n\n // First scroll\n await page.scroll(640, 400, 0, 200);\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n const after1 = await page.evaluate(() => window.scrollY);\n expect(after1).toBeGreaterThan(0);\n\n // Second scroll\n await page.scroll(640, 400, 0, 200);\n await page.evaluate(() => new Promise((r) => setTimeout(r, 200)));\n\n const after2 = await page.evaluate(() => window.scrollY);\n\n expect(after2).toBeGreaterThan(after1);\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,47 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const v3_js_1 = require("../../lib/v3/v3.js");
5
- const v3_config_js_1 = require("./v3.config.js");
6
- test_1.test.describe("Page sendCDP method", () => {
7
- let v3;
8
- test_1.test.beforeEach(async () => {
9
- v3 = new v3_js_1.V3(v3_config_js_1.v3TestConfig);
10
- await v3.init();
11
- });
12
- test_1.test.afterEach(async () => {
13
- await v3?.close?.().catch(() => { });
14
- });
15
- (0, test_1.test)("sends CDP commands and requires domain to be enabled first", async () => {
16
- const page = v3.context.pages()[0];
17
- await page.goto("https://example.com");
18
- // Try to add a virtual authenticator without enabling WebAuthn first
19
- // This should fail because the domain needs to be enabled
20
- await (0, test_1.expect)(page.sendCDP("WebAuthn.addVirtualAuthenticator", {
21
- options: {
22
- protocol: "ctap2",
23
- transport: "usb",
24
- hasResidentKey: false,
25
- hasUserVerification: false,
26
- isUserVerified: false,
27
- },
28
- })).rejects.toThrow();
29
- // Enable the WebAuthn domain
30
- await page.sendCDP("WebAuthn.enable");
31
- // Now adding a virtual authenticator should succeed
32
- const result = await page.sendCDP("WebAuthn.addVirtualAuthenticator", {
33
- options: {
34
- protocol: "ctap2",
35
- transport: "usb",
36
- hasResidentKey: false,
37
- hasUserVerification: false,
38
- isUserVerified: false,
39
- },
40
- });
41
- // Verify we got an authenticator ID back
42
- (0, test_1.expect)(result).toHaveProperty("authenticatorId");
43
- (0, test_1.expect)(typeof result.authenticatorId).toBe("string");
44
- (0, test_1.expect)(result.authenticatorId.length).toBeGreaterThan(0);
45
- });
46
- });
47
- //# sourceMappingURL=page-send-cdp.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-send-cdp.spec.js","sourceRoot":"","sources":["../../../../tests/integration/page-send-cdp.spec.ts"],"names":[],"mappings":";;AAAA,2CAAgD;AAChD,8CAAwC;AACxC,iDAA8C;AAE9C,WAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACxC,IAAI,EAAM,CAAC;IAEX,WAAI,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE;QACzB,EAAE,GAAG,IAAI,UAAE,CAAC,2BAAY,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,WAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC5E,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEvC,qEAAqE;QACrE,0DAA0D;QAC1D,MAAM,IAAA,aAAM,EACV,IAAI,CAAC,OAAO,CAAC,kCAAkC,EAAE;YAC/C,OAAO,EAAE;gBACP,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,KAAK;gBACrB,mBAAmB,EAAE,KAAK;gBAC1B,cAAc,EAAE,KAAK;aACtB;SACF,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAEpB,6BAA6B;QAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEtC,oDAAoD;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAC/B,kCAAkC,EAClC;YACE,OAAO,EAAE;gBACP,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,KAAK;gBACrB,mBAAmB,EAAE,KAAK;gBAC1B,cAAc,EAAE,KAAK;aACtB;SACF,CACF,CAAC;QAEF,yCAAyC;QACzC,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAA,aAAM,EAAC,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { test, expect } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\n\ntest.describe(\"Page sendCDP method\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3(v3TestConfig);\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch(() => {});\n });\n\n test(\"sends CDP commands and requires domain to be enabled first\", async () => {\n const page = v3.context.pages()[0];\n await page.goto(\"https://example.com\");\n\n // Try to add a virtual authenticator without enabling WebAuthn first\n // This should fail because the domain needs to be enabled\n await expect(\n page.sendCDP(\"WebAuthn.addVirtualAuthenticator\", {\n options: {\n protocol: \"ctap2\",\n transport: \"usb\",\n hasResidentKey: false,\n hasUserVerification: false,\n isUserVerified: false,\n },\n }),\n ).rejects.toThrow();\n\n // Enable the WebAuthn domain\n await page.sendCDP(\"WebAuthn.enable\");\n\n // Now adding a virtual authenticator should succeed\n const result = await page.sendCDP<{ authenticatorId: string }>(\n \"WebAuthn.addVirtualAuthenticator\",\n {\n options: {\n protocol: \"ctap2\",\n transport: \"usb\",\n hasResidentKey: false,\n hasUserVerification: false,\n isUserVerified: false,\n },\n },\n );\n\n // Verify we got an authenticator ID back\n expect(result).toHaveProperty(\"authenticatorId\");\n expect(typeof result.authenticatorId).toBe(\"string\");\n expect(result.authenticatorId.length).toBeGreaterThan(0);\n });\n});\n"]}