@browserbasehq/orca 3.0.9-alpha-3 → 3.1.0-patch.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/lib/inference.d.ts +65 -0
- package/dist/esm/lib/inference.js +333 -0
- package/dist/esm/lib/inference.js.map +1 -0
- package/dist/esm/lib/inferenceLogUtils.d.ts +12 -0
- package/dist/esm/lib/inferenceLogUtils.js +92 -0
- package/dist/esm/lib/inferenceLogUtils.js.map +1 -0
- package/dist/esm/lib/logger.d.ts +69 -0
- package/dist/esm/lib/logger.js +323 -0
- package/dist/esm/lib/logger.js.map +1 -0
- package/dist/esm/lib/modelUtils.d.ts +14 -0
- package/dist/esm/lib/modelUtils.js +48 -0
- package/dist/esm/lib/modelUtils.js.map +1 -0
- package/dist/esm/lib/prompt.d.ts +14 -0
- package/dist/esm/lib/prompt.js +230 -0
- package/dist/esm/lib/prompt.js.map +1 -0
- package/dist/esm/lib/utils.d.ts +68 -0
- package/dist/esm/lib/utils.js +654 -0
- package/dist/esm/lib/utils.js.map +1 -0
- package/dist/esm/lib/v3/agent/AgentClient.d.ts +19 -0
- package/dist/esm/lib/v3/agent/AgentClient.js +17 -0
- package/dist/esm/lib/v3/agent/AgentClient.js.map +1 -0
- package/dist/esm/lib/v3/agent/AgentProvider.d.ts +20 -0
- package/dist/esm/lib/v3/agent/AgentProvider.js +77 -0
- package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -0
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.d.ts +57 -0
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +822 -0
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
- package/dist/esm/lib/v3/agent/GoogleCUAClient.d.ts +74 -0
- package/dist/esm/lib/v3/agent/GoogleCUAClient.js +799 -0
- package/dist/esm/lib/v3/agent/GoogleCUAClient.js.map +1 -0
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.d.ts +71 -0
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +770 -0
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
- package/dist/esm/lib/v3/agent/OpenAICUAClient.d.ts +69 -0
- package/dist/esm/lib/v3/agent/OpenAICUAClient.js +615 -0
- package/dist/esm/lib/v3/agent/OpenAICUAClient.js.map +1 -0
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +12 -0
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +186 -0
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/act.d.ts +13 -0
- package/dist/esm/lib/v3/agent/tools/act.js +49 -0
- package/dist/esm/lib/v3/agent/tools/act.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +5 -0
- package/dist/esm/lib/v3/agent/tools/ariaTree.js +31 -0
- package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/click.d.ts +6 -0
- package/dist/esm/lib/v3/agent/tools/click.js +104 -0
- package/dist/esm/lib/v3/agent/tools/click.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/clickAndHold.d.ts +14 -0
- package/dist/esm/lib/v3/agent/tools/clickAndHold.js +68 -0
- package/dist/esm/lib/v3/agent/tools/clickAndHold.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/dragAndDrop.d.ts +7 -0
- package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +105 -0
- package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/extract.d.ts +21 -0
- package/dist/esm/lib/v3/agent/tools/extract.js +93 -0
- package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +12 -0
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js +143 -0
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/fillform.d.ts +13 -0
- package/dist/esm/lib/v3/agent/tools/fillform.js +56 -0
- package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/goto.d.ts +12 -0
- package/dist/esm/lib/v3/agent/tools/goto.js +31 -0
- package/dist/esm/lib/v3/agent/tools/goto.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/index.d.ts +92 -0
- package/dist/esm/lib/v3/agent/tools/index.js +74 -0
- package/dist/esm/lib/v3/agent/tools/index.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/keys.d.ts +24 -0
- package/dist/esm/lib/v3/agent/tools/keys.js +60 -0
- package/dist/esm/lib/v3/agent/tools/keys.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/navback.d.ts +6 -0
- package/dist/esm/lib/v3/agent/tools/navback.js +23 -0
- package/dist/esm/lib/v3/agent/tools/navback.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +6 -0
- package/dist/esm/lib/v3/agent/tools/screenshot.js +26 -0
- package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/scroll.d.ts +19 -0
- package/dist/esm/lib/v3/agent/tools/scroll.js +142 -0
- package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/search.d.ts +15 -0
- package/dist/esm/lib/v3/agent/tools/search.js +73 -0
- package/dist/esm/lib/v3/agent/tools/search.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/think.d.ts +6 -0
- package/dist/esm/lib/v3/agent/tools/think.js +24 -0
- package/dist/esm/lib/v3/agent/tools/think.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/type.d.ts +7 -0
- package/dist/esm/lib/v3/agent/tools/type.js +106 -0
- package/dist/esm/lib/v3/agent/tools/type.js.map +1 -0
- package/dist/esm/lib/v3/agent/tools/wait.d.ts +5 -0
- package/dist/esm/lib/v3/agent/tools/wait.js +53 -0
- package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/actionMapping.d.ts +3 -0
- package/dist/esm/lib/v3/agent/utils/actionMapping.js +100 -0
- package/dist/esm/lib/v3/agent/utils/actionMapping.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/coordinateNormalization.d.ts +13 -0
- package/dist/esm/lib/v3/agent/utils/coordinateNormalization.js +28 -0
- package/dist/esm/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.d.ts +10 -0
- package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.js +62 -0
- package/dist/esm/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.d.ts +25 -0
- package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.js +145 -0
- package/dist/esm/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.d.ts +22 -0
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +101 -0
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/imageCompression.d.ts +53 -0
- package/dist/esm/lib/v3/agent/utils/imageCompression.js +204 -0
- package/dist/esm/lib/v3/agent/utils/imageCompression.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/messageProcessing.d.ts +12 -0
- package/dist/esm/lib/v3/agent/utils/messageProcessing.js +164 -0
- package/dist/esm/lib/v3/agent/utils/messageProcessing.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/screenshotHandler.d.ts +10 -0
- package/dist/esm/lib/v3/agent/utils/screenshotHandler.js +26 -0
- package/dist/esm/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.d.ts +26 -0
- package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +79 -0
- package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
- package/dist/esm/lib/v3/agent/utils/xpath.d.ts +11 -0
- package/dist/esm/lib/v3/agent/utils/xpath.js +19 -0
- package/dist/esm/lib/v3/agent/utils/xpath.js.map +1 -0
- package/dist/esm/lib/v3/api.d.ts +86 -0
- package/dist/esm/lib/v3/api.js +484 -0
- package/dist/esm/lib/v3/api.js.map +1 -0
- package/dist/esm/lib/v3/cache/ActCache.d.ts +23 -0
- package/dist/esm/lib/v3/cache/ActCache.js +292 -0
- package/dist/esm/lib/v3/cache/ActCache.js.map +1 -0
- package/dist/esm/lib/v3/cache/AgentCache.d.ts +109 -0
- package/dist/esm/lib/v3/cache/AgentCache.js +640 -0
- package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -0
- package/dist/esm/lib/v3/cache/CacheStorage.d.ts +17 -0
- package/dist/esm/lib/v3/cache/CacheStorage.js +98 -0
- package/dist/esm/lib/v3/cache/CacheStorage.js.map +1 -0
- package/dist/esm/lib/v3/cache/serverAgentCache.d.ts +7 -0
- package/dist/esm/lib/v3/cache/serverAgentCache.js +49 -0
- package/dist/esm/lib/v3/cache/serverAgentCache.js.map +1 -0
- package/dist/esm/lib/v3/cache/utils.d.ts +15 -0
- package/dist/esm/lib/v3/cache/utils.js +39 -0
- package/dist/esm/lib/v3/cache/utils.js.map +1 -0
- package/dist/esm/lib/v3/dom/a11yScripts/index.d.ts +11 -0
- package/dist/esm/lib/v3/dom/a11yScripts/index.js +117 -0
- package/dist/esm/lib/v3/dom/a11yScripts/index.js.map +1 -0
- package/dist/esm/lib/v3/dom/build/a11yScripts.generated.d.ts +16 -0
- package/dist/esm/lib/v3/dom/build/a11yScripts.generated.js +20 -0
- package/dist/esm/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
- package/dist/esm/lib/v3/dom/build/locatorScripts.generated.d.ts +52 -0
- package/dist/esm/lib/v3/dom/build/locatorScripts.generated.js +56 -0
- package/dist/esm/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
- package/dist/esm/lib/v3/dom/build/reRenderScriptContent.d.ts +1 -0
- package/dist/esm/lib/v3/dom/build/reRenderScriptContent.js +2 -0
- package/dist/esm/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
- package/dist/esm/lib/v3/dom/build/rerender-index.js +1 -0
- package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.d.ts +4 -0
- package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.js +8 -0
- package/dist/esm/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
- package/dist/esm/lib/v3/dom/build/scriptV3Content.d.ts +1 -0
- package/dist/esm/lib/v3/dom/build/scriptV3Content.js +2 -0
- package/dist/esm/lib/v3/dom/build/scriptV3Content.js.map +1 -0
- package/dist/esm/lib/v3/dom/build/v3-index.js +1 -0
- package/dist/esm/lib/v3/dom/genA11yScripts.d.ts +1 -0
- package/dist/esm/lib/v3/dom/genA11yScripts.js +54 -0
- package/dist/esm/lib/v3/dom/genA11yScripts.js.map +1 -0
- package/dist/esm/lib/v3/dom/genDomScripts.d.ts +1 -0
- package/dist/esm/lib/v3/dom/genDomScripts.js +38 -0
- package/dist/esm/lib/v3/dom/genDomScripts.js.map +1 -0
- package/dist/esm/lib/v3/dom/genLocatorScripts.d.ts +1 -0
- package/dist/esm/lib/v3/dom/genLocatorScripts.js +51 -0
- package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +1 -0
- package/dist/esm/lib/v3/dom/genScreenshotScripts.d.ts +1 -0
- package/dist/esm/lib/v3/dom/genScreenshotScripts.js +37 -0
- package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +1 -0
- package/dist/esm/lib/v3/dom/index.d.ts +1 -0
- package/dist/esm/lib/v3/dom/index.js +2 -0
- package/dist/esm/lib/v3/dom/index.js.map +1 -0
- package/dist/esm/lib/v3/dom/locatorScripts/counts.d.ts +15 -0
- package/dist/esm/lib/v3/dom/locatorScripts/counts.js +272 -0
- package/dist/esm/lib/v3/dom/locatorScripts/counts.js.map +1 -0
- package/dist/esm/lib/v3/dom/locatorScripts/index.d.ts +4 -0
- package/dist/esm/lib/v3/dom/locatorScripts/index.js +5 -0
- package/dist/esm/lib/v3/dom/locatorScripts/index.js.map +1 -0
- package/dist/esm/lib/v3/dom/locatorScripts/scripts.d.ts +37 -0
- package/dist/esm/lib/v3/dom/locatorScripts/scripts.js +458 -0
- package/dist/esm/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
- package/dist/esm/lib/v3/dom/locatorScripts/selectors.d.ts +4 -0
- package/dist/esm/lib/v3/dom/locatorScripts/selectors.js +283 -0
- package/dist/esm/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
- package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.d.ts +19 -0
- package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.js +283 -0
- package/dist/esm/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
- package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.d.ts +76 -0
- package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.js +376 -0
- package/dist/esm/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
- package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.d.ts +9 -0
- package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.js +196 -0
- package/dist/esm/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
- package/dist/esm/lib/v3/dom/piercer.entry.d.ts +1 -0
- package/dist/esm/lib/v3/dom/piercer.entry.js +3 -0
- package/dist/esm/lib/v3/dom/piercer.entry.js.map +1 -0
- package/dist/esm/lib/v3/dom/piercer.runtime.d.ts +23 -0
- package/dist/esm/lib/v3/dom/piercer.runtime.js +90 -0
- package/dist/esm/lib/v3/dom/piercer.runtime.js.map +1 -0
- package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.d.ts +1 -0
- package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.js +3 -0
- package/dist/esm/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
- package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.d.ts +1 -0
- package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.js +40 -0
- package/dist/esm/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
- package/dist/esm/lib/v3/dom/screenshotScripts/index.d.ts +1 -0
- package/dist/esm/lib/v3/dom/screenshotScripts/index.js +2 -0
- package/dist/esm/lib/v3/dom/screenshotScripts/index.js.map +1 -0
- package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.d.ts +8 -0
- package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.js +82 -0
- package/dist/esm/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
- package/dist/esm/lib/v3/external_clients/aisdk.d.ts +11 -0
- package/dist/esm/lib/v3/external_clients/aisdk.js +103 -0
- package/dist/esm/lib/v3/external_clients/aisdk.js.map +1 -0
- package/dist/esm/lib/v3/external_clients/customOpenAI.d.ts +18 -0
- package/dist/esm/lib/v3/external_clients/customOpenAI.js +220 -0
- package/dist/esm/lib/v3/external_clients/customOpenAI.js.map +1 -0
- package/dist/esm/lib/v3/flowLogger.d.ts +139 -0
- package/dist/esm/lib/v3/flowLogger.js +868 -0
- package/dist/esm/lib/v3/flowLogger.js.map +1 -0
- package/dist/esm/lib/v3/handlers/actHandler.d.ts +21 -0
- package/dist/esm/lib/v3/handlers/actHandler.js +340 -0
- package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -0
- package/dist/esm/lib/v3/handlers/extractHandler.d.ts +31 -0
- package/dist/esm/lib/v3/handlers/extractHandler.js +139 -0
- package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -0
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.d.ts +24 -0
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +623 -0
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
- package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.d.ts +2 -0
- package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.js +14 -0
- package/dist/esm/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
- package/dist/esm/lib/v3/handlers/observeHandler.d.ts +17 -0
- package/dist/esm/lib/v3/handlers/observeHandler.js +156 -0
- package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -0
- package/dist/esm/lib/v3/handlers/v3AgentHandler.d.ts +32 -0
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js +461 -0
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -0
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.d.ts +33 -0
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +528 -0
- package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
- package/dist/esm/lib/v3/index.d.ts +17 -0
- package/dist/esm/lib/v3/index.js +13 -0
- package/dist/esm/lib/v3/index.js.map +1 -0
- package/dist/esm/lib/v3/launch/browserbase.d.ts +7 -0
- package/dist/esm/lib/v3/launch/browserbase.js +46 -0
- package/dist/esm/lib/v3/launch/browserbase.js.map +1 -0
- package/dist/esm/lib/v3/launch/local.d.ts +15 -0
- package/dist/esm/lib/v3/launch/local.js +98 -0
- package/dist/esm/lib/v3/launch/local.js.map +1 -0
- package/dist/esm/lib/v3/llm/AnthropicClient.d.ts +16 -0
- package/dist/esm/lib/v3/llm/AnthropicClient.js +239 -0
- package/dist/esm/lib/v3/llm/AnthropicClient.js.map +1 -0
- package/dist/esm/lib/v3/llm/CerebrasClient.d.ts +17 -0
- package/dist/esm/lib/v3/llm/CerebrasClient.js +235 -0
- package/dist/esm/lib/v3/llm/CerebrasClient.js.map +1 -0
- package/dist/esm/lib/v3/llm/GoogleClient.d.ts +19 -0
- package/dist/esm/lib/v3/llm/GoogleClient.js +369 -0
- package/dist/esm/lib/v3/llm/GoogleClient.js.map +1 -0
- package/dist/esm/lib/v3/llm/GroqClient.d.ts +17 -0
- package/dist/esm/lib/v3/llm/GroqClient.js +236 -0
- package/dist/esm/lib/v3/llm/GroqClient.js.map +1 -0
- package/dist/esm/lib/v3/llm/LLMClient.d.ts +121 -0
- package/dist/esm/lib/v3/llm/LLMClient.js +23 -0
- package/dist/esm/lib/v3/llm/LLMClient.js.map +1 -0
- package/dist/esm/lib/v3/llm/LLMProvider.d.ts +13 -0
- package/dist/esm/lib/v3/llm/LLMProvider.js +194 -0
- package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -0
- package/dist/esm/lib/v3/llm/OpenAIClient.d.ts +15 -0
- package/dist/esm/lib/v3/llm/OpenAIClient.js +329 -0
- package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -0
- package/dist/esm/lib/v3/llm/aisdk.d.ts +15 -0
- package/dist/esm/lib/v3/llm/aisdk.js +348 -0
- package/dist/esm/lib/v3/llm/aisdk.js.map +1 -0
- package/dist/esm/lib/v3/logger.d.ts +9 -0
- package/dist/esm/lib/v3/logger.js +96 -0
- package/dist/esm/lib/v3/logger.js.map +1 -0
- package/dist/esm/lib/v3/mcp/connection.d.ts +11 -0
- package/dist/esm/lib/v3/mcp/connection.js +49 -0
- package/dist/esm/lib/v3/mcp/connection.js.map +1 -0
- package/dist/esm/lib/v3/mcp/utils.d.ts +3 -0
- package/dist/esm/lib/v3/mcp/utils.js +36 -0
- package/dist/esm/lib/v3/mcp/utils.js.map +1 -0
- package/dist/esm/lib/v3/shutdown/cleanupLocal.d.ts +14 -0
- package/dist/esm/lib/v3/shutdown/cleanupLocal.js +30 -0
- package/dist/esm/lib/v3/shutdown/cleanupLocal.js.map +1 -0
- package/dist/esm/lib/v3/shutdown/supervisor.d.ts +9 -0
- package/dist/esm/lib/v3/shutdown/supervisor.js +156 -0
- package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -0
- package/dist/esm/lib/v3/shutdown/supervisorClient.d.ts +15 -0
- package/dist/esm/lib/v3/shutdown/supervisorClient.js +97 -0
- package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -0
- package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +113 -0
- package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +80 -0
- package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +374 -0
- package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +357 -0
- package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +247 -0
- package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +105 -0
- package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/agent-streaming.spec.js +126 -0
- package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +44 -0
- package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/click-count.spec.js +112 -0
- package/dist/esm/lib/v3/tests/click-count.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +54 -0
- package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +176 -0
- package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +53 -0
- package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/downloads.spec.js +58 -0
- package/dist/esm/lib/v3/tests/downloads.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/envReporter.js +57 -0
- package/dist/esm/lib/v3/tests/envReporter.js.map +7 -0
- package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +53 -0
- package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +447 -0
- package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/keep-alive.child.js +92 -0
- package/dist/esm/lib/v3/tests/keep-alive.child.js.map +7 -0
- package/dist/esm/lib/v3/tests/keep-alive.helpers.js +532 -0
- package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +7 -0
- package/dist/esm/lib/v3/tests/keep-alive.spec.js +19 -0
- package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/keyboard.spec.js +296 -0
- package/dist/esm/lib/v3/tests/keyboard.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +159 -0
- package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +191 -0
- package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +108 -0
- package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/locator-count.spec.js +71 -0
- package/dist/esm/lib/v3/tests/locator-count.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/locator-fill.spec.js +118 -0
- package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +136 -0
- package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/locator-nth.spec.js +157 -0
- package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/locator-select-option.spec.js +242 -0
- package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/logger-initialization.spec.js +552 -0
- package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +269 -0
- package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/nested-div.spec.js +23 -0
- package/dist/esm/lib/v3/tests/nested-div.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +90 -0
- package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/page-console.spec.js +56 -0
- package/dist/esm/lib/v3/tests/page-console.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +418 -0
- package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/page-goto-response.spec.js +35 -0
- package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/page-hover.spec.js +167 -0
- package/dist/esm/lib/v3/tests/page-hover.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/page-screenshot.spec.js +273 -0
- package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/page-scroll.spec.js +182 -0
- package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +46 -0
- package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +98 -0
- package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/setinputfiles.spec.js +126 -0
- package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +134 -0
- package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +134 -0
- package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/testUtils.js +31 -0
- package/dist/esm/lib/v3/tests/testUtils.js.map +7 -0
- package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +100 -0
- package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/timeouts.spec.js +32 -0
- package/dist/esm/lib/v3/tests/timeouts.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/user-data-dir.spec.js +43 -0
- package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/v3.config.js +15 -0
- package/dist/esm/lib/v3/tests/v3.config.js.map +7 -0
- package/dist/esm/lib/v3/tests/v3.dynamic.config.js +43 -0
- package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +7 -0
- package/dist/esm/lib/v3/tests/v3.playwright.config.js +98 -0
- package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +7 -0
- package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +593 -0
- package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +97 -0
- package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +7 -0
- package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +77 -0
- package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +7 -0
- package/dist/esm/lib/v3/timeoutConfig.d.ts +2 -0
- package/dist/esm/lib/v3/timeoutConfig.js +27 -0
- package/dist/esm/lib/v3/timeoutConfig.js.map +1 -0
- package/dist/esm/lib/v3/types/private/agent.d.ts +6 -0
- package/dist/esm/lib/v3/types/private/agent.js +2 -0
- package/dist/esm/lib/v3/types/private/agent.js.map +1 -0
- package/dist/esm/lib/v3/types/private/api.d.ts +11 -0
- package/dist/esm/lib/v3/types/private/api.js +2 -0
- package/dist/esm/lib/v3/types/private/api.js.map +1 -0
- package/dist/esm/lib/v3/types/private/cache.d.ts +128 -0
- package/dist/esm/lib/v3/types/private/cache.js +2 -0
- package/dist/esm/lib/v3/types/private/cache.js.map +1 -0
- package/dist/esm/lib/v3/types/private/evaluator.d.ts +40 -0
- package/dist/esm/lib/v3/types/private/evaluator.js +2 -0
- package/dist/esm/lib/v3/types/private/evaluator.js.map +1 -0
- package/dist/esm/lib/v3/types/private/handlers.d.ts +38 -0
- package/dist/esm/lib/v3/types/private/handlers.js +16 -0
- package/dist/esm/lib/v3/types/private/handlers.js.map +1 -0
- package/dist/esm/lib/v3/types/private/index.d.ts +7 -0
- package/dist/esm/lib/v3/types/private/index.js +8 -0
- package/dist/esm/lib/v3/types/private/index.js.map +1 -0
- package/dist/esm/lib/v3/types/private/internal.d.ts +39 -0
- package/dist/esm/lib/v3/types/private/internal.js +2 -0
- package/dist/esm/lib/v3/types/private/internal.js.map +1 -0
- package/dist/esm/lib/v3/types/private/locator.d.ts +9 -0
- package/dist/esm/lib/v3/types/private/locator.js +2 -0
- package/dist/esm/lib/v3/types/private/locator.js.map +1 -0
- package/dist/esm/lib/v3/types/private/network.d.ts +34 -0
- package/dist/esm/lib/v3/types/private/network.js +3 -0
- package/dist/esm/lib/v3/types/private/network.js.map +1 -0
- package/dist/esm/lib/v3/types/private/shutdown.d.ts +31 -0
- package/dist/esm/lib/v3/types/private/shutdown.js +5 -0
- package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -0
- package/dist/esm/lib/v3/types/private/shutdownErrors.d.ts +12 -0
- package/dist/esm/lib/v3/types/private/shutdownErrors.js +22 -0
- package/dist/esm/lib/v3/types/private/shutdownErrors.js.map +1 -0
- package/dist/esm/lib/v3/types/private/snapshot.d.ts +117 -0
- package/dist/esm/lib/v3/types/private/snapshot.js +2 -0
- package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -0
- package/dist/esm/lib/v3/types/public/agent.d.ts +595 -0
- package/dist/esm/lib/v3/types/public/agent.js +15 -0
- package/dist/esm/lib/v3/types/public/agent.js.map +1 -0
- package/dist/esm/lib/v3/types/public/api.d.ts +1211 -0
- package/dist/esm/lib/v3/types/public/api.js +915 -0
- package/dist/esm/lib/v3/types/public/api.js.map +1 -0
- package/dist/esm/lib/v3/types/public/apiErrors.d.ts +18 -0
- package/dist/esm/lib/v3/types/public/apiErrors.js +32 -0
- package/dist/esm/lib/v3/types/public/apiErrors.js.map +1 -0
- package/dist/esm/lib/v3/types/public/index.d.ts +12 -0
- package/dist/esm/lib/v3/types/public/index.js +14 -0
- package/dist/esm/lib/v3/types/public/index.js.map +1 -0
- package/dist/esm/lib/v3/types/public/locator.d.ts +9 -0
- package/dist/esm/lib/v3/types/public/locator.js +2 -0
- package/dist/esm/lib/v3/types/public/locator.js.map +1 -0
- package/dist/esm/lib/v3/types/public/logs.d.ts +23 -0
- package/dist/esm/lib/v3/types/public/logs.js +13 -0
- package/dist/esm/lib/v3/types/public/logs.js.map +1 -0
- package/dist/esm/lib/v3/types/public/methods.d.ts +56 -0
- package/dist/esm/lib/v3/types/public/methods.js +15 -0
- package/dist/esm/lib/v3/types/public/methods.js.map +1 -0
- package/dist/esm/lib/v3/types/public/metrics.d.ts +27 -0
- package/dist/esm/lib/v3/types/public/metrics.js +2 -0
- package/dist/esm/lib/v3/types/public/metrics.js.map +1 -0
- package/dist/esm/lib/v3/types/public/model.d.ts +65 -0
- package/dist/esm/lib/v3/types/public/model.js +2 -0
- package/dist/esm/lib/v3/types/public/model.js.map +1 -0
- package/dist/esm/lib/v3/types/public/options.d.ts +70 -0
- package/dist/esm/lib/v3/types/public/options.js +4 -0
- package/dist/esm/lib/v3/types/public/options.js.map +1 -0
- package/dist/esm/lib/v3/types/public/page.d.ts +18 -0
- package/dist/esm/lib/v3/types/public/page.js +3 -0
- package/dist/esm/lib/v3/types/public/page.js.map +1 -0
- package/dist/esm/lib/v3/types/public/screenshotTypes.d.ts +25 -0
- package/dist/esm/lib/v3/types/public/screenshotTypes.js +2 -0
- package/dist/esm/lib/v3/types/public/screenshotTypes.js.map +1 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +152 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.js +305 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.d.ts +15 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +196 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.d.ts +8 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.js +121 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.d.ts +77 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.js +336 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.d.ts +7 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +129 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.d.ts +46 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.js +274 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +24 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +216 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/index.d.ts +4 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/index.js +5 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.d.ts +16 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.js +22 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.d.ts +28 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +135 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.d.ts +26 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.js +102 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
- package/dist/esm/lib/v3/understudy/a11yInvocation.d.ts +8 -0
- package/dist/esm/lib/v3/understudy/a11yInvocation.js +12 -0
- package/dist/esm/lib/v3/understudy/a11yInvocation.js.map +1 -0
- package/dist/esm/lib/v3/understudy/cdp.d.ts +69 -0
- package/dist/esm/lib/v3/understudy/cdp.js +251 -0
- package/dist/esm/lib/v3/understudy/cdp.js.map +1 -0
- package/dist/esm/lib/v3/understudy/consoleMessage.d.ts +22 -0
- package/dist/esm/lib/v3/understudy/consoleMessage.js +66 -0
- package/dist/esm/lib/v3/understudy/consoleMessage.js.map +1 -0
- package/dist/esm/lib/v3/understudy/context.d.ts +132 -0
- package/dist/esm/lib/v3/understudy/context.js +687 -0
- package/dist/esm/lib/v3/understudy/context.js.map +1 -0
- package/dist/esm/lib/v3/understudy/deepLocator.d.ts +87 -0
- package/dist/esm/lib/v3/understudy/deepLocator.js +218 -0
- package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -0
- package/dist/esm/lib/v3/understudy/executionContextRegistry.d.ts +15 -0
- package/dist/esm/lib/v3/understudy/executionContextRegistry.js +83 -0
- package/dist/esm/lib/v3/understudy/executionContextRegistry.js.map +1 -0
- package/dist/esm/lib/v3/understudy/fileUploadUtils.d.ts +13 -0
- package/dist/esm/lib/v3/understudy/fileUploadUtils.js +81 -0
- package/dist/esm/lib/v3/understudy/fileUploadUtils.js.map +1 -0
- package/dist/esm/lib/v3/understudy/frame.d.ts +69 -0
- package/dist/esm/lib/v3/understudy/frame.js +211 -0
- package/dist/esm/lib/v3/understudy/frame.js.map +1 -0
- package/dist/esm/lib/v3/understudy/frameLocator.d.ts +50 -0
- package/dist/esm/lib/v3/understudy/frameLocator.js +255 -0
- package/dist/esm/lib/v3/understudy/frameLocator.js.map +1 -0
- package/dist/esm/lib/v3/understudy/frameRegistry.d.ts +101 -0
- package/dist/esm/lib/v3/understudy/frameRegistry.js +298 -0
- package/dist/esm/lib/v3/understudy/frameRegistry.js.map +1 -0
- package/dist/esm/lib/v3/understudy/initScripts.d.ts +2 -0
- package/dist/esm/lib/v3/understudy/initScripts.js +33 -0
- package/dist/esm/lib/v3/understudy/initScripts.js.map +1 -0
- package/dist/esm/lib/v3/understudy/lifecycleWatcher.d.ts +64 -0
- package/dist/esm/lib/v3/understudy/lifecycleWatcher.js +245 -0
- package/dist/esm/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
- package/dist/esm/lib/v3/understudy/locator.d.ts +194 -0
- package/dist/esm/lib/v3/understudy/locator.js +753 -0
- package/dist/esm/lib/v3/understudy/locator.js.map +1 -0
- package/dist/esm/lib/v3/understudy/locatorInvocation.d.ts +8 -0
- package/dist/esm/lib/v3/understudy/locatorInvocation.js +12 -0
- package/dist/esm/lib/v3/understudy/locatorInvocation.js.map +1 -0
- package/dist/esm/lib/v3/understudy/navigationResponseTracker.d.ts +84 -0
- package/dist/esm/lib/v3/understudy/navigationResponseTracker.js +224 -0
- package/dist/esm/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
- package/dist/esm/lib/v3/understudy/networkManager.d.ts +53 -0
- package/dist/esm/lib/v3/understudy/networkManager.js +306 -0
- package/dist/esm/lib/v3/understudy/networkManager.js.map +1 -0
- package/dist/esm/lib/v3/understudy/page.d.ts +354 -0
- package/dist/esm/lib/v3/understudy/page.js +1941 -0
- package/dist/esm/lib/v3/understudy/page.js.map +1 -0
- package/dist/esm/lib/v3/understudy/piercer.d.ts +4 -0
- package/dist/esm/lib/v3/understudy/piercer.js +61 -0
- package/dist/esm/lib/v3/understudy/piercer.js.map +1 -0
- package/dist/esm/lib/v3/understudy/response.d.ts +137 -0
- package/dist/esm/lib/v3/understudy/response.js +330 -0
- package/dist/esm/lib/v3/understudy/response.js.map +1 -0
- package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +16 -0
- package/dist/esm/lib/v3/understudy/screenshotUtils.js +352 -0
- package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -0
- package/dist/esm/lib/v3/understudy/selectorResolver.d.ts +38 -0
- package/dist/esm/lib/v3/understudy/selectorResolver.js +296 -0
- package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -0
- package/dist/esm/lib/v3/v3.d.ts +191 -0
- package/dist/esm/lib/v3/v3.js +1572 -0
- package/dist/esm/lib/v3/v3.js.map +1 -0
- package/dist/esm/lib/v3/zodCompat.d.ts +12 -0
- package/dist/esm/lib/v3/zodCompat.js +17 -0
- package/dist/esm/lib/v3/zodCompat.js.map +1 -0
- package/dist/esm/lib/v3Evaluator.d.ts +19 -0
- package/dist/esm/lib/v3Evaluator.js +210 -0
- package/dist/esm/lib/v3Evaluator.js.map +1 -0
- package/dist/esm/lib/version.d.ts +5 -0
- package/dist/esm/lib/version.js +6 -0
- package/dist/esm/lib/version.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/tests/agent-execution-model.test.js +139 -0
- package/dist/esm/tests/agent-execution-model.test.js.map +7 -0
- package/dist/esm/tests/browserbase-session-accessors.test.js +101 -0
- package/dist/esm/tests/browserbase-session-accessors.test.js.map +7 -0
- package/dist/esm/tests/cache-llm-resolution.test.js +187 -0
- package/dist/esm/tests/cache-llm-resolution.test.js.map +7 -0
- package/dist/esm/tests/helpers/mockCDPSession.js +27 -0
- package/dist/esm/tests/helpers/mockCDPSession.js.map +7 -0
- package/dist/esm/tests/llm-provider.test.js +57 -0
- package/dist/esm/tests/llm-provider.test.js.map +7 -0
- package/dist/esm/tests/model-deprecation.test.js +135 -0
- package/dist/esm/tests/model-deprecation.test.js.map +7 -0
- package/dist/esm/tests/model-utils.test.js +43 -0
- package/dist/esm/tests/model-utils.test.js.map +7 -0
- package/dist/esm/tests/page-snapshot.test.js +36 -0
- package/dist/esm/tests/page-snapshot.test.js.map +7 -0
- package/dist/esm/tests/public-api/export-surface.test.js +53 -0
- package/dist/esm/tests/public-api/export-surface.test.js.map +7 -0
- package/dist/esm/tests/public-api/llm-and-agents.test.js +128 -0
- package/dist/esm/tests/public-api/llm-and-agents.test.js.map +7 -0
- package/dist/esm/tests/public-api/public-error-types.test.js +71 -0
- package/dist/esm/tests/public-api/public-error-types.test.js.map +7 -0
- package/dist/esm/tests/public-api/public-types.test.js +74 -0
- package/dist/esm/tests/public-api/public-types.test.js.map +7 -0
- package/dist/esm/tests/public-api/runtime-utils.test.js +31 -0
- package/dist/esm/tests/public-api/runtime-utils.test.js.map +7 -0
- package/dist/esm/tests/public-api/schema-utils.test.js +78 -0
- package/dist/esm/tests/public-api/schema-utils.test.js.map +7 -0
- package/dist/esm/tests/public-api/timeout-error-types.test.js +81 -0
- package/dist/esm/tests/public-api/timeout-error-types.test.js.map +7 -0
- package/dist/esm/tests/public-api/tool-type-export.test.js +25 -0
- package/dist/esm/tests/public-api/tool-type-export.test.js.map +7 -0
- package/dist/esm/tests/public-api/v3-core.test.js +82 -0
- package/dist/esm/tests/public-api/v3-core.test.js.map +7 -0
- package/dist/esm/tests/safety-confirmation.test.js +134 -0
- package/dist/esm/tests/safety-confirmation.test.js.map +7 -0
- package/dist/esm/tests/snapshot-a11y-resolvers.test.js +348 -0
- package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +7 -0
- package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +300 -0
- package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +7 -0
- package/dist/esm/tests/snapshot-capture-orchestration.test.js +381 -0
- package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +7 -0
- package/dist/esm/tests/snapshot-cbor.test.js +197 -0
- package/dist/esm/tests/snapshot-cbor.test.js.map +7 -0
- package/dist/esm/tests/snapshot-dom-session-builders.test.js +251 -0
- package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +7 -0
- package/dist/esm/tests/snapshot-dom-tree-utils.test.js +109 -0
- package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +7 -0
- package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +49 -0
- package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +7 -0
- package/dist/esm/tests/snapshot-frame-merge.test.js +391 -0
- package/dist/esm/tests/snapshot-frame-merge.test.js.map +7 -0
- package/dist/esm/tests/snapshot-tree-format-utils.test.js +113 -0
- package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +7 -0
- package/dist/esm/tests/snapshot-xpath-utils.test.js +79 -0
- package/dist/esm/tests/snapshot-xpath-utils.test.js.map +7 -0
- package/dist/esm/tests/timeout-handlers.test.js +850 -0
- package/dist/esm/tests/timeout-handlers.test.js.map +7 -0
- package/dist/esm/tests/xpath-parser.test.js +317 -0
- package/dist/esm/tests/xpath-parser.test.js.map +7 -0
- package/dist/esm/tests/xpath-resolver.test.js +73 -0
- package/dist/esm/tests/xpath-resolver.test.js.map +7 -0
- package/dist/esm/tests/zod-enum-compatibility.test.js +97 -0
- package/dist/esm/tests/zod-enum-compatibility.test.js.map +7 -0
- package/package.json +42 -27
- package/dist/index.d.ts +0 -4321
- package/dist/index.js +0 -69585
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { TimeoutError } from "../types/public/sdkErrors.js";
|
|
2
|
+
import { DEFAULT_IDLE_WAIT, IGNORED_RESOURCE_TYPES, } from "../types/private/network.js";
|
|
3
|
+
/**
|
|
4
|
+
* Coordinates page lifecycle waits (load/domcontentloaded/networkidle) while
|
|
5
|
+
* following main-frame swaps and navigation aborts. Each navigation spawns a
|
|
6
|
+
* one-off watcher that listens for relevant CDP events and resolves or rejects
|
|
7
|
+
* depending on the requested `waitUntil` state.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Small utility that mirrors Playwright's lifecycle watcher semantics. Bridges
|
|
11
|
+
* main-frame lifecycle events with the NetworkManager's idle signal so callers
|
|
12
|
+
* can await `load`, `domcontentloaded`, or `networkidle` with a single promise.
|
|
13
|
+
*/
|
|
14
|
+
export class LifecycleWatcher {
|
|
15
|
+
page;
|
|
16
|
+
mainSession;
|
|
17
|
+
networkManager;
|
|
18
|
+
waitUntil;
|
|
19
|
+
timeoutMs;
|
|
20
|
+
startTime;
|
|
21
|
+
navigationCommandId;
|
|
22
|
+
currentLoaderId;
|
|
23
|
+
idleStartTime;
|
|
24
|
+
cleanupCallbacks = [];
|
|
25
|
+
idleHandle = null;
|
|
26
|
+
abortReject = null;
|
|
27
|
+
abortPromise;
|
|
28
|
+
abortError = null;
|
|
29
|
+
disposed = false;
|
|
30
|
+
expectedLoaderId;
|
|
31
|
+
initialLoaderId;
|
|
32
|
+
pendingFollowupNavigation = false;
|
|
33
|
+
/**
|
|
34
|
+
* Create a watcher; callers should subsequently invoke {@link wait}.
|
|
35
|
+
*/
|
|
36
|
+
constructor(params) {
|
|
37
|
+
this.page = params.page;
|
|
38
|
+
this.mainSession = params.mainSession;
|
|
39
|
+
this.networkManager = params.networkManager;
|
|
40
|
+
this.waitUntil = params.waitUntil;
|
|
41
|
+
this.timeoutMs = params.timeoutMs;
|
|
42
|
+
this.startTime = Date.now();
|
|
43
|
+
this.navigationCommandId = params.navigationCommandId;
|
|
44
|
+
this.idleStartTime = this.startTime;
|
|
45
|
+
this.abortPromise = new Promise((_, reject) => {
|
|
46
|
+
this.abortReject = reject;
|
|
47
|
+
});
|
|
48
|
+
this.installSessionListeners();
|
|
49
|
+
}
|
|
50
|
+
/** Hint the watcher with the loader id returned by Page.navigate. */
|
|
51
|
+
setExpectedLoaderId(loaderId) {
|
|
52
|
+
if (!loaderId)
|
|
53
|
+
return;
|
|
54
|
+
this.expectedLoaderId = loaderId;
|
|
55
|
+
this.initialLoaderId = loaderId;
|
|
56
|
+
this.currentLoaderId = loaderId;
|
|
57
|
+
this.idleStartTime = Date.now();
|
|
58
|
+
}
|
|
59
|
+
/** Wait for the requested lifecycle state or throw on timeout/abort. */
|
|
60
|
+
async wait() {
|
|
61
|
+
const deadline = Date.now() + this.timeoutMs;
|
|
62
|
+
try {
|
|
63
|
+
if (this.waitUntil === "domcontentloaded") {
|
|
64
|
+
await this.awaitWithAbort(this.page.waitForMainLoadState("domcontentloaded", this.timeRemaining(deadline)));
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
while (true) {
|
|
68
|
+
await this.awaitWithAbort(this.page.waitForMainLoadState("load", this.timeRemaining(deadline)));
|
|
69
|
+
if (this.waitUntil !== "networkidle")
|
|
70
|
+
break;
|
|
71
|
+
try {
|
|
72
|
+
await this.awaitWithAbort(this.waitForNetworkIdle(deadline));
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
if (this.shouldRestartAfterFollowup(error)) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
this.dispose();
|
|
85
|
+
}
|
|
86
|
+
if (this.abortError)
|
|
87
|
+
throw this.abortError;
|
|
88
|
+
}
|
|
89
|
+
/** Cancel any outstanding network-idle waits and remove event listeners. */
|
|
90
|
+
dispose() {
|
|
91
|
+
if (this.disposed)
|
|
92
|
+
return;
|
|
93
|
+
this.disposed = true;
|
|
94
|
+
if (this.idleHandle) {
|
|
95
|
+
void this.idleHandle.promise.catch(() => { });
|
|
96
|
+
this.idleHandle.dispose();
|
|
97
|
+
this.idleHandle = null;
|
|
98
|
+
}
|
|
99
|
+
for (const fn of this.cleanupCallbacks) {
|
|
100
|
+
try {
|
|
101
|
+
fn();
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// ignore listener cleanup errors
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
this.cleanupCallbacks = [];
|
|
108
|
+
this.abortReject = null;
|
|
109
|
+
}
|
|
110
|
+
/** Subscribe to main-frame events to detect abort conditions. */
|
|
111
|
+
installSessionListeners() {
|
|
112
|
+
const onFrameNavigated = (evt) => {
|
|
113
|
+
if (!evt?.frame?.id)
|
|
114
|
+
return;
|
|
115
|
+
const mainFrameId = this.page.mainFrameId();
|
|
116
|
+
if (evt.frame.id !== mainFrameId)
|
|
117
|
+
return;
|
|
118
|
+
const loaderId = evt.frame.loaderId;
|
|
119
|
+
if (!loaderId)
|
|
120
|
+
return;
|
|
121
|
+
if (!this.initialLoaderId) {
|
|
122
|
+
this.initialLoaderId = loaderId;
|
|
123
|
+
this.currentLoaderId = loaderId;
|
|
124
|
+
this.idleStartTime = Date.now();
|
|
125
|
+
}
|
|
126
|
+
if (!this.expectedLoaderId) {
|
|
127
|
+
this.expectedLoaderId = loaderId;
|
|
128
|
+
this.currentLoaderId = loaderId;
|
|
129
|
+
this.idleStartTime = Date.now();
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (loaderId !== this.expectedLoaderId) {
|
|
133
|
+
if (!this.page.isCurrentNavigationCommand(this.navigationCommandId)) {
|
|
134
|
+
this.triggerAbort(new Error("Navigation was superseded by a new request"));
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
this.adoptNewMainLoader(loaderId);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
const onFrameDetached = (evt) => {
|
|
141
|
+
if (!evt?.frameId)
|
|
142
|
+
return;
|
|
143
|
+
const mainFrameId = this.page.mainFrameId();
|
|
144
|
+
if (evt.frameId !== mainFrameId)
|
|
145
|
+
return;
|
|
146
|
+
if (evt.reason === "swap")
|
|
147
|
+
return;
|
|
148
|
+
this.triggerAbort(new Error("Main frame was detached"));
|
|
149
|
+
};
|
|
150
|
+
this.mainSession.on("Page.frameNavigated", onFrameNavigated);
|
|
151
|
+
this.cleanupCallbacks.push(() => {
|
|
152
|
+
this.mainSession.off("Page.frameNavigated", onFrameNavigated);
|
|
153
|
+
});
|
|
154
|
+
this.mainSession.on("Page.frameDetached", onFrameDetached);
|
|
155
|
+
this.cleanupCallbacks.push(() => {
|
|
156
|
+
this.mainSession.off("Page.frameDetached", onFrameDetached);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
/** Compute remaining time until the shared deadline elapses. */
|
|
160
|
+
timeRemaining(deadline) {
|
|
161
|
+
const remaining = deadline - Date.now();
|
|
162
|
+
if (remaining <= 0) {
|
|
163
|
+
throw new TimeoutError("Lifecycle wait", this.timeoutMs);
|
|
164
|
+
}
|
|
165
|
+
return remaining;
|
|
166
|
+
}
|
|
167
|
+
/** Await an operation but abort early if navigation replacement fires. */
|
|
168
|
+
async awaitWithAbort(operation) {
|
|
169
|
+
try {
|
|
170
|
+
return await Promise.race([operation, this.abortPromise]);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
if (this.abortError)
|
|
174
|
+
throw this.abortError;
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/** Mark the watcher as aborted and reject any pending waiters. */
|
|
179
|
+
triggerAbort(error) {
|
|
180
|
+
if (this.abortError)
|
|
181
|
+
return;
|
|
182
|
+
this.abortError = error;
|
|
183
|
+
if (this.abortReject) {
|
|
184
|
+
this.abortReject(error);
|
|
185
|
+
this.abortReject = null;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
waitForNetworkIdle(deadline) {
|
|
189
|
+
this.pendingFollowupNavigation = false;
|
|
190
|
+
const remaining = this.timeRemaining(deadline);
|
|
191
|
+
const idleWindow = Math.min(DEFAULT_IDLE_WAIT, remaining);
|
|
192
|
+
this.idleHandle = this.networkManager.waitForIdle({
|
|
193
|
+
startTime: this.idleStartTime,
|
|
194
|
+
timeoutMs: remaining,
|
|
195
|
+
totalBudgetMs: this.timeoutMs,
|
|
196
|
+
idleTimeMs: idleWindow,
|
|
197
|
+
filter: this.buildIdleFilter(),
|
|
198
|
+
});
|
|
199
|
+
return this.idleHandle.promise.catch((error) => {
|
|
200
|
+
if (this.abortError)
|
|
201
|
+
throw this.abortError;
|
|
202
|
+
throw error;
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
shouldRestartAfterFollowup(error) {
|
|
206
|
+
if (!this.pendingFollowupNavigation)
|
|
207
|
+
return false;
|
|
208
|
+
if (!(error instanceof Error))
|
|
209
|
+
return false;
|
|
210
|
+
if (error.message !== "waitForIdle disposed")
|
|
211
|
+
return false;
|
|
212
|
+
this.pendingFollowupNavigation = false;
|
|
213
|
+
return true;
|
|
214
|
+
}
|
|
215
|
+
adoptNewMainLoader(loaderId) {
|
|
216
|
+
this.expectedLoaderId = loaderId;
|
|
217
|
+
this.currentLoaderId = loaderId;
|
|
218
|
+
this.idleStartTime = Date.now();
|
|
219
|
+
if (this.waitUntil !== "networkidle")
|
|
220
|
+
return;
|
|
221
|
+
this.pendingFollowupNavigation = true;
|
|
222
|
+
if (this.idleHandle) {
|
|
223
|
+
const handle = this.idleHandle;
|
|
224
|
+
this.idleHandle = null;
|
|
225
|
+
void handle.promise.catch(() => { });
|
|
226
|
+
handle.dispose();
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
buildIdleFilter() {
|
|
230
|
+
const loaderId = this.currentLoaderId;
|
|
231
|
+
const mainFrameId = this.page.mainFrameId();
|
|
232
|
+
return (info) => {
|
|
233
|
+
if (IGNORED_RESOURCE_TYPES.has(info.resourceType))
|
|
234
|
+
return false;
|
|
235
|
+
if (loaderId && info.loaderId) {
|
|
236
|
+
return info.loaderId === loaderId;
|
|
237
|
+
}
|
|
238
|
+
if (!info.loaderId && info.frameId) {
|
|
239
|
+
return info.frameId === mainFrameId;
|
|
240
|
+
}
|
|
241
|
+
return true;
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=lifecycleWatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycleWatcher.js","sourceRoot":"","sources":["../../../../../lib/v3/understudy/lifecycleWatcher.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Protocol } from \"devtools-protocol\";\nimport type { LoadState } from \"../types/public/page.js\";\nimport type { CDPSessionLike } from \"./cdp.js\";\nimport type { NetworkManager } from \"./networkManager.js\";\nimport type { Page } from \"./page.js\";\nimport { TimeoutError } from \"../types/public/sdkErrors.js\";\nimport {\n DEFAULT_IDLE_WAIT,\n IGNORED_RESOURCE_TYPES,\n type NetworkRequestInfo,\n WaitForIdleHandle,\n} from \"../types/private/network.js\";\n\n/**\n * Coordinates page lifecycle waits (load/domcontentloaded/networkidle) while\n * following main-frame swaps and navigation aborts. Each navigation spawns a\n * one-off watcher that listens for relevant CDP events and resolves or rejects\n * depending on the requested `waitUntil` state.\n */\n\n/**\n * Small utility that mirrors Playwright's lifecycle watcher semantics. Bridges\n * main-frame lifecycle events with the NetworkManager's idle signal so callers\n * can await `load`, `domcontentloaded`, or `networkidle` with a single promise.\n */\nexport class LifecycleWatcher {\n private readonly page: Page;\n private readonly mainSession: CDPSessionLike;\n private readonly networkManager: NetworkManager;\n private readonly waitUntil: LoadState;\n private readonly timeoutMs: number;\n private readonly startTime: number;\n private readonly navigationCommandId: number;\n private currentLoaderId: string | undefined;\n private idleStartTime: number;\n\n private cleanupCallbacks: Array<() => void> = [];\n private idleHandle: WaitForIdleHandle | null = null;\n\n private abortReject: ((error: Error) => void) | null = null;\n private abortPromise: Promise<never>;\n private abortError: Error | null = null;\n private disposed = false;\n\n private expectedLoaderId: string | undefined;\n private initialLoaderId: string | undefined;\n private pendingFollowupNavigation = false;\n\n /**\n * Create a watcher; callers should subsequently invoke {@link wait}.\n */\n constructor(params: {\n page: Page;\n mainSession: CDPSessionLike;\n networkManager: NetworkManager;\n waitUntil: LoadState;\n timeoutMs: number;\n navigationCommandId: number;\n }) {\n this.page = params.page;\n this.mainSession = params.mainSession;\n this.networkManager = params.networkManager;\n this.waitUntil = params.waitUntil;\n this.timeoutMs = params.timeoutMs;\n this.startTime = Date.now();\n this.navigationCommandId = params.navigationCommandId;\n this.idleStartTime = this.startTime;\n\n this.abortPromise = new Promise<never>((_, reject) => {\n this.abortReject = reject;\n });\n\n this.installSessionListeners();\n }\n\n /** Hint the watcher with the loader id returned by Page.navigate. */\n public setExpectedLoaderId(loaderId: string | undefined): void {\n if (!loaderId) return;\n this.expectedLoaderId = loaderId;\n this.initialLoaderId = loaderId;\n this.currentLoaderId = loaderId;\n this.idleStartTime = Date.now();\n }\n\n /** Wait for the requested lifecycle state or throw on timeout/abort. */\n public async wait(): Promise<void> {\n const deadline = Date.now() + this.timeoutMs;\n\n try {\n if (this.waitUntil === \"domcontentloaded\") {\n await this.awaitWithAbort(\n this.page.waitForMainLoadState(\n \"domcontentloaded\",\n this.timeRemaining(deadline),\n ),\n );\n return;\n }\n\n while (true) {\n await this.awaitWithAbort(\n this.page.waitForMainLoadState(\"load\", this.timeRemaining(deadline)),\n );\n\n if (this.waitUntil !== \"networkidle\") break;\n\n try {\n await this.awaitWithAbort(this.waitForNetworkIdle(deadline));\n break;\n } catch (error) {\n if (this.shouldRestartAfterFollowup(error)) {\n continue;\n }\n throw error;\n }\n }\n } finally {\n this.dispose();\n }\n\n if (this.abortError) throw this.abortError;\n }\n\n /** Cancel any outstanding network-idle waits and remove event listeners. */\n public dispose(): void {\n if (this.disposed) return;\n this.disposed = true;\n\n if (this.idleHandle) {\n void this.idleHandle.promise.catch(() => {});\n this.idleHandle.dispose();\n this.idleHandle = null;\n }\n\n for (const fn of this.cleanupCallbacks) {\n try {\n fn();\n } catch {\n // ignore listener cleanup errors\n }\n }\n this.cleanupCallbacks = [];\n this.abortReject = null;\n }\n\n /** Subscribe to main-frame events to detect abort conditions. */\n private installSessionListeners(): void {\n const onFrameNavigated = (evt: Protocol.Page.FrameNavigatedEvent) => {\n if (!evt?.frame?.id) return;\n\n const mainFrameId = this.page.mainFrameId();\n if (evt.frame.id !== mainFrameId) return;\n\n const loaderId = evt.frame.loaderId;\n if (!loaderId) return;\n\n if (!this.initialLoaderId) {\n this.initialLoaderId = loaderId;\n this.currentLoaderId = loaderId;\n this.idleStartTime = Date.now();\n }\n\n if (!this.expectedLoaderId) {\n this.expectedLoaderId = loaderId;\n this.currentLoaderId = loaderId;\n this.idleStartTime = Date.now();\n return;\n }\n\n if (loaderId !== this.expectedLoaderId) {\n if (!this.page.isCurrentNavigationCommand(this.navigationCommandId)) {\n this.triggerAbort(\n new Error(\"Navigation was superseded by a new request\"),\n );\n return;\n }\n\n this.adoptNewMainLoader(loaderId);\n }\n };\n\n const onFrameDetached = (evt: Protocol.Page.FrameDetachedEvent) => {\n if (!evt?.frameId) return;\n const mainFrameId = this.page.mainFrameId();\n if (evt.frameId !== mainFrameId) return;\n if (evt.reason === \"swap\") return;\n this.triggerAbort(new Error(\"Main frame was detached\"));\n };\n\n this.mainSession.on(\"Page.frameNavigated\", onFrameNavigated);\n this.cleanupCallbacks.push(() => {\n this.mainSession.off(\"Page.frameNavigated\", onFrameNavigated);\n });\n\n this.mainSession.on(\"Page.frameDetached\", onFrameDetached);\n this.cleanupCallbacks.push(() => {\n this.mainSession.off(\"Page.frameDetached\", onFrameDetached);\n });\n }\n\n /** Compute remaining time until the shared deadline elapses. */\n private timeRemaining(deadline: number): number {\n const remaining = deadline - Date.now();\n if (remaining <= 0) {\n throw new TimeoutError(\"Lifecycle wait\", this.timeoutMs);\n }\n return remaining;\n }\n\n /** Await an operation but abort early if navigation replacement fires. */\n private async awaitWithAbort<T>(operation: Promise<T>): Promise<T> {\n try {\n return await Promise.race([operation, this.abortPromise]);\n } catch (error) {\n if (this.abortError) throw this.abortError;\n throw error;\n }\n }\n\n /** Mark the watcher as aborted and reject any pending waiters. */\n private triggerAbort(error: Error): void {\n if (this.abortError) return;\n this.abortError = error;\n if (this.abortReject) {\n this.abortReject(error);\n this.abortReject = null;\n }\n }\n private waitForNetworkIdle(deadline: number): Promise<void> {\n this.pendingFollowupNavigation = false;\n const remaining = this.timeRemaining(deadline);\n const idleWindow = Math.min(DEFAULT_IDLE_WAIT, remaining);\n this.idleHandle = this.networkManager.waitForIdle({\n startTime: this.idleStartTime,\n timeoutMs: remaining,\n totalBudgetMs: this.timeoutMs,\n idleTimeMs: idleWindow,\n filter: this.buildIdleFilter(),\n });\n\n return this.idleHandle.promise.catch((error) => {\n if (this.abortError) throw this.abortError;\n throw error;\n });\n }\n\n private shouldRestartAfterFollowup(error: unknown): boolean {\n if (!this.pendingFollowupNavigation) return false;\n if (!(error instanceof Error)) return false;\n if (error.message !== \"waitForIdle disposed\") return false;\n this.pendingFollowupNavigation = false;\n return true;\n }\n\n private adoptNewMainLoader(loaderId: string): void {\n this.expectedLoaderId = loaderId;\n this.currentLoaderId = loaderId;\n this.idleStartTime = Date.now();\n if (this.waitUntil !== \"networkidle\") return;\n\n this.pendingFollowupNavigation = true;\n\n if (this.idleHandle) {\n const handle = this.idleHandle;\n this.idleHandle = null;\n void handle.promise.catch(() => {});\n handle.dispose();\n }\n }\n\n private buildIdleFilter(): (info: NetworkRequestInfo) => boolean {\n const loaderId = this.currentLoaderId;\n const mainFrameId = this.page.mainFrameId();\n\n return (info: NetworkRequestInfo) => {\n if (IGNORED_RESOURCE_TYPES.has(info.resourceType)) return false;\n\n if (loaderId && info.loaderId) {\n return info.loaderId === loaderId;\n }\n\n if (!info.loaderId && info.frameId) {\n return info.frameId === mainFrameId;\n }\n\n return true;\n };\n }\n}\n"]}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { Protocol } from "devtools-protocol";
|
|
2
|
+
import type { Frame } from "./frame.js";
|
|
3
|
+
import { SetInputFilesArgument, MouseButton } from "../types/public/locator.js";
|
|
4
|
+
/**
|
|
5
|
+
* Locator
|
|
6
|
+
*
|
|
7
|
+
* Purpose:
|
|
8
|
+
* A small, CDP-based element interaction helper scoped to a specific `Frame`.
|
|
9
|
+
* It resolves a CSS/XPath selector inside the frame’s **isolated world**, and then
|
|
10
|
+
* performs low-level actions (click, type, select) using DOM/Runtime/Input
|
|
11
|
+
* protocol domains with minimal abstraction.
|
|
12
|
+
*
|
|
13
|
+
* Key change:
|
|
14
|
+
* - Prefer **objectId**-based CDP calls (scroll, geometry) to avoid brittle
|
|
15
|
+
* frontend nodeId mappings. nodeId is resolved on a best-effort basis and
|
|
16
|
+
* returned for compatibility, but actions do not depend on it.
|
|
17
|
+
*
|
|
18
|
+
* Notes:
|
|
19
|
+
* - Resolution is lazy: every action resolves the selector again.
|
|
20
|
+
* - Uses `Page.createIsolatedWorld` so evaluation is isolated from page scripts.
|
|
21
|
+
* - Releases remote objects (`Runtime.releaseObject`) where appropriate.
|
|
22
|
+
*/
|
|
23
|
+
export declare class Locator {
|
|
24
|
+
private readonly frame;
|
|
25
|
+
private readonly selector;
|
|
26
|
+
private readonly options?;
|
|
27
|
+
private readonly selectorResolver;
|
|
28
|
+
private readonly selectorQuery;
|
|
29
|
+
private readonly nthIndex;
|
|
30
|
+
constructor(frame: Frame, selector: string, options?: {
|
|
31
|
+
deep?: boolean;
|
|
32
|
+
depth?: number;
|
|
33
|
+
}, nthIndex?: number);
|
|
34
|
+
/** Return the owning Frame for this locator (typed accessor, no private access). */
|
|
35
|
+
getFrame(): Frame;
|
|
36
|
+
/**
|
|
37
|
+
* Set files on an <input type="file"> element.
|
|
38
|
+
*
|
|
39
|
+
* Mirrors Playwright's Locator.setInputFiles basics:
|
|
40
|
+
* - Accepts file path(s) or payload object(s) { name, mimeType, buffer }.
|
|
41
|
+
* - Uses CDP DOM.setFileInputFiles under the hood.
|
|
42
|
+
* - Best‑effort dispatches change/input via CDP (Chrome does by default).
|
|
43
|
+
* - Passing an empty array clears the selection.
|
|
44
|
+
*/
|
|
45
|
+
setInputFiles(files: SetInputFilesArgument): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Remote browser fallback: build File objects inside the page and attach them via JS.
|
|
48
|
+
*
|
|
49
|
+
* When Stagehand is driving a browser that cannot see the local filesystem (Browserbase,
|
|
50
|
+
* remote CDP, etc.), CDP's DOM.setFileInputFiles would fail because Chrome can't reach
|
|
51
|
+
* our temp files. Instead we base64-encode the payloads, send them into the page, and
|
|
52
|
+
* let a DOM helper create File objects + dispatch change/input events.
|
|
53
|
+
*/
|
|
54
|
+
private assignFilesViaPayloadInjection;
|
|
55
|
+
/**
|
|
56
|
+
* Return the DOM backendNodeId for this locator's target element.
|
|
57
|
+
* Useful for identity comparisons without needing element handles.
|
|
58
|
+
*/
|
|
59
|
+
backendNodeId(): Promise<Protocol.DOM.BackendNodeId>;
|
|
60
|
+
/** Return how many nodes the current selector resolves to. */
|
|
61
|
+
count(): Promise<number>;
|
|
62
|
+
/**
|
|
63
|
+
* Return the center of the element's bounding box in the owning frame's viewport
|
|
64
|
+
* (CSS pixels), rounded to integers. Scrolls into view best-effort.
|
|
65
|
+
*/
|
|
66
|
+
centroid(): Promise<{
|
|
67
|
+
x: number;
|
|
68
|
+
y: number;
|
|
69
|
+
}>;
|
|
70
|
+
/**
|
|
71
|
+
* Highlight the element's bounding box using the CDP Overlay domain.
|
|
72
|
+
* - Scrolls element into view best-effort.
|
|
73
|
+
* - Shows a semi-transparent overlay briefly, then hides it.
|
|
74
|
+
*/
|
|
75
|
+
highlight(options?: {
|
|
76
|
+
durationMs?: number;
|
|
77
|
+
borderColor?: {
|
|
78
|
+
r: number;
|
|
79
|
+
g: number;
|
|
80
|
+
b: number;
|
|
81
|
+
a?: number;
|
|
82
|
+
};
|
|
83
|
+
contentColor?: {
|
|
84
|
+
r: number;
|
|
85
|
+
g: number;
|
|
86
|
+
b: number;
|
|
87
|
+
a?: number;
|
|
88
|
+
};
|
|
89
|
+
}): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Move the mouse cursor to the element's visual center without clicking.
|
|
92
|
+
* - Scrolls into view best-effort, resolves geometry, then dispatches a mouse move.
|
|
93
|
+
*/
|
|
94
|
+
hover(): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Click the element at its visual center.
|
|
97
|
+
* Steps:
|
|
98
|
+
* 1) Resolve selector to { objectId } in the frame world.
|
|
99
|
+
* 2) Scroll into view via `DOM.scrollIntoViewIfNeeded({ objectId })`.
|
|
100
|
+
* 3) Read geometry via `DOM.getBoxModel({ objectId })` → compute a center point.
|
|
101
|
+
* 4) Synthesize mouse press + release via `Input.dispatchMouseEvent`.
|
|
102
|
+
*/
|
|
103
|
+
click(options?: {
|
|
104
|
+
button?: MouseButton;
|
|
105
|
+
clickCount?: number;
|
|
106
|
+
}): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Dispatch a DOM 'click' MouseEvent on the element itself.
|
|
109
|
+
* - Does not synthesize real pointer input; directly dispatches an event.
|
|
110
|
+
* - Useful for elements that rely on click handlers without needing hit-testing.
|
|
111
|
+
*/
|
|
112
|
+
sendClickEvent(options?: {
|
|
113
|
+
bubbles?: boolean;
|
|
114
|
+
cancelable?: boolean;
|
|
115
|
+
composed?: boolean;
|
|
116
|
+
detail?: number;
|
|
117
|
+
}): Promise<void>;
|
|
118
|
+
/**
|
|
119
|
+
* Scroll the element vertically to a given percentage (0–100).
|
|
120
|
+
* - If the element is <html> or <body>, scrolls the window/document.
|
|
121
|
+
* - Otherwise, scrolls the element itself via element.scrollTo.
|
|
122
|
+
*/
|
|
123
|
+
scrollTo(percent: number | string): Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Fill an input/textarea/contenteditable element.
|
|
126
|
+
* Mirrors Playwright semantics: the DOM helper either applies the native
|
|
127
|
+
* value setter (for special input types) or asks us to type text via the CDP
|
|
128
|
+
* Input domain after focusing/selecting.
|
|
129
|
+
*/
|
|
130
|
+
fill(value: string): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Type text into the element (focuses first).
|
|
133
|
+
* - Focus via element.focus() in page JS (no DOM.focus(nodeId)).
|
|
134
|
+
* - If no delay, uses `Input.insertText` for efficiency.
|
|
135
|
+
* - With delay, synthesizes `keyDown`/`keyUp` per character.
|
|
136
|
+
*/
|
|
137
|
+
type(text: string, options?: {
|
|
138
|
+
delay?: number;
|
|
139
|
+
}): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Select one or more options on a `<select>` element.
|
|
142
|
+
* Returns the values actually selected after the operation.
|
|
143
|
+
*/
|
|
144
|
+
selectOption(values: string | string[]): Promise<string[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Return true if the element is attached and visible (rough heuristic).
|
|
147
|
+
*/
|
|
148
|
+
isVisible(): Promise<boolean>;
|
|
149
|
+
/**
|
|
150
|
+
* Return true if the element is an input[type=checkbox|radio] and is checked.
|
|
151
|
+
* Also considers aria-checked for ARIA widgets.
|
|
152
|
+
*/
|
|
153
|
+
isChecked(): Promise<boolean>;
|
|
154
|
+
/**
|
|
155
|
+
* Return the element's input value (for input/textarea/select/contenteditable).
|
|
156
|
+
*/
|
|
157
|
+
inputValue(): Promise<string>;
|
|
158
|
+
/**
|
|
159
|
+
* Return the element's textContent (raw, not innerText).
|
|
160
|
+
*/
|
|
161
|
+
textContent(): Promise<string>;
|
|
162
|
+
/**
|
|
163
|
+
* Return the element's innerHTML string.
|
|
164
|
+
*/
|
|
165
|
+
innerHtml(): Promise<string>;
|
|
166
|
+
/**
|
|
167
|
+
* Return the element's innerText (layout-aware, visible text).
|
|
168
|
+
*/
|
|
169
|
+
innerText(): Promise<string>;
|
|
170
|
+
/**
|
|
171
|
+
* Return a locator narrowed to the first match.
|
|
172
|
+
*/
|
|
173
|
+
first(): Locator;
|
|
174
|
+
/** Return a locator narrowed to the element at the given zero-based index. */
|
|
175
|
+
nth(index: number): Locator;
|
|
176
|
+
/**
|
|
177
|
+
* Resolve `this.selector` within the frame to `{ objectId, nodeId? }`:
|
|
178
|
+
* Delegates to a shared selector resolver so all selector logic stays in sync.
|
|
179
|
+
*/
|
|
180
|
+
resolveNode(): Promise<{
|
|
181
|
+
nodeId: Protocol.DOM.NodeId | null;
|
|
182
|
+
objectId: Protocol.Runtime.RemoteObjectId;
|
|
183
|
+
}>;
|
|
184
|
+
/**
|
|
185
|
+
* Resolve all matching nodes for this locator.
|
|
186
|
+
* If the locator is narrowed via nth(), only that index is returned.
|
|
187
|
+
*/
|
|
188
|
+
resolveNodesForMask(): Promise<Array<{
|
|
189
|
+
nodeId: Protocol.DOM.NodeId | null;
|
|
190
|
+
objectId: Protocol.Runtime.RemoteObjectId;
|
|
191
|
+
}>>;
|
|
192
|
+
/** Compute a center point from a BoxModel content quad */
|
|
193
|
+
private centerFromBoxContent;
|
|
194
|
+
}
|