@browserbasehq/orca 3.1.0-patch.3 → 3.2.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1460) hide show
  1. package/dist/cjs/cli.js +2 -210
  2. package/dist/cjs/index.d.ts +1 -0
  3. package/dist/cjs/index.js +2 -25025
  4. package/dist/cjs/lib/inference.js +335 -0
  5. package/dist/cjs/lib/inference.js.map +1 -0
  6. package/dist/cjs/lib/inferenceLogUtils.js +99 -0
  7. package/dist/cjs/lib/inferenceLogUtils.js.map +1 -0
  8. package/dist/cjs/lib/logger.js +331 -0
  9. package/dist/cjs/lib/logger.js.map +1 -0
  10. package/dist/cjs/lib/modelUtils.d.ts +1 -0
  11. package/dist/cjs/lib/modelUtils.js +53 -0
  12. package/dist/cjs/lib/modelUtils.js.map +1 -0
  13. package/dist/cjs/lib/prompt.d.ts +3 -2
  14. package/dist/cjs/lib/prompt.js +245 -0
  15. package/dist/cjs/lib/prompt.js.map +1 -0
  16. package/dist/cjs/lib/utils.js +670 -0
  17. package/dist/cjs/lib/utils.js.map +1 -0
  18. package/dist/cjs/lib/v3/agent/AgentClient.js +21 -0
  19. package/dist/cjs/lib/v3/agent/AgentClient.js.map +1 -0
  20. package/dist/cjs/lib/v3/agent/AgentProvider.js +81 -0
  21. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -0
  22. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +844 -0
  23. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
  24. package/dist/cjs/lib/v3/agent/GoogleCUAClient.js +803 -0
  25. package/dist/cjs/lib/v3/agent/GoogleCUAClient.js.map +1 -0
  26. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js +777 -0
  27. package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
  28. package/dist/cjs/lib/v3/agent/OpenAICUAClient.js +622 -0
  29. package/dist/cjs/lib/v3/agent/OpenAICUAClient.js.map +1 -0
  30. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.d.ts +3 -1
  31. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js +212 -0
  32. package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
  33. package/dist/cjs/lib/v3/agent/tools/act.d.ts +2 -2
  34. package/dist/cjs/lib/v3/agent/tools/act.js +75 -0
  35. package/dist/cjs/lib/v3/agent/tools/act.js.map +1 -0
  36. package/dist/cjs/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  37. package/dist/cjs/lib/v3/agent/tools/ariaTree.js +73 -0
  38. package/dist/cjs/lib/v3/agent/tools/ariaTree.js.map +1 -0
  39. package/dist/cjs/lib/v3/agent/tools/click.js +100 -0
  40. package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -0
  41. package/dist/cjs/lib/v3/agent/tools/clickAndHold.js +72 -0
  42. package/dist/cjs/lib/v3/agent/tools/clickAndHold.js.map +1 -0
  43. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js +101 -0
  44. package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
  45. package/dist/cjs/lib/v3/agent/tools/extract.d.ts +2 -2
  46. package/dist/cjs/lib/v3/agent/tools/extract.js +110 -0
  47. package/dist/cjs/lib/v3/agent/tools/extract.js.map +1 -0
  48. package/dist/cjs/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
  49. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js +158 -0
  50. package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -0
  51. package/dist/cjs/lib/v3/agent/tools/fillform.d.ts +8 -2
  52. package/dist/cjs/lib/v3/agent/tools/fillform.js +90 -0
  53. package/dist/cjs/lib/v3/agent/tools/fillform.js.map +1 -0
  54. package/dist/cjs/lib/v3/agent/tools/goto.js +35 -0
  55. package/dist/cjs/lib/v3/agent/tools/goto.js.map +1 -0
  56. package/dist/cjs/lib/v3/agent/tools/index.d.ts +11 -1
  57. package/dist/cjs/lib/v3/agent/tools/index.js +78 -0
  58. package/dist/cjs/lib/v3/agent/tools/index.js.map +1 -0
  59. package/dist/cjs/lib/v3/agent/tools/keys.js +64 -0
  60. package/dist/cjs/lib/v3/agent/tools/keys.js.map +1 -0
  61. package/dist/cjs/lib/v3/agent/tools/navback.js +27 -0
  62. package/dist/cjs/lib/v3/agent/tools/navback.js.map +1 -0
  63. package/dist/cjs/lib/v3/agent/tools/screenshot.d.ts +8 -0
  64. package/dist/cjs/lib/v3/agent/tools/screenshot.js +47 -0
  65. package/dist/cjs/lib/v3/agent/tools/screenshot.js.map +1 -0
  66. package/dist/cjs/lib/v3/agent/tools/scroll.js +159 -0
  67. package/dist/cjs/lib/v3/agent/tools/scroll.js.map +1 -0
  68. package/dist/cjs/lib/v3/agent/tools/search.js +77 -0
  69. package/dist/cjs/lib/v3/agent/tools/search.js.map +1 -0
  70. package/dist/cjs/lib/v3/agent/tools/think.js +28 -0
  71. package/dist/cjs/lib/v3/agent/tools/think.js.map +1 -0
  72. package/dist/cjs/lib/v3/agent/tools/type.d.ts +2 -2
  73. package/dist/cjs/lib/v3/agent/tools/type.js +111 -0
  74. package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -0
  75. package/dist/cjs/lib/v3/agent/tools/wait.js +63 -0
  76. package/dist/cjs/lib/v3/agent/tools/wait.js.map +1 -0
  77. package/dist/cjs/lib/v3/agent/utils/actionMapping.js +103 -0
  78. package/dist/cjs/lib/v3/agent/utils/actionMapping.js.map +1 -0
  79. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js +33 -0
  80. package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
  81. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js +65 -0
  82. package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
  83. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js +150 -0
  84. package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
  85. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +108 -0
  86. package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
  87. package/dist/cjs/lib/v3/agent/utils/imageCompression.js +212 -0
  88. package/dist/cjs/lib/v3/agent/utils/imageCompression.js.map +1 -0
  89. package/dist/cjs/lib/v3/agent/utils/messageProcessing.js +167 -0
  90. package/dist/cjs/lib/v3/agent/utils/messageProcessing.js.map +1 -0
  91. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js +29 -0
  92. package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
  93. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js +90 -0
  94. package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
  95. package/dist/cjs/lib/v3/agent/utils/variables.d.ts +21 -0
  96. package/dist/cjs/lib/v3/agent/utils/variables.js +54 -0
  97. package/dist/cjs/lib/v3/agent/utils/variables.js.map +1 -0
  98. package/dist/cjs/lib/v3/agent/utils/xpath.js +22 -0
  99. package/dist/cjs/lib/v3/agent/utils/xpath.js.map +1 -0
  100. package/dist/cjs/lib/v3/api.d.ts +23 -5
  101. package/dist/cjs/lib/v3/api.js +589 -0
  102. package/dist/cjs/lib/v3/api.js.map +1 -0
  103. package/dist/cjs/lib/v3/cache/ActCache.d.ts +0 -1
  104. package/dist/cjs/lib/v3/cache/ActCache.js +280 -0
  105. package/dist/cjs/lib/v3/cache/ActCache.js.map +1 -0
  106. package/dist/cjs/lib/v3/cache/AgentCache.d.ts +1 -0
  107. package/dist/cjs/lib/v3/cache/AgentCache.js +651 -0
  108. package/dist/cjs/lib/v3/cache/AgentCache.js.map +1 -0
  109. package/dist/cjs/lib/v3/cache/CacheStorage.js +105 -0
  110. package/dist/cjs/lib/v3/cache/CacheStorage.js.map +1 -0
  111. package/dist/cjs/lib/v3/cache/serverAgentCache.js +52 -0
  112. package/dist/cjs/lib/v3/cache/serverAgentCache.js.map +1 -0
  113. package/dist/cjs/lib/v3/cache/utils.js +44 -0
  114. package/dist/cjs/lib/v3/cache/utils.js.map +1 -0
  115. package/dist/cjs/lib/v3/cli.js +15 -0
  116. package/dist/cjs/lib/v3/cli.js.map +1 -0
  117. package/dist/cjs/lib/v3/dom/a11yScripts/index.js +124 -0
  118. package/dist/cjs/lib/v3/dom/a11yScripts/index.js.map +1 -0
  119. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js +23 -0
  120. package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
  121. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js +59 -0
  122. package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
  123. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js +5 -0
  124. package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
  125. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js +11 -0
  126. package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
  127. package/dist/cjs/lib/v3/dom/build/scriptV3Content.js +5 -0
  128. package/dist/cjs/lib/v3/dom/build/scriptV3Content.js.map +1 -0
  129. package/dist/cjs/lib/v3/dom/index.js +18 -0
  130. package/dist/cjs/lib/v3/dom/index.js.map +1 -0
  131. package/dist/cjs/lib/v3/dom/locatorScripts/counts.js +278 -0
  132. package/dist/cjs/lib/v3/dom/locatorScripts/counts.js.map +1 -0
  133. package/dist/cjs/lib/v3/dom/locatorScripts/index.js +21 -0
  134. package/dist/cjs/lib/v3/dom/locatorScripts/index.js.map +1 -0
  135. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js +474 -0
  136. package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
  137. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js +289 -0
  138. package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
  139. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js +286 -0
  140. package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
  141. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js +381 -0
  142. package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
  143. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js +202 -0
  144. package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
  145. package/dist/cjs/lib/v3/dom/piercer.entry.js +5 -0
  146. package/dist/cjs/lib/v3/dom/piercer.entry.js.map +1 -0
  147. package/dist/cjs/lib/v3/dom/piercer.runtime.js +93 -0
  148. package/dist/cjs/lib/v3/dom/piercer.runtime.js.map +1 -0
  149. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js +5 -0
  150. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
  151. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js +43 -0
  152. package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
  153. package/dist/cjs/lib/v3/dom/screenshotScripts/index.js +6 -0
  154. package/dist/cjs/lib/v3/dom/screenshotScripts/index.js.map +1 -0
  155. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js +85 -0
  156. package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
  157. package/dist/cjs/lib/v3/external_clients/aisdk.js +107 -0
  158. package/dist/cjs/lib/v3/external_clients/aisdk.js.map +1 -0
  159. package/dist/cjs/lib/v3/external_clients/customOpenAI.js +224 -0
  160. package/dist/cjs/lib/v3/external_clients/customOpenAI.js.map +1 -0
  161. package/dist/cjs/lib/v3/flowLogger.js +881 -0
  162. package/dist/cjs/lib/v3/flowLogger.js.map +1 -0
  163. package/dist/cjs/lib/v3/handlers/actHandler.d.ts +2 -1
  164. package/dist/cjs/lib/v3/handlers/actHandler.js +344 -0
  165. package/dist/cjs/lib/v3/handlers/actHandler.js.map +1 -0
  166. package/dist/cjs/lib/v3/handlers/extractHandler.js +144 -0
  167. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -0
  168. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js +604 -0
  169. package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
  170. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js +17 -0
  171. package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
  172. package/dist/cjs/lib/v3/handlers/observeHandler.js +159 -0
  173. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -0
  174. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +462 -0
  175. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -0
  176. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +532 -0
  177. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
  178. package/dist/cjs/lib/v3/index.d.ts +143 -0
  179. package/dist/cjs/lib/v3/index.js +119 -0
  180. package/dist/cjs/lib/v3/index.js.map +1 -0
  181. package/dist/cjs/lib/v3/launch/browserbase.d.ts +1 -1
  182. package/dist/cjs/lib/v3/launch/browserbase.js +47 -0
  183. package/dist/cjs/lib/v3/launch/browserbase.js.map +1 -0
  184. package/dist/cjs/lib/v3/launch/local.js +104 -0
  185. package/dist/cjs/lib/v3/launch/local.js.map +1 -0
  186. package/dist/cjs/lib/v3/llm/AnthropicClient.js +246 -0
  187. package/dist/cjs/lib/v3/llm/AnthropicClient.js.map +1 -0
  188. package/dist/cjs/lib/v3/llm/CerebrasClient.js +242 -0
  189. package/dist/cjs/lib/v3/llm/CerebrasClient.js.map +1 -0
  190. package/dist/cjs/lib/v3/llm/GoogleClient.js +373 -0
  191. package/dist/cjs/lib/v3/llm/GoogleClient.js.map +1 -0
  192. package/dist/cjs/lib/v3/llm/GroqClient.js +243 -0
  193. package/dist/cjs/lib/v3/llm/GroqClient.js.map +1 -0
  194. package/dist/cjs/lib/v3/llm/LLMClient.js +27 -0
  195. package/dist/cjs/lib/v3/llm/LLMClient.js.map +1 -0
  196. package/dist/cjs/lib/v3/llm/LLMProvider.js +194 -0
  197. package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -0
  198. package/dist/cjs/lib/v3/llm/OpenAIClient.js +336 -0
  199. package/dist/cjs/lib/v3/llm/OpenAIClient.js.map +1 -0
  200. package/dist/cjs/lib/v3/llm/aisdk.js +355 -0
  201. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -0
  202. package/dist/cjs/lib/v3/logger.js +102 -0
  203. package/dist/cjs/lib/v3/logger.js.map +1 -0
  204. package/dist/cjs/lib/v3/mcp/connection.d.ts +2 -0
  205. package/dist/cjs/lib/v3/mcp/connection.js +56 -0
  206. package/dist/cjs/lib/v3/mcp/connection.js.map +1 -0
  207. package/dist/cjs/lib/v3/mcp/utils.js +40 -0
  208. package/dist/cjs/lib/v3/mcp/utils.js.map +1 -0
  209. package/dist/cjs/lib/v3/runtimePaths.d.ts +6 -0
  210. package/dist/cjs/lib/v3/runtimePaths.js +119 -0
  211. package/dist/cjs/lib/v3/runtimePaths.js.map +1 -0
  212. package/dist/cjs/lib/v3/shutdown/cleanupLocal.js +36 -0
  213. package/dist/cjs/lib/v3/shutdown/cleanupLocal.js.map +1 -0
  214. package/dist/cjs/lib/v3/shutdown/supervisor.js +193 -0
  215. package/dist/cjs/lib/v3/shutdown/supervisor.js.map +1 -0
  216. package/dist/cjs/lib/v3/shutdown/supervisorClient.js +95 -0
  217. package/dist/cjs/lib/v3/shutdown/supervisorClient.js.map +1 -0
  218. package/dist/cjs/lib/v3/timeoutConfig.d.ts +1 -1
  219. package/dist/cjs/lib/v3/timeoutConfig.js +36 -0
  220. package/dist/cjs/lib/v3/timeoutConfig.js.map +1 -0
  221. package/dist/cjs/lib/v3/types/private/agent.js +3 -0
  222. package/dist/cjs/lib/v3/types/private/agent.js.map +1 -0
  223. package/dist/cjs/lib/v3/types/private/api.js +3 -0
  224. package/dist/cjs/lib/v3/types/private/api.js.map +1 -0
  225. package/dist/cjs/lib/v3/types/private/cache.d.ts +3 -0
  226. package/dist/cjs/lib/v3/types/private/cache.js +3 -0
  227. package/dist/cjs/lib/v3/types/private/cache.js.map +1 -0
  228. package/dist/cjs/lib/v3/types/private/evaluator.js +3 -0
  229. package/dist/cjs/lib/v3/types/private/evaluator.js.map +1 -0
  230. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -1
  231. package/dist/cjs/lib/v3/types/private/handlers.js +19 -0
  232. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -0
  233. package/dist/cjs/lib/v3/types/private/index.js +24 -0
  234. package/dist/cjs/lib/v3/types/private/index.js.map +1 -0
  235. package/dist/cjs/lib/v3/types/private/internal.js +3 -0
  236. package/dist/cjs/lib/v3/types/private/internal.js.map +1 -0
  237. package/dist/cjs/lib/v3/types/private/locator.js +3 -0
  238. package/dist/cjs/lib/v3/types/private/locator.js.map +1 -0
  239. package/dist/cjs/lib/v3/types/private/network.js +6 -0
  240. package/dist/cjs/lib/v3/types/private/network.js.map +1 -0
  241. package/dist/cjs/lib/v3/types/private/shutdown.d.ts +1 -1
  242. package/dist/cjs/lib/v3/types/private/shutdown.js +6 -0
  243. package/dist/cjs/lib/v3/types/private/shutdown.js.map +1 -0
  244. package/dist/cjs/lib/v3/types/private/shutdownErrors.js +28 -0
  245. package/dist/cjs/lib/v3/types/private/shutdownErrors.js.map +1 -0
  246. package/dist/cjs/lib/v3/types/private/snapshot.js +3 -0
  247. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -0
  248. package/dist/cjs/lib/v3/types/public/agent.d.ts +60 -2
  249. package/dist/cjs/lib/v3/types/public/agent.js +18 -0
  250. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -0
  251. package/dist/cjs/lib/v3/types/public/api.d.ts +17 -0
  252. package/dist/cjs/lib/v3/types/public/api.js +922 -0
  253. package/dist/cjs/lib/v3/types/public/api.js.map +1 -0
  254. package/dist/cjs/lib/v3/types/public/apiErrors.js +41 -0
  255. package/dist/cjs/lib/v3/types/public/apiErrors.js.map +1 -0
  256. package/dist/cjs/lib/v3/types/public/context.d.ts +32 -0
  257. package/dist/cjs/lib/v3/types/public/context.js +3 -0
  258. package/dist/cjs/lib/v3/types/public/context.js.map +1 -0
  259. package/dist/cjs/lib/v3/types/public/index.d.ts +1 -0
  260. package/dist/cjs/lib/v3/types/public/index.js +56 -0
  261. package/dist/cjs/lib/v3/types/public/index.js.map +1 -0
  262. package/dist/cjs/lib/v3/types/public/locator.js +3 -0
  263. package/dist/cjs/lib/v3/types/public/locator.js.map +1 -0
  264. package/dist/cjs/lib/v3/types/public/logs.js +16 -0
  265. package/dist/cjs/lib/v3/types/public/logs.js.map +1 -0
  266. package/dist/cjs/lib/v3/types/public/methods.d.ts +33 -2
  267. package/dist/cjs/lib/v3/types/public/methods.js +18 -0
  268. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -0
  269. package/dist/cjs/lib/v3/types/public/metrics.js +3 -0
  270. package/dist/cjs/lib/v3/types/public/metrics.js.map +1 -0
  271. package/dist/cjs/lib/v3/types/public/model.d.ts +4 -2
  272. package/dist/cjs/lib/v3/types/public/model.js +3 -0
  273. package/dist/cjs/lib/v3/types/public/model.js.map +1 -0
  274. package/dist/cjs/lib/v3/types/public/options.d.ts +8 -0
  275. package/dist/cjs/lib/v3/types/public/options.js +7 -0
  276. package/dist/cjs/lib/v3/types/public/options.js.map +1 -0
  277. package/dist/cjs/lib/v3/types/public/page.js +8 -0
  278. package/dist/cjs/lib/v3/types/public/page.js.map +1 -0
  279. package/dist/cjs/lib/v3/types/public/screenshotTypes.js +3 -0
  280. package/dist/cjs/lib/v3/types/public/screenshotTypes.js.map +1 -0
  281. package/dist/cjs/lib/v3/types/public/sdkErrors.d.ts +13 -0
  282. package/dist/cjs/lib/v3/types/public/sdkErrors.js +390 -0
  283. package/dist/cjs/lib/v3/types/public/sdkErrors.js.map +1 -0
  284. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +204 -0
  285. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
  286. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js +124 -0
  287. package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
  288. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js +345 -0
  289. package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
  290. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +132 -0
  291. package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
  292. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js +285 -0
  293. package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
  294. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
  295. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js +226 -0
  296. package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
  297. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js +12 -0
  298. package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
  299. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js +26 -0
  300. package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
  301. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +143 -0
  302. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
  303. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js +110 -0
  304. package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
  305. package/dist/cjs/lib/v3/understudy/a11yInvocation.js +15 -0
  306. package/dist/cjs/lib/v3/understudy/a11yInvocation.js.map +1 -0
  307. package/dist/cjs/lib/v3/understudy/cdp.d.ts +6 -1
  308. package/dist/cjs/lib/v3/understudy/cdp.js +317 -0
  309. package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -0
  310. package/dist/cjs/lib/v3/understudy/consoleMessage.js +70 -0
  311. package/dist/cjs/lib/v3/understudy/consoleMessage.js.map +1 -0
  312. package/dist/cjs/lib/v3/understudy/context.d.ts +34 -0
  313. package/dist/cjs/lib/v3/understudy/context.js +960 -0
  314. package/dist/cjs/lib/v3/understudy/context.js.map +1 -0
  315. package/dist/cjs/lib/v3/understudy/cookies.d.ts +32 -0
  316. package/dist/cjs/lib/v3/understudy/cookies.js +142 -0
  317. package/dist/cjs/lib/v3/understudy/cookies.js.map +1 -0
  318. package/dist/cjs/lib/v3/understudy/deepLocator.js +204 -0
  319. package/dist/cjs/lib/v3/understudy/deepLocator.js.map +1 -0
  320. package/dist/cjs/lib/v3/understudy/executionContextRegistry.js +87 -0
  321. package/dist/cjs/lib/v3/understudy/executionContextRegistry.js.map +1 -0
  322. package/dist/cjs/lib/v3/understudy/fileUploadUtils.js +88 -0
  323. package/dist/cjs/lib/v3/understudy/fileUploadUtils.js.map +1 -0
  324. package/dist/cjs/lib/v3/understudy/frame.js +232 -0
  325. package/dist/cjs/lib/v3/understudy/frame.js.map +1 -0
  326. package/dist/cjs/lib/v3/understudy/frameLocator.js +260 -0
  327. package/dist/cjs/lib/v3/understudy/frameLocator.js.map +1 -0
  328. package/dist/cjs/lib/v3/understudy/frameRegistry.js +302 -0
  329. package/dist/cjs/lib/v3/understudy/frameRegistry.js.map +1 -0
  330. package/dist/cjs/lib/v3/understudy/initScripts.js +36 -0
  331. package/dist/cjs/lib/v3/understudy/initScripts.js.map +1 -0
  332. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js +249 -0
  333. package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
  334. package/dist/cjs/lib/v3/understudy/locator.js +790 -0
  335. package/dist/cjs/lib/v3/understudy/locator.js.map +1 -0
  336. package/dist/cjs/lib/v3/understudy/locatorInvocation.js +15 -0
  337. package/dist/cjs/lib/v3/understudy/locatorInvocation.js.map +1 -0
  338. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js +228 -0
  339. package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
  340. package/dist/cjs/lib/v3/understudy/networkManager.js +310 -0
  341. package/dist/cjs/lib/v3/understudy/networkManager.js.map +1 -0
  342. package/dist/cjs/lib/v3/understudy/page.d.ts +13 -0
  343. package/dist/cjs/lib/v3/understudy/page.js +1998 -0
  344. package/dist/cjs/lib/v3/understudy/page.js.map +1 -0
  345. package/dist/cjs/lib/v3/understudy/piercer.js +65 -0
  346. package/dist/cjs/lib/v3/understudy/piercer.js.map +1 -0
  347. package/dist/cjs/lib/v3/understudy/response.js +335 -0
  348. package/dist/cjs/lib/v3/understudy/response.js.map +1 -0
  349. package/dist/cjs/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  350. package/dist/cjs/lib/v3/understudy/screenshotUtils.js +345 -0
  351. package/dist/cjs/lib/v3/understudy/screenshotUtils.js.map +1 -0
  352. package/dist/cjs/lib/v3/understudy/selectorResolver.js +300 -0
  353. package/dist/cjs/lib/v3/understudy/selectorResolver.js.map +1 -0
  354. package/dist/cjs/lib/v3/v3.js +1631 -0
  355. package/dist/cjs/lib/v3/v3.js.map +1 -0
  356. package/dist/cjs/lib/v3/zodCompat.js +26 -0
  357. package/dist/cjs/lib/v3/zodCompat.js.map +1 -0
  358. package/dist/cjs/lib/v3Evaluator.js +214 -0
  359. package/dist/cjs/lib/v3Evaluator.js.map +1 -0
  360. package/dist/cjs/lib/version.d.ts +1 -1
  361. package/dist/cjs/lib/version.js +9 -0
  362. package/dist/cjs/lib/version.js.map +1 -0
  363. package/dist/cjs/tests/cache-variables.test.js +221 -0
  364. package/dist/cjs/tests/cache-variables.test.js.map +1 -0
  365. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +123 -0
  366. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +1 -0
  367. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +83 -0
  368. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
  369. package/dist/cjs/tests/integration/agent-callbacks.spec.js +385 -0
  370. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +1 -0
  371. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +362 -0
  372. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +1 -0
  373. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +262 -0
  374. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
  375. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +112 -0
  376. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +1 -0
  377. package/dist/cjs/tests/integration/agent-streaming.spec.js +140 -0
  378. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +1 -0
  379. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
  380. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +41 -0
  381. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +1 -0
  382. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +1 -0
  383. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +76 -0
  384. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +1 -0
  385. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +1 -0
  386. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +45 -0
  387. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +1 -0
  388. package/dist/cjs/tests/integration/click-count.spec.d.ts +1 -0
  389. package/dist/cjs/tests/integration/click-count.spec.js +163 -0
  390. package/dist/cjs/tests/integration/click-count.spec.js.map +1 -0
  391. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
  392. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +99 -0
  393. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
  394. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +1 -0
  395. package/dist/cjs/tests/integration/context-addInitScript.spec.js +285 -0
  396. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +1 -0
  397. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
  398. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +49 -0
  399. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +1 -0
  400. package/dist/cjs/tests/integration/cookies.spec.d.ts +1 -0
  401. package/dist/cjs/tests/integration/cookies.spec.js +187 -0
  402. package/dist/cjs/tests/integration/cookies.spec.js.map +1 -0
  403. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +1 -0
  404. package/dist/cjs/tests/integration/default-page-tracking.spec.js +52 -0
  405. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +1 -0
  406. package/dist/cjs/tests/integration/downloads.spec.d.ts +1 -0
  407. package/dist/cjs/tests/integration/downloads.spec.js +52 -0
  408. package/dist/cjs/tests/integration/downloads.spec.js.map +1 -0
  409. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
  410. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +57 -0
  411. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
  412. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  413. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +219 -0
  414. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  415. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
  416. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +474 -0
  417. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
  418. package/dist/cjs/tests/integration/keep-alive.child.d.ts +1 -0
  419. package/dist/cjs/tests/integration/keep-alive.child.js +85 -0
  420. package/dist/cjs/tests/integration/keep-alive.child.js.map +1 -0
  421. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +22 -0
  422. package/dist/cjs/tests/integration/keep-alive.spec.js +490 -0
  423. package/dist/cjs/tests/integration/keep-alive.spec.js.map +1 -0
  424. package/dist/cjs/tests/integration/keyboard.spec.d.ts +1 -0
  425. package/dist/cjs/tests/integration/keyboard.spec.js +259 -0
  426. package/dist/cjs/tests/integration/keyboard.spec.js.map +1 -0
  427. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
  428. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +150 -0
  429. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +1 -0
  430. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +1 -0
  431. package/dist/cjs/tests/integration/locator-content-methods.spec.js +180 -0
  432. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +1 -0
  433. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +1 -0
  434. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +129 -0
  435. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +1 -0
  436. package/dist/cjs/tests/integration/locator-count.spec.d.ts +1 -0
  437. package/dist/cjs/tests/integration/locator-count.spec.js +68 -0
  438. package/dist/cjs/tests/integration/locator-count.spec.js.map +1 -0
  439. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +1 -0
  440. package/dist/cjs/tests/integration/locator-fill.spec.js +117 -0
  441. package/dist/cjs/tests/integration/locator-fill.spec.js.map +1 -0
  442. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +1 -0
  443. package/dist/cjs/tests/integration/locator-input-methods.spec.js +127 -0
  444. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +1 -0
  445. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +1 -0
  446. package/dist/cjs/tests/integration/locator-nth.spec.js +175 -0
  447. package/dist/cjs/tests/integration/locator-nth.spec.js.map +1 -0
  448. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +1 -0
  449. package/dist/cjs/tests/integration/locator-select-option.spec.js +216 -0
  450. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +1 -0
  451. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +1 -0
  452. package/dist/cjs/tests/integration/logger-initialization.spec.js +597 -0
  453. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +1 -0
  454. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +1 -0
  455. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +293 -0
  456. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +1 -0
  457. package/dist/cjs/tests/integration/nested-div.spec.d.ts +1 -0
  458. package/dist/cjs/tests/integration/nested-div.spec.js +22 -0
  459. package/dist/cjs/tests/integration/nested-div.spec.js.map +1 -0
  460. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +1 -0
  461. package/dist/cjs/tests/integration/page-addInitScript.spec.js +94 -0
  462. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +1 -0
  463. package/dist/cjs/tests/integration/page-console.spec.d.ts +1 -0
  464. package/dist/cjs/tests/integration/page-console.spec.js +47 -0
  465. package/dist/cjs/tests/integration/page-console.spec.js.map +1 -0
  466. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
  467. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +437 -0
  468. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +1 -0
  469. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  470. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +85 -0
  471. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  472. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +1 -0
  473. package/dist/cjs/tests/integration/page-goto-response.spec.js +34 -0
  474. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +1 -0
  475. package/dist/cjs/tests/integration/page-hover.spec.d.ts +1 -0
  476. package/dist/cjs/tests/integration/page-hover.spec.js +165 -0
  477. package/dist/cjs/tests/integration/page-hover.spec.js.map +1 -0
  478. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +1 -0
  479. package/dist/cjs/tests/integration/page-screenshot.spec.js +292 -0
  480. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +1 -0
  481. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +1 -0
  482. package/dist/cjs/tests/integration/page-scroll.spec.js +183 -0
  483. package/dist/cjs/tests/integration/page-scroll.spec.js.map +1 -0
  484. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +1 -0
  485. package/dist/cjs/tests/integration/page-send-cdp.spec.js +47 -0
  486. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +1 -0
  487. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +1 -0
  488. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +63 -0
  489. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +1 -0
  490. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +1 -0
  491. package/dist/cjs/tests/integration/setinputfiles.spec.js +133 -0
  492. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +1 -0
  493. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
  494. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +161 -0
  495. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
  496. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
  497. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +160 -0
  498. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
  499. package/dist/cjs/tests/integration/testUtils.d.ts +7 -0
  500. package/dist/cjs/tests/integration/testUtils.js +44 -0
  501. package/dist/cjs/tests/integration/testUtils.js.map +1 -0
  502. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +1 -0
  503. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +105 -0
  504. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +1 -0
  505. package/dist/cjs/tests/integration/timeouts.spec.d.ts +1 -0
  506. package/dist/cjs/tests/integration/timeouts.spec.js +197 -0
  507. package/dist/cjs/tests/integration/timeouts.spec.js.map +1 -0
  508. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +1 -0
  509. package/dist/cjs/tests/integration/user-data-dir.spec.js +77 -0
  510. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +1 -0
  511. package/dist/cjs/tests/integration/v3.config.d.ts +4 -0
  512. package/dist/cjs/tests/integration/v3.config.js +11 -0
  513. package/dist/cjs/tests/integration/v3.config.js.map +1 -0
  514. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +4 -0
  515. package/dist/cjs/tests/integration/v3.dynamic.config.js +48 -0
  516. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +1 -0
  517. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +2 -0
  518. package/dist/cjs/tests/integration/v3.playwright.config.js +48 -0
  519. package/dist/cjs/tests/integration/v3.playwright.config.js.map +1 -0
  520. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +1 -0
  521. package/dist/cjs/tests/integration/wait-for-selector.spec.js +683 -0
  522. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +1 -0
  523. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +1 -0
  524. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +118 -0
  525. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +1 -0
  526. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
  527. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +87 -0
  528. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
  529. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +1 -0
  530. package/dist/cjs/tests/unit/agent-execution-model.test.js +128 -0
  531. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +1 -0
  532. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +1 -0
  533. package/dist/cjs/tests/unit/api-multiregion.test.js +58 -0
  534. package/dist/cjs/tests/unit/api-multiregion.test.js.map +1 -0
  535. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
  536. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +102 -0
  537. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +1 -0
  538. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +1 -0
  539. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +186 -0
  540. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +1 -0
  541. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +1 -0
  542. package/dist/cjs/tests/unit/cdp-connection-close.test.js +74 -0
  543. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +1 -0
  544. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +1 -0
  545. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +58 -0
  546. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +1 -0
  547. package/dist/cjs/tests/unit/cookies.test.d.ts +1 -0
  548. package/dist/cjs/tests/unit/cookies.test.js +944 -0
  549. package/dist/cjs/tests/unit/cookies.test.js.map +1 -0
  550. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +19 -0
  551. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +29 -0
  552. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +1 -0
  553. package/dist/cjs/tests/unit/llm-provider.test.d.ts +1 -0
  554. package/dist/cjs/tests/unit/llm-provider.test.js +64 -0
  555. package/dist/cjs/tests/unit/llm-provider.test.js.map +1 -0
  556. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +1 -0
  557. package/dist/cjs/tests/unit/model-deprecation.test.js +142 -0
  558. package/dist/cjs/tests/unit/model-deprecation.test.js.map +1 -0
  559. package/dist/cjs/tests/unit/model-utils.test.d.ts +1 -0
  560. package/dist/cjs/tests/unit/model-utils.test.js +42 -0
  561. package/dist/cjs/tests/unit/model-utils.test.js.map +1 -0
  562. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  563. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +92 -0
  564. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +1 -0
  565. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +1 -0
  566. package/dist/cjs/tests/unit/page-snapshot.test.js +75 -0
  567. package/dist/cjs/tests/unit/page-snapshot.test.js.map +1 -0
  568. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +1 -0
  569. package/dist/cjs/tests/unit/public-api/export-surface.test.js +107 -0
  570. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +1 -0
  571. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
  572. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +175 -0
  573. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
  574. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +62 -0
  575. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +110 -0
  576. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +1 -0
  577. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +1 -0
  578. package/dist/cjs/tests/unit/public-api/public-types.test.js +99 -0
  579. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +1 -0
  580. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
  581. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +60 -0
  582. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +1 -0
  583. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +1 -0
  584. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +95 -0
  585. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +1 -0
  586. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
  587. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +121 -0
  588. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
  589. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
  590. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +65 -0
  591. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +1 -0
  592. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +1 -0
  593. package/dist/cjs/tests/unit/public-api/v3-core.test.js +108 -0
  594. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +1 -0
  595. package/dist/cjs/tests/unit/rerender-missing-shadows.test.d.ts +1 -0
  596. package/dist/cjs/tests/unit/rerender-missing-shadows.test.js +209 -0
  597. package/dist/cjs/tests/unit/rerender-missing-shadows.test.js.map +1 -0
  598. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +1 -0
  599. package/dist/cjs/tests/unit/safety-confirmation.test.js +110 -0
  600. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +1 -0
  601. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
  602. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +330 -0
  603. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
  604. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
  605. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +286 -0
  606. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
  607. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
  608. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +394 -0
  609. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
  610. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +1 -0
  611. package/dist/cjs/tests/unit/snapshot-cbor.test.js +204 -0
  612. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +1 -0
  613. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
  614. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +220 -0
  615. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
  616. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
  617. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +107 -0
  618. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
  619. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
  620. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +89 -0
  621. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
  622. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
  623. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +335 -0
  624. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +1 -0
  625. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
  626. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +84 -0
  627. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
  628. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
  629. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +74 -0
  630. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
  631. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +1 -0
  632. package/dist/cjs/tests/unit/timeout-handlers.test.js +847 -0
  633. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +1 -0
  634. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +1 -0
  635. package/dist/cjs/tests/unit/understudy-command-exception.test.js +57 -0
  636. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +1 -0
  637. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +1 -0
  638. package/dist/cjs/tests/unit/xpath-parser.test.js +311 -0
  639. package/dist/cjs/tests/unit/xpath-parser.test.js.map +1 -0
  640. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +1 -0
  641. package/dist/cjs/tests/unit/xpath-resolver.test.js +80 -0
  642. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +1 -0
  643. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
  644. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +149 -0
  645. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +1 -0
  646. package/dist/esm/index.d.ts +1 -2
  647. package/dist/esm/index.js +1 -2
  648. package/dist/esm/lib/inference.js +5 -8
  649. package/dist/esm/lib/inference.js.map +1 -1
  650. package/dist/esm/lib/modelUtils.d.ts +1 -0
  651. package/dist/esm/lib/modelUtils.js.map +1 -1
  652. package/dist/esm/lib/prompt.d.ts +3 -2
  653. package/dist/esm/lib/prompt.js.map +1 -1
  654. package/dist/esm/lib/v3/agent/AgentProvider.js +1 -1
  655. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  656. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +17 -2
  657. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  658. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +4 -4
  659. package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -1
  660. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +3 -1
  661. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +24 -1
  662. package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -1
  663. package/dist/esm/lib/v3/agent/tools/act.d.ts +2 -2
  664. package/dist/esm/lib/v3/agent/tools/act.js +66 -44
  665. package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
  666. package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +8 -1
  667. package/dist/esm/lib/v3/agent/tools/ariaTree.js +60 -22
  668. package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -1
  669. package/dist/esm/lib/v3/agent/tools/click.js +23 -31
  670. package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
  671. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +22 -30
  672. package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
  673. package/dist/esm/lib/v3/agent/tools/extract.d.ts +2 -2
  674. package/dist/esm/lib/v3/agent/tools/extract.js +16 -3
  675. package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
  676. package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
  677. package/dist/esm/lib/v3/agent/tools/fillFormVision.js +109 -98
  678. package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
  679. package/dist/esm/lib/v3/agent/tools/fillform.d.ts +8 -2
  680. package/dist/esm/lib/v3/agent/tools/fillform.js +82 -52
  681. package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
  682. package/dist/esm/lib/v3/agent/tools/index.d.ts +11 -1
  683. package/dist/esm/lib/v3/agent/tools/index.js +8 -7
  684. package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
  685. package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +8 -0
  686. package/dist/esm/lib/v3/agent/tools/screenshot.js +32 -15
  687. package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -1
  688. package/dist/esm/lib/v3/agent/tools/scroll.js +12 -0
  689. package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -1
  690. package/dist/esm/lib/v3/agent/tools/type.d.ts +2 -2
  691. package/dist/esm/lib/v3/agent/tools/type.js +80 -79
  692. package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
  693. package/dist/esm/lib/v3/agent/tools/wait.js +6 -0
  694. package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -1
  695. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +4 -0
  696. package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
  697. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +8 -0
  698. package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -1
  699. package/dist/esm/lib/v3/agent/utils/variables.d.ts +21 -0
  700. package/dist/esm/lib/v3/agent/utils/variables.js +48 -0
  701. package/dist/esm/lib/v3/agent/utils/variables.js.map +1 -0
  702. package/dist/esm/lib/v3/api.d.ts +23 -5
  703. package/dist/esm/lib/v3/api.js +74 -13
  704. package/dist/esm/lib/v3/api.js.map +1 -1
  705. package/dist/esm/lib/v3/cache/ActCache.d.ts +0 -1
  706. package/dist/esm/lib/v3/cache/ActCache.js +2 -18
  707. package/dist/esm/lib/v3/cache/ActCache.js.map +1 -1
  708. package/dist/esm/lib/v3/cache/AgentCache.d.ts +1 -0
  709. package/dist/esm/lib/v3/cache/AgentCache.js +18 -11
  710. package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -1
  711. package/dist/esm/lib/v3/handlers/actHandler.d.ts +2 -1
  712. package/dist/esm/lib/v3/handlers/actHandler.js +4 -4
  713. package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -1
  714. package/dist/esm/lib/v3/handlers/extractHandler.js +2 -2
  715. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  716. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +0 -27
  717. package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
  718. package/dist/esm/lib/v3/handlers/observeHandler.js +1 -2
  719. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  720. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +13 -16
  721. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  722. package/dist/esm/lib/v3/index.d.ts +143 -0
  723. package/dist/esm/lib/v3/index.js +41 -0
  724. package/dist/esm/lib/v3/index.js.map +1 -1
  725. package/dist/esm/lib/v3/launch/browserbase.d.ts +1 -1
  726. package/dist/esm/lib/v3/launch/browserbase.js +4 -9
  727. package/dist/esm/lib/v3/launch/browserbase.js.map +1 -1
  728. package/dist/esm/lib/v3/llm/LLMProvider.js +0 -5
  729. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
  730. package/dist/esm/lib/v3/llm/OpenAIClient.js +2 -2
  731. package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -1
  732. package/dist/esm/lib/v3/mcp/connection.d.ts +2 -0
  733. package/dist/esm/lib/v3/mcp/connection.js +5 -2
  734. package/dist/esm/lib/v3/mcp/connection.js.map +1 -1
  735. package/dist/esm/lib/v3/runtimePaths.d.ts +6 -0
  736. package/dist/esm/lib/v3/runtimePaths.js +107 -0
  737. package/dist/esm/lib/v3/runtimePaths.js.map +1 -0
  738. package/dist/esm/lib/v3/shutdown/supervisor.js +2 -2
  739. package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -1
  740. package/dist/esm/lib/v3/shutdown/supervisorClient.js +9 -14
  741. package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -1
  742. package/dist/esm/lib/v3/timeoutConfig.d.ts +1 -1
  743. package/dist/esm/lib/v3/timeoutConfig.js +5 -0
  744. package/dist/esm/lib/v3/timeoutConfig.js.map +1 -1
  745. package/dist/esm/lib/v3/types/private/cache.d.ts +3 -0
  746. package/dist/esm/lib/v3/types/private/cache.js.map +1 -1
  747. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -1
  748. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  749. package/dist/esm/lib/v3/types/private/shutdown.d.ts +1 -1
  750. package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -1
  751. package/dist/esm/lib/v3/types/public/agent.d.ts +60 -2
  752. package/dist/esm/lib/v3/types/public/agent.js +1 -1
  753. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  754. package/dist/esm/lib/v3/types/public/api.d.ts +17 -0
  755. package/dist/esm/lib/v3/types/public/api.js +3 -2
  756. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  757. package/dist/esm/lib/v3/types/public/context.d.ts +32 -0
  758. package/dist/esm/lib/v3/types/public/context.js +2 -0
  759. package/dist/esm/lib/v3/types/public/context.js.map +1 -0
  760. package/dist/esm/lib/v3/types/public/index.d.ts +1 -0
  761. package/dist/esm/lib/v3/types/public/index.js +1 -0
  762. package/dist/esm/lib/v3/types/public/index.js.map +1 -1
  763. package/dist/esm/lib/v3/types/public/methods.d.ts +33 -2
  764. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  765. package/dist/esm/lib/v3/types/public/model.d.ts +4 -2
  766. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  767. package/dist/esm/lib/v3/types/public/options.d.ts +8 -0
  768. package/dist/esm/lib/v3/types/public/options.js.map +1 -1
  769. package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +13 -0
  770. package/dist/esm/lib/v3/types/public/sdkErrors.js +22 -0
  771. package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -1
  772. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
  773. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +1 -1
  774. package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -1
  775. package/dist/esm/lib/v3/understudy/cdp.d.ts +6 -1
  776. package/dist/esm/lib/v3/understudy/cdp.js +65 -7
  777. package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
  778. package/dist/esm/lib/v3/understudy/context.d.ts +34 -0
  779. package/dist/esm/lib/v3/understudy/context.js +327 -67
  780. package/dist/esm/lib/v3/understudy/context.js.map +1 -1
  781. package/dist/esm/lib/v3/understudy/cookies.d.ts +32 -0
  782. package/dist/esm/lib/v3/understudy/cookies.js +136 -0
  783. package/dist/esm/lib/v3/understudy/cookies.js.map +1 -0
  784. package/dist/esm/lib/v3/understudy/deepLocator.js +1 -23
  785. package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -1
  786. package/dist/esm/lib/v3/understudy/frame.js +24 -7
  787. package/dist/esm/lib/v3/understudy/frame.js.map +1 -1
  788. package/dist/esm/lib/v3/understudy/page.d.ts +13 -0
  789. package/dist/esm/lib/v3/understudy/page.js +58 -5
  790. package/dist/esm/lib/v3/understudy/page.js.map +1 -1
  791. package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +0 -1
  792. package/dist/esm/lib/v3/understudy/screenshotUtils.js +1 -19
  793. package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -1
  794. package/dist/esm/lib/v3/understudy/selectorResolver.js +1 -1
  795. package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -1
  796. package/dist/esm/lib/v3/v3.js +59 -35
  797. package/dist/esm/lib/v3/v3.js.map +1 -1
  798. package/dist/esm/lib/version.d.ts +1 -1
  799. package/dist/esm/lib/version.js +1 -1
  800. package/dist/esm/lib/version.js.map +1 -1
  801. package/dist/esm/tests/cache-variables.test.d.ts +1 -0
  802. package/dist/esm/tests/cache-variables.test.js +219 -0
  803. package/dist/esm/tests/cache-variables.test.js.map +1 -0
  804. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +1 -0
  805. package/dist/esm/tests/integration/agent-abort-signal.spec.js +121 -0
  806. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +1 -0
  807. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +1 -0
  808. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +78 -0
  809. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
  810. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +1 -0
  811. package/dist/esm/tests/integration/agent-callbacks.spec.js +383 -0
  812. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +1 -0
  813. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +1 -0
  814. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +360 -0
  815. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +1 -0
  816. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +1 -0
  817. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +260 -0
  818. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
  819. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +1 -0
  820. package/dist/esm/tests/integration/agent-message-continuation.spec.js +110 -0
  821. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +1 -0
  822. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +1 -0
  823. package/dist/esm/tests/integration/agent-streaming.spec.js +138 -0
  824. package/dist/esm/tests/integration/agent-streaming.spec.js.map +1 -0
  825. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
  826. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +39 -0
  827. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +1 -0
  828. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +1 -0
  829. package/dist/esm/tests/integration/cdp-connection-close.spec.js +74 -0
  830. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +1 -0
  831. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +1 -0
  832. package/dist/esm/tests/integration/cdp-session-detached.spec.js +43 -0
  833. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +1 -0
  834. package/dist/esm/tests/integration/click-count.spec.d.ts +1 -0
  835. package/dist/esm/tests/integration/click-count.spec.js +161 -0
  836. package/dist/esm/tests/integration/click-count.spec.js.map +1 -0
  837. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
  838. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +97 -0
  839. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
  840. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +1 -0
  841. package/dist/esm/tests/integration/context-addInitScript.spec.js +283 -0
  842. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +1 -0
  843. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
  844. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +47 -0
  845. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +1 -0
  846. package/dist/esm/tests/integration/cookies.spec.d.ts +1 -0
  847. package/dist/esm/tests/integration/cookies.spec.js +185 -0
  848. package/dist/esm/tests/integration/cookies.spec.js.map +1 -0
  849. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +1 -0
  850. package/dist/esm/tests/integration/default-page-tracking.spec.js +50 -0
  851. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +1 -0
  852. package/dist/esm/tests/integration/downloads.spec.d.ts +1 -0
  853. package/dist/esm/tests/integration/downloads.spec.js +47 -0
  854. package/dist/esm/tests/integration/downloads.spec.js.map +1 -0
  855. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
  856. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +55 -0
  857. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
  858. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
  859. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +217 -0
  860. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
  861. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
  862. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +472 -0
  863. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
  864. package/dist/esm/tests/integration/keep-alive.child.d.ts +1 -0
  865. package/dist/esm/tests/integration/keep-alive.child.js +83 -0
  866. package/dist/esm/tests/integration/keep-alive.child.js.map +1 -0
  867. package/dist/esm/tests/integration/keep-alive.spec.d.ts +22 -0
  868. package/dist/esm/tests/integration/keep-alive.spec.js +482 -0
  869. package/dist/esm/tests/integration/keep-alive.spec.js.map +1 -0
  870. package/dist/esm/tests/integration/keyboard.spec.d.ts +1 -0
  871. package/dist/esm/tests/integration/keyboard.spec.js +257 -0
  872. package/dist/esm/tests/integration/keyboard.spec.js.map +1 -0
  873. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
  874. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +148 -0
  875. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +1 -0
  876. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +1 -0
  877. package/dist/esm/tests/integration/locator-content-methods.spec.js +178 -0
  878. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +1 -0
  879. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +1 -0
  880. package/dist/esm/tests/integration/locator-count-iframe.spec.js +127 -0
  881. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +1 -0
  882. package/dist/esm/tests/integration/locator-count.spec.d.ts +1 -0
  883. package/dist/esm/tests/integration/locator-count.spec.js +66 -0
  884. package/dist/esm/tests/integration/locator-count.spec.js.map +1 -0
  885. package/dist/esm/tests/integration/locator-fill.spec.d.ts +1 -0
  886. package/dist/esm/tests/integration/locator-fill.spec.js +115 -0
  887. package/dist/esm/tests/integration/locator-fill.spec.js.map +1 -0
  888. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +1 -0
  889. package/dist/esm/tests/integration/locator-input-methods.spec.js +125 -0
  890. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +1 -0
  891. package/dist/esm/tests/integration/locator-nth.spec.d.ts +1 -0
  892. package/dist/esm/tests/integration/locator-nth.spec.js +173 -0
  893. package/dist/esm/tests/integration/locator-nth.spec.js.map +1 -0
  894. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +1 -0
  895. package/dist/esm/tests/integration/locator-select-option.spec.js +214 -0
  896. package/dist/esm/tests/integration/locator-select-option.spec.js.map +1 -0
  897. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +1 -0
  898. package/dist/esm/tests/integration/logger-initialization.spec.js +595 -0
  899. package/dist/esm/tests/integration/logger-initialization.spec.js.map +1 -0
  900. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +1 -0
  901. package/dist/esm/tests/integration/multi-instance-logger.spec.js +291 -0
  902. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +1 -0
  903. package/dist/esm/tests/integration/nested-div.spec.d.ts +1 -0
  904. package/dist/esm/tests/integration/nested-div.spec.js +20 -0
  905. package/dist/esm/tests/integration/nested-div.spec.js.map +1 -0
  906. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +1 -0
  907. package/dist/esm/tests/integration/page-addInitScript.spec.js +92 -0
  908. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +1 -0
  909. package/dist/esm/tests/integration/page-console.spec.d.ts +1 -0
  910. package/dist/esm/tests/integration/page-console.spec.js +45 -0
  911. package/dist/esm/tests/integration/page-console.spec.js.map +1 -0
  912. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
  913. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +435 -0
  914. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +1 -0
  915. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
  916. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +83 -0
  917. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +1 -0
  918. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +1 -0
  919. package/dist/esm/tests/integration/page-goto-response.spec.js +32 -0
  920. package/dist/esm/tests/integration/page-goto-response.spec.js.map +1 -0
  921. package/dist/esm/tests/integration/page-hover.spec.d.ts +1 -0
  922. package/dist/esm/tests/integration/page-hover.spec.js +163 -0
  923. package/dist/esm/tests/integration/page-hover.spec.js.map +1 -0
  924. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +1 -0
  925. package/dist/esm/tests/integration/page-screenshot.spec.js +257 -0
  926. package/dist/esm/tests/integration/page-screenshot.spec.js.map +1 -0
  927. package/dist/esm/tests/integration/page-scroll.spec.d.ts +1 -0
  928. package/dist/esm/tests/integration/page-scroll.spec.js +181 -0
  929. package/dist/esm/tests/integration/page-scroll.spec.js.map +1 -0
  930. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +1 -0
  931. package/dist/esm/tests/integration/page-send-cdp.spec.js +45 -0
  932. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +1 -0
  933. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +1 -0
  934. package/dist/esm/tests/integration/perform-understudy-method.spec.js +61 -0
  935. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +1 -0
  936. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +1 -0
  937. package/dist/esm/tests/integration/setinputfiles.spec.js +128 -0
  938. package/dist/esm/tests/integration/setinputfiles.spec.js.map +1 -0
  939. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
  940. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +156 -0
  941. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
  942. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
  943. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +155 -0
  944. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
  945. package/dist/esm/tests/integration/testUtils.d.ts +7 -0
  946. package/dist/esm/tests/integration/testUtils.js +40 -0
  947. package/dist/esm/tests/integration/testUtils.js.map +1 -0
  948. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +1 -0
  949. package/dist/esm/tests/integration/text-selector-innermost.spec.js +103 -0
  950. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +1 -0
  951. package/dist/esm/tests/integration/timeouts.spec.d.ts +1 -0
  952. package/dist/esm/tests/integration/timeouts.spec.js +195 -0
  953. package/dist/esm/tests/integration/timeouts.spec.js.map +1 -0
  954. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +1 -0
  955. package/dist/esm/tests/integration/user-data-dir.spec.js +42 -0
  956. package/dist/esm/tests/integration/user-data-dir.spec.js.map +1 -0
  957. package/dist/esm/tests/integration/v3.config.d.ts +4 -0
  958. package/dist/esm/tests/integration/v3.config.js +7 -0
  959. package/dist/esm/tests/integration/v3.config.js.map +1 -0
  960. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +4 -0
  961. package/dist/esm/tests/integration/v3.dynamic.config.js +44 -0
  962. package/dist/esm/tests/integration/v3.dynamic.config.js.map +1 -0
  963. package/dist/esm/tests/integration/v3.playwright.config.d.ts +2 -0
  964. package/dist/esm/tests/integration/v3.playwright.config.js +46 -0
  965. package/dist/esm/tests/integration/v3.playwright.config.js.map +1 -0
  966. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +1 -0
  967. package/dist/esm/tests/integration/wait-for-selector.spec.js +681 -0
  968. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +1 -0
  969. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +1 -0
  970. package/dist/esm/tests/integration/wait-for-timeout.spec.js +116 -0
  971. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +1 -0
  972. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
  973. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +85 -0
  974. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
  975. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +1 -0
  976. package/dist/esm/tests/unit/agent-execution-model.test.js +126 -0
  977. package/dist/esm/tests/unit/agent-execution-model.test.js.map +1 -0
  978. package/dist/esm/tests/unit/api-multiregion.test.d.ts +1 -0
  979. package/dist/esm/tests/unit/api-multiregion.test.js +56 -0
  980. package/dist/esm/tests/unit/api-multiregion.test.js.map +1 -0
  981. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
  982. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +100 -0
  983. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +1 -0
  984. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +1 -0
  985. package/dist/esm/tests/unit/cache-llm-resolution.test.js +184 -0
  986. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +1 -0
  987. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +1 -0
  988. package/dist/esm/tests/unit/cdp-connection-close.test.js +72 -0
  989. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +1 -0
  990. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +1 -0
  991. package/dist/esm/tests/unit/context-extra-http-headers.test.js +56 -0
  992. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +1 -0
  993. package/dist/esm/tests/unit/cookies.test.d.ts +1 -0
  994. package/dist/esm/tests/unit/cookies.test.js +909 -0
  995. package/dist/esm/tests/unit/cookies.test.js.map +1 -0
  996. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +19 -0
  997. package/dist/esm/tests/unit/helpers/mockCDPSession.js +25 -0
  998. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +1 -0
  999. package/dist/esm/tests/unit/llm-provider.test.d.ts +1 -0
  1000. package/dist/esm/tests/unit/llm-provider.test.js +62 -0
  1001. package/dist/esm/tests/unit/llm-provider.test.js.map +1 -0
  1002. package/dist/esm/tests/unit/model-deprecation.test.d.ts +1 -0
  1003. package/dist/esm/tests/unit/model-deprecation.test.js +140 -0
  1004. package/dist/esm/tests/unit/model-deprecation.test.js.map +1 -0
  1005. package/dist/esm/tests/unit/model-utils.test.d.ts +1 -0
  1006. package/dist/esm/tests/unit/model-utils.test.js +40 -0
  1007. package/dist/esm/tests/unit/model-utils.test.js.map +1 -0
  1008. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +1 -0
  1009. package/dist/esm/tests/unit/page-extra-http-headers.test.js +90 -0
  1010. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +1 -0
  1011. package/dist/esm/tests/unit/page-snapshot.test.d.ts +1 -0
  1012. package/dist/esm/tests/unit/page-snapshot.test.js +40 -0
  1013. package/dist/esm/tests/unit/page-snapshot.test.js.map +1 -0
  1014. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +1 -0
  1015. package/dist/esm/tests/unit/public-api/export-surface.test.js +72 -0
  1016. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +1 -0
  1017. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
  1018. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +140 -0
  1019. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
  1020. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +62 -0
  1021. package/dist/esm/tests/unit/public-api/public-error-types.test.js +74 -0
  1022. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +1 -0
  1023. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +1 -0
  1024. package/dist/esm/tests/unit/public-api/public-types.test.js +97 -0
  1025. package/dist/esm/tests/unit/public-api/public-types.test.js.map +1 -0
  1026. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
  1027. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +25 -0
  1028. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +1 -0
  1029. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +1 -0
  1030. package/dist/esm/tests/unit/public-api/schema-utils.test.js +60 -0
  1031. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +1 -0
  1032. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
  1033. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +86 -0
  1034. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
  1035. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
  1036. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +30 -0
  1037. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +1 -0
  1038. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +1 -0
  1039. package/dist/esm/tests/unit/public-api/v3-core.test.js +73 -0
  1040. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +1 -0
  1041. package/dist/esm/tests/unit/rerender-missing-shadows.test.d.ts +1 -0
  1042. package/dist/esm/tests/unit/rerender-missing-shadows.test.js +207 -0
  1043. package/dist/esm/tests/unit/rerender-missing-shadows.test.js.map +1 -0
  1044. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +1 -0
  1045. package/dist/esm/tests/unit/safety-confirmation.test.js +108 -0
  1046. package/dist/esm/tests/unit/safety-confirmation.test.js.map +1 -0
  1047. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
  1048. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +295 -0
  1049. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
  1050. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
  1051. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +284 -0
  1052. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
  1053. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
  1054. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +359 -0
  1055. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
  1056. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +1 -0
  1057. package/dist/esm/tests/unit/snapshot-cbor.test.js +202 -0
  1058. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +1 -0
  1059. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
  1060. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +218 -0
  1061. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
  1062. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
  1063. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +105 -0
  1064. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
  1065. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
  1066. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +87 -0
  1067. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
  1068. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
  1069. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +333 -0
  1070. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +1 -0
  1071. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
  1072. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +82 -0
  1073. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
  1074. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
  1075. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +72 -0
  1076. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
  1077. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +1 -0
  1078. package/dist/esm/tests/unit/timeout-handlers.test.js +812 -0
  1079. package/dist/esm/tests/unit/timeout-handlers.test.js.map +1 -0
  1080. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +1 -0
  1081. package/dist/esm/tests/unit/understudy-command-exception.test.js +55 -0
  1082. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +1 -0
  1083. package/dist/esm/tests/unit/xpath-parser.test.d.ts +1 -0
  1084. package/dist/esm/tests/unit/xpath-parser.test.js +309 -0
  1085. package/dist/esm/tests/unit/xpath-parser.test.js.map +1 -0
  1086. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +1 -0
  1087. package/dist/esm/tests/unit/xpath-resolver.test.js +78 -0
  1088. package/dist/esm/tests/unit/xpath-resolver.test.js.map +1 -0
  1089. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
  1090. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +114 -0
  1091. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +1 -0
  1092. package/package.json +19 -8
  1093. package/dist/cjs/cli.js.map +0 -7
  1094. package/dist/cjs/index.js.map +0 -7
  1095. package/dist/cjs/lib/v3/dom/build/rerender-index.d.ts +0 -0
  1096. package/dist/cjs/lib/v3/dom/build/v3-index.d.ts +0 -0
  1097. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js +0 -113
  1098. package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
  1099. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js +0 -102
  1100. package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
  1101. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js +0 -374
  1102. package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
  1103. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js +0 -354
  1104. package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
  1105. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
  1106. package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
  1107. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js +0 -105
  1108. package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
  1109. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js +0 -126
  1110. package/dist/cjs/lib/v3/tests/agent-streaming.spec.js.map +0 -7
  1111. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js +0 -44
  1112. package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
  1113. package/dist/cjs/lib/v3/tests/click-count.spec.js +0 -147
  1114. package/dist/cjs/lib/v3/tests/click-count.spec.js.map +0 -7
  1115. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
  1116. package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
  1117. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js +0 -176
  1118. package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
  1119. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js +0 -53
  1120. package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
  1121. package/dist/cjs/lib/v3/tests/downloads.spec.js +0 -80
  1122. package/dist/cjs/lib/v3/tests/downloads.spec.js.map +0 -7
  1123. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
  1124. package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
  1125. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
  1126. package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
  1127. package/dist/cjs/lib/v3/tests/keep-alive.child.js +0 -92
  1128. package/dist/cjs/lib/v3/tests/keep-alive.child.js.map +0 -7
  1129. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js +0 -568
  1130. package/dist/cjs/lib/v3/tests/keep-alive.helpers.js.map +0 -7
  1131. package/dist/cjs/lib/v3/tests/keep-alive.spec.js +0 -15
  1132. package/dist/cjs/lib/v3/tests/keep-alive.spec.js.map +0 -7
  1133. package/dist/cjs/lib/v3/tests/keyboard.spec.js +0 -296
  1134. package/dist/cjs/lib/v3/tests/keyboard.spec.js.map +0 -7
  1135. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
  1136. package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
  1137. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js +0 -192
  1138. package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
  1139. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js +0 -108
  1140. package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
  1141. package/dist/cjs/lib/v3/tests/locator-count.spec.js +0 -71
  1142. package/dist/cjs/lib/v3/tests/locator-count.spec.js.map +0 -7
  1143. package/dist/cjs/lib/v3/tests/locator-fill.spec.js +0 -119
  1144. package/dist/cjs/lib/v3/tests/locator-fill.spec.js.map +0 -7
  1145. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js +0 -137
  1146. package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
  1147. package/dist/cjs/lib/v3/tests/locator-nth.spec.js +0 -157
  1148. package/dist/cjs/lib/v3/tests/locator-nth.spec.js.map +0 -7
  1149. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js +0 -243
  1150. package/dist/cjs/lib/v3/tests/locator-select-option.spec.js.map +0 -7
  1151. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js +0 -547
  1152. package/dist/cjs/lib/v3/tests/logger-initialization.spec.js.map +0 -7
  1153. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js +0 -269
  1154. package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
  1155. package/dist/cjs/lib/v3/tests/nested-div.spec.js +0 -23
  1156. package/dist/cjs/lib/v3/tests/nested-div.spec.js.map +0 -7
  1157. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js +0 -90
  1158. package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
  1159. package/dist/cjs/lib/v3/tests/page-console.spec.js +0 -56
  1160. package/dist/cjs/lib/v3/tests/page-console.spec.js.map +0 -7
  1161. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
  1162. package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
  1163. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js +0 -35
  1164. package/dist/cjs/lib/v3/tests/page-goto-response.spec.js.map +0 -7
  1165. package/dist/cjs/lib/v3/tests/page-hover.spec.js +0 -167
  1166. package/dist/cjs/lib/v3/tests/page-hover.spec.js.map +0 -7
  1167. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js +0 -295
  1168. package/dist/cjs/lib/v3/tests/page-screenshot.spec.js.map +0 -7
  1169. package/dist/cjs/lib/v3/tests/page-scroll.spec.js +0 -182
  1170. package/dist/cjs/lib/v3/tests/page-scroll.spec.js.map +0 -7
  1171. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js +0 -46
  1172. package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
  1173. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js +0 -98
  1174. package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
  1175. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js +0 -148
  1176. package/dist/cjs/lib/v3/tests/setinputfiles.spec.js.map +0 -7
  1177. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -156
  1178. package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
  1179. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js +0 -156
  1180. package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
  1181. package/dist/cjs/lib/v3/tests/testUtils.js +0 -54
  1182. package/dist/cjs/lib/v3/tests/testUtils.js.map +0 -7
  1183. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js +0 -100
  1184. package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
  1185. package/dist/cjs/lib/v3/tests/timeouts.spec.js +0 -32
  1186. package/dist/cjs/lib/v3/tests/timeouts.spec.js.map +0 -7
  1187. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js +0 -65
  1188. package/dist/cjs/lib/v3/tests/user-data-dir.spec.js.map +0 -7
  1189. package/dist/cjs/lib/v3/tests/v3.config.js +0 -36
  1190. package/dist/cjs/lib/v3/tests/v3.config.js.map +0 -7
  1191. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js +0 -67
  1192. package/dist/cjs/lib/v3/tests/v3.dynamic.config.js.map +0 -7
  1193. package/dist/cjs/lib/v3/tests/v3.playwright.config.js +0 -61
  1194. package/dist/cjs/lib/v3/tests/v3.playwright.config.js.map +0 -7
  1195. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js +0 -593
  1196. package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
  1197. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js +0 -97
  1198. package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
  1199. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
  1200. package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
  1201. package/dist/cjs/tests/agent-execution-model.test.js +0 -139
  1202. package/dist/cjs/tests/agent-execution-model.test.js.map +0 -7
  1203. package/dist/cjs/tests/api-multiregion.test.js +0 -73
  1204. package/dist/cjs/tests/api-multiregion.test.js.map +0 -7
  1205. package/dist/cjs/tests/browserbase-session-accessors.test.js +0 -101
  1206. package/dist/cjs/tests/browserbase-session-accessors.test.js.map +0 -7
  1207. package/dist/cjs/tests/cache-llm-resolution.test.js +0 -187
  1208. package/dist/cjs/tests/cache-llm-resolution.test.js.map +0 -7
  1209. package/dist/cjs/tests/helpers/mockCDPSession.js +0 -50
  1210. package/dist/cjs/tests/helpers/mockCDPSession.js.map +0 -7
  1211. package/dist/cjs/tests/llm-provider.test.js +0 -57
  1212. package/dist/cjs/tests/llm-provider.test.js.map +0 -7
  1213. package/dist/cjs/tests/model-deprecation.test.js +0 -132
  1214. package/dist/cjs/tests/model-deprecation.test.js.map +0 -7
  1215. package/dist/cjs/tests/model-utils.test.js +0 -43
  1216. package/dist/cjs/tests/model-utils.test.js.map +0 -7
  1217. package/dist/cjs/tests/page-snapshot.test.js +0 -58
  1218. package/dist/cjs/tests/page-snapshot.test.js.map +0 -7
  1219. package/dist/cjs/tests/public-api/export-surface.test.js +0 -77
  1220. package/dist/cjs/tests/public-api/export-surface.test.js.map +0 -7
  1221. package/dist/cjs/tests/public-api/llm-and-agents.test.js +0 -151
  1222. package/dist/cjs/tests/public-api/llm-and-agents.test.js.map +0 -7
  1223. package/dist/cjs/tests/public-api/public-error-types.test.js +0 -106
  1224. package/dist/cjs/tests/public-api/public-error-types.test.js.map +0 -7
  1225. package/dist/cjs/tests/public-api/public-types.test.js +0 -74
  1226. package/dist/cjs/tests/public-api/public-types.test.js.map +0 -7
  1227. package/dist/cjs/tests/public-api/runtime-utils.test.js +0 -53
  1228. package/dist/cjs/tests/public-api/runtime-utils.test.js.map +0 -7
  1229. package/dist/cjs/tests/public-api/schema-utils.test.js +0 -100
  1230. package/dist/cjs/tests/public-api/schema-utils.test.js.map +0 -7
  1231. package/dist/cjs/tests/public-api/timeout-error-types.test.js +0 -103
  1232. package/dist/cjs/tests/public-api/timeout-error-types.test.js.map +0 -7
  1233. package/dist/cjs/tests/public-api/tool-type-export.test.js +0 -47
  1234. package/dist/cjs/tests/public-api/tool-type-export.test.js.map +0 -7
  1235. package/dist/cjs/tests/public-api/v3-core.test.js +0 -105
  1236. package/dist/cjs/tests/public-api/v3-core.test.js.map +0 -7
  1237. package/dist/cjs/tests/safety-confirmation.test.js +0 -134
  1238. package/dist/cjs/tests/safety-confirmation.test.js.map +0 -7
  1239. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js +0 -370
  1240. package/dist/cjs/tests/snapshot-a11y-resolvers.test.js.map +0 -7
  1241. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js +0 -294
  1242. package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
  1243. package/dist/cjs/tests/snapshot-capture-orchestration.test.js +0 -405
  1244. package/dist/cjs/tests/snapshot-capture-orchestration.test.js.map +0 -7
  1245. package/dist/cjs/tests/snapshot-cbor.test.js +0 -197
  1246. package/dist/cjs/tests/snapshot-cbor.test.js.map +0 -7
  1247. package/dist/cjs/tests/snapshot-dom-session-builders.test.js +0 -246
  1248. package/dist/cjs/tests/snapshot-dom-session-builders.test.js.map +0 -7
  1249. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js +0 -104
  1250. package/dist/cjs/tests/snapshot-dom-tree-utils.test.js.map +0 -7
  1251. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js +0 -45
  1252. package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
  1253. package/dist/cjs/tests/snapshot-frame-merge.test.js +0 -388
  1254. package/dist/cjs/tests/snapshot-frame-merge.test.js.map +0 -7
  1255. package/dist/cjs/tests/snapshot-tree-format-utils.test.js +0 -106
  1256. package/dist/cjs/tests/snapshot-tree-format-utils.test.js.map +0 -7
  1257. package/dist/cjs/tests/snapshot-xpath-utils.test.js +0 -74
  1258. package/dist/cjs/tests/snapshot-xpath-utils.test.js.map +0 -7
  1259. package/dist/cjs/tests/timeout-handlers.test.js +0 -864
  1260. package/dist/cjs/tests/timeout-handlers.test.js.map +0 -7
  1261. package/dist/cjs/tests/understudy-command-exception.test.js +0 -52
  1262. package/dist/cjs/tests/understudy-command-exception.test.js.map +0 -7
  1263. package/dist/cjs/tests/xpath-parser.test.js +0 -314
  1264. package/dist/cjs/tests/xpath-parser.test.js.map +0 -7
  1265. package/dist/cjs/tests/xpath-resolver.test.js +0 -70
  1266. package/dist/cjs/tests/xpath-resolver.test.js.map +0 -7
  1267. package/dist/cjs/tests/zod-enum-compatibility.test.js +0 -119
  1268. package/dist/cjs/tests/zod-enum-compatibility.test.js.map +0 -7
  1269. package/dist/esm/lib/v3/dom/build/rerender-index.d.ts +0 -0
  1270. package/dist/esm/lib/v3/dom/build/rerender-index.js.map +0 -1
  1271. package/dist/esm/lib/v3/dom/build/v3-index.d.ts +0 -0
  1272. package/dist/esm/lib/v3/dom/build/v3-index.js.map +0 -1
  1273. package/dist/esm/lib/v3/dom/genA11yScripts.js +0 -54
  1274. package/dist/esm/lib/v3/dom/genA11yScripts.js.map +0 -1
  1275. package/dist/esm/lib/v3/dom/genDomScripts.js +0 -38
  1276. package/dist/esm/lib/v3/dom/genDomScripts.js.map +0 -1
  1277. package/dist/esm/lib/v3/dom/genLocatorScripts.js +0 -51
  1278. package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +0 -1
  1279. package/dist/esm/lib/v3/dom/genScreenshotScripts.js +0 -37
  1280. package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +0 -1
  1281. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +0 -113
  1282. package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
  1283. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +0 -80
  1284. package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
  1285. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +0 -374
  1286. package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
  1287. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +0 -357
  1288. package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
  1289. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
  1290. package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
  1291. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +0 -105
  1292. package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
  1293. package/dist/esm/lib/v3/tests/agent-streaming.spec.js +0 -126
  1294. package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +0 -7
  1295. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +0 -44
  1296. package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
  1297. package/dist/esm/lib/v3/tests/click-count.spec.js +0 -147
  1298. package/dist/esm/lib/v3/tests/click-count.spec.js.map +0 -7
  1299. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
  1300. package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
  1301. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +0 -176
  1302. package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
  1303. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +0 -53
  1304. package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
  1305. package/dist/esm/lib/v3/tests/downloads.spec.js +0 -58
  1306. package/dist/esm/lib/v3/tests/downloads.spec.js.map +0 -7
  1307. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
  1308. package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
  1309. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
  1310. package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
  1311. package/dist/esm/lib/v3/tests/keep-alive.child.js +0 -92
  1312. package/dist/esm/lib/v3/tests/keep-alive.child.js.map +0 -7
  1313. package/dist/esm/lib/v3/tests/keep-alive.helpers.js +0 -532
  1314. package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +0 -7
  1315. package/dist/esm/lib/v3/tests/keep-alive.spec.js +0 -19
  1316. package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +0 -7
  1317. package/dist/esm/lib/v3/tests/keyboard.spec.js +0 -296
  1318. package/dist/esm/lib/v3/tests/keyboard.spec.js.map +0 -7
  1319. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
  1320. package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
  1321. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +0 -192
  1322. package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
  1323. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +0 -108
  1324. package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
  1325. package/dist/esm/lib/v3/tests/locator-count.spec.js +0 -71
  1326. package/dist/esm/lib/v3/tests/locator-count.spec.js.map +0 -7
  1327. package/dist/esm/lib/v3/tests/locator-fill.spec.js +0 -119
  1328. package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +0 -7
  1329. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +0 -137
  1330. package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
  1331. package/dist/esm/lib/v3/tests/locator-nth.spec.js +0 -157
  1332. package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +0 -7
  1333. package/dist/esm/lib/v3/tests/locator-select-option.spec.js +0 -243
  1334. package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +0 -7
  1335. package/dist/esm/lib/v3/tests/logger-initialization.spec.js +0 -552
  1336. package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +0 -7
  1337. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +0 -269
  1338. package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
  1339. package/dist/esm/lib/v3/tests/nested-div.spec.js +0 -23
  1340. package/dist/esm/lib/v3/tests/nested-div.spec.js.map +0 -7
  1341. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +0 -90
  1342. package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
  1343. package/dist/esm/lib/v3/tests/page-console.spec.js +0 -56
  1344. package/dist/esm/lib/v3/tests/page-console.spec.js.map +0 -7
  1345. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
  1346. package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
  1347. package/dist/esm/lib/v3/tests/page-goto-response.spec.js +0 -35
  1348. package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +0 -7
  1349. package/dist/esm/lib/v3/tests/page-hover.spec.js +0 -167
  1350. package/dist/esm/lib/v3/tests/page-hover.spec.js.map +0 -7
  1351. package/dist/esm/lib/v3/tests/page-screenshot.spec.js +0 -273
  1352. package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +0 -7
  1353. package/dist/esm/lib/v3/tests/page-scroll.spec.js +0 -182
  1354. package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +0 -7
  1355. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +0 -46
  1356. package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
  1357. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +0 -98
  1358. package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
  1359. package/dist/esm/lib/v3/tests/setinputfiles.spec.js +0 -126
  1360. package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +0 -7
  1361. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -134
  1362. package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
  1363. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +0 -134
  1364. package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
  1365. package/dist/esm/lib/v3/tests/testUtils.js +0 -31
  1366. package/dist/esm/lib/v3/tests/testUtils.js.map +0 -7
  1367. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +0 -100
  1368. package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
  1369. package/dist/esm/lib/v3/tests/timeouts.spec.js +0 -32
  1370. package/dist/esm/lib/v3/tests/timeouts.spec.js.map +0 -7
  1371. package/dist/esm/lib/v3/tests/user-data-dir.spec.js +0 -43
  1372. package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +0 -7
  1373. package/dist/esm/lib/v3/tests/v3.config.js +0 -15
  1374. package/dist/esm/lib/v3/tests/v3.config.js.map +0 -7
  1375. package/dist/esm/lib/v3/tests/v3.dynamic.config.js +0 -43
  1376. package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +0 -7
  1377. package/dist/esm/lib/v3/tests/v3.playwright.config.js +0 -41
  1378. package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +0 -7
  1379. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +0 -593
  1380. package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
  1381. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +0 -97
  1382. package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
  1383. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
  1384. package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
  1385. package/dist/esm/tests/agent-execution-model.test.js +0 -139
  1386. package/dist/esm/tests/agent-execution-model.test.js.map +0 -7
  1387. package/dist/esm/tests/api-multiregion.test.js +0 -73
  1388. package/dist/esm/tests/api-multiregion.test.js.map +0 -7
  1389. package/dist/esm/tests/browserbase-session-accessors.test.js +0 -101
  1390. package/dist/esm/tests/browserbase-session-accessors.test.js.map +0 -7
  1391. package/dist/esm/tests/cache-llm-resolution.test.js +0 -187
  1392. package/dist/esm/tests/cache-llm-resolution.test.js.map +0 -7
  1393. package/dist/esm/tests/helpers/mockCDPSession.js +0 -27
  1394. package/dist/esm/tests/helpers/mockCDPSession.js.map +0 -7
  1395. package/dist/esm/tests/llm-provider.test.js +0 -57
  1396. package/dist/esm/tests/llm-provider.test.js.map +0 -7
  1397. package/dist/esm/tests/model-deprecation.test.js +0 -135
  1398. package/dist/esm/tests/model-deprecation.test.js.map +0 -7
  1399. package/dist/esm/tests/model-utils.test.js +0 -43
  1400. package/dist/esm/tests/model-utils.test.js.map +0 -7
  1401. package/dist/esm/tests/page-snapshot.test.js +0 -36
  1402. package/dist/esm/tests/page-snapshot.test.js.map +0 -7
  1403. package/dist/esm/tests/public-api/export-surface.test.js +0 -55
  1404. package/dist/esm/tests/public-api/export-surface.test.js.map +0 -7
  1405. package/dist/esm/tests/public-api/llm-and-agents.test.js +0 -129
  1406. package/dist/esm/tests/public-api/llm-and-agents.test.js.map +0 -7
  1407. package/dist/esm/tests/public-api/public-error-types.test.js +0 -73
  1408. package/dist/esm/tests/public-api/public-error-types.test.js.map +0 -7
  1409. package/dist/esm/tests/public-api/public-types.test.js +0 -74
  1410. package/dist/esm/tests/public-api/public-types.test.js.map +0 -7
  1411. package/dist/esm/tests/public-api/runtime-utils.test.js +0 -31
  1412. package/dist/esm/tests/public-api/runtime-utils.test.js.map +0 -7
  1413. package/dist/esm/tests/public-api/schema-utils.test.js +0 -78
  1414. package/dist/esm/tests/public-api/schema-utils.test.js.map +0 -7
  1415. package/dist/esm/tests/public-api/timeout-error-types.test.js +0 -81
  1416. package/dist/esm/tests/public-api/timeout-error-types.test.js.map +0 -7
  1417. package/dist/esm/tests/public-api/tool-type-export.test.js +0 -25
  1418. package/dist/esm/tests/public-api/tool-type-export.test.js.map +0 -7
  1419. package/dist/esm/tests/public-api/v3-core.test.js +0 -83
  1420. package/dist/esm/tests/public-api/v3-core.test.js.map +0 -7
  1421. package/dist/esm/tests/safety-confirmation.test.js +0 -134
  1422. package/dist/esm/tests/safety-confirmation.test.js.map +0 -7
  1423. package/dist/esm/tests/snapshot-a11y-resolvers.test.js +0 -348
  1424. package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +0 -7
  1425. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +0 -300
  1426. package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
  1427. package/dist/esm/tests/snapshot-capture-orchestration.test.js +0 -383
  1428. package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +0 -7
  1429. package/dist/esm/tests/snapshot-cbor.test.js +0 -197
  1430. package/dist/esm/tests/snapshot-cbor.test.js.map +0 -7
  1431. package/dist/esm/tests/snapshot-dom-session-builders.test.js +0 -251
  1432. package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +0 -7
  1433. package/dist/esm/tests/snapshot-dom-tree-utils.test.js +0 -109
  1434. package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +0 -7
  1435. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +0 -49
  1436. package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
  1437. package/dist/esm/tests/snapshot-frame-merge.test.js +0 -391
  1438. package/dist/esm/tests/snapshot-frame-merge.test.js.map +0 -7
  1439. package/dist/esm/tests/snapshot-tree-format-utils.test.js +0 -113
  1440. package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +0 -7
  1441. package/dist/esm/tests/snapshot-xpath-utils.test.js +0 -79
  1442. package/dist/esm/tests/snapshot-xpath-utils.test.js.map +0 -7
  1443. package/dist/esm/tests/timeout-handlers.test.js +0 -850
  1444. package/dist/esm/tests/timeout-handlers.test.js.map +0 -7
  1445. package/dist/esm/tests/understudy-command-exception.test.js +0 -55
  1446. package/dist/esm/tests/understudy-command-exception.test.js.map +0 -7
  1447. package/dist/esm/tests/xpath-parser.test.js +0 -317
  1448. package/dist/esm/tests/xpath-parser.test.js.map +0 -7
  1449. package/dist/esm/tests/xpath-resolver.test.js +0 -73
  1450. package/dist/esm/tests/xpath-resolver.test.js.map +0 -7
  1451. package/dist/esm/tests/zod-enum-compatibility.test.js +0 -97
  1452. package/dist/esm/tests/zod-enum-compatibility.test.js.map +0 -7
  1453. /package/dist/cjs/{lib/v3/dom/genA11yScripts.d.ts → tests/cache-variables.test.d.ts} +0 -0
  1454. /package/dist/cjs/{lib/v3/dom/genDomScripts.d.ts → tests/integration/agent-abort-signal.spec.d.ts} +0 -0
  1455. /package/dist/cjs/{lib/v3/dom/genLocatorScripts.d.ts → tests/integration/agent-cache-self-heal.spec.d.ts} +0 -0
  1456. /package/dist/cjs/{lib/v3/dom/genScreenshotScripts.d.ts → tests/integration/agent-callbacks.spec.d.ts} +0 -0
  1457. /package/dist/{esm/lib/v3/dom/genA11yScripts.d.ts → cjs/tests/integration/agent-experimental-validation.spec.d.ts} +0 -0
  1458. /package/dist/{esm/lib/v3/dom/genDomScripts.d.ts → cjs/tests/integration/agent-hybrid-mode.spec.d.ts} +0 -0
  1459. /package/dist/{esm/lib/v3/dom/genLocatorScripts.d.ts → cjs/tests/integration/agent-message-continuation.spec.d.ts} +0 -0
  1460. /package/dist/{esm/lib/v3/dom/genScreenshotScripts.d.ts → cjs/tests/integration/agent-streaming.spec.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout-handlers.test.js","sourceRoot":"","sources":["../../../../tests/unit/timeout-handlers.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { beforeEach, describe, expect, it, vi } from \"vitest\";\nimport { ActHandler } from \"../../lib/v3/handlers/actHandler.js\";\nimport { ExtractHandler } from \"../../lib/v3/handlers/extractHandler.js\";\nimport { ObserveHandler } from \"../../lib/v3/handlers/observeHandler.js\";\nimport type { Page } from \"../../lib/v3/understudy/page.js\";\nimport type { ClientOptions } from \"../../lib/v3/types/public/model.js\";\nimport type { LLMClient } from \"../../lib/v3/llm/LLMClient.js\";\nimport { createTimeoutGuard } from \"../../lib/v3/handlers/handlerUtils/timeoutGuard.js\";\nimport { waitForDomNetworkQuiet } from \"../../lib/v3/handlers/handlerUtils/actHandlerUtils.js\";\nimport { captureHybridSnapshot } from \"../../lib/v3/understudy/a11y/snapshot/index.js\";\nimport {\n ActTimeoutError,\n ExtractTimeoutError,\n ObserveTimeoutError,\n} from \"../../lib/v3/types/public/sdkErrors.js\";\nimport {\n act as actInference,\n extract as extractInference,\n observe as observeInference,\n} from \"../../lib/inference.js\";\nimport { V3FunctionName } from \"../../lib/v3/types/public/methods.js\";\n\nvi.mock(\"../../lib/v3/handlers/handlerUtils/timeoutGuard\", () => ({\n createTimeoutGuard: vi.fn(),\n}));\n\nvi.mock(\"../../lib/v3/handlers/handlerUtils/actHandlerUtils\", () => ({\n waitForDomNetworkQuiet: vi.fn(),\n performUnderstudyMethod: vi.fn(),\n}));\n\nvi.mock(\"../../lib/v3/understudy/a11y/snapshot\", () => ({\n captureHybridSnapshot: vi.fn(),\n diffCombinedTrees: vi.fn(),\n}));\n\nvi.mock(\"../../lib/inference\", () => ({\n act: vi.fn(),\n extract: vi.fn(),\n observe: vi.fn(),\n}));\n\ndescribe(\"ActHandler timeout guard\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"throws ActTimeoutError when timeout expires before snapshot\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"\",\n combinedXpathMap: {},\n combinedUrlMap: {},\n });\n\n // Make createTimeoutGuard return a guard that throws on call #2\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n let calls = 0;\n return vi.fn(() => {\n calls += 1;\n if (calls >= 2) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ActTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildActHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.act({\n instruction: \"do something\",\n page: fakePage,\n timeout: 5,\n }),\n ).rejects.toThrow(ActTimeoutError);\n\n // Verify pre-timeout helper ran\n expect(waitForDomNetworkQuietMock).toHaveBeenCalledTimes(1);\n // Verify snapshot was NOT called (timeout fired before it)\n expect(captureHybridSnapshotMock).not.toHaveBeenCalled();\n });\n\n it(\"throws ActTimeoutError when timeout expires before LLM call\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: {},\n combinedUrlMap: {},\n });\n\n const actInferenceMock = vi.mocked(actInference);\n\n // Throw on call #3 (after snapshot but before LLM)\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n let calls = 0;\n return vi.fn(() => {\n calls += 1;\n if (calls >= 3) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ActTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildActHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.act({\n instruction: \"do something\",\n page: fakePage,\n timeout: 5,\n }),\n ).rejects.toThrow(ActTimeoutError);\n\n // Snapshot should have been called\n expect(captureHybridSnapshotMock).toHaveBeenCalledTimes(1);\n // LLM inference should NOT have been called\n expect(actInferenceMock).not.toHaveBeenCalled();\n });\n\n it(\"throws ActTimeoutError with correct message format\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const timeoutMs = 100;\n\n vi.mocked(createTimeoutGuard).mockImplementation((ms, errorFactory) => {\n return vi.fn(() => {\n throw errorFactory ? errorFactory(ms!) : new ActTimeoutError(ms!);\n });\n });\n\n const handler = buildActHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n try {\n await handler.act({\n instruction: \"do something\",\n page: fakePage,\n timeout: timeoutMs,\n });\n throw new Error(\"Expected ActTimeoutError to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ActTimeoutError);\n expect((error as ActTimeoutError).message).toContain(\"act()\");\n expect((error as ActTimeoutError).message).toContain(`${timeoutMs}ms`);\n expect((error as ActTimeoutError).name).toBe(\"ActTimeoutError\");\n }\n });\n});\n\ndescribe(\"ActHandler two-step timeout\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"throws ActTimeoutError during step 2; step 2 action does not run\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: { \"1-0\": \"/html/body/button\" },\n combinedUrlMap: {},\n });\n\n const { performUnderstudyMethod } = await import(\n \"../../lib/v3/handlers/handlerUtils/actHandlerUtils.js\"\n );\n const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);\n performUnderstudyMethodMock.mockResolvedValue(undefined);\n\n const actInferenceMock = vi.mocked(actInference);\n // First call returns a two-step action\n actInferenceMock.mockResolvedValueOnce({\n element: {\n elementId: \"1-0\",\n description: \"click button\",\n method: \"click\",\n arguments: [],\n },\n twoStep: true,\n prompt_tokens: 100,\n completion_tokens: 50,\n inference_time_ms: 500,\n } as ReturnType<typeof actInference> extends Promise<infer T> ? T : never);\n\n const diffCombinedTreesMock = vi.mocked(\n (await import(\"../../lib/v3/understudy/a11y/snapshot/index.js\"))\n .diffCombinedTrees,\n );\n diffCombinedTreesMock.mockReturnValue(\"diff tree\");\n\n // Timeout fires after step 1 completes, during step 2 snapshot\n // ensureTimeRemaining calls: 1=before wait, 2=after wait/before snap1, 3=before LLM1,\n // 4=before action1, 5=inside takeDeterministicAction, 6=performUnderstudy,\n // 7=before snap2 (this one should throw)\n let callCount = 0;\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n return vi.fn(() => {\n callCount += 1;\n if (callCount >= 7) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ActTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildActHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.act({\n instruction: \"click then type\",\n page: fakePage,\n timeout: 50,\n }),\n ).rejects.toThrow(ActTimeoutError);\n\n // Step 1 action should have been executed\n expect(performUnderstudyMethodMock).toHaveBeenCalledTimes(1);\n // Step 2 LLM call should NOT have happened\n expect(actInferenceMock).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe(\"ActHandler self-heal timeout\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"throws ActTimeoutError during self-heal snapshot; no retry action executes\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: { \"1-0\": \"/html/body/button\" },\n combinedUrlMap: {},\n });\n\n const { performUnderstudyMethod } = await import(\n \"../../lib/v3/handlers/handlerUtils/actHandlerUtils.js\"\n );\n const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);\n // First call fails, triggering self-heal\n performUnderstudyMethodMock.mockRejectedValueOnce(\n new Error(\"Element not found\"),\n );\n\n const actInferenceMock = vi.mocked(actInference);\n actInferenceMock.mockResolvedValue({\n element: {\n elementId: \"1-0\",\n description: \"click button\",\n method: \"click\",\n arguments: [],\n },\n twoStep: false,\n prompt_tokens: 100,\n completion_tokens: 50,\n inference_time_ms: 500,\n } as ReturnType<typeof actInference> extends Promise<infer T> ? T : never);\n\n // Timeout during self-heal snapshot (call 7 or later)\n let callCount = 0;\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n return vi.fn(() => {\n callCount += 1;\n // Timeout during self-heal snapshot call\n if (callCount >= 7) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ActTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildActHandler({ selfHeal: true });\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.act({\n instruction: \"click button\",\n page: fakePage,\n timeout: 50,\n }),\n ).rejects.toThrow(ActTimeoutError);\n\n // First action attempt should have been tried\n expect(performUnderstudyMethodMock).toHaveBeenCalledTimes(1);\n // First LLM call should have happened\n expect(actInferenceMock).toHaveBeenCalledTimes(1);\n // Self-heal snapshot should have been started (call happened)\n expect(captureHybridSnapshotMock).toHaveBeenCalled();\n });\n\n it(\"throws ActTimeoutError during self-heal LLM inference; no retry action executes\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: { \"1-0\": \"/html/body/button\" },\n combinedUrlMap: {},\n });\n\n const { performUnderstudyMethod } = await import(\n \"../../lib/v3/handlers/handlerUtils/actHandlerUtils.js\"\n );\n const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);\n // First call fails, triggering self-heal\n performUnderstudyMethodMock.mockRejectedValueOnce(\n new Error(\"Element not found\"),\n );\n\n const actInferenceMock = vi.mocked(actInference);\n actInferenceMock.mockResolvedValueOnce({\n element: {\n elementId: \"1-0\",\n description: \"click button\",\n method: \"click\",\n arguments: [],\n },\n twoStep: false,\n prompt_tokens: 100,\n completion_tokens: 50,\n inference_time_ms: 500,\n } as ReturnType<typeof actInference> extends Promise<infer T> ? T : never);\n\n // Timeout during self-heal LLM inference (call 8)\n let callCount = 0;\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n return vi.fn(() => {\n callCount += 1;\n // Timeout during self-heal LLM call\n if (callCount >= 8) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ActTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildActHandler({ selfHeal: true });\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.act({\n instruction: \"click button\",\n page: fakePage,\n timeout: 50,\n }),\n ).rejects.toThrow(ActTimeoutError);\n\n // Self-heal snapshot was captured\n expect(captureHybridSnapshotMock).toHaveBeenCalledTimes(2);\n // Only one LLM inference (the retry inference was aborted by timeout)\n expect(actInferenceMock).toHaveBeenCalledTimes(1);\n });\n});\n\ndescribe(\"ExtractHandler timeout guard\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"throws ExtractTimeoutError when timeout expires before snapshot\", async () => {\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: {},\n combinedUrlMap: {},\n });\n\n const extractInferenceMock = vi.mocked(extractInference);\n\n // Throw immediately on first call\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n return vi.fn(() => {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ExtractTimeoutError(timeoutMs!);\n });\n },\n );\n\n const handler = buildExtractHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.extract({\n instruction: \"extract title\",\n page: fakePage,\n timeout: 5,\n }),\n ).rejects.toThrow(ExtractTimeoutError);\n\n // Snapshot should NOT have been called\n expect(captureHybridSnapshotMock).not.toHaveBeenCalled();\n // LLM inference should NOT have been called\n expect(extractInferenceMock).not.toHaveBeenCalled();\n });\n\n it(\"throws ExtractTimeoutError when timeout expires before LLM call\", async () => {\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: {},\n combinedUrlMap: {},\n });\n\n const extractInferenceMock = vi.mocked(extractInference);\n\n // Throw on call #2 (after snapshot but before LLM)\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n let calls = 0;\n return vi.fn(() => {\n calls += 1;\n if (calls >= 2) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ExtractTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildExtractHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.extract({\n instruction: \"extract title\",\n page: fakePage,\n timeout: 5,\n }),\n ).rejects.toThrow(ExtractTimeoutError);\n\n // Snapshot should have been called\n expect(captureHybridSnapshotMock).toHaveBeenCalledTimes(1);\n // LLM inference should NOT have been called\n expect(extractInferenceMock).not.toHaveBeenCalled();\n });\n\n it(\"throws ExtractTimeoutError with correct message format\", async () => {\n const timeoutMs = 200;\n\n vi.mocked(createTimeoutGuard).mockImplementation((ms, errorFactory) => {\n return vi.fn(() => {\n throw errorFactory ? errorFactory(ms!) : new ExtractTimeoutError(ms!);\n });\n });\n\n const handler = buildExtractHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n try {\n await handler.extract({\n instruction: \"extract title\",\n page: fakePage,\n timeout: timeoutMs,\n });\n throw new Error(\"Expected ExtractTimeoutError to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ExtractTimeoutError);\n expect((error as ExtractTimeoutError).message).toContain(\"extract()\");\n expect((error as ExtractTimeoutError).message).toContain(\n `${timeoutMs}ms`,\n );\n expect((error as ExtractTimeoutError).name).toBe(\"ExtractTimeoutError\");\n }\n });\n\n it(\"stops LLM and post-processing when timeout expires\", async () => {\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: {},\n combinedUrlMap: { \"1-0\": \"https://example.com\" },\n });\n\n const extractInferenceMock = vi.mocked(extractInference);\n\n // Allow snapshot but timeout before LLM\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n let calls = 0;\n return vi.fn(() => {\n calls += 1;\n if (calls >= 2) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ExtractTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildExtractHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.extract({\n instruction: \"extract links\",\n page: fakePage,\n timeout: 5,\n }),\n ).rejects.toThrow(ExtractTimeoutError);\n\n // Post-processing (URL injection) never runs because LLM was never called\n expect(extractInferenceMock).not.toHaveBeenCalled();\n });\n});\n\ndescribe(\"ObserveHandler timeout guard\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"throws ObserveTimeoutError when timeout expires before snapshot\", async () => {\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: {},\n combinedUrlMap: {},\n });\n\n const observeInferenceMock = vi.mocked(observeInference);\n\n // Throw immediately on first call\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n return vi.fn(() => {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ObserveTimeoutError(timeoutMs!);\n });\n },\n );\n\n const handler = buildObserveHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.observe({\n instruction: \"find buttons\",\n page: fakePage,\n timeout: 5,\n }),\n ).rejects.toThrow(ObserveTimeoutError);\n\n // Snapshot should NOT have been called\n expect(captureHybridSnapshotMock).not.toHaveBeenCalled();\n // LLM inference should NOT have been called\n expect(observeInferenceMock).not.toHaveBeenCalled();\n });\n\n it(\"throws ObserveTimeoutError when timeout expires before LLM call\", async () => {\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: {},\n combinedUrlMap: {},\n });\n\n const observeInferenceMock = vi.mocked(observeInference);\n\n // Throw on call #2 (after snapshot but before LLM)\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n let calls = 0;\n return vi.fn(() => {\n calls += 1;\n if (calls >= 2) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ObserveTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildObserveHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.observe({\n instruction: \"find buttons\",\n page: fakePage,\n timeout: 5,\n }),\n ).rejects.toThrow(ObserveTimeoutError);\n\n // Snapshot should have been called\n expect(captureHybridSnapshotMock).toHaveBeenCalledTimes(1);\n // LLM inference should NOT have been called\n expect(observeInferenceMock).not.toHaveBeenCalled();\n });\n\n it(\"throws ObserveTimeoutError with correct message format\", async () => {\n const timeoutMs = 150;\n\n vi.mocked(createTimeoutGuard).mockImplementation((ms, errorFactory) => {\n return vi.fn(() => {\n throw errorFactory ? errorFactory(ms!) : new ObserveTimeoutError(ms!);\n });\n });\n\n const handler = buildObserveHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n try {\n await handler.observe({\n instruction: \"find buttons\",\n page: fakePage,\n timeout: timeoutMs,\n });\n throw new Error(\"Expected ObserveTimeoutError to be thrown\");\n } catch (error) {\n expect(error).toBeInstanceOf(ObserveTimeoutError);\n expect((error as ObserveTimeoutError).message).toContain(\"observe()\");\n expect((error as ObserveTimeoutError).message).toContain(\n `${timeoutMs}ms`,\n );\n expect((error as ObserveTimeoutError).name).toBe(\"ObserveTimeoutError\");\n }\n });\n\n it(\"aborts result processing when timeout expires\", async () => {\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: { \"1-0\": \"/html/body/button\" },\n combinedUrlMap: {},\n });\n\n const observeInferenceMock = vi.mocked(observeInference);\n\n // Timeout before LLM call\n vi.mocked(createTimeoutGuard).mockImplementation(\n (timeoutMs, errorFactory) => {\n let calls = 0;\n return vi.fn(() => {\n calls += 1;\n if (calls >= 2) {\n throw errorFactory\n ? errorFactory(timeoutMs!)\n : new ObserveTimeoutError(timeoutMs!);\n }\n });\n },\n );\n\n const handler = buildObserveHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n await expect(\n handler.observe({\n instruction: \"find all interactive elements\",\n page: fakePage,\n timeout: 5,\n }),\n ).rejects.toThrow(ObserveTimeoutError);\n\n // Result mapping/processing never happens\n expect(observeInferenceMock).not.toHaveBeenCalled();\n });\n});\n\ndescribe(\"No-timeout success paths\", () => {\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"act() completes successfully without timeout and records metrics\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: { \"1-0\": \"/html/body/button\" },\n combinedUrlMap: {},\n });\n\n const { performUnderstudyMethod } = await import(\n \"../../lib/v3/handlers/handlerUtils/actHandlerUtils.js\"\n );\n const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);\n performUnderstudyMethodMock.mockResolvedValue(undefined);\n\n const actInferenceMock = vi.mocked(actInference);\n actInferenceMock.mockResolvedValue({\n element: {\n elementId: \"1-0\",\n description: \"click button\",\n method: \"click\",\n arguments: [],\n },\n twoStep: false,\n prompt_tokens: 100,\n completion_tokens: 50,\n reasoning_tokens: 10,\n cached_input_tokens: 5,\n inference_time_ms: 500,\n } as ReturnType<typeof actInference> extends Promise<infer T> ? T : never);\n\n // No timeout - guard never throws\n vi.mocked(createTimeoutGuard).mockImplementation(() => {\n return vi.fn(() => {\n // No-op - never throws\n });\n });\n\n const metricsCallback = vi.fn();\n const handler = buildActHandler({ onMetrics: metricsCallback });\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n const result = await handler.act({\n instruction: \"click button\",\n page: fakePage,\n // No timeout specified\n });\n\n expect(result.success).toBe(true);\n expect(metricsCallback).toHaveBeenCalledWith(\n V3FunctionName.ACT,\n 100,\n 50,\n 10,\n 5,\n 500,\n );\n });\n\n it(\"extract() completes successfully without timeout and records metrics\", async () => {\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: {},\n combinedUrlMap: {},\n });\n\n const extractInferenceMock = vi.mocked(extractInference);\n extractInferenceMock.mockResolvedValue({\n title: \"Test Title\",\n metadata: { completed: true, progress: \"100%\" },\n prompt_tokens: 200,\n completion_tokens: 100,\n reasoning_tokens: 20,\n cached_input_tokens: 10,\n inference_time_ms: 800,\n } as ReturnType<typeof extractInference> extends Promise<infer T>\n ? T\n : never);\n\n // No timeout - guard never throws\n vi.mocked(createTimeoutGuard).mockImplementation(() => {\n return vi.fn(() => {\n // No-op - never throws\n });\n });\n\n const metricsCallback = vi.fn();\n const handler = buildExtractHandler({ onMetrics: metricsCallback });\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n const result = await handler.extract({\n instruction: \"extract title\",\n page: fakePage,\n // No timeout specified\n });\n\n expect(result).toHaveProperty(\"title\", \"Test Title\");\n expect(metricsCallback).toHaveBeenCalledWith(\n V3FunctionName.EXTRACT,\n 200,\n 100,\n 20,\n 10,\n 800,\n );\n });\n\n it(\"observe() completes successfully without timeout and records metrics\", async () => {\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: { \"1-0\": \"/html/body/button\" },\n combinedUrlMap: {},\n });\n\n const observeInferenceMock = vi.mocked(observeInference);\n observeInferenceMock.mockResolvedValue({\n elements: [\n {\n elementId: \"1-0\",\n description: \"Submit button\",\n },\n ],\n prompt_tokens: 150,\n completion_tokens: 75,\n reasoning_tokens: 15,\n cached_input_tokens: 8,\n inference_time_ms: 600,\n } as ReturnType<typeof observeInference> extends Promise<infer T>\n ? T\n : never);\n\n // No timeout - guard never throws\n vi.mocked(createTimeoutGuard).mockImplementation(() => {\n return vi.fn(() => {\n // No-op - never throws\n });\n });\n\n const metricsCallback = vi.fn();\n const handler = buildObserveHandler({ onMetrics: metricsCallback });\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n const result = await handler.observe({\n instruction: \"find buttons\",\n page: fakePage,\n // No timeout specified\n });\n\n expect(result).toHaveLength(1);\n expect(result[0]).toHaveProperty(\"description\", \"Submit button\");\n expect(metricsCallback).toHaveBeenCalledWith(\n V3FunctionName.OBSERVE,\n 150,\n 75,\n 15,\n 8,\n 600,\n );\n });\n\n it(\"act() with zero timeout behaves as no timeout\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: { \"1-0\": \"/html/body/button\" },\n combinedUrlMap: {},\n });\n\n const { performUnderstudyMethod } = await import(\n \"../../lib/v3/handlers/handlerUtils/actHandlerUtils.js\"\n );\n const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);\n performUnderstudyMethodMock.mockResolvedValue(undefined);\n\n const actInferenceMock = vi.mocked(actInference);\n actInferenceMock.mockResolvedValue({\n element: {\n elementId: \"1-0\",\n description: \"click button\",\n method: \"click\",\n arguments: [],\n },\n twoStep: false,\n prompt_tokens: 100,\n completion_tokens: 50,\n inference_time_ms: 500,\n } as ReturnType<typeof actInference> extends Promise<infer T> ? T : never);\n\n // When timeout is 0 or negative, createTimeoutGuard returns a no-op\n vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs) => {\n if (!timeoutMs || timeoutMs <= 0) {\n return vi.fn(() => {\n // No-op\n });\n }\n return vi.fn(() => {\n throw new ActTimeoutError(timeoutMs);\n });\n });\n\n const handler = buildActHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n const result = await handler.act({\n instruction: \"click button\",\n page: fakePage,\n timeout: 0, // Zero timeout should be treated as \"no timeout\"\n });\n\n expect(result.success).toBe(true);\n });\n\n it(\"act() with negative timeout behaves as no timeout\", async () => {\n const waitForDomNetworkQuietMock = vi.mocked(waitForDomNetworkQuiet);\n waitForDomNetworkQuietMock.mockResolvedValue(undefined);\n\n const captureHybridSnapshotMock = vi.mocked(captureHybridSnapshot);\n captureHybridSnapshotMock.mockResolvedValue({\n combinedTree: \"tree content\",\n combinedXpathMap: { \"1-0\": \"/html/body/button\" },\n combinedUrlMap: {},\n });\n\n const { performUnderstudyMethod } = await import(\n \"../../lib/v3/handlers/handlerUtils/actHandlerUtils.js\"\n );\n const performUnderstudyMethodMock = vi.mocked(performUnderstudyMethod);\n performUnderstudyMethodMock.mockResolvedValue(undefined);\n\n const actInferenceMock = vi.mocked(actInference);\n actInferenceMock.mockResolvedValue({\n element: {\n elementId: \"1-0\",\n description: \"click button\",\n method: \"click\",\n arguments: [],\n },\n twoStep: false,\n prompt_tokens: 100,\n completion_tokens: 50,\n inference_time_ms: 500,\n } as ReturnType<typeof actInference> extends Promise<infer T> ? T : never);\n\n vi.mocked(createTimeoutGuard).mockImplementation((timeoutMs) => {\n if (!timeoutMs || timeoutMs <= 0) {\n return vi.fn(() => {\n // No-op\n });\n }\n return vi.fn(() => {\n throw new ActTimeoutError(timeoutMs);\n });\n });\n\n const handler = buildActHandler();\n const fakePage = {\n mainFrame: vi.fn().mockReturnValue({}),\n } as unknown as Page;\n\n const result = await handler.act({\n instruction: \"click button\",\n page: fakePage,\n timeout: -100, // Negative timeout should be treated as \"no timeout\"\n });\n\n expect(result.success).toBe(true);\n });\n});\n\ninterface BuildActHandlerOptions {\n selfHeal?: boolean;\n onMetrics?: (\n functionName: V3FunctionName,\n promptTokens: number,\n completionTokens: number,\n reasoningTokens: number,\n cachedInputTokens: number,\n inferenceTimeMs: number,\n ) => void;\n}\n\nfunction buildActHandler(options: BuildActHandlerOptions = {}): ActHandler {\n const defaultClientOptions = {} as ClientOptions;\n const fakeClient = {\n type: \"openai\",\n modelName: \"gpt-4o\",\n clientOptions: defaultClientOptions,\n } as LLMClient;\n const resolveLlmClient = vi.fn().mockReturnValue(fakeClient);\n\n return new ActHandler(\n fakeClient,\n \"gpt-4o\",\n defaultClientOptions,\n resolveLlmClient,\n undefined,\n false,\n options.selfHeal ?? false,\n options.onMetrics,\n undefined,\n );\n}\n\ninterface BuildExtractHandlerOptions {\n onMetrics?: (\n functionName: V3FunctionName,\n promptTokens: number,\n completionTokens: number,\n reasoningTokens: number,\n cachedInputTokens: number,\n inferenceTimeMs: number,\n ) => void;\n}\n\nfunction buildExtractHandler(\n options: BuildExtractHandlerOptions = {},\n): ExtractHandler {\n const defaultClientOptions = {} as ClientOptions;\n const fakeClient = {\n type: \"openai\",\n modelName: \"gpt-4o\",\n clientOptions: defaultClientOptions,\n } as LLMClient;\n const resolveLlmClient = vi.fn().mockReturnValue(fakeClient);\n\n return new ExtractHandler(\n fakeClient,\n \"gpt-4o\",\n defaultClientOptions,\n resolveLlmClient,\n undefined,\n false,\n false,\n options.onMetrics,\n );\n}\n\ninterface BuildObserveHandlerOptions {\n onMetrics?: (\n functionName: V3FunctionName,\n promptTokens: number,\n completionTokens: number,\n reasoningTokens: number,\n cachedInputTokens: number,\n inferenceTimeMs: number,\n ) => void;\n}\n\nfunction buildObserveHandler(\n options: BuildObserveHandlerOptions = {},\n): ObserveHandler {\n const defaultClientOptions = {} as ClientOptions;\n const fakeClient = {\n type: \"openai\",\n modelName: \"gpt-4o\",\n clientOptions: defaultClientOptions,\n } as LLMClient;\n const resolveLlmClient = vi.fn().mockReturnValue(fakeClient);\n\n return new ObserveHandler(\n fakeClient,\n \"gpt-4o\",\n defaultClientOptions,\n resolveLlmClient,\n undefined,\n false,\n false,\n options.onMetrics,\n );\n}\n"]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const sdkErrors_js_1 = require("../../lib/v3/types/public/sdkErrors.js");
5
+ (0, vitest_1.describe)("UnderstudyCommandException", () => {
6
+ (0, vitest_1.it)("extends StagehandError", () => {
7
+ const err = new sdkErrors_js_1.UnderstudyCommandException("test");
8
+ (0, vitest_1.expect)(err).toBeInstanceOf(sdkErrors_js_1.StagehandError);
9
+ (0, vitest_1.expect)(err).toBeInstanceOf(Error);
10
+ });
11
+ (0, vitest_1.it)("has the correct name", () => {
12
+ const err = new sdkErrors_js_1.UnderstudyCommandException("test");
13
+ (0, vitest_1.expect)(err.name).toBe("UnderstudyCommandException");
14
+ });
15
+ (0, vitest_1.it)("preserves the message", () => {
16
+ const err = new sdkErrors_js_1.UnderstudyCommandException("something broke");
17
+ (0, vitest_1.expect)(err.message).toBe("something broke");
18
+ });
19
+ (0, vitest_1.it)("stores the original error as cause when provided", () => {
20
+ const original = new Error("root cause");
21
+ const err = new sdkErrors_js_1.UnderstudyCommandException("wrapper message", original);
22
+ (0, vitest_1.expect)(err.cause).toBe(original);
23
+ (0, vitest_1.expect)(err.cause.message).toBe("root cause");
24
+ (0, vitest_1.expect)(err.cause.stack).toBeDefined();
25
+ });
26
+ (0, vitest_1.it)("stores non-Error cause values", () => {
27
+ const err = new sdkErrors_js_1.UnderstudyCommandException("failed", "string cause");
28
+ (0, vitest_1.expect)(err.cause).toBe("string cause");
29
+ });
30
+ (0, vitest_1.it)("has undefined cause when none is provided", () => {
31
+ const err = new sdkErrors_js_1.UnderstudyCommandException("no cause");
32
+ (0, vitest_1.expect)(err.cause).toBeUndefined();
33
+ });
34
+ (0, vitest_1.it)("generates its own stack trace", () => {
35
+ const err = new sdkErrors_js_1.UnderstudyCommandException("test");
36
+ (0, vitest_1.expect)(err.stack).toBeDefined();
37
+ (0, vitest_1.expect)(err.stack).toContain("UnderstudyCommandException");
38
+ });
39
+ (0, vitest_1.it)("preserves the original stack via cause for debugging", () => {
40
+ function deepFunction() {
41
+ throw new Error("deep error");
42
+ }
43
+ let original;
44
+ try {
45
+ deepFunction();
46
+ }
47
+ catch (e) {
48
+ original = e;
49
+ }
50
+ const wrapped = new sdkErrors_js_1.UnderstudyCommandException(original.message, original);
51
+ // The wrapper has its own stack
52
+ (0, vitest_1.expect)(wrapped.stack).toBeDefined();
53
+ // The original stack is accessible via cause
54
+ (0, vitest_1.expect)(wrapped.cause.stack).toContain("deepFunction");
55
+ });
56
+ });
57
+ //# sourceMappingURL=understudy-command-exception.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"understudy-command-exception.test.js","sourceRoot":"","sources":["../../../../tests/unit/understudy-command-exception.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport {\n UnderstudyCommandException,\n StagehandError,\n} from \"../../lib/v3/types/public/sdkErrors.js\";\n\ndescribe(\"UnderstudyCommandException\", () => {\n it(\"extends StagehandError\", () => {\n const err = new UnderstudyCommandException(\"test\");\n expect(err).toBeInstanceOf(StagehandError);\n expect(err).toBeInstanceOf(Error);\n });\n\n it(\"has the correct name\", () => {\n const err = new UnderstudyCommandException(\"test\");\n expect(err.name).toBe(\"UnderstudyCommandException\");\n });\n\n it(\"preserves the message\", () => {\n const err = new UnderstudyCommandException(\"something broke\");\n expect(err.message).toBe(\"something broke\");\n });\n\n it(\"stores the original error as cause when provided\", () => {\n const original = new Error(\"root cause\");\n const err = new UnderstudyCommandException(\"wrapper message\", original);\n\n expect(err.cause).toBe(original);\n expect((err.cause as Error).message).toBe(\"root cause\");\n expect((err.cause as Error).stack).toBeDefined();\n });\n\n it(\"stores non-Error cause values\", () => {\n const err = new UnderstudyCommandException(\"failed\", \"string cause\");\n expect(err.cause).toBe(\"string cause\");\n });\n\n it(\"has undefined cause when none is provided\", () => {\n const err = new UnderstudyCommandException(\"no cause\");\n expect(err.cause).toBeUndefined();\n });\n\n it(\"generates its own stack trace\", () => {\n const err = new UnderstudyCommandException(\"test\");\n expect(err.stack).toBeDefined();\n expect(err.stack).toContain(\"UnderstudyCommandException\");\n });\n\n it(\"preserves the original stack via cause for debugging\", () => {\n function deepFunction() {\n throw new Error(\"deep error\");\n }\n\n let original: Error;\n try {\n deepFunction();\n } catch (e) {\n original = e as Error;\n }\n\n const wrapped = new UnderstudyCommandException(original!.message, original);\n\n // The wrapper has its own stack\n expect(wrapped.stack).toBeDefined();\n // The original stack is accessible via cause\n expect((wrapped.cause as Error).stack).toContain(\"deepFunction\");\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,311 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const xpathParser_js_1 = require("../../lib/v3/dom/locatorScripts/xpathParser.js");
5
+ (0, vitest_1.describe)("parseXPathSteps", () => {
6
+ (0, vitest_1.describe)("basic tag parsing", () => {
7
+ (0, vitest_1.it)("parses a simple absolute path", () => {
8
+ (0, vitest_1.expect)((0, xpathParser_js_1.parseXPathSteps)("/html/body/div")).toEqual([
9
+ { axis: "child", tag: "html", predicates: [] },
10
+ { axis: "child", tag: "body", predicates: [] },
11
+ { axis: "child", tag: "div", predicates: [] },
12
+ ]);
13
+ });
14
+ (0, vitest_1.it)("lowercases tag names", () => {
15
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("/HTML/BODY");
16
+ (0, vitest_1.expect)(steps[0].tag).toBe("html");
17
+ (0, vitest_1.expect)(steps[1].tag).toBe("body");
18
+ });
19
+ (0, vitest_1.it)("treats wildcard correctly", () => {
20
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//*");
21
+ (0, vitest_1.expect)(steps).toEqual([{ axis: "desc", tag: "*", predicates: [] }]);
22
+ });
23
+ });
24
+ (0, vitest_1.describe)("axes", () => {
25
+ (0, vitest_1.it)("distinguishes child (/) from descendant (//)", () => {
26
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("/html//div/span");
27
+ (0, vitest_1.expect)(steps).toEqual([
28
+ { axis: "child", tag: "html", predicates: [] },
29
+ { axis: "desc", tag: "div", predicates: [] },
30
+ { axis: "child", tag: "span", predicates: [] },
31
+ ]);
32
+ });
33
+ (0, vitest_1.it)("handles leading //", () => {
34
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div");
35
+ (0, vitest_1.expect)(steps[0].axis).toBe("desc");
36
+ });
37
+ });
38
+ (0, vitest_1.describe)("positional indices", () => {
39
+ (0, vitest_1.it)("parses positional index", () => {
40
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("/div[1]/span[3]");
41
+ (0, vitest_1.expect)(steps[0]).toMatchObject({
42
+ tag: "div",
43
+ predicates: [{ type: "index", index: 1 }],
44
+ });
45
+ (0, vitest_1.expect)(steps[1]).toMatchObject({
46
+ tag: "span",
47
+ predicates: [{ type: "index", index: 3 }],
48
+ });
49
+ });
50
+ (0, vitest_1.it)("clamps index to minimum 1", () => {
51
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("/div[0]");
52
+ (0, vitest_1.expect)(steps[0].predicates[0]).toMatchObject({
53
+ type: "index",
54
+ index: 1,
55
+ });
56
+ });
57
+ (0, vitest_1.it)("keeps multiple positional predicates in order", () => {
58
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[2][3]");
59
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
60
+ { type: "index", index: 2 },
61
+ { type: "index", index: 3 },
62
+ ]);
63
+ });
64
+ });
65
+ (0, vitest_1.describe)("attribute predicates", () => {
66
+ (0, vitest_1.it)("parses single attribute predicate with single quotes", () => {
67
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//img[@alt='Stagehand']");
68
+ (0, vitest_1.expect)(steps).toEqual([
69
+ {
70
+ axis: "desc",
71
+ tag: "img",
72
+ predicates: [{ type: "attrEquals", name: "alt", value: "Stagehand" }],
73
+ },
74
+ ]);
75
+ });
76
+ (0, vitest_1.it)("parses single attribute predicate with double quotes", () => {
77
+ const steps = (0, xpathParser_js_1.parseXPathSteps)('//img[@alt="Stagehand"]');
78
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
79
+ { type: "attrEquals", name: "alt", value: "Stagehand" },
80
+ ]);
81
+ });
82
+ (0, vitest_1.it)("parses multiple attribute predicates", () => {
83
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@class='foo'][@id='bar']");
84
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
85
+ { type: "attrEquals", name: "class", value: "foo" },
86
+ { type: "attrEquals", name: "id", value: "bar" },
87
+ ]);
88
+ });
89
+ (0, vitest_1.it)("parses attribute predicate combined with positional index", () => {
90
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@class='item'][2]");
91
+ (0, vitest_1.expect)(steps[0]).toMatchObject({
92
+ tag: "div",
93
+ predicates: [
94
+ { type: "attrEquals", name: "class", value: "item" },
95
+ { type: "index", index: 2 },
96
+ ],
97
+ });
98
+ });
99
+ (0, vitest_1.it)("parses attribute with hyphenated name", () => {
100
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@data-testid='submit']");
101
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
102
+ { type: "attrEquals", name: "data-testid", value: "submit" },
103
+ ]);
104
+ });
105
+ (0, vitest_1.it)("parses attribute with empty value", () => {
106
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//input[@value='']");
107
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
108
+ { type: "attrEquals", name: "value", value: "" },
109
+ ]);
110
+ });
111
+ (0, vitest_1.it)("parses attribute value containing closing bracket", () => {
112
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@title='array[0]']");
113
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
114
+ { type: "attrEquals", name: "title", value: "array[0]" },
115
+ ]);
116
+ });
117
+ (0, vitest_1.it)("parses attribute value containing multiple brackets", () => {
118
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@data-json='[1,2,3]']");
119
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
120
+ { type: "attrEquals", name: "data-json", value: "[1,2,3]" },
121
+ ]);
122
+ });
123
+ (0, vitest_1.it)("parses attribute value containing a closing bracket", () => {
124
+ // The step splitter should ignore ] characters inside quotes.
125
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@title='a]b']/span");
126
+ (0, vitest_1.expect)(steps).toEqual([
127
+ {
128
+ axis: "desc",
129
+ tag: "div",
130
+ predicates: [{ type: "attrEquals", name: "title", value: "a]b" }],
131
+ },
132
+ { axis: "child", tag: "span", predicates: [] },
133
+ ]);
134
+ });
135
+ (0, vitest_1.it)("parses attribute existence predicates", () => {
136
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//iframe[@data-test]");
137
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
138
+ { type: "attrExists", name: "data-test" },
139
+ ]);
140
+ });
141
+ (0, vitest_1.it)("parses attribute contains predicates", () => {
142
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//iframe[contains(@src,'checkout')]");
143
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
144
+ { type: "attrContains", name: "src", value: "checkout" },
145
+ ]);
146
+ });
147
+ (0, vitest_1.it)("parses attribute starts-with predicates", () => {
148
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//button[starts-with(@id,'save-')]");
149
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
150
+ { type: "attrStartsWith", name: "id", value: "save-" },
151
+ ]);
152
+ });
153
+ });
154
+ (0, vitest_1.describe)("text predicates", () => {
155
+ (0, vitest_1.it)("parses text equality", () => {
156
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//button[text()='Submit']");
157
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
158
+ { type: "textEquals", value: "Submit" },
159
+ ]);
160
+ });
161
+ (0, vitest_1.it)("parses text contains", () => {
162
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[contains(text(),'Welcome')]");
163
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
164
+ { type: "textContains", value: "Welcome" },
165
+ ]);
166
+ });
167
+ (0, vitest_1.it)("parses normalize-space on text", () => {
168
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[normalize-space(text())='Hello world']");
169
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
170
+ { type: "textEquals", value: "Hello world", normalize: true },
171
+ ]);
172
+ });
173
+ });
174
+ (0, vitest_1.describe)("boolean predicates", () => {
175
+ (0, vitest_1.it)("parses and predicates", () => {
176
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@a='x' and @b='y']");
177
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
178
+ {
179
+ type: "and",
180
+ predicates: [
181
+ { type: "attrEquals", name: "a", value: "x" },
182
+ { type: "attrEquals", name: "b", value: "y" },
183
+ ],
184
+ },
185
+ ]);
186
+ });
187
+ (0, vitest_1.it)("parses operators without surrounding whitespace", () => {
188
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[not(@x)and@y='z']");
189
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
190
+ {
191
+ type: "and",
192
+ predicates: [
193
+ { type: "not", predicate: { type: "attrExists", name: "x" } },
194
+ { type: "attrEquals", name: "y", value: "z" },
195
+ ],
196
+ },
197
+ ]);
198
+ });
199
+ (0, vitest_1.it)("parses or predicates", () => {
200
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@a='x' or @b='y']");
201
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
202
+ {
203
+ type: "or",
204
+ predicates: [
205
+ { type: "attrEquals", name: "a", value: "x" },
206
+ { type: "attrEquals", name: "b", value: "y" },
207
+ ],
208
+ },
209
+ ]);
210
+ });
211
+ (0, vitest_1.it)("parses not predicates", () => {
212
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//button[not(@disabled)]");
213
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
214
+ { type: "not", predicate: { type: "attrExists", name: "disabled" } },
215
+ ]);
216
+ });
217
+ (0, vitest_1.it)("does not treat @and as a boolean operator", () => {
218
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//div[@and='x' and @y='z']");
219
+ (0, vitest_1.expect)(steps[0].predicates).toEqual([
220
+ {
221
+ type: "and",
222
+ predicates: [
223
+ { type: "attrEquals", name: "and", value: "x" },
224
+ { type: "attrEquals", name: "y", value: "z" },
225
+ ],
226
+ },
227
+ ]);
228
+ });
229
+ });
230
+ (0, vitest_1.describe)("multi-step with predicates", () => {
231
+ (0, vitest_1.it)("parses complex path with mixed predicates", () => {
232
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("/html/body//div[@class='container']/ul/li[3]");
233
+ (0, vitest_1.expect)(steps).toEqual([
234
+ { axis: "child", tag: "html", predicates: [] },
235
+ { axis: "child", tag: "body", predicates: [] },
236
+ {
237
+ axis: "desc",
238
+ tag: "div",
239
+ predicates: [
240
+ { type: "attrEquals", name: "class", value: "container" },
241
+ ],
242
+ },
243
+ { axis: "child", tag: "ul", predicates: [] },
244
+ { axis: "child", tag: "li", predicates: [{ type: "index", index: 3 }] },
245
+ ]);
246
+ });
247
+ });
248
+ (0, vitest_1.describe)("edge cases", () => {
249
+ (0, vitest_1.it)("returns empty array for empty string", () => {
250
+ (0, vitest_1.expect)((0, xpathParser_js_1.parseXPathSteps)("")).toEqual([]);
251
+ });
252
+ (0, vitest_1.it)("strips xpath= prefix", () => {
253
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("xpath=//div");
254
+ (0, vitest_1.expect)(steps).toEqual([{ axis: "desc", tag: "div", predicates: [] }]);
255
+ });
256
+ (0, vitest_1.it)("strips XPATH= prefix (case-insensitive)", () => {
257
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("XPATH=//div");
258
+ (0, vitest_1.expect)(steps).toEqual([{ axis: "desc", tag: "div", predicates: [] }]);
259
+ });
260
+ (0, vitest_1.it)("handles forward slashes inside attribute values", () => {
261
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//a[@href='/api/endpoint']");
262
+ (0, vitest_1.expect)(steps).toEqual([
263
+ {
264
+ axis: "desc",
265
+ tag: "a",
266
+ predicates: [
267
+ { type: "attrEquals", name: "href", value: "/api/endpoint" },
268
+ ],
269
+ },
270
+ ]);
271
+ });
272
+ (0, vitest_1.it)("handles URL attribute values with multiple slashes", () => {
273
+ const steps = (0, xpathParser_js_1.parseXPathSteps)("//a[@data-url='http://example.com/path/to/page']");
274
+ (0, vitest_1.expect)(steps).toEqual([
275
+ {
276
+ axis: "desc",
277
+ tag: "a",
278
+ predicates: [
279
+ {
280
+ type: "attrEquals",
281
+ name: "data-url",
282
+ value: "http://example.com/path/to/page",
283
+ },
284
+ ],
285
+ },
286
+ ]);
287
+ });
288
+ (0, vitest_1.it)("handles whitespace", () => {
289
+ const steps = (0, xpathParser_js_1.parseXPathSteps)(" //div ");
290
+ (0, vitest_1.expect)(steps.length).toBe(1);
291
+ (0, vitest_1.expect)(steps[0].tag).toBe("div");
292
+ });
293
+ });
294
+ });
295
+ (0, vitest_1.describe)("applyPredicates", () => {
296
+ const makeElement = (id) => {
297
+ return {
298
+ localName: "div",
299
+ getAttribute: (name) => (name === "id" ? id : null),
300
+ };
301
+ };
302
+ (0, vitest_1.it)("applies positional predicates sequentially", () => {
303
+ const elements = ["a", "b", "c", "d"].map(makeElement);
304
+ const predicates = [
305
+ { type: "index", index: 2 },
306
+ { type: "index", index: 3 },
307
+ ];
308
+ (0, vitest_1.expect)((0, xpathParser_js_1.applyPredicates)(elements, predicates)).toEqual([]);
309
+ });
310
+ });
311
+ //# sourceMappingURL=xpath-parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xpath-parser.test.js","sourceRoot":"","sources":["../../../../tests/unit/xpath-parser.test.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,mFAIwD;AAExD,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,IAAA,WAAE,EAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,IAAA,eAAM,EAAC,IAAA,gCAAe,EAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC;gBAChD,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;aAC9C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,YAAY,CAAC,CAAC;YAC5C,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,KAAK,CAAC,CAAC;YACrC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,MAAM,EAAE,GAAG,EAAE;QACpB,IAAA,WAAE,EAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,iBAAiB,CAAC,CAAC;YACjD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACpB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,oBAAoB,EAAE,GAAG,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,OAAO,CAAC,CAAC;YACvC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAA,WAAE,EAAC,yBAAyB,EAAE,GAAG,EAAE;YACjC,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,iBAAiB,CAAC,CAAC;YACjD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC7B,GAAG,EAAE,KAAK;gBACV,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aAC1C,CAAC,CAAC;YACH,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC7B,GAAG,EAAE,MAAM;gBACX,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2BAA2B,EAAE,GAAG,EAAE;YACnC,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,SAAS,CAAC,CAAC;YACzC,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC3C,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,+CAA+C,EAAE,GAAG,EAAE;YACvD,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,aAAa,CAAC,CAAC;YAC7C,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;gBAC3B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;aAC5B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,yBAAyB,CAAC,CAAC;YACzD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACpB;oBACE,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,KAAK;oBACV,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;iBACtE;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,yBAAyB,CAAC,CAAC;YACzD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;aACxD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,gCAAgC,CAAC,CAAC;YAChE,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;gBACnD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;aACjD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,yBAAyB,CAAC,CAAC;YACzD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBAC7B,GAAG,EAAE,KAAK;gBACV,UAAU,EAAE;oBACV,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;oBACpD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;iBAC5B;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,8BAA8B,CAAC,CAAC;YAC9D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;aAC7D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,oBAAoB,CAAC,CAAC;YACpD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;aACjD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,0BAA0B,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;aACzD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,6BAA6B,CAAC,CAAC;YAC7D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;aAC5D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,8DAA8D;YAC9D,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,0BAA0B,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACpB;oBACE,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,KAAK;oBACV,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;iBAClE;gBACD,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,sBAAsB,CAAC,CAAC;YACtD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE;aAC1C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,qCAAqC,CAAC,CAAC;YACrE,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE;aACzD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,oCAAoC,CAAC,CAAC;YACpE,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;aACvD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,2BAA2B,CAAC,CAAC;YAC3D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE;aACxC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,mCAAmC,CAAC,CAAC;YACnE,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE;aAC3C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,KAAK,GAAG,IAAA,gCAAe,EAC3B,8CAA8C,CAC/C,CAAC;YACF,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE;aAC9D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,IAAA,WAAE,EAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,0BAA0B,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC;oBACE,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;wBAC7C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;qBAC9C;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,yBAAyB,CAAC,CAAC;YACzD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC;oBACE,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;wBAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;qBAC9C;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,yBAAyB,CAAC,CAAC;YACzD,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC;oBACE,IAAI,EAAE,IAAI;oBACV,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;wBAC7C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;qBAC9C;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,0BAA0B,CAAC,CAAC;YAC1D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;aACrE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,4BAA4B,CAAC,CAAC;YAC5D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBAClC;oBACE,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE;wBAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;qBAC9C;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,IAAA,WAAE,EAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,KAAK,GAAG,IAAA,gCAAe,EAC3B,8CAA8C,CAC/C,CAAC;YACF,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACpB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC9C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC9C;oBACE,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,KAAK;oBACV,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;qBAC1D;iBACF;gBACD,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC5C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE;aACxE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,IAAA,eAAM,EAAC,IAAA,gCAAe,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,aAAa,CAAC,CAAC;YAC7C,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,aAAa,CAAC,CAAC;YAC7C,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,4BAA4B,CAAC,CAAC;YAC5D,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACpB;oBACE,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,GAAG;oBACR,UAAU,EAAE;wBACV,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE;qBAC7D;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,IAAA,gCAAe,EAC3B,kDAAkD,CACnD,CAAC;YACF,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC;gBACpB;oBACE,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,GAAG;oBACR,UAAU,EAAE;wBACV;4BACE,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,iCAAiC;yBACzC;qBACF;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAA,WAAE,EAAC,oBAAoB,EAAE,GAAG,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAA,gCAAe,EAAC,WAAW,CAAC,CAAC;YAC3C,IAAA,eAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,WAAW,GAAG,CAAC,EAAU,EAAW,EAAE;QAC1C,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACtC,CAAC;IAC1B,CAAC,CAAC;IAEF,IAAA,WAAE,EAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,UAAU,GAAqB;YACnC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;YAC3B,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;SAC5B,CAAC;QACF,IAAA,eAAM,EAAC,IAAA,gCAAe,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, expect, it } from \"vitest\";\nimport {\n applyPredicates,\n parseXPathSteps,\n type XPathPredicate,\n} from \"../../lib/v3/dom/locatorScripts/xpathParser.js\";\n\ndescribe(\"parseXPathSteps\", () => {\n describe(\"basic tag parsing\", () => {\n it(\"parses a simple absolute path\", () => {\n expect(parseXPathSteps(\"/html/body/div\")).toEqual([\n { axis: \"child\", tag: \"html\", predicates: [] },\n { axis: \"child\", tag: \"body\", predicates: [] },\n { axis: \"child\", tag: \"div\", predicates: [] },\n ]);\n });\n\n it(\"lowercases tag names\", () => {\n const steps = parseXPathSteps(\"/HTML/BODY\");\n expect(steps[0].tag).toBe(\"html\");\n expect(steps[1].tag).toBe(\"body\");\n });\n\n it(\"treats wildcard correctly\", () => {\n const steps = parseXPathSteps(\"//*\");\n expect(steps).toEqual([{ axis: \"desc\", tag: \"*\", predicates: [] }]);\n });\n });\n\n describe(\"axes\", () => {\n it(\"distinguishes child (/) from descendant (//)\", () => {\n const steps = parseXPathSteps(\"/html//div/span\");\n expect(steps).toEqual([\n { axis: \"child\", tag: \"html\", predicates: [] },\n { axis: \"desc\", tag: \"div\", predicates: [] },\n { axis: \"child\", tag: \"span\", predicates: [] },\n ]);\n });\n\n it(\"handles leading //\", () => {\n const steps = parseXPathSteps(\"//div\");\n expect(steps[0].axis).toBe(\"desc\");\n });\n });\n\n describe(\"positional indices\", () => {\n it(\"parses positional index\", () => {\n const steps = parseXPathSteps(\"/div[1]/span[3]\");\n expect(steps[0]).toMatchObject({\n tag: \"div\",\n predicates: [{ type: \"index\", index: 1 }],\n });\n expect(steps[1]).toMatchObject({\n tag: \"span\",\n predicates: [{ type: \"index\", index: 3 }],\n });\n });\n\n it(\"clamps index to minimum 1\", () => {\n const steps = parseXPathSteps(\"/div[0]\");\n expect(steps[0].predicates[0]).toMatchObject({\n type: \"index\",\n index: 1,\n });\n });\n\n it(\"keeps multiple positional predicates in order\", () => {\n const steps = parseXPathSteps(\"//div[2][3]\");\n expect(steps[0].predicates).toEqual([\n { type: \"index\", index: 2 },\n { type: \"index\", index: 3 },\n ]);\n });\n });\n\n describe(\"attribute predicates\", () => {\n it(\"parses single attribute predicate with single quotes\", () => {\n const steps = parseXPathSteps(\"//img[@alt='Stagehand']\");\n expect(steps).toEqual([\n {\n axis: \"desc\",\n tag: \"img\",\n predicates: [{ type: \"attrEquals\", name: \"alt\", value: \"Stagehand\" }],\n },\n ]);\n });\n\n it(\"parses single attribute predicate with double quotes\", () => {\n const steps = parseXPathSteps('//img[@alt=\"Stagehand\"]');\n expect(steps[0].predicates).toEqual([\n { type: \"attrEquals\", name: \"alt\", value: \"Stagehand\" },\n ]);\n });\n\n it(\"parses multiple attribute predicates\", () => {\n const steps = parseXPathSteps(\"//div[@class='foo'][@id='bar']\");\n expect(steps[0].predicates).toEqual([\n { type: \"attrEquals\", name: \"class\", value: \"foo\" },\n { type: \"attrEquals\", name: \"id\", value: \"bar\" },\n ]);\n });\n\n it(\"parses attribute predicate combined with positional index\", () => {\n const steps = parseXPathSteps(\"//div[@class='item'][2]\");\n expect(steps[0]).toMatchObject({\n tag: \"div\",\n predicates: [\n { type: \"attrEquals\", name: \"class\", value: \"item\" },\n { type: \"index\", index: 2 },\n ],\n });\n });\n\n it(\"parses attribute with hyphenated name\", () => {\n const steps = parseXPathSteps(\"//div[@data-testid='submit']\");\n expect(steps[0].predicates).toEqual([\n { type: \"attrEquals\", name: \"data-testid\", value: \"submit\" },\n ]);\n });\n\n it(\"parses attribute with empty value\", () => {\n const steps = parseXPathSteps(\"//input[@value='']\");\n expect(steps[0].predicates).toEqual([\n { type: \"attrEquals\", name: \"value\", value: \"\" },\n ]);\n });\n\n it(\"parses attribute value containing closing bracket\", () => {\n const steps = parseXPathSteps(\"//div[@title='array[0]']\");\n expect(steps[0].predicates).toEqual([\n { type: \"attrEquals\", name: \"title\", value: \"array[0]\" },\n ]);\n });\n\n it(\"parses attribute value containing multiple brackets\", () => {\n const steps = parseXPathSteps(\"//div[@data-json='[1,2,3]']\");\n expect(steps[0].predicates).toEqual([\n { type: \"attrEquals\", name: \"data-json\", value: \"[1,2,3]\" },\n ]);\n });\n\n it(\"parses attribute value containing a closing bracket\", () => {\n // The step splitter should ignore ] characters inside quotes.\n const steps = parseXPathSteps(\"//div[@title='a]b']/span\");\n expect(steps).toEqual([\n {\n axis: \"desc\",\n tag: \"div\",\n predicates: [{ type: \"attrEquals\", name: \"title\", value: \"a]b\" }],\n },\n { axis: \"child\", tag: \"span\", predicates: [] },\n ]);\n });\n\n it(\"parses attribute existence predicates\", () => {\n const steps = parseXPathSteps(\"//iframe[@data-test]\");\n expect(steps[0].predicates).toEqual([\n { type: \"attrExists\", name: \"data-test\" },\n ]);\n });\n\n it(\"parses attribute contains predicates\", () => {\n const steps = parseXPathSteps(\"//iframe[contains(@src,'checkout')]\");\n expect(steps[0].predicates).toEqual([\n { type: \"attrContains\", name: \"src\", value: \"checkout\" },\n ]);\n });\n\n it(\"parses attribute starts-with predicates\", () => {\n const steps = parseXPathSteps(\"//button[starts-with(@id,'save-')]\");\n expect(steps[0].predicates).toEqual([\n { type: \"attrStartsWith\", name: \"id\", value: \"save-\" },\n ]);\n });\n });\n\n describe(\"text predicates\", () => {\n it(\"parses text equality\", () => {\n const steps = parseXPathSteps(\"//button[text()='Submit']\");\n expect(steps[0].predicates).toEqual([\n { type: \"textEquals\", value: \"Submit\" },\n ]);\n });\n\n it(\"parses text contains\", () => {\n const steps = parseXPathSteps(\"//div[contains(text(),'Welcome')]\");\n expect(steps[0].predicates).toEqual([\n { type: \"textContains\", value: \"Welcome\" },\n ]);\n });\n\n it(\"parses normalize-space on text\", () => {\n const steps = parseXPathSteps(\n \"//div[normalize-space(text())='Hello world']\",\n );\n expect(steps[0].predicates).toEqual([\n { type: \"textEquals\", value: \"Hello world\", normalize: true },\n ]);\n });\n });\n\n describe(\"boolean predicates\", () => {\n it(\"parses and predicates\", () => {\n const steps = parseXPathSteps(\"//div[@a='x' and @b='y']\");\n expect(steps[0].predicates).toEqual([\n {\n type: \"and\",\n predicates: [\n { type: \"attrEquals\", name: \"a\", value: \"x\" },\n { type: \"attrEquals\", name: \"b\", value: \"y\" },\n ],\n },\n ]);\n });\n\n it(\"parses operators without surrounding whitespace\", () => {\n const steps = parseXPathSteps(\"//div[not(@x)and@y='z']\");\n expect(steps[0].predicates).toEqual([\n {\n type: \"and\",\n predicates: [\n { type: \"not\", predicate: { type: \"attrExists\", name: \"x\" } },\n { type: \"attrEquals\", name: \"y\", value: \"z\" },\n ],\n },\n ]);\n });\n\n it(\"parses or predicates\", () => {\n const steps = parseXPathSteps(\"//div[@a='x' or @b='y']\");\n expect(steps[0].predicates).toEqual([\n {\n type: \"or\",\n predicates: [\n { type: \"attrEquals\", name: \"a\", value: \"x\" },\n { type: \"attrEquals\", name: \"b\", value: \"y\" },\n ],\n },\n ]);\n });\n\n it(\"parses not predicates\", () => {\n const steps = parseXPathSteps(\"//button[not(@disabled)]\");\n expect(steps[0].predicates).toEqual([\n { type: \"not\", predicate: { type: \"attrExists\", name: \"disabled\" } },\n ]);\n });\n\n it(\"does not treat @and as a boolean operator\", () => {\n const steps = parseXPathSteps(\"//div[@and='x' and @y='z']\");\n expect(steps[0].predicates).toEqual([\n {\n type: \"and\",\n predicates: [\n { type: \"attrEquals\", name: \"and\", value: \"x\" },\n { type: \"attrEquals\", name: \"y\", value: \"z\" },\n ],\n },\n ]);\n });\n });\n\n describe(\"multi-step with predicates\", () => {\n it(\"parses complex path with mixed predicates\", () => {\n const steps = parseXPathSteps(\n \"/html/body//div[@class='container']/ul/li[3]\",\n );\n expect(steps).toEqual([\n { axis: \"child\", tag: \"html\", predicates: [] },\n { axis: \"child\", tag: \"body\", predicates: [] },\n {\n axis: \"desc\",\n tag: \"div\",\n predicates: [\n { type: \"attrEquals\", name: \"class\", value: \"container\" },\n ],\n },\n { axis: \"child\", tag: \"ul\", predicates: [] },\n { axis: \"child\", tag: \"li\", predicates: [{ type: \"index\", index: 3 }] },\n ]);\n });\n });\n\n describe(\"edge cases\", () => {\n it(\"returns empty array for empty string\", () => {\n expect(parseXPathSteps(\"\")).toEqual([]);\n });\n\n it(\"strips xpath= prefix\", () => {\n const steps = parseXPathSteps(\"xpath=//div\");\n expect(steps).toEqual([{ axis: \"desc\", tag: \"div\", predicates: [] }]);\n });\n\n it(\"strips XPATH= prefix (case-insensitive)\", () => {\n const steps = parseXPathSteps(\"XPATH=//div\");\n expect(steps).toEqual([{ axis: \"desc\", tag: \"div\", predicates: [] }]);\n });\n\n it(\"handles forward slashes inside attribute values\", () => {\n const steps = parseXPathSteps(\"//a[@href='/api/endpoint']\");\n expect(steps).toEqual([\n {\n axis: \"desc\",\n tag: \"a\",\n predicates: [\n { type: \"attrEquals\", name: \"href\", value: \"/api/endpoint\" },\n ],\n },\n ]);\n });\n\n it(\"handles URL attribute values with multiple slashes\", () => {\n const steps = parseXPathSteps(\n \"//a[@data-url='http://example.com/path/to/page']\",\n );\n expect(steps).toEqual([\n {\n axis: \"desc\",\n tag: \"a\",\n predicates: [\n {\n type: \"attrEquals\",\n name: \"data-url\",\n value: \"http://example.com/path/to/page\",\n },\n ],\n },\n ]);\n });\n\n it(\"handles whitespace\", () => {\n const steps = parseXPathSteps(\" //div \");\n expect(steps.length).toBe(1);\n expect(steps[0].tag).toBe(\"div\");\n });\n });\n});\n\ndescribe(\"applyPredicates\", () => {\n const makeElement = (id: string): Element => {\n return {\n localName: \"div\",\n getAttribute: (name: string) => (name === \"id\" ? id : null),\n } as unknown as Element;\n };\n\n it(\"applies positional predicates sequentially\", () => {\n const elements = [\"a\", \"b\", \"c\", \"d\"].map(makeElement);\n const predicates: XPathPredicate[] = [\n { type: \"index\", index: 2 },\n { type: \"index\", index: 3 },\n ];\n expect(applyPredicates(elements, predicates)).toEqual([]);\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};