@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.
- package/dist/cjs/cli.js +2 -210
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -25025
- package/dist/cjs/lib/inference.js +335 -0
- package/dist/cjs/lib/inference.js.map +1 -0
- package/dist/cjs/lib/inferenceLogUtils.js +99 -0
- package/dist/cjs/lib/inferenceLogUtils.js.map +1 -0
- package/dist/cjs/lib/logger.js +331 -0
- package/dist/cjs/lib/logger.js.map +1 -0
- package/dist/cjs/lib/modelUtils.d.ts +1 -0
- package/dist/cjs/lib/modelUtils.js +53 -0
- package/dist/cjs/lib/modelUtils.js.map +1 -0
- package/dist/cjs/lib/prompt.d.ts +3 -2
- package/dist/cjs/lib/prompt.js +245 -0
- package/dist/cjs/lib/prompt.js.map +1 -0
- package/dist/cjs/lib/utils.js +670 -0
- package/dist/cjs/lib/utils.js.map +1 -0
- package/dist/cjs/lib/v3/agent/AgentClient.js +21 -0
- package/dist/cjs/lib/v3/agent/AgentClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/AgentProvider.js +81 -0
- package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -0
- package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +844 -0
- package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.js +803 -0
- package/dist/cjs/lib/v3/agent/GoogleCUAClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js +777 -0
- package/dist/cjs/lib/v3/agent/MicrosoftCUAClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.js +622 -0
- package/dist/cjs/lib/v3/agent/OpenAICUAClient.js.map +1 -0
- package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.d.ts +3 -1
- package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js +212 -0
- package/dist/cjs/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/act.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/act.js +75 -0
- package/dist/cjs/lib/v3/agent/tools/act.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/ariaTree.d.ts +8 -1
- package/dist/cjs/lib/v3/agent/tools/ariaTree.js +73 -0
- package/dist/cjs/lib/v3/agent/tools/ariaTree.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/click.js +100 -0
- package/dist/cjs/lib/v3/agent/tools/click.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/clickAndHold.js +72 -0
- package/dist/cjs/lib/v3/agent/tools/clickAndHold.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js +101 -0
- package/dist/cjs/lib/v3/agent/tools/dragAndDrop.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/extract.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/extract.js +110 -0
- package/dist/cjs/lib/v3/agent/tools/extract.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.js +158 -0
- package/dist/cjs/lib/v3/agent/tools/fillFormVision.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/fillform.d.ts +8 -2
- package/dist/cjs/lib/v3/agent/tools/fillform.js +90 -0
- package/dist/cjs/lib/v3/agent/tools/fillform.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/goto.js +35 -0
- package/dist/cjs/lib/v3/agent/tools/goto.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/index.d.ts +11 -1
- package/dist/cjs/lib/v3/agent/tools/index.js +78 -0
- package/dist/cjs/lib/v3/agent/tools/index.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/keys.js +64 -0
- package/dist/cjs/lib/v3/agent/tools/keys.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/navback.js +27 -0
- package/dist/cjs/lib/v3/agent/tools/navback.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/screenshot.d.ts +8 -0
- package/dist/cjs/lib/v3/agent/tools/screenshot.js +47 -0
- package/dist/cjs/lib/v3/agent/tools/screenshot.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/scroll.js +159 -0
- package/dist/cjs/lib/v3/agent/tools/scroll.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/search.js +77 -0
- package/dist/cjs/lib/v3/agent/tools/search.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/think.js +28 -0
- package/dist/cjs/lib/v3/agent/tools/think.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/type.d.ts +2 -2
- package/dist/cjs/lib/v3/agent/tools/type.js +111 -0
- package/dist/cjs/lib/v3/agent/tools/type.js.map +1 -0
- package/dist/cjs/lib/v3/agent/tools/wait.js +63 -0
- package/dist/cjs/lib/v3/agent/tools/wait.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/actionMapping.js +103 -0
- package/dist/cjs/lib/v3/agent/utils/actionMapping.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js +33 -0
- package/dist/cjs/lib/v3/agent/utils/coordinateNormalization.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js +65 -0
- package/dist/cjs/lib/v3/agent/utils/cuaKeyMapping.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js +150 -0
- package/dist/cjs/lib/v3/agent/utils/googleCustomToolHandler.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js +108 -0
- package/dist/cjs/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/imageCompression.js +212 -0
- package/dist/cjs/lib/v3/agent/utils/imageCompression.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/messageProcessing.js +167 -0
- package/dist/cjs/lib/v3/agent/utils/messageProcessing.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js +29 -0
- package/dist/cjs/lib/v3/agent/utils/screenshotHandler.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js +90 -0
- package/dist/cjs/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/variables.d.ts +21 -0
- package/dist/cjs/lib/v3/agent/utils/variables.js +54 -0
- package/dist/cjs/lib/v3/agent/utils/variables.js.map +1 -0
- package/dist/cjs/lib/v3/agent/utils/xpath.js +22 -0
- package/dist/cjs/lib/v3/agent/utils/xpath.js.map +1 -0
- package/dist/cjs/lib/v3/api.d.ts +23 -5
- package/dist/cjs/lib/v3/api.js +589 -0
- package/dist/cjs/lib/v3/api.js.map +1 -0
- package/dist/cjs/lib/v3/cache/ActCache.d.ts +0 -1
- package/dist/cjs/lib/v3/cache/ActCache.js +280 -0
- package/dist/cjs/lib/v3/cache/ActCache.js.map +1 -0
- package/dist/cjs/lib/v3/cache/AgentCache.d.ts +1 -0
- package/dist/cjs/lib/v3/cache/AgentCache.js +651 -0
- package/dist/cjs/lib/v3/cache/AgentCache.js.map +1 -0
- package/dist/cjs/lib/v3/cache/CacheStorage.js +105 -0
- package/dist/cjs/lib/v3/cache/CacheStorage.js.map +1 -0
- package/dist/cjs/lib/v3/cache/serverAgentCache.js +52 -0
- package/dist/cjs/lib/v3/cache/serverAgentCache.js.map +1 -0
- package/dist/cjs/lib/v3/cache/utils.js +44 -0
- package/dist/cjs/lib/v3/cache/utils.js.map +1 -0
- package/dist/cjs/lib/v3/cli.js +15 -0
- package/dist/cjs/lib/v3/cli.js.map +1 -0
- package/dist/cjs/lib/v3/dom/a11yScripts/index.js +124 -0
- package/dist/cjs/lib/v3/dom/a11yScripts/index.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js +23 -0
- package/dist/cjs/lib/v3/dom/build/a11yScripts.generated.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js +59 -0
- package/dist/cjs/lib/v3/dom/build/locatorScripts.generated.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js +5 -0
- package/dist/cjs/lib/v3/dom/build/reRenderScriptContent.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js +11 -0
- package/dist/cjs/lib/v3/dom/build/screenshotScripts.generated.js.map +1 -0
- package/dist/cjs/lib/v3/dom/build/scriptV3Content.js +5 -0
- package/dist/cjs/lib/v3/dom/build/scriptV3Content.js.map +1 -0
- package/dist/cjs/lib/v3/dom/index.js +18 -0
- package/dist/cjs/lib/v3/dom/index.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/counts.js +278 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/counts.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/index.js +21 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/index.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js +474 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/scripts.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js +289 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/selectors.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js +286 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/waitForSelector.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js +381 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/xpathParser.js.map +1 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js +202 -0
- package/dist/cjs/lib/v3/dom/locatorScripts/xpathResolver.js.map +1 -0
- package/dist/cjs/lib/v3/dom/piercer.entry.js +5 -0
- package/dist/cjs/lib/v3/dom/piercer.entry.js.map +1 -0
- package/dist/cjs/lib/v3/dom/piercer.runtime.js +93 -0
- package/dist/cjs/lib/v3/dom/piercer.runtime.js.map +1 -0
- package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js +5 -0
- package/dist/cjs/lib/v3/dom/rerenderMissingShadows.entry.js.map +1 -0
- package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js +43 -0
- package/dist/cjs/lib/v3/dom/rerenderMissingShadows.runtime.js.map +1 -0
- package/dist/cjs/lib/v3/dom/screenshotScripts/index.js +6 -0
- package/dist/cjs/lib/v3/dom/screenshotScripts/index.js.map +1 -0
- package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js +85 -0
- package/dist/cjs/lib/v3/dom/screenshotScripts/resolveMaskRect.js.map +1 -0
- package/dist/cjs/lib/v3/external_clients/aisdk.js +107 -0
- package/dist/cjs/lib/v3/external_clients/aisdk.js.map +1 -0
- package/dist/cjs/lib/v3/external_clients/customOpenAI.js +224 -0
- package/dist/cjs/lib/v3/external_clients/customOpenAI.js.map +1 -0
- package/dist/cjs/lib/v3/flowLogger.js +881 -0
- package/dist/cjs/lib/v3/flowLogger.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/actHandler.d.ts +2 -1
- package/dist/cjs/lib/v3/handlers/actHandler.js +344 -0
- package/dist/cjs/lib/v3/handlers/actHandler.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/extractHandler.js +144 -0
- package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js +604 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js +17 -0
- package/dist/cjs/lib/v3/handlers/handlerUtils/timeoutGuard.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/observeHandler.js +159 -0
- package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +462 -0
- package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -0
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +532 -0
- package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -0
- package/dist/cjs/lib/v3/index.d.ts +143 -0
- package/dist/cjs/lib/v3/index.js +119 -0
- package/dist/cjs/lib/v3/index.js.map +1 -0
- package/dist/cjs/lib/v3/launch/browserbase.d.ts +1 -1
- package/dist/cjs/lib/v3/launch/browserbase.js +47 -0
- package/dist/cjs/lib/v3/launch/browserbase.js.map +1 -0
- package/dist/cjs/lib/v3/launch/local.js +104 -0
- package/dist/cjs/lib/v3/launch/local.js.map +1 -0
- package/dist/cjs/lib/v3/llm/AnthropicClient.js +246 -0
- package/dist/cjs/lib/v3/llm/AnthropicClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/CerebrasClient.js +242 -0
- package/dist/cjs/lib/v3/llm/CerebrasClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/GoogleClient.js +373 -0
- package/dist/cjs/lib/v3/llm/GoogleClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/GroqClient.js +243 -0
- package/dist/cjs/lib/v3/llm/GroqClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/LLMClient.js +27 -0
- package/dist/cjs/lib/v3/llm/LLMClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/LLMProvider.js +194 -0
- package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -0
- package/dist/cjs/lib/v3/llm/OpenAIClient.js +336 -0
- package/dist/cjs/lib/v3/llm/OpenAIClient.js.map +1 -0
- package/dist/cjs/lib/v3/llm/aisdk.js +355 -0
- package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -0
- package/dist/cjs/lib/v3/logger.js +102 -0
- package/dist/cjs/lib/v3/logger.js.map +1 -0
- package/dist/cjs/lib/v3/mcp/connection.d.ts +2 -0
- package/dist/cjs/lib/v3/mcp/connection.js +56 -0
- package/dist/cjs/lib/v3/mcp/connection.js.map +1 -0
- package/dist/cjs/lib/v3/mcp/utils.js +40 -0
- package/dist/cjs/lib/v3/mcp/utils.js.map +1 -0
- package/dist/cjs/lib/v3/runtimePaths.d.ts +6 -0
- package/dist/cjs/lib/v3/runtimePaths.js +119 -0
- package/dist/cjs/lib/v3/runtimePaths.js.map +1 -0
- package/dist/cjs/lib/v3/shutdown/cleanupLocal.js +36 -0
- package/dist/cjs/lib/v3/shutdown/cleanupLocal.js.map +1 -0
- package/dist/cjs/lib/v3/shutdown/supervisor.js +193 -0
- package/dist/cjs/lib/v3/shutdown/supervisor.js.map +1 -0
- package/dist/cjs/lib/v3/shutdown/supervisorClient.js +95 -0
- package/dist/cjs/lib/v3/shutdown/supervisorClient.js.map +1 -0
- package/dist/cjs/lib/v3/timeoutConfig.d.ts +1 -1
- package/dist/cjs/lib/v3/timeoutConfig.js +36 -0
- package/dist/cjs/lib/v3/timeoutConfig.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/agent.js +3 -0
- package/dist/cjs/lib/v3/types/private/agent.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/api.js +3 -0
- package/dist/cjs/lib/v3/types/private/api.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/cache.d.ts +3 -0
- package/dist/cjs/lib/v3/types/private/cache.js +3 -0
- package/dist/cjs/lib/v3/types/private/cache.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/evaluator.js +3 -0
- package/dist/cjs/lib/v3/types/private/evaluator.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -1
- package/dist/cjs/lib/v3/types/private/handlers.js +19 -0
- package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/index.js +24 -0
- package/dist/cjs/lib/v3/types/private/index.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/internal.js +3 -0
- package/dist/cjs/lib/v3/types/private/internal.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/locator.js +3 -0
- package/dist/cjs/lib/v3/types/private/locator.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/network.js +6 -0
- package/dist/cjs/lib/v3/types/private/network.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/shutdown.d.ts +1 -1
- package/dist/cjs/lib/v3/types/private/shutdown.js +6 -0
- package/dist/cjs/lib/v3/types/private/shutdown.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/shutdownErrors.js +28 -0
- package/dist/cjs/lib/v3/types/private/shutdownErrors.js.map +1 -0
- package/dist/cjs/lib/v3/types/private/snapshot.js +3 -0
- package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/agent.d.ts +60 -2
- package/dist/cjs/lib/v3/types/public/agent.js +18 -0
- package/dist/cjs/lib/v3/types/public/agent.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/api.d.ts +17 -0
- package/dist/cjs/lib/v3/types/public/api.js +922 -0
- package/dist/cjs/lib/v3/types/public/api.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/apiErrors.js +41 -0
- package/dist/cjs/lib/v3/types/public/apiErrors.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/context.d.ts +32 -0
- package/dist/cjs/lib/v3/types/public/context.js +3 -0
- package/dist/cjs/lib/v3/types/public/context.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/index.d.ts +1 -0
- package/dist/cjs/lib/v3/types/public/index.js +56 -0
- package/dist/cjs/lib/v3/types/public/index.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/locator.js +3 -0
- package/dist/cjs/lib/v3/types/public/locator.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/logs.js +16 -0
- package/dist/cjs/lib/v3/types/public/logs.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/methods.d.ts +33 -2
- package/dist/cjs/lib/v3/types/public/methods.js +18 -0
- package/dist/cjs/lib/v3/types/public/methods.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/metrics.js +3 -0
- package/dist/cjs/lib/v3/types/public/metrics.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/model.d.ts +4 -2
- package/dist/cjs/lib/v3/types/public/model.js +3 -0
- package/dist/cjs/lib/v3/types/public/model.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/options.d.ts +8 -0
- package/dist/cjs/lib/v3/types/public/options.js +7 -0
- package/dist/cjs/lib/v3/types/public/options.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/page.js +8 -0
- package/dist/cjs/lib/v3/types/public/page.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/screenshotTypes.js +3 -0
- package/dist/cjs/lib/v3/types/public/screenshotTypes.js.map +1 -0
- package/dist/cjs/lib/v3/types/public/sdkErrors.d.ts +13 -0
- package/dist/cjs/lib/v3/types/public/sdkErrors.js +390 -0
- package/dist/cjs/lib/v3/types/public/sdkErrors.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +204 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js +124 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/activeElement.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js +345 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/capture.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js +132 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/coordinateResolver.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js +285 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/domTree.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js +226 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js +12 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/index.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js +26 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/sessions.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +143 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js +110 -0
- package/dist/cjs/lib/v3/understudy/a11y/snapshot/xpathUtils.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/a11yInvocation.js +15 -0
- package/dist/cjs/lib/v3/understudy/a11yInvocation.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/cdp.d.ts +6 -1
- package/dist/cjs/lib/v3/understudy/cdp.js +317 -0
- package/dist/cjs/lib/v3/understudy/cdp.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/consoleMessage.js +70 -0
- package/dist/cjs/lib/v3/understudy/consoleMessage.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/context.d.ts +34 -0
- package/dist/cjs/lib/v3/understudy/context.js +960 -0
- package/dist/cjs/lib/v3/understudy/context.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/cookies.d.ts +32 -0
- package/dist/cjs/lib/v3/understudy/cookies.js +142 -0
- package/dist/cjs/lib/v3/understudy/cookies.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/deepLocator.js +204 -0
- package/dist/cjs/lib/v3/understudy/deepLocator.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/executionContextRegistry.js +87 -0
- package/dist/cjs/lib/v3/understudy/executionContextRegistry.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/fileUploadUtils.js +88 -0
- package/dist/cjs/lib/v3/understudy/fileUploadUtils.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/frame.js +232 -0
- package/dist/cjs/lib/v3/understudy/frame.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/frameLocator.js +260 -0
- package/dist/cjs/lib/v3/understudy/frameLocator.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/frameRegistry.js +302 -0
- package/dist/cjs/lib/v3/understudy/frameRegistry.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/initScripts.js +36 -0
- package/dist/cjs/lib/v3/understudy/initScripts.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js +249 -0
- package/dist/cjs/lib/v3/understudy/lifecycleWatcher.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/locator.js +790 -0
- package/dist/cjs/lib/v3/understudy/locator.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/locatorInvocation.js +15 -0
- package/dist/cjs/lib/v3/understudy/locatorInvocation.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js +228 -0
- package/dist/cjs/lib/v3/understudy/navigationResponseTracker.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/networkManager.js +310 -0
- package/dist/cjs/lib/v3/understudy/networkManager.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/page.d.ts +13 -0
- package/dist/cjs/lib/v3/understudy/page.js +1998 -0
- package/dist/cjs/lib/v3/understudy/page.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/piercer.js +65 -0
- package/dist/cjs/lib/v3/understudy/piercer.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/response.js +335 -0
- package/dist/cjs/lib/v3/understudy/response.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/screenshotUtils.d.ts +0 -1
- package/dist/cjs/lib/v3/understudy/screenshotUtils.js +345 -0
- package/dist/cjs/lib/v3/understudy/screenshotUtils.js.map +1 -0
- package/dist/cjs/lib/v3/understudy/selectorResolver.js +300 -0
- package/dist/cjs/lib/v3/understudy/selectorResolver.js.map +1 -0
- package/dist/cjs/lib/v3/v3.js +1631 -0
- package/dist/cjs/lib/v3/v3.js.map +1 -0
- package/dist/cjs/lib/v3/zodCompat.js +26 -0
- package/dist/cjs/lib/v3/zodCompat.js.map +1 -0
- package/dist/cjs/lib/v3Evaluator.js +214 -0
- package/dist/cjs/lib/v3Evaluator.js.map +1 -0
- package/dist/cjs/lib/version.d.ts +1 -1
- package/dist/cjs/lib/version.js +9 -0
- package/dist/cjs/lib/version.js.map +1 -0
- package/dist/cjs/tests/cache-variables.test.js +221 -0
- package/dist/cjs/tests/cache-variables.test.js.map +1 -0
- package/dist/cjs/tests/integration/agent-abort-signal.spec.js +123 -0
- package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +83 -0
- package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-callbacks.spec.js +385 -0
- package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +362 -0
- package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +262 -0
- package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-message-continuation.spec.js +112 -0
- package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +1 -0
- package/dist/cjs/tests/integration/agent-streaming.spec.js +140 -0
- package/dist/cjs/tests/integration/agent-streaming.spec.js.map +1 -0
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +41 -0
- package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +1 -0
- package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/cdp-connection-close.spec.js +76 -0
- package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +1 -0
- package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/cdp-session-detached.spec.js +45 -0
- package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +1 -0
- package/dist/cjs/tests/integration/click-count.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/click-count.spec.js +163 -0
- package/dist/cjs/tests/integration/click-count.spec.js.map +1 -0
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +99 -0
- package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
- package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/context-addInitScript.spec.js +285 -0
- package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +1 -0
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +49 -0
- package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +1 -0
- package/dist/cjs/tests/integration/cookies.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/cookies.spec.js +187 -0
- package/dist/cjs/tests/integration/cookies.spec.js.map +1 -0
- package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/default-page-tracking.spec.js +52 -0
- package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +1 -0
- package/dist/cjs/tests/integration/downloads.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/downloads.spec.js +52 -0
- package/dist/cjs/tests/integration/downloads.spec.js.map +1 -0
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +57 -0
- package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +219 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +474 -0
- package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
- package/dist/cjs/tests/integration/keep-alive.child.d.ts +1 -0
- package/dist/cjs/tests/integration/keep-alive.child.js +85 -0
- package/dist/cjs/tests/integration/keep-alive.child.js.map +1 -0
- package/dist/cjs/tests/integration/keep-alive.spec.d.ts +22 -0
- package/dist/cjs/tests/integration/keep-alive.spec.js +490 -0
- package/dist/cjs/tests/integration/keep-alive.spec.js.map +1 -0
- package/dist/cjs/tests/integration/keyboard.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/keyboard.spec.js +259 -0
- package/dist/cjs/tests/integration/keyboard.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +150 -0
- package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-content-methods.spec.js +180 -0
- package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-count-iframe.spec.js +129 -0
- package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-count.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-count.spec.js +68 -0
- package/dist/cjs/tests/integration/locator-count.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-fill.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-fill.spec.js +117 -0
- package/dist/cjs/tests/integration/locator-fill.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-input-methods.spec.js +127 -0
- package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-nth.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-nth.spec.js +175 -0
- package/dist/cjs/tests/integration/locator-nth.spec.js.map +1 -0
- package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/locator-select-option.spec.js +216 -0
- package/dist/cjs/tests/integration/locator-select-option.spec.js.map +1 -0
- package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/logger-initialization.spec.js +597 -0
- package/dist/cjs/tests/integration/logger-initialization.spec.js.map +1 -0
- package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/multi-instance-logger.spec.js +293 -0
- package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +1 -0
- package/dist/cjs/tests/integration/nested-div.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/nested-div.spec.js +22 -0
- package/dist/cjs/tests/integration/nested-div.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-addInitScript.spec.js +94 -0
- package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-console.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-console.spec.js +47 -0
- package/dist/cjs/tests/integration/page-console.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +437 -0
- package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +85 -0
- package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-goto-response.spec.js +34 -0
- package/dist/cjs/tests/integration/page-goto-response.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-hover.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-hover.spec.js +165 -0
- package/dist/cjs/tests/integration/page-hover.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-screenshot.spec.js +292 -0
- package/dist/cjs/tests/integration/page-screenshot.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-scroll.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-scroll.spec.js +183 -0
- package/dist/cjs/tests/integration/page-scroll.spec.js.map +1 -0
- package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/page-send-cdp.spec.js +47 -0
- package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +1 -0
- package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/perform-understudy-method.spec.js +63 -0
- package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +1 -0
- package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/setinputfiles.spec.js +133 -0
- package/dist/cjs/tests/integration/setinputfiles.spec.js.map +1 -0
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +161 -0
- package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +160 -0
- package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
- package/dist/cjs/tests/integration/testUtils.d.ts +7 -0
- package/dist/cjs/tests/integration/testUtils.js +44 -0
- package/dist/cjs/tests/integration/testUtils.js.map +1 -0
- package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/text-selector-innermost.spec.js +105 -0
- package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +1 -0
- package/dist/cjs/tests/integration/timeouts.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/timeouts.spec.js +197 -0
- package/dist/cjs/tests/integration/timeouts.spec.js.map +1 -0
- package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/user-data-dir.spec.js +77 -0
- package/dist/cjs/tests/integration/user-data-dir.spec.js.map +1 -0
- package/dist/cjs/tests/integration/v3.config.d.ts +4 -0
- package/dist/cjs/tests/integration/v3.config.js +11 -0
- package/dist/cjs/tests/integration/v3.config.js.map +1 -0
- package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +4 -0
- package/dist/cjs/tests/integration/v3.dynamic.config.js +48 -0
- package/dist/cjs/tests/integration/v3.dynamic.config.js.map +1 -0
- package/dist/cjs/tests/integration/v3.playwright.config.d.ts +2 -0
- package/dist/cjs/tests/integration/v3.playwright.config.js +48 -0
- package/dist/cjs/tests/integration/v3.playwright.config.js.map +1 -0
- package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/wait-for-selector.spec.js +683 -0
- package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +1 -0
- package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/wait-for-timeout.spec.js +118 -0
- package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +1 -0
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +87 -0
- package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
- package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +1 -0
- package/dist/cjs/tests/unit/agent-execution-model.test.js +128 -0
- package/dist/cjs/tests/unit/agent-execution-model.test.js.map +1 -0
- package/dist/cjs/tests/unit/api-multiregion.test.d.ts +1 -0
- package/dist/cjs/tests/unit/api-multiregion.test.js +58 -0
- package/dist/cjs/tests/unit/api-multiregion.test.js.map +1 -0
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +102 -0
- package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +1 -0
- package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +1 -0
- package/dist/cjs/tests/unit/cache-llm-resolution.test.js +186 -0
- package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +1 -0
- package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +1 -0
- package/dist/cjs/tests/unit/cdp-connection-close.test.js +74 -0
- package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +1 -0
- package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +1 -0
- package/dist/cjs/tests/unit/context-extra-http-headers.test.js +58 -0
- package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +1 -0
- package/dist/cjs/tests/unit/cookies.test.d.ts +1 -0
- package/dist/cjs/tests/unit/cookies.test.js +944 -0
- package/dist/cjs/tests/unit/cookies.test.js.map +1 -0
- package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +19 -0
- package/dist/cjs/tests/unit/helpers/mockCDPSession.js +29 -0
- package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +1 -0
- package/dist/cjs/tests/unit/llm-provider.test.d.ts +1 -0
- package/dist/cjs/tests/unit/llm-provider.test.js +64 -0
- package/dist/cjs/tests/unit/llm-provider.test.js.map +1 -0
- package/dist/cjs/tests/unit/model-deprecation.test.d.ts +1 -0
- package/dist/cjs/tests/unit/model-deprecation.test.js +142 -0
- package/dist/cjs/tests/unit/model-deprecation.test.js.map +1 -0
- package/dist/cjs/tests/unit/model-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/model-utils.test.js +42 -0
- package/dist/cjs/tests/unit/model-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +1 -0
- package/dist/cjs/tests/unit/page-extra-http-headers.test.js +92 -0
- package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +1 -0
- package/dist/cjs/tests/unit/page-snapshot.test.d.ts +1 -0
- package/dist/cjs/tests/unit/page-snapshot.test.js +75 -0
- package/dist/cjs/tests/unit/page-snapshot.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/export-surface.test.js +107 -0
- package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +175 -0
- package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +62 -0
- package/dist/cjs/tests/unit/public-api/public-error-types.test.js +110 -0
- package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/public-types.test.js +99 -0
- package/dist/cjs/tests/unit/public-api/public-types.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +60 -0
- package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/schema-utils.test.js +95 -0
- package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +121 -0
- package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +65 -0
- package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +1 -0
- package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +1 -0
- package/dist/cjs/tests/unit/public-api/v3-core.test.js +108 -0
- package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +1 -0
- package/dist/cjs/tests/unit/rerender-missing-shadows.test.d.ts +1 -0
- package/dist/cjs/tests/unit/rerender-missing-shadows.test.js +209 -0
- package/dist/cjs/tests/unit/rerender-missing-shadows.test.js.map +1 -0
- package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +1 -0
- package/dist/cjs/tests/unit/safety-confirmation.test.js +110 -0
- package/dist/cjs/tests/unit/safety-confirmation.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +330 -0
- package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +286 -0
- package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +394 -0
- package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-cbor.test.js +204 -0
- package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +220 -0
- package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +107 -0
- package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +89 -0
- package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +335 -0
- package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +84 -0
- package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +74 -0
- package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
- package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +1 -0
- package/dist/cjs/tests/unit/timeout-handlers.test.js +847 -0
- package/dist/cjs/tests/unit/timeout-handlers.test.js.map +1 -0
- package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +1 -0
- package/dist/cjs/tests/unit/understudy-command-exception.test.js +57 -0
- package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +1 -0
- package/dist/cjs/tests/unit/xpath-parser.test.d.ts +1 -0
- package/dist/cjs/tests/unit/xpath-parser.test.js +311 -0
- package/dist/cjs/tests/unit/xpath-parser.test.js.map +1 -0
- package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +1 -0
- package/dist/cjs/tests/unit/xpath-resolver.test.js +80 -0
- package/dist/cjs/tests/unit/xpath-resolver.test.js.map +1 -0
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +149 -0
- package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +1 -0
- package/dist/esm/index.d.ts +1 -2
- package/dist/esm/index.js +1 -2
- package/dist/esm/lib/inference.js +5 -8
- package/dist/esm/lib/inference.js.map +1 -1
- package/dist/esm/lib/modelUtils.d.ts +1 -0
- package/dist/esm/lib/modelUtils.js.map +1 -1
- package/dist/esm/lib/prompt.d.ts +3 -2
- package/dist/esm/lib/prompt.js.map +1 -1
- package/dist/esm/lib/v3/agent/AgentProvider.js +1 -1
- package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +17 -2
- package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js +4 -4
- package/dist/esm/lib/v3/agent/MicrosoftCUAClient.js.map +1 -1
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.d.ts +3 -1
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js +24 -1
- package/dist/esm/lib/v3/agent/prompts/agentSystemPrompt.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/act.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/act.js +66 -44
- package/dist/esm/lib/v3/agent/tools/act.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/ariaTree.d.ts +8 -1
- package/dist/esm/lib/v3/agent/tools/ariaTree.js +60 -22
- package/dist/esm/lib/v3/agent/tools/ariaTree.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/click.js +23 -31
- package/dist/esm/lib/v3/agent/tools/click.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/dragAndDrop.js +22 -30
- package/dist/esm/lib/v3/agent/tools/dragAndDrop.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/extract.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/extract.js +16 -3
- package/dist/esm/lib/v3/agent/tools/extract.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/fillFormVision.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js +109 -98
- package/dist/esm/lib/v3/agent/tools/fillFormVision.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/fillform.d.ts +8 -2
- package/dist/esm/lib/v3/agent/tools/fillform.js +82 -52
- package/dist/esm/lib/v3/agent/tools/fillform.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/index.d.ts +11 -1
- package/dist/esm/lib/v3/agent/tools/index.js +8 -7
- package/dist/esm/lib/v3/agent/tools/index.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/screenshot.d.ts +8 -0
- package/dist/esm/lib/v3/agent/tools/screenshot.js +32 -15
- package/dist/esm/lib/v3/agent/tools/screenshot.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/scroll.js +12 -0
- package/dist/esm/lib/v3/agent/tools/scroll.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/type.d.ts +2 -2
- package/dist/esm/lib/v3/agent/tools/type.js +80 -79
- package/dist/esm/lib/v3/agent/tools/type.js.map +1 -1
- package/dist/esm/lib/v3/agent/tools/wait.js +6 -0
- package/dist/esm/lib/v3/agent/tools/wait.js.map +1 -1
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js +4 -0
- package/dist/esm/lib/v3/agent/utils/handleDoneToolCall.js.map +1 -1
- package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js +8 -0
- package/dist/esm/lib/v3/agent/utils/validateExperimentalFeatures.js.map +1 -1
- package/dist/esm/lib/v3/agent/utils/variables.d.ts +21 -0
- package/dist/esm/lib/v3/agent/utils/variables.js +48 -0
- package/dist/esm/lib/v3/agent/utils/variables.js.map +1 -0
- package/dist/esm/lib/v3/api.d.ts +23 -5
- package/dist/esm/lib/v3/api.js +74 -13
- package/dist/esm/lib/v3/api.js.map +1 -1
- package/dist/esm/lib/v3/cache/ActCache.d.ts +0 -1
- package/dist/esm/lib/v3/cache/ActCache.js +2 -18
- package/dist/esm/lib/v3/cache/ActCache.js.map +1 -1
- package/dist/esm/lib/v3/cache/AgentCache.d.ts +1 -0
- package/dist/esm/lib/v3/cache/AgentCache.js +18 -11
- package/dist/esm/lib/v3/cache/AgentCache.js.map +1 -1
- package/dist/esm/lib/v3/handlers/actHandler.d.ts +2 -1
- package/dist/esm/lib/v3/handlers/actHandler.js +4 -4
- package/dist/esm/lib/v3/handlers/actHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/extractHandler.js +2 -2
- package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js +0 -27
- package/dist/esm/lib/v3/handlers/handlerUtils/actHandlerUtils.js.map +1 -1
- package/dist/esm/lib/v3/handlers/observeHandler.js +1 -2
- package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js +13 -16
- package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
- package/dist/esm/lib/v3/index.d.ts +143 -0
- package/dist/esm/lib/v3/index.js +41 -0
- package/dist/esm/lib/v3/index.js.map +1 -1
- package/dist/esm/lib/v3/launch/browserbase.d.ts +1 -1
- package/dist/esm/lib/v3/launch/browserbase.js +4 -9
- package/dist/esm/lib/v3/launch/browserbase.js.map +1 -1
- package/dist/esm/lib/v3/llm/LLMProvider.js +0 -5
- package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
- package/dist/esm/lib/v3/llm/OpenAIClient.js +2 -2
- package/dist/esm/lib/v3/llm/OpenAIClient.js.map +1 -1
- package/dist/esm/lib/v3/mcp/connection.d.ts +2 -0
- package/dist/esm/lib/v3/mcp/connection.js +5 -2
- package/dist/esm/lib/v3/mcp/connection.js.map +1 -1
- package/dist/esm/lib/v3/runtimePaths.d.ts +6 -0
- package/dist/esm/lib/v3/runtimePaths.js +107 -0
- package/dist/esm/lib/v3/runtimePaths.js.map +1 -0
- package/dist/esm/lib/v3/shutdown/supervisor.js +2 -2
- package/dist/esm/lib/v3/shutdown/supervisor.js.map +1 -1
- package/dist/esm/lib/v3/shutdown/supervisorClient.js +9 -14
- package/dist/esm/lib/v3/shutdown/supervisorClient.js.map +1 -1
- package/dist/esm/lib/v3/timeoutConfig.d.ts +1 -1
- package/dist/esm/lib/v3/timeoutConfig.js +5 -0
- package/dist/esm/lib/v3/timeoutConfig.js.map +1 -1
- package/dist/esm/lib/v3/types/private/cache.d.ts +3 -0
- package/dist/esm/lib/v3/types/private/cache.js.map +1 -1
- package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -1
- package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
- package/dist/esm/lib/v3/types/private/shutdown.d.ts +1 -1
- package/dist/esm/lib/v3/types/private/shutdown.js.map +1 -1
- package/dist/esm/lib/v3/types/public/agent.d.ts +60 -2
- package/dist/esm/lib/v3/types/public/agent.js +1 -1
- package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
- package/dist/esm/lib/v3/types/public/api.d.ts +17 -0
- package/dist/esm/lib/v3/types/public/api.js +3 -2
- package/dist/esm/lib/v3/types/public/api.js.map +1 -1
- package/dist/esm/lib/v3/types/public/context.d.ts +32 -0
- package/dist/esm/lib/v3/types/public/context.js +2 -0
- package/dist/esm/lib/v3/types/public/context.js.map +1 -0
- package/dist/esm/lib/v3/types/public/index.d.ts +1 -0
- package/dist/esm/lib/v3/types/public/index.js +1 -0
- package/dist/esm/lib/v3/types/public/index.js.map +1 -1
- package/dist/esm/lib/v3/types/public/methods.d.ts +33 -2
- package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
- package/dist/esm/lib/v3/types/public/model.d.ts +4 -2
- package/dist/esm/lib/v3/types/public/model.js.map +1 -1
- package/dist/esm/lib/v3/types/public/options.d.ts +8 -0
- package/dist/esm/lib/v3/types/public/options.js.map +1 -1
- package/dist/esm/lib/v3/types/public/sdkErrors.d.ts +13 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.js +22 -0
- package/dist/esm/lib/v3/types/public/sdkErrors.js.map +1 -1
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.d.ts +1 -0
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js +1 -1
- package/dist/esm/lib/v3/understudy/a11y/snapshot/focusSelectors.js.map +1 -1
- package/dist/esm/lib/v3/understudy/cdp.d.ts +6 -1
- package/dist/esm/lib/v3/understudy/cdp.js +65 -7
- package/dist/esm/lib/v3/understudy/cdp.js.map +1 -1
- package/dist/esm/lib/v3/understudy/context.d.ts +34 -0
- package/dist/esm/lib/v3/understudy/context.js +327 -67
- package/dist/esm/lib/v3/understudy/context.js.map +1 -1
- package/dist/esm/lib/v3/understudy/cookies.d.ts +32 -0
- package/dist/esm/lib/v3/understudy/cookies.js +136 -0
- package/dist/esm/lib/v3/understudy/cookies.js.map +1 -0
- package/dist/esm/lib/v3/understudy/deepLocator.js +1 -23
- package/dist/esm/lib/v3/understudy/deepLocator.js.map +1 -1
- package/dist/esm/lib/v3/understudy/frame.js +24 -7
- package/dist/esm/lib/v3/understudy/frame.js.map +1 -1
- package/dist/esm/lib/v3/understudy/page.d.ts +13 -0
- package/dist/esm/lib/v3/understudy/page.js +58 -5
- package/dist/esm/lib/v3/understudy/page.js.map +1 -1
- package/dist/esm/lib/v3/understudy/screenshotUtils.d.ts +0 -1
- package/dist/esm/lib/v3/understudy/screenshotUtils.js +1 -19
- package/dist/esm/lib/v3/understudy/screenshotUtils.js.map +1 -1
- package/dist/esm/lib/v3/understudy/selectorResolver.js +1 -1
- package/dist/esm/lib/v3/understudy/selectorResolver.js.map +1 -1
- package/dist/esm/lib/v3/v3.js +59 -35
- package/dist/esm/lib/v3/v3.js.map +1 -1
- package/dist/esm/lib/version.d.ts +1 -1
- package/dist/esm/lib/version.js +1 -1
- package/dist/esm/lib/version.js.map +1 -1
- package/dist/esm/tests/cache-variables.test.d.ts +1 -0
- package/dist/esm/tests/cache-variables.test.js +219 -0
- package/dist/esm/tests/cache-variables.test.js.map +1 -0
- package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-abort-signal.spec.js +121 -0
- package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +78 -0
- package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-callbacks.spec.js +383 -0
- package/dist/esm/tests/integration/agent-callbacks.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-experimental-validation.spec.js +360 -0
- package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +260 -0
- package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-message-continuation.spec.js +110 -0
- package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +1 -0
- package/dist/esm/tests/integration/agent-streaming.spec.d.ts +1 -0
- package/dist/esm/tests/integration/agent-streaming.spec.js +138 -0
- package/dist/esm/tests/integration/agent-streaming.spec.js.map +1 -0
- package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +1 -0
- package/dist/esm/tests/integration/cdp-close-api-region.spec.js +39 -0
- package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +1 -0
- package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +1 -0
- package/dist/esm/tests/integration/cdp-connection-close.spec.js +74 -0
- package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +1 -0
- package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +1 -0
- package/dist/esm/tests/integration/cdp-session-detached.spec.js +43 -0
- package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +1 -0
- package/dist/esm/tests/integration/click-count.spec.d.ts +1 -0
- package/dist/esm/tests/integration/click-count.spec.js +161 -0
- package/dist/esm/tests/integration/click-count.spec.js.map +1 -0
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +1 -0
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +97 -0
- package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +1 -0
- package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +1 -0
- package/dist/esm/tests/integration/context-addInitScript.spec.js +283 -0
- package/dist/esm/tests/integration/context-addInitScript.spec.js.map +1 -0
- package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +1 -0
- package/dist/esm/tests/integration/context-extra-http-headers.spec.js +47 -0
- package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +1 -0
- package/dist/esm/tests/integration/cookies.spec.d.ts +1 -0
- package/dist/esm/tests/integration/cookies.spec.js +185 -0
- package/dist/esm/tests/integration/cookies.spec.js.map +1 -0
- package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +1 -0
- package/dist/esm/tests/integration/default-page-tracking.spec.js +50 -0
- package/dist/esm/tests/integration/default-page-tracking.spec.js.map +1 -0
- package/dist/esm/tests/integration/downloads.spec.d.ts +1 -0
- package/dist/esm/tests/integration/downloads.spec.js +47 -0
- package/dist/esm/tests/integration/downloads.spec.js.map +1 -0
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +1 -0
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +55 -0
- package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +1 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +1 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +217 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +1 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +1 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +472 -0
- package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +1 -0
- package/dist/esm/tests/integration/keep-alive.child.d.ts +1 -0
- package/dist/esm/tests/integration/keep-alive.child.js +83 -0
- package/dist/esm/tests/integration/keep-alive.child.js.map +1 -0
- package/dist/esm/tests/integration/keep-alive.spec.d.ts +22 -0
- package/dist/esm/tests/integration/keep-alive.spec.js +482 -0
- package/dist/esm/tests/integration/keep-alive.spec.js.map +1 -0
- package/dist/esm/tests/integration/keyboard.spec.d.ts +1 -0
- package/dist/esm/tests/integration/keyboard.spec.js +257 -0
- package/dist/esm/tests/integration/keyboard.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-backend-node-id.spec.js +148 -0
- package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-content-methods.spec.js +178 -0
- package/dist/esm/tests/integration/locator-content-methods.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-count-iframe.spec.js +127 -0
- package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-count.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-count.spec.js +66 -0
- package/dist/esm/tests/integration/locator-count.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-fill.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-fill.spec.js +115 -0
- package/dist/esm/tests/integration/locator-fill.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-input-methods.spec.js +125 -0
- package/dist/esm/tests/integration/locator-input-methods.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-nth.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-nth.spec.js +173 -0
- package/dist/esm/tests/integration/locator-nth.spec.js.map +1 -0
- package/dist/esm/tests/integration/locator-select-option.spec.d.ts +1 -0
- package/dist/esm/tests/integration/locator-select-option.spec.js +214 -0
- package/dist/esm/tests/integration/locator-select-option.spec.js.map +1 -0
- package/dist/esm/tests/integration/logger-initialization.spec.d.ts +1 -0
- package/dist/esm/tests/integration/logger-initialization.spec.js +595 -0
- package/dist/esm/tests/integration/logger-initialization.spec.js.map +1 -0
- package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +1 -0
- package/dist/esm/tests/integration/multi-instance-logger.spec.js +291 -0
- package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +1 -0
- package/dist/esm/tests/integration/nested-div.spec.d.ts +1 -0
- package/dist/esm/tests/integration/nested-div.spec.js +20 -0
- package/dist/esm/tests/integration/nested-div.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-addInitScript.spec.js +92 -0
- package/dist/esm/tests/integration/page-addInitScript.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-console.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-console.spec.js +45 -0
- package/dist/esm/tests/integration/page-console.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-drag-and-drop.spec.js +435 -0
- package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-extra-http-headers.spec.js +83 -0
- package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-goto-response.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-goto-response.spec.js +32 -0
- package/dist/esm/tests/integration/page-goto-response.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-hover.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-hover.spec.js +163 -0
- package/dist/esm/tests/integration/page-hover.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-screenshot.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-screenshot.spec.js +257 -0
- package/dist/esm/tests/integration/page-screenshot.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-scroll.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-scroll.spec.js +181 -0
- package/dist/esm/tests/integration/page-scroll.spec.js.map +1 -0
- package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +1 -0
- package/dist/esm/tests/integration/page-send-cdp.spec.js +45 -0
- package/dist/esm/tests/integration/page-send-cdp.spec.js.map +1 -0
- package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +1 -0
- package/dist/esm/tests/integration/perform-understudy-method.spec.js +61 -0
- package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +1 -0
- package/dist/esm/tests/integration/setinputfiles.spec.d.ts +1 -0
- package/dist/esm/tests/integration/setinputfiles.spec.js +128 -0
- package/dist/esm/tests/integration/setinputfiles.spec.js.map +1 -0
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +1 -0
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +156 -0
- package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +1 -0
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +1 -0
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +155 -0
- package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +1 -0
- package/dist/esm/tests/integration/testUtils.d.ts +7 -0
- package/dist/esm/tests/integration/testUtils.js +40 -0
- package/dist/esm/tests/integration/testUtils.js.map +1 -0
- package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +1 -0
- package/dist/esm/tests/integration/text-selector-innermost.spec.js +103 -0
- package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +1 -0
- package/dist/esm/tests/integration/timeouts.spec.d.ts +1 -0
- package/dist/esm/tests/integration/timeouts.spec.js +195 -0
- package/dist/esm/tests/integration/timeouts.spec.js.map +1 -0
- package/dist/esm/tests/integration/user-data-dir.spec.d.ts +1 -0
- package/dist/esm/tests/integration/user-data-dir.spec.js +42 -0
- package/dist/esm/tests/integration/user-data-dir.spec.js.map +1 -0
- package/dist/esm/tests/integration/v3.config.d.ts +4 -0
- package/dist/esm/tests/integration/v3.config.js +7 -0
- package/dist/esm/tests/integration/v3.config.js.map +1 -0
- package/dist/esm/tests/integration/v3.dynamic.config.d.ts +4 -0
- package/dist/esm/tests/integration/v3.dynamic.config.js +44 -0
- package/dist/esm/tests/integration/v3.dynamic.config.js.map +1 -0
- package/dist/esm/tests/integration/v3.playwright.config.d.ts +2 -0
- package/dist/esm/tests/integration/v3.playwright.config.js +46 -0
- package/dist/esm/tests/integration/v3.playwright.config.js.map +1 -0
- package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +1 -0
- package/dist/esm/tests/integration/wait-for-selector.spec.js +681 -0
- package/dist/esm/tests/integration/wait-for-selector.spec.js.map +1 -0
- package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +1 -0
- package/dist/esm/tests/integration/wait-for-timeout.spec.js +116 -0
- package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +1 -0
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +1 -0
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +85 -0
- package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +1 -0
- package/dist/esm/tests/unit/agent-execution-model.test.d.ts +1 -0
- package/dist/esm/tests/unit/agent-execution-model.test.js +126 -0
- package/dist/esm/tests/unit/agent-execution-model.test.js.map +1 -0
- package/dist/esm/tests/unit/api-multiregion.test.d.ts +1 -0
- package/dist/esm/tests/unit/api-multiregion.test.js +56 -0
- package/dist/esm/tests/unit/api-multiregion.test.js.map +1 -0
- package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +1 -0
- package/dist/esm/tests/unit/browserbase-session-accessors.test.js +100 -0
- package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +1 -0
- package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +1 -0
- package/dist/esm/tests/unit/cache-llm-resolution.test.js +184 -0
- package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +1 -0
- package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +1 -0
- package/dist/esm/tests/unit/cdp-connection-close.test.js +72 -0
- package/dist/esm/tests/unit/cdp-connection-close.test.js.map +1 -0
- package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +1 -0
- package/dist/esm/tests/unit/context-extra-http-headers.test.js +56 -0
- package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +1 -0
- package/dist/esm/tests/unit/cookies.test.d.ts +1 -0
- package/dist/esm/tests/unit/cookies.test.js +909 -0
- package/dist/esm/tests/unit/cookies.test.js.map +1 -0
- package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +19 -0
- package/dist/esm/tests/unit/helpers/mockCDPSession.js +25 -0
- package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +1 -0
- package/dist/esm/tests/unit/llm-provider.test.d.ts +1 -0
- package/dist/esm/tests/unit/llm-provider.test.js +62 -0
- package/dist/esm/tests/unit/llm-provider.test.js.map +1 -0
- package/dist/esm/tests/unit/model-deprecation.test.d.ts +1 -0
- package/dist/esm/tests/unit/model-deprecation.test.js +140 -0
- package/dist/esm/tests/unit/model-deprecation.test.js.map +1 -0
- package/dist/esm/tests/unit/model-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/model-utils.test.js +40 -0
- package/dist/esm/tests/unit/model-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +1 -0
- package/dist/esm/tests/unit/page-extra-http-headers.test.js +90 -0
- package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +1 -0
- package/dist/esm/tests/unit/page-snapshot.test.d.ts +1 -0
- package/dist/esm/tests/unit/page-snapshot.test.js +40 -0
- package/dist/esm/tests/unit/page-snapshot.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/export-surface.test.js +72 -0
- package/dist/esm/tests/unit/public-api/export-surface.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +140 -0
- package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +62 -0
- package/dist/esm/tests/unit/public-api/public-error-types.test.js +74 -0
- package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/public-types.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/public-types.test.js +97 -0
- package/dist/esm/tests/unit/public-api/public-types.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/runtime-utils.test.js +25 -0
- package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/schema-utils.test.js +60 -0
- package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +86 -0
- package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/tool-type-export.test.js +30 -0
- package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +1 -0
- package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +1 -0
- package/dist/esm/tests/unit/public-api/v3-core.test.js +73 -0
- package/dist/esm/tests/unit/public-api/v3-core.test.js.map +1 -0
- package/dist/esm/tests/unit/rerender-missing-shadows.test.d.ts +1 -0
- package/dist/esm/tests/unit/rerender-missing-shadows.test.js +207 -0
- package/dist/esm/tests/unit/rerender-missing-shadows.test.js.map +1 -0
- package/dist/esm/tests/unit/safety-confirmation.test.d.ts +1 -0
- package/dist/esm/tests/unit/safety-confirmation.test.js +108 -0
- package/dist/esm/tests/unit/safety-confirmation.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +295 -0
- package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +284 -0
- package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +359 -0
- package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-cbor.test.js +202 -0
- package/dist/esm/tests/unit/snapshot-cbor.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +218 -0
- package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +105 -0
- package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +87 -0
- package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-frame-merge.test.js +333 -0
- package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +82 -0
- package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +1 -0
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +72 -0
- package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +1 -0
- package/dist/esm/tests/unit/timeout-handlers.test.d.ts +1 -0
- package/dist/esm/tests/unit/timeout-handlers.test.js +812 -0
- package/dist/esm/tests/unit/timeout-handlers.test.js.map +1 -0
- package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +1 -0
- package/dist/esm/tests/unit/understudy-command-exception.test.js +55 -0
- package/dist/esm/tests/unit/understudy-command-exception.test.js.map +1 -0
- package/dist/esm/tests/unit/xpath-parser.test.d.ts +1 -0
- package/dist/esm/tests/unit/xpath-parser.test.js +309 -0
- package/dist/esm/tests/unit/xpath-parser.test.js.map +1 -0
- package/dist/esm/tests/unit/xpath-resolver.test.d.ts +1 -0
- package/dist/esm/tests/unit/xpath-resolver.test.js +78 -0
- package/dist/esm/tests/unit/xpath-resolver.test.js.map +1 -0
- package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +1 -0
- package/dist/esm/tests/unit/zod-enum-compatibility.test.js +114 -0
- package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +1 -0
- package/package.json +19 -8
- package/dist/cjs/cli.js.map +0 -7
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/lib/v3/dom/build/rerender-index.d.ts +0 -0
- package/dist/cjs/lib/v3/dom/build/v3-index.d.ts +0 -0
- package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js +0 -113
- package/dist/cjs/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js +0 -102
- package/dist/cjs/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js +0 -374
- package/dist/cjs/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js +0 -354
- package/dist/cjs/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
- package/dist/cjs/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js +0 -105
- package/dist/cjs/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/agent-streaming.spec.js +0 -126
- package/dist/cjs/lib/v3/tests/agent-streaming.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js +0 -44
- package/dist/cjs/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/click-count.spec.js +0 -147
- package/dist/cjs/lib/v3/tests/click-count.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
- package/dist/cjs/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js +0 -176
- package/dist/cjs/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js +0 -53
- package/dist/cjs/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/downloads.spec.js +0 -80
- package/dist/cjs/lib/v3/tests/downloads.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
- package/dist/cjs/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
- package/dist/cjs/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/keep-alive.child.js +0 -92
- package/dist/cjs/lib/v3/tests/keep-alive.child.js.map +0 -7
- package/dist/cjs/lib/v3/tests/keep-alive.helpers.js +0 -568
- package/dist/cjs/lib/v3/tests/keep-alive.helpers.js.map +0 -7
- package/dist/cjs/lib/v3/tests/keep-alive.spec.js +0 -15
- package/dist/cjs/lib/v3/tests/keep-alive.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/keyboard.spec.js +0 -296
- package/dist/cjs/lib/v3/tests/keyboard.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
- package/dist/cjs/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js +0 -192
- package/dist/cjs/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js +0 -108
- package/dist/cjs/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-count.spec.js +0 -71
- package/dist/cjs/lib/v3/tests/locator-count.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-fill.spec.js +0 -119
- package/dist/cjs/lib/v3/tests/locator-fill.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js +0 -137
- package/dist/cjs/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-nth.spec.js +0 -157
- package/dist/cjs/lib/v3/tests/locator-nth.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/locator-select-option.spec.js +0 -243
- package/dist/cjs/lib/v3/tests/locator-select-option.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/logger-initialization.spec.js +0 -547
- package/dist/cjs/lib/v3/tests/logger-initialization.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js +0 -269
- package/dist/cjs/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/nested-div.spec.js +0 -23
- package/dist/cjs/lib/v3/tests/nested-div.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js +0 -90
- package/dist/cjs/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-console.spec.js +0 -56
- package/dist/cjs/lib/v3/tests/page-console.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
- package/dist/cjs/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-goto-response.spec.js +0 -35
- package/dist/cjs/lib/v3/tests/page-goto-response.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-hover.spec.js +0 -167
- package/dist/cjs/lib/v3/tests/page-hover.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-screenshot.spec.js +0 -295
- package/dist/cjs/lib/v3/tests/page-screenshot.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-scroll.spec.js +0 -182
- package/dist/cjs/lib/v3/tests/page-scroll.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js +0 -46
- package/dist/cjs/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js +0 -98
- package/dist/cjs/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/setinputfiles.spec.js +0 -148
- package/dist/cjs/lib/v3/tests/setinputfiles.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -156
- package/dist/cjs/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js +0 -156
- package/dist/cjs/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/testUtils.js +0 -54
- package/dist/cjs/lib/v3/tests/testUtils.js.map +0 -7
- package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js +0 -100
- package/dist/cjs/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/timeouts.spec.js +0 -32
- package/dist/cjs/lib/v3/tests/timeouts.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/user-data-dir.spec.js +0 -65
- package/dist/cjs/lib/v3/tests/user-data-dir.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/v3.config.js +0 -36
- package/dist/cjs/lib/v3/tests/v3.config.js.map +0 -7
- package/dist/cjs/lib/v3/tests/v3.dynamic.config.js +0 -67
- package/dist/cjs/lib/v3/tests/v3.dynamic.config.js.map +0 -7
- package/dist/cjs/lib/v3/tests/v3.playwright.config.js +0 -61
- package/dist/cjs/lib/v3/tests/v3.playwright.config.js.map +0 -7
- package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js +0 -593
- package/dist/cjs/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js +0 -97
- package/dist/cjs/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
- package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
- package/dist/cjs/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
- package/dist/cjs/tests/agent-execution-model.test.js +0 -139
- package/dist/cjs/tests/agent-execution-model.test.js.map +0 -7
- package/dist/cjs/tests/api-multiregion.test.js +0 -73
- package/dist/cjs/tests/api-multiregion.test.js.map +0 -7
- package/dist/cjs/tests/browserbase-session-accessors.test.js +0 -101
- package/dist/cjs/tests/browserbase-session-accessors.test.js.map +0 -7
- package/dist/cjs/tests/cache-llm-resolution.test.js +0 -187
- package/dist/cjs/tests/cache-llm-resolution.test.js.map +0 -7
- package/dist/cjs/tests/helpers/mockCDPSession.js +0 -50
- package/dist/cjs/tests/helpers/mockCDPSession.js.map +0 -7
- package/dist/cjs/tests/llm-provider.test.js +0 -57
- package/dist/cjs/tests/llm-provider.test.js.map +0 -7
- package/dist/cjs/tests/model-deprecation.test.js +0 -132
- package/dist/cjs/tests/model-deprecation.test.js.map +0 -7
- package/dist/cjs/tests/model-utils.test.js +0 -43
- package/dist/cjs/tests/model-utils.test.js.map +0 -7
- package/dist/cjs/tests/page-snapshot.test.js +0 -58
- package/dist/cjs/tests/page-snapshot.test.js.map +0 -7
- package/dist/cjs/tests/public-api/export-surface.test.js +0 -77
- package/dist/cjs/tests/public-api/export-surface.test.js.map +0 -7
- package/dist/cjs/tests/public-api/llm-and-agents.test.js +0 -151
- package/dist/cjs/tests/public-api/llm-and-agents.test.js.map +0 -7
- package/dist/cjs/tests/public-api/public-error-types.test.js +0 -106
- package/dist/cjs/tests/public-api/public-error-types.test.js.map +0 -7
- package/dist/cjs/tests/public-api/public-types.test.js +0 -74
- package/dist/cjs/tests/public-api/public-types.test.js.map +0 -7
- package/dist/cjs/tests/public-api/runtime-utils.test.js +0 -53
- package/dist/cjs/tests/public-api/runtime-utils.test.js.map +0 -7
- package/dist/cjs/tests/public-api/schema-utils.test.js +0 -100
- package/dist/cjs/tests/public-api/schema-utils.test.js.map +0 -7
- package/dist/cjs/tests/public-api/timeout-error-types.test.js +0 -103
- package/dist/cjs/tests/public-api/timeout-error-types.test.js.map +0 -7
- package/dist/cjs/tests/public-api/tool-type-export.test.js +0 -47
- package/dist/cjs/tests/public-api/tool-type-export.test.js.map +0 -7
- package/dist/cjs/tests/public-api/v3-core.test.js +0 -105
- package/dist/cjs/tests/public-api/v3-core.test.js.map +0 -7
- package/dist/cjs/tests/safety-confirmation.test.js +0 -134
- package/dist/cjs/tests/safety-confirmation.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-a11y-resolvers.test.js +0 -370
- package/dist/cjs/tests/snapshot-a11y-resolvers.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js +0 -294
- package/dist/cjs/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-capture-orchestration.test.js +0 -405
- package/dist/cjs/tests/snapshot-capture-orchestration.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-cbor.test.js +0 -197
- package/dist/cjs/tests/snapshot-cbor.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-dom-session-builders.test.js +0 -246
- package/dist/cjs/tests/snapshot-dom-session-builders.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-dom-tree-utils.test.js +0 -104
- package/dist/cjs/tests/snapshot-dom-tree-utils.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js +0 -45
- package/dist/cjs/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-frame-merge.test.js +0 -388
- package/dist/cjs/tests/snapshot-frame-merge.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-tree-format-utils.test.js +0 -106
- package/dist/cjs/tests/snapshot-tree-format-utils.test.js.map +0 -7
- package/dist/cjs/tests/snapshot-xpath-utils.test.js +0 -74
- package/dist/cjs/tests/snapshot-xpath-utils.test.js.map +0 -7
- package/dist/cjs/tests/timeout-handlers.test.js +0 -864
- package/dist/cjs/tests/timeout-handlers.test.js.map +0 -7
- package/dist/cjs/tests/understudy-command-exception.test.js +0 -52
- package/dist/cjs/tests/understudy-command-exception.test.js.map +0 -7
- package/dist/cjs/tests/xpath-parser.test.js +0 -314
- package/dist/cjs/tests/xpath-parser.test.js.map +0 -7
- package/dist/cjs/tests/xpath-resolver.test.js +0 -70
- package/dist/cjs/tests/xpath-resolver.test.js.map +0 -7
- package/dist/cjs/tests/zod-enum-compatibility.test.js +0 -119
- package/dist/cjs/tests/zod-enum-compatibility.test.js.map +0 -7
- package/dist/esm/lib/v3/dom/build/rerender-index.d.ts +0 -0
- package/dist/esm/lib/v3/dom/build/rerender-index.js.map +0 -1
- package/dist/esm/lib/v3/dom/build/v3-index.d.ts +0 -0
- package/dist/esm/lib/v3/dom/build/v3-index.js.map +0 -1
- package/dist/esm/lib/v3/dom/genA11yScripts.js +0 -54
- package/dist/esm/lib/v3/dom/genA11yScripts.js.map +0 -1
- package/dist/esm/lib/v3/dom/genDomScripts.js +0 -38
- package/dist/esm/lib/v3/dom/genDomScripts.js.map +0 -1
- package/dist/esm/lib/v3/dom/genLocatorScripts.js +0 -51
- package/dist/esm/lib/v3/dom/genLocatorScripts.js.map +0 -1
- package/dist/esm/lib/v3/dom/genScreenshotScripts.js +0 -37
- package/dist/esm/lib/v3/dom/genScreenshotScripts.js.map +0 -1
- package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js +0 -113
- package/dist/esm/lib/v3/tests/agent-abort-signal.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js +0 -80
- package/dist/esm/lib/v3/tests/agent-cache-self-heal.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-callbacks.spec.js +0 -374
- package/dist/esm/lib/v3/tests/agent-callbacks.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js +0 -357
- package/dist/esm/lib/v3/tests/agent-experimental-validation.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js +0 -247
- package/dist/esm/lib/v3/tests/agent-hybrid-mode.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js +0 -105
- package/dist/esm/lib/v3/tests/agent-message-continuation.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/agent-streaming.spec.js +0 -126
- package/dist/esm/lib/v3/tests/agent-streaming.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js +0 -44
- package/dist/esm/lib/v3/tests/cdp-session-detached.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/click-count.spec.js +0 -147
- package/dist/esm/lib/v3/tests/click-count.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js +0 -54
- package/dist/esm/lib/v3/tests/connect-to-existing-browser.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/context-addInitScript.spec.js +0 -176
- package/dist/esm/lib/v3/tests/context-addInitScript.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/default-page-tracking.spec.js +0 -53
- package/dist/esm/lib/v3/tests/default-page-tracking.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/downloads.spec.js +0 -58
- package/dist/esm/lib/v3/tests/downloads.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js +0 -53
- package/dist/esm/lib/v3/tests/frame-get-location-and-click.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js +0 -493
- package/dist/esm/lib/v3/tests/iframe-ctx-addInitScript.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/keep-alive.child.js +0 -92
- package/dist/esm/lib/v3/tests/keep-alive.child.js.map +0 -7
- package/dist/esm/lib/v3/tests/keep-alive.helpers.js +0 -532
- package/dist/esm/lib/v3/tests/keep-alive.helpers.js.map +0 -7
- package/dist/esm/lib/v3/tests/keep-alive.spec.js +0 -19
- package/dist/esm/lib/v3/tests/keep-alive.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/keyboard.spec.js +0 -296
- package/dist/esm/lib/v3/tests/keyboard.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js +0 -159
- package/dist/esm/lib/v3/tests/locator-backend-node-id.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-content-methods.spec.js +0 -192
- package/dist/esm/lib/v3/tests/locator-content-methods.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js +0 -108
- package/dist/esm/lib/v3/tests/locator-count-iframe.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-count.spec.js +0 -71
- package/dist/esm/lib/v3/tests/locator-count.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-fill.spec.js +0 -119
- package/dist/esm/lib/v3/tests/locator-fill.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-input-methods.spec.js +0 -137
- package/dist/esm/lib/v3/tests/locator-input-methods.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-nth.spec.js +0 -157
- package/dist/esm/lib/v3/tests/locator-nth.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/locator-select-option.spec.js +0 -243
- package/dist/esm/lib/v3/tests/locator-select-option.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/logger-initialization.spec.js +0 -552
- package/dist/esm/lib/v3/tests/logger-initialization.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js +0 -269
- package/dist/esm/lib/v3/tests/multi-instance-logger.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/nested-div.spec.js +0 -23
- package/dist/esm/lib/v3/tests/nested-div.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-addInitScript.spec.js +0 -90
- package/dist/esm/lib/v3/tests/page-addInitScript.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-console.spec.js +0 -56
- package/dist/esm/lib/v3/tests/page-console.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js +0 -418
- package/dist/esm/lib/v3/tests/page-drag-and-drop.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-goto-response.spec.js +0 -35
- package/dist/esm/lib/v3/tests/page-goto-response.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-hover.spec.js +0 -167
- package/dist/esm/lib/v3/tests/page-hover.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-screenshot.spec.js +0 -273
- package/dist/esm/lib/v3/tests/page-screenshot.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-scroll.spec.js +0 -182
- package/dist/esm/lib/v3/tests/page-scroll.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/page-send-cdp.spec.js +0 -46
- package/dist/esm/lib/v3/tests/page-send-cdp.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js +0 -98
- package/dist/esm/lib/v3/tests/perform-understudy-method.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/setinputfiles.spec.js +0 -126
- package/dist/esm/lib/v3/tests/setinputfiles.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js +0 -134
- package/dist/esm/lib/v3/tests/shadow-iframe-oopif.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js +0 -134
- package/dist/esm/lib/v3/tests/shadow-iframe-spif.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/testUtils.js +0 -31
- package/dist/esm/lib/v3/tests/testUtils.js.map +0 -7
- package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js +0 -100
- package/dist/esm/lib/v3/tests/text-selector-innermost.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/timeouts.spec.js +0 -32
- package/dist/esm/lib/v3/tests/timeouts.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/user-data-dir.spec.js +0 -43
- package/dist/esm/lib/v3/tests/user-data-dir.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/v3.config.js +0 -15
- package/dist/esm/lib/v3/tests/v3.config.js.map +0 -7
- package/dist/esm/lib/v3/tests/v3.dynamic.config.js +0 -43
- package/dist/esm/lib/v3/tests/v3.dynamic.config.js.map +0 -7
- package/dist/esm/lib/v3/tests/v3.playwright.config.js +0 -41
- package/dist/esm/lib/v3/tests/v3.playwright.config.js.map +0 -7
- package/dist/esm/lib/v3/tests/wait-for-selector.spec.js +0 -593
- package/dist/esm/lib/v3/tests/wait-for-selector.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js +0 -97
- package/dist/esm/lib/v3/tests/wait-for-timeout.spec.js.map +0 -7
- package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js +0 -77
- package/dist/esm/lib/v3/tests/xpath-for-location-deep.spec.js.map +0 -7
- package/dist/esm/tests/agent-execution-model.test.js +0 -139
- package/dist/esm/tests/agent-execution-model.test.js.map +0 -7
- package/dist/esm/tests/api-multiregion.test.js +0 -73
- package/dist/esm/tests/api-multiregion.test.js.map +0 -7
- package/dist/esm/tests/browserbase-session-accessors.test.js +0 -101
- package/dist/esm/tests/browserbase-session-accessors.test.js.map +0 -7
- package/dist/esm/tests/cache-llm-resolution.test.js +0 -187
- package/dist/esm/tests/cache-llm-resolution.test.js.map +0 -7
- package/dist/esm/tests/helpers/mockCDPSession.js +0 -27
- package/dist/esm/tests/helpers/mockCDPSession.js.map +0 -7
- package/dist/esm/tests/llm-provider.test.js +0 -57
- package/dist/esm/tests/llm-provider.test.js.map +0 -7
- package/dist/esm/tests/model-deprecation.test.js +0 -135
- package/dist/esm/tests/model-deprecation.test.js.map +0 -7
- package/dist/esm/tests/model-utils.test.js +0 -43
- package/dist/esm/tests/model-utils.test.js.map +0 -7
- package/dist/esm/tests/page-snapshot.test.js +0 -36
- package/dist/esm/tests/page-snapshot.test.js.map +0 -7
- package/dist/esm/tests/public-api/export-surface.test.js +0 -55
- package/dist/esm/tests/public-api/export-surface.test.js.map +0 -7
- package/dist/esm/tests/public-api/llm-and-agents.test.js +0 -129
- package/dist/esm/tests/public-api/llm-and-agents.test.js.map +0 -7
- package/dist/esm/tests/public-api/public-error-types.test.js +0 -73
- package/dist/esm/tests/public-api/public-error-types.test.js.map +0 -7
- package/dist/esm/tests/public-api/public-types.test.js +0 -74
- package/dist/esm/tests/public-api/public-types.test.js.map +0 -7
- package/dist/esm/tests/public-api/runtime-utils.test.js +0 -31
- package/dist/esm/tests/public-api/runtime-utils.test.js.map +0 -7
- package/dist/esm/tests/public-api/schema-utils.test.js +0 -78
- package/dist/esm/tests/public-api/schema-utils.test.js.map +0 -7
- package/dist/esm/tests/public-api/timeout-error-types.test.js +0 -81
- package/dist/esm/tests/public-api/timeout-error-types.test.js.map +0 -7
- package/dist/esm/tests/public-api/tool-type-export.test.js +0 -25
- package/dist/esm/tests/public-api/tool-type-export.test.js.map +0 -7
- package/dist/esm/tests/public-api/v3-core.test.js +0 -83
- package/dist/esm/tests/public-api/v3-core.test.js.map +0 -7
- package/dist/esm/tests/safety-confirmation.test.js +0 -134
- package/dist/esm/tests/safety-confirmation.test.js.map +0 -7
- package/dist/esm/tests/snapshot-a11y-resolvers.test.js +0 -348
- package/dist/esm/tests/snapshot-a11y-resolvers.test.js.map +0 -7
- package/dist/esm/tests/snapshot-a11y-tree-utils.test.js +0 -300
- package/dist/esm/tests/snapshot-a11y-tree-utils.test.js.map +0 -7
- package/dist/esm/tests/snapshot-capture-orchestration.test.js +0 -383
- package/dist/esm/tests/snapshot-capture-orchestration.test.js.map +0 -7
- package/dist/esm/tests/snapshot-cbor.test.js +0 -197
- package/dist/esm/tests/snapshot-cbor.test.js.map +0 -7
- package/dist/esm/tests/snapshot-dom-session-builders.test.js +0 -251
- package/dist/esm/tests/snapshot-dom-session-builders.test.js.map +0 -7
- package/dist/esm/tests/snapshot-dom-tree-utils.test.js +0 -109
- package/dist/esm/tests/snapshot-dom-tree-utils.test.js.map +0 -7
- package/dist/esm/tests/snapshot-focus-selectors-utils.test.js +0 -49
- package/dist/esm/tests/snapshot-focus-selectors-utils.test.js.map +0 -7
- package/dist/esm/tests/snapshot-frame-merge.test.js +0 -391
- package/dist/esm/tests/snapshot-frame-merge.test.js.map +0 -7
- package/dist/esm/tests/snapshot-tree-format-utils.test.js +0 -113
- package/dist/esm/tests/snapshot-tree-format-utils.test.js.map +0 -7
- package/dist/esm/tests/snapshot-xpath-utils.test.js +0 -79
- package/dist/esm/tests/snapshot-xpath-utils.test.js.map +0 -7
- package/dist/esm/tests/timeout-handlers.test.js +0 -850
- package/dist/esm/tests/timeout-handlers.test.js.map +0 -7
- package/dist/esm/tests/understudy-command-exception.test.js +0 -55
- package/dist/esm/tests/understudy-command-exception.test.js.map +0 -7
- package/dist/esm/tests/xpath-parser.test.js +0 -317
- package/dist/esm/tests/xpath-parser.test.js.map +0 -7
- package/dist/esm/tests/xpath-resolver.test.js +0 -73
- package/dist/esm/tests/xpath-resolver.test.js.map +0 -7
- package/dist/esm/tests/zod-enum-compatibility.test.js +0 -97
- package/dist/esm/tests/zod-enum-compatibility.test.js.map +0 -7
- /package/dist/cjs/{lib/v3/dom/genA11yScripts.d.ts → tests/cache-variables.test.d.ts} +0 -0
- /package/dist/cjs/{lib/v3/dom/genDomScripts.d.ts → tests/integration/agent-abort-signal.spec.d.ts} +0 -0
- /package/dist/cjs/{lib/v3/dom/genLocatorScripts.d.ts → tests/integration/agent-cache-self-heal.spec.d.ts} +0 -0
- /package/dist/cjs/{lib/v3/dom/genScreenshotScripts.d.ts → tests/integration/agent-callbacks.spec.d.ts} +0 -0
- /package/dist/{esm/lib/v3/dom/genA11yScripts.d.ts → cjs/tests/integration/agent-experimental-validation.spec.d.ts} +0 -0
- /package/dist/{esm/lib/v3/dom/genDomScripts.d.ts → cjs/tests/integration/agent-hybrid-mode.spec.d.ts} +0 -0
- /package/dist/{esm/lib/v3/dom/genLocatorScripts.d.ts → cjs/tests/integration/agent-message-continuation.spec.d.ts} +0 -0
- /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":"locator.js","sourceRoot":"","sources":["../../../../../lib/v3/understudy/locator.ts"],"names":[],"mappings":"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","sourcesContent":["// lib/v3/understudy/locator.ts\nimport { Protocol } from \"devtools-protocol\";\nimport * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport {\n locatorScriptBootstrap,\n locatorScriptGlobalRefs,\n locatorScriptSources,\n} from \"../dom/build/locatorScripts.generated.js\";\nimport type { Frame } from \"./frame.js\";\nimport {\n FrameSelectorResolver,\n type SelectorQuery,\n} from \"./selectorResolver.js\";\nimport {\n StagehandElementNotFoundError,\n StagehandInvalidArgumentError,\n StagehandLocatorError,\n ElementNotVisibleError,\n} from \"../types/public/sdkErrors.js\";\nimport { normalizeInputFiles } from \"./fileUploadUtils.js\";\nimport { SetInputFilesArgument, MouseButton } from \"../types/public/locator.js\";\nimport { NormalizedFilePayload } from \"../types/private/locator.js\";\n\nconst MAX_REMOTE_UPLOAD_BYTES = 50 * 1024 * 1024; // 50MB guard copied from Playwright\n\n/**\n * Locator\n *\n * Purpose:\n * A small, CDP-based element interaction helper scoped to a specific `Frame`.\n * It resolves a CSS/XPath selector inside the frame’s **isolated world**, and then\n * performs low-level actions (click, type, select) using DOM/Runtime/Input\n * protocol domains with minimal abstraction.\n *\n * Key change:\n * - Prefer **objectId**-based CDP calls (scroll, geometry) to avoid brittle\n * frontend nodeId mappings. nodeId is resolved on a best-effort basis and\n * returned for compatibility, but actions do not depend on it.\n *\n * Notes:\n * - Resolution is lazy: every action resolves the selector again.\n * - Uses `Page.createIsolatedWorld` so evaluation is isolated from page scripts.\n * - Releases remote objects (`Runtime.releaseObject`) where appropriate.\n */\nexport class Locator {\n private readonly selectorResolver: FrameSelectorResolver;\n\n private readonly selectorQuery: SelectorQuery;\n\n // -1 means \"no explicit nth()\"; default locator resolves to first match for actions.\n private readonly nthIndex: number;\n\n constructor(\n private readonly frame: Frame,\n private readonly selector: string,\n private readonly options?: { deep?: boolean; depth?: number },\n nthIndex: number = -1,\n ) {\n this.selectorResolver = new FrameSelectorResolver(this.frame);\n this.selectorQuery = FrameSelectorResolver.parseSelector(selector);\n const normalized = Number.isFinite(nthIndex) ? Math.floor(nthIndex) : -1;\n this.nthIndex = normalized < 0 ? -1 : normalized;\n }\n\n /** Return the owning Frame for this locator (typed accessor, no private access). */\n public getFrame(): Frame {\n return this.frame;\n }\n\n /**\n * Set files on an <input type=\"file\"> element.\n *\n * Mirrors Playwright's Locator.setInputFiles basics:\n * - Accepts file path(s) or payload object(s) { name, mimeType, buffer }.\n * - Uses CDP DOM.setFileInputFiles under the hood.\n * - Best‑effort dispatches change/input via CDP (Chrome does by default).\n * - Passing an empty array clears the selection.\n */\n public async setInputFiles(files: SetInputFilesArgument): Promise<void> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n\n const tempFiles: string[] = [];\n\n try {\n // Validate element is an <input type=\"file\">\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.ensureFileInputElement,\n returnByValue: true,\n },\n );\n const ok = Boolean(res.result.value);\n if (!ok)\n throw new StagehandInvalidArgumentError(\n 'Target is not an <input type=\"file\"> element',\n );\n } catch (e) {\n throw new StagehandInvalidArgumentError(\n e instanceof Error\n ? e.message\n : \"Unable to verify file input element\",\n );\n }\n\n const normalized = await normalizeInputFiles(files);\n\n if (!normalized.length) {\n await session.send<never>(\"DOM.setFileInputFiles\", {\n objectId,\n files: [],\n });\n return;\n }\n\n if (this.frame.isBrowserRemote()) {\n await this.assignFilesViaPayloadInjection(objectId, normalized);\n return;\n }\n\n const filePaths: string[] = [];\n for (const payload of normalized) {\n if (payload.absolutePath) {\n filePaths.push(payload.absolutePath);\n continue;\n }\n const ext = path.extname(payload.name);\n const tmp = path.join(\n os.tmpdir(),\n `stagehand-upload-${Date.now()}-${Math.random().toString(36).slice(2)}${ext}`,\n );\n await fs.promises.writeFile(tmp, payload.buffer);\n tempFiles.push(tmp);\n filePaths.push(tmp);\n }\n\n await session.send<never>(\"DOM.setFileInputFiles\", {\n objectId,\n files: filePaths,\n });\n } finally {\n // Cleanup: release element and remove any temporary files we created\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n for (const p of tempFiles) {\n try {\n await fs.promises.unlink(p);\n } catch {\n // ignore\n }\n }\n }\n }\n\n /**\n * Remote browser fallback: build File objects inside the page and attach them via JS.\n *\n * When Stagehand is driving a browser that cannot see the local filesystem (Browserbase,\n * remote CDP, etc.), CDP's DOM.setFileInputFiles would fail because Chrome can't reach\n * our temp files. Instead we base64-encode the payloads, send them into the page, and\n * let a DOM helper create File objects + dispatch change/input events.\n */\n private async assignFilesViaPayloadInjection(\n objectId: Protocol.Runtime.RemoteObjectId,\n files: NormalizedFilePayload[],\n ): Promise<void> {\n const session = this.frame.session;\n\n for (const payload of files) {\n if (payload.buffer.length > MAX_REMOTE_UPLOAD_BYTES) {\n throw new StagehandInvalidArgumentError(\n `setInputFiles(): file \"${payload.name}\" is larger than the 50MB limit for remote uploads`,\n );\n }\n }\n\n const serialized = files.map((payload) => ({\n name: payload.name,\n mimeType: payload.mimeType,\n lastModified: payload.lastModified,\n base64: payload.buffer.toString(\"base64\"),\n }));\n\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration:\n locatorScriptSources.assignFilePayloadsToInputElement,\n arguments: [\n {\n value: serialized,\n },\n ],\n returnByValue: true,\n },\n );\n\n const ok = Boolean(res.result?.value);\n if (!ok) {\n throw new StagehandInvalidArgumentError(\n \"Unable to assign file payloads to remote input element\",\n );\n }\n }\n\n /**\n * Return the DOM backendNodeId for this locator's target element.\n * Useful for identity comparisons without needing element handles.\n */\n async backendNodeId(): Promise<Protocol.DOM.BackendNodeId> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n await session.send(\"DOM.enable\").catch(() => {});\n const { node } = await session.send<{ node: Protocol.DOM.Node }>(\n \"DOM.describeNode\",\n { objectId },\n );\n return node.backendNodeId as Protocol.DOM.BackendNodeId;\n } finally {\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n }\n }\n\n /** Return how many nodes the current selector resolves to. */\n public async count(): Promise<number> {\n const session = this.frame.session;\n await session.send(\"Runtime.enable\");\n await session.send(\"DOM.enable\");\n return this.selectorResolver.count(this.selectorQuery);\n }\n\n /**\n * Return the center of the element's bounding box in the owning frame's viewport\n * (CSS pixels), rounded to integers. Scrolls into view best-effort.\n */\n public async centroid(): Promise<{ x: number; y: number }> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n await session\n .send(\"DOM.scrollIntoViewIfNeeded\", { objectId })\n .catch(() => {});\n const box = await session.send<Protocol.DOM.GetBoxModelResponse>(\n \"DOM.getBoxModel\",\n { objectId },\n );\n if (!box.model) throw new ElementNotVisibleError(this.selector);\n const { cx, cy } = this.centerFromBoxContent(box.model.content);\n return { x: Math.round(cx), y: Math.round(cy) };\n } finally {\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n }\n }\n\n /**\n * Highlight the element's bounding box using the CDP Overlay domain.\n * - Scrolls element into view best-effort.\n * - Shows a semi-transparent overlay briefly, then hides it.\n */\n public async highlight(options?: {\n durationMs?: number;\n borderColor?: { r: number; g: number; b: number; a?: number };\n contentColor?: { r: number; g: number; b: number; a?: number };\n }): Promise<void> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n const duration = Math.max(0, options?.durationMs ?? 800);\n\n const borderColor = options?.borderColor ?? { r: 255, g: 0, b: 0, a: 0.9 };\n const contentColor =\n options?.contentColor ?? ({ r: 255, g: 200, b: 0, a: 0.2 } as const);\n\n try {\n await session.send(\"Overlay.enable\").catch(() => {});\n await session\n .send(\"DOM.scrollIntoViewIfNeeded\", { objectId })\n .catch(() => {});\n\n // Prefer backendNodeId to keep highlight stable even if objectId is released.\n await session.send(\"DOM.enable\").catch(() => {});\n let backendNodeId: Protocol.DOM.BackendNodeId | undefined;\n try {\n const { node } = await session.send<{ node: Protocol.DOM.Node }>(\n \"DOM.describeNode\",\n { objectId },\n );\n backendNodeId = node.backendNodeId as Protocol.DOM.BackendNodeId;\n } catch {\n backendNodeId = undefined;\n }\n\n const highlightConfig: Protocol.Overlay.HighlightConfig = {\n showInfo: false,\n showStyles: false,\n showRulers: false,\n showExtensionLines: false,\n borderColor,\n contentColor,\n } as Protocol.Overlay.HighlightConfig;\n\n const highlightOnce = async () => {\n await session.send<never>(\"Overlay.highlightNode\", {\n ...(backendNodeId ? { backendNodeId } : { objectId }),\n highlightConfig,\n });\n };\n\n // Initial draw\n await highlightOnce();\n\n // Keep alive until duration elapses to resist overlay clears on mouse move/repaints\n if (duration > 0) {\n const start = Date.now();\n const tick = Math.min(300, Math.max(100, Math.floor(duration / 50)));\n while (Date.now() - start < duration) {\n await new Promise((r) => setTimeout(r, tick));\n try {\n await highlightOnce();\n } catch {\n // ignore transient errors\n }\n }\n await session.send<never>(\"Overlay.hideHighlight\").catch(() => {});\n }\n } finally {\n // Releasing objectId should not affect highlight when using backendNodeId.\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n }\n }\n\n /**\n * Move the mouse cursor to the element's visual center without clicking.\n * - Scrolls into view best-effort, resolves geometry, then dispatches a mouse move.\n */\n async hover(): Promise<void> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n await session\n .send(\"DOM.scrollIntoViewIfNeeded\", { objectId })\n .catch(() => {});\n\n const box = await session.send<Protocol.DOM.GetBoxModelResponse>(\n \"DOM.getBoxModel\",\n { objectId },\n );\n if (!box.model) throw new ElementNotVisibleError(this.selector);\n const { cx, cy } = this.centerFromBoxContent(box.model.content);\n\n await session.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseMoved\",\n x: cx,\n y: cy,\n button: \"none\",\n } as Protocol.Input.DispatchMouseEventRequest);\n } finally {\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n }\n }\n\n /**\n * Click the element at its visual center.\n * Steps:\n * 1) Resolve selector to { objectId } in the frame world.\n * 2) Scroll into view via `DOM.scrollIntoViewIfNeeded({ objectId })`.\n * 3) Read geometry via `DOM.getBoxModel({ objectId })` → compute a center point.\n * 4) Synthesize mouse press + release via `Input.dispatchMouseEvent`.\n */\n async click(options?: {\n button?: MouseButton;\n clickCount?: number;\n }): Promise<void> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n\n const button = options?.button ?? \"left\";\n const clickCount = options?.clickCount ?? 1;\n\n try {\n // Scroll into view using objectId (avoids frontend nodeId dependence)\n await session.send(\"DOM.scrollIntoViewIfNeeded\", { objectId });\n\n // Get geometry using objectId\n const box = await session.send<Protocol.DOM.GetBoxModelResponse>(\n \"DOM.getBoxModel\",\n { objectId },\n );\n if (!box.model) throw new ElementNotVisibleError(this.selector);\n const { cx, cy } = this.centerFromBoxContent(box.model.content);\n\n // Dispatch click events in a pipelined burst to reduce inter-click delay\n // from network/CPU jitter between round trips.\n const dispatches: Array<Promise<unknown>> = [];\n dispatches.push(\n session.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseMoved\",\n x: cx,\n y: cy,\n button: \"none\",\n } as Protocol.Input.DispatchMouseEventRequest),\n );\n\n for (let i = 1; i <= clickCount; i++) {\n dispatches.push(\n session.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mousePressed\",\n x: cx,\n y: cy,\n button,\n clickCount: i,\n } as Protocol.Input.DispatchMouseEventRequest),\n );\n dispatches.push(\n session.send<never>(\"Input.dispatchMouseEvent\", {\n type: \"mouseReleased\",\n x: cx,\n y: cy,\n button,\n clickCount: i,\n } as Protocol.Input.DispatchMouseEventRequest),\n );\n }\n await Promise.all(dispatches);\n } finally {\n // release the element handle\n try {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n } catch {\n // If the context navigated or was destroyed (e.g., link opens new tab),\n // releaseObject may fail with -32000. Ignore as best-effort cleanup.\n }\n }\n }\n\n /**\n * Dispatch a DOM 'click' MouseEvent on the element itself.\n * - Does not synthesize real pointer input; directly dispatches an event.\n * - Useful for elements that rely on click handlers without needing hit-testing.\n */\n async sendClickEvent(options?: {\n bubbles?: boolean;\n cancelable?: boolean;\n composed?: boolean;\n detail?: number;\n }): Promise<void> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n const bubbles = options?.bubbles ?? true;\n const cancelable = options?.cancelable ?? true;\n const composed = options?.composed ?? true;\n const detail = options?.detail ?? 1;\n try {\n await session\n .send(\"DOM.scrollIntoViewIfNeeded\", { objectId })\n .catch(() => {});\n await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.dispatchDomClick,\n arguments: [\n {\n value: { bubbles, cancelable, composed, detail },\n },\n ],\n returnByValue: true,\n },\n );\n } finally {\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n }\n }\n\n /**\n * Scroll the element vertically to a given percentage (0–100).\n * - If the element is <html> or <body>, scrolls the window/document.\n * - Otherwise, scrolls the element itself via element.scrollTo.\n */\n async scrollTo(percent: number | string): Promise<void> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.scrollElementToPercent,\n arguments: [{ value: percent as unknown as number }],\n returnByValue: true,\n },\n );\n } finally {\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n }\n }\n\n /**\n * Fill an input/textarea/contenteditable element.\n * Mirrors Playwright semantics: the DOM helper either applies the native\n * value setter (for special input types) or asks us to type text via the CDP\n * Input domain after focusing/selecting.\n */\n async fill(value: string): Promise<void> {\n const session = this.frame.session;\n // Use the bundled locator globals; the raw fill snippet depends on helper symbols.\n const fillDeclaration = `function(value) { ${locatorScriptBootstrap}; return ${locatorScriptGlobalRefs.fillElementValue}.call(this, value); }`;\n const { objectId } = await this.resolveNode();\n\n let releaseNeeded = true;\n\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: fillDeclaration,\n arguments: [{ value }],\n returnByValue: true,\n },\n );\n if (res.exceptionDetails) {\n // prefer exception.description over text (eg \"Uncaught\")\n const message =\n res.exceptionDetails.exception?.description ??\n res.exceptionDetails.text ??\n \"Unknown exception during locator().fill()\";\n throw new StagehandLocatorError(\"Filling\", this.selector, message);\n }\n\n const result = res.result.value as\n | { status?: string; reason?: string; value?: string }\n | null\n | undefined;\n const status =\n typeof result === \"object\" && result ? result.status : undefined;\n\n if (status === \"done\") {\n return;\n }\n\n if (status === \"needsinput\") {\n // Release the current handle before synthesizing keyboard input to avoid leaking it.\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n releaseNeeded = false;\n\n const valueToType =\n typeof result?.value === \"string\" ? result.value : value;\n\n let prepared = false;\n try {\n const { objectId: prepObjectId } = await this.resolveNode();\n try {\n const prepRes =\n await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId: prepObjectId,\n functionDeclaration:\n locatorScriptSources.prepareElementForTyping,\n returnByValue: true,\n },\n );\n prepared = Boolean(prepRes.result.value);\n } finally {\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId: prepObjectId })\n .catch(() => {});\n }\n } catch {\n // Ignore preparation failures; we'll fall back to typing best-effort.\n }\n\n if (!prepared && valueToType.length > 0) {\n await this.type(valueToType);\n return;\n }\n\n if (valueToType.length === 0) {\n // Simulate deleting the currently selected text to clear the field.\n await session.send<never>(\"Input.dispatchKeyEvent\", {\n type: \"keyDown\",\n key: \"Backspace\",\n code: \"Backspace\",\n windowsVirtualKeyCode: 8,\n nativeVirtualKeyCode: 8,\n } as Protocol.Input.DispatchKeyEventRequest);\n await session.send<never>(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n key: \"Backspace\",\n code: \"Backspace\",\n windowsVirtualKeyCode: 8,\n nativeVirtualKeyCode: 8,\n } as Protocol.Input.DispatchKeyEventRequest);\n } else {\n await session.send<never>(\"Input.insertText\", { text: valueToType });\n }\n\n return;\n }\n\n if (status === \"error\") {\n const reason =\n typeof result?.reason === \"string\" && result.reason.length > 0\n ? result.reason\n : \"Failed to fill element\";\n throw new StagehandInvalidArgumentError(\n `Failed to fill element (${reason})`,\n );\n }\n\n // Backward compatibility: if no status is returned (older bundle), fall back to setter logic.\n if (!status) {\n await this.type(value);\n }\n } finally {\n if (releaseNeeded) {\n await session\n .send<never>(\"Runtime.releaseObject\", { objectId })\n .catch(() => {});\n }\n }\n }\n\n /**\n * Type text into the element (focuses first).\n * - Focus via element.focus() in page JS (no DOM.focus(nodeId)).\n * - If no delay, uses `Input.insertText` for efficiency.\n * - With delay, synthesizes `keyDown`/`keyUp` per character.\n */\n async type(text: string, options?: { delay?: number }): Promise<void> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n\n try {\n // Focus using JS (avoids DOM.focus(nodeId))\n await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.focusElement,\n returnByValue: true,\n },\n );\n\n if (!options?.delay) {\n await session.send<never>(\"Input.insertText\", { text });\n return;\n }\n\n for (const ch of text) {\n await session.send<never>(\"Input.dispatchKeyEvent\", {\n type: \"keyDown\",\n text: ch,\n key: ch,\n } as Protocol.Input.DispatchKeyEventRequest);\n\n await session.send<never>(\"Input.dispatchKeyEvent\", {\n type: \"keyUp\",\n text: ch,\n key: ch,\n } as Protocol.Input.DispatchKeyEventRequest);\n\n await new Promise((r) => setTimeout(r, options.delay));\n }\n } finally {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n }\n }\n\n /**\n * Select one or more options on a `<select>` element.\n * Returns the values actually selected after the operation.\n */\n async selectOption(values: string | string[]): Promise<string[]> {\n const session = this.frame.session;\n const desired = Array.isArray(values) ? values : [values];\n const { objectId } = await this.resolveNode();\n\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.selectElementOptions,\n arguments: [{ value: desired }],\n returnByValue: true,\n },\n );\n\n return (res.result.value as string[]) ?? [];\n } finally {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n }\n }\n\n /**\n * Return true if the element is attached and visible (rough heuristic).\n */\n async isVisible(): Promise<boolean> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.isElementVisible,\n returnByValue: true,\n },\n );\n return Boolean(res.result.value);\n } finally {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n }\n }\n\n /**\n * Return true if the element is an input[type=checkbox|radio] and is checked.\n * Also considers aria-checked for ARIA widgets.\n */\n async isChecked(): Promise<boolean> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.isElementChecked,\n returnByValue: true,\n },\n );\n return Boolean(res.result.value);\n } finally {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n }\n }\n\n /**\n * Return the element's input value (for input/textarea/select/contenteditable).\n */\n async inputValue(): Promise<string> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.readElementInputValue,\n returnByValue: true,\n },\n );\n return String(res.result.value ?? \"\");\n } finally {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n }\n }\n\n /**\n * Return the element's textContent (raw, not innerText).\n */\n async textContent(): Promise<string> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.readElementTextContent,\n returnByValue: true,\n },\n );\n return String(res.result.value ?? \"\");\n } finally {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n }\n }\n\n /**\n * Return the element's innerHTML string.\n */\n async innerHtml(): Promise<string> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.readElementInnerHTML,\n returnByValue: true,\n },\n );\n return String(res.result.value ?? \"\");\n } finally {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n }\n }\n\n /**\n * Return the element's innerText (layout-aware, visible text).\n */\n async innerText(): Promise<string> {\n const session = this.frame.session;\n const { objectId } = await this.resolveNode();\n try {\n const res = await session.send<Protocol.Runtime.CallFunctionOnResponse>(\n \"Runtime.callFunctionOn\",\n {\n objectId,\n functionDeclaration: locatorScriptSources.readElementInnerText,\n returnByValue: true,\n },\n );\n return String(res.result.value ?? \"\");\n } finally {\n await session.send<never>(\"Runtime.releaseObject\", { objectId });\n }\n }\n\n /**\n * Return a locator narrowed to the first match.\n */\n first(): Locator {\n return this.nth(0);\n }\n\n /** Return a locator narrowed to the element at the given zero-based index. */\n nth(index: number): Locator {\n const value = Number(index);\n if (!Number.isFinite(value) || value < 0) {\n throw new StagehandInvalidArgumentError(\n \"locator().nth() expects a non-negative index\",\n );\n }\n\n const nextIndex = Math.floor(value);\n if (nextIndex === this.nthIndex) {\n return this;\n }\n\n return new Locator(this.frame, this.selector, this.options, nextIndex);\n }\n\n // ---------- helpers ----------\n\n /**\n * Resolve `this.selector` within the frame to `{ objectId, nodeId? }`:\n * Delegates to a shared selector resolver so all selector logic stays in sync.\n */\n public async resolveNode(): Promise<{\n nodeId: Protocol.DOM.NodeId | null;\n objectId: Protocol.Runtime.RemoteObjectId;\n }> {\n const session = this.frame.session;\n\n await session.send(\"Runtime.enable\");\n await session.send(\"DOM.enable\");\n\n const index = this.nthIndex < 0 ? 0 : this.nthIndex;\n const resolved = await this.selectorResolver.resolveAtIndex(\n this.selectorQuery,\n index,\n );\n if (!resolved) {\n throw new StagehandElementNotFoundError([this.selector]);\n }\n\n return resolved;\n }\n\n /**\n * Resolve all matching nodes for this locator.\n * If the locator is narrowed via nth(), only that index is returned.\n */\n public async resolveNodesForMask(): Promise<\n Array<{\n nodeId: Protocol.DOM.NodeId | null;\n objectId: Protocol.Runtime.RemoteObjectId;\n }>\n > {\n const session = this.frame.session;\n\n await session.send(\"Runtime.enable\");\n await session.send(\"DOM.enable\");\n\n if (this.nthIndex >= 0) {\n const resolved = await this.selectorResolver.resolveAtIndex(\n this.selectorQuery,\n this.nthIndex,\n );\n if (!resolved) {\n throw new StagehandElementNotFoundError([this.selector]);\n }\n return [resolved];\n }\n\n const resolved = await this.selectorResolver.resolveAll(this.selectorQuery);\n if (!resolved.length) {\n throw new StagehandElementNotFoundError([this.selector]);\n }\n return resolved;\n }\n\n /** Compute a center point from a BoxModel content quad */\n private centerFromBoxContent(content: number[]): { cx: number; cy: number } {\n // content is [x1,y1, x2,y2, x3,y3, x4,y4]\n if (!content || content.length < 8) {\n throw new StagehandInvalidArgumentError(\"Invalid box model content quad\");\n }\n const xs = [content[0], content[2], content[4], content[6]];\n const ys = [content[1], content[3], content[5], content[7]];\n const cx = (xs[0] + xs[1] + xs[2] + xs[3]) / 4;\n const cy = (ys[0] + ys[1] + ys[2] + ys[3]) / 4;\n return { cx, cy };\n }\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildLocatorInvocation = buildLocatorInvocation;
|
|
4
|
+
const locatorScripts_generated_js_1 = require("../dom/build/locatorScripts.generated.js");
|
|
5
|
+
/**
|
|
6
|
+
* Build an expression that injects the locator bundle (if needed) and invokes a
|
|
7
|
+
* specific helper via its stable global reference. This keeps Runtime.evaluate
|
|
8
|
+
* payloads tiny while guaranteeing our selector utilities are present in any
|
|
9
|
+
* execution context.
|
|
10
|
+
*/
|
|
11
|
+
function buildLocatorInvocation(name, args) {
|
|
12
|
+
const invocation = `${locatorScripts_generated_js_1.locatorScriptGlobalRefs[name]}(${args.join(", ")})`;
|
|
13
|
+
return `(() => { ${locatorScripts_generated_js_1.locatorScriptBootstrap}; return ${invocation}; })()`;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=locatorInvocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locatorInvocation.js","sourceRoot":"","sources":["../../../../../lib/v3/understudy/locatorInvocation.ts"],"names":[],"mappings":";;AAYA,wDAMC;AAlBD,0FAIkD;AAElD;;;;;GAKG;AACH,SAAgB,sBAAsB,CACpC,IAAuB,EACvB,IAAc;IAEd,MAAM,UAAU,GAAG,GAAG,qDAAuB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC1E,OAAO,YAAY,oDAAsB,YAAY,UAAU,QAAQ,CAAC;AAC1E,CAAC","sourcesContent":["import {\n locatorScriptBootstrap,\n locatorScriptGlobalRefs,\n type LocatorScriptName,\n} from \"../dom/build/locatorScripts.generated.js\";\n\n/**\n * Build an expression that injects the locator bundle (if needed) and invokes a\n * specific helper via its stable global reference. This keeps Runtime.evaluate\n * payloads tiny while guaranteeing our selector utilities are present in any\n * execution context.\n */\nexport function buildLocatorInvocation(\n name: LocatorScriptName,\n args: string[],\n): string {\n const invocation = `${locatorScriptGlobalRefs[name]}(${args.join(\", \")})`;\n return `(() => { ${locatorScriptBootstrap}; return ${invocation}; })()`;\n}\n"]}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* NavigationResponseTracker
|
|
4
|
+
* -------------------------
|
|
5
|
+
*
|
|
6
|
+
* Tracks DevTools Protocol network events for a single navigation command so
|
|
7
|
+
* Stagehand can surface a Playwright-like response object from `Page.goto` and
|
|
8
|
+
* related APIs. The tracker listens for `Network.responseReceived` events that
|
|
9
|
+
* correspond to the targeted document navigation, handles loader-id churn that
|
|
10
|
+
* arises from redirects or preloading, and enriches the resulting
|
|
11
|
+
* `Response` with extra header information. It also observes
|
|
12
|
+
* `Network.loadingFinished` / `Network.loadingFailed` to fulfil the
|
|
13
|
+
* `response.finished()` contract exposed to consumers.
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.NavigationResponseTracker = void 0;
|
|
17
|
+
const response_js_1 = require("./response.js");
|
|
18
|
+
/**
|
|
19
|
+
* Watches CDP events on a given session and resolves with the navigation's
|
|
20
|
+
* primary document response once identified.
|
|
21
|
+
*/
|
|
22
|
+
class NavigationResponseTracker {
|
|
23
|
+
page;
|
|
24
|
+
session;
|
|
25
|
+
navigationCommandId;
|
|
26
|
+
expectedLoaderId;
|
|
27
|
+
selectedRequestId = null;
|
|
28
|
+
selectedResponse = null;
|
|
29
|
+
acceptNextWithoutLoader = false;
|
|
30
|
+
responseResolved = false;
|
|
31
|
+
resolveResponse;
|
|
32
|
+
responsePromise;
|
|
33
|
+
pendingResponsesByLoader = new Map();
|
|
34
|
+
pendingExtraInfo = new Map();
|
|
35
|
+
listeners = [];
|
|
36
|
+
/**
|
|
37
|
+
* Create a tracker bound to a specific navigation command. The tracker begins
|
|
38
|
+
* listening for network events immediately so it should be constructed before
|
|
39
|
+
* the navigation request is dispatched.
|
|
40
|
+
*/
|
|
41
|
+
constructor(params) {
|
|
42
|
+
this.page = params.page;
|
|
43
|
+
this.session = params.session;
|
|
44
|
+
this.navigationCommandId = params.navigationCommandId;
|
|
45
|
+
this.responsePromise = new Promise((resolve) => {
|
|
46
|
+
this.resolveResponse = (value) => {
|
|
47
|
+
if (this.responseResolved)
|
|
48
|
+
return;
|
|
49
|
+
this.responseResolved = true;
|
|
50
|
+
resolve(value);
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
this.installListeners();
|
|
54
|
+
}
|
|
55
|
+
/** Stop listening for CDP events and release any pending bookkeeping. */
|
|
56
|
+
dispose() {
|
|
57
|
+
for (const { event, handler } of this.listeners) {
|
|
58
|
+
this.session.off(event, handler);
|
|
59
|
+
}
|
|
60
|
+
this.listeners.length = 0;
|
|
61
|
+
this.pendingResponsesByLoader.clear();
|
|
62
|
+
this.pendingExtraInfo.clear();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Hint the tracker with the loader id returned by `Page.navigate`. Chrome only
|
|
66
|
+
* emits this once the browser begins navigating, so we store early responses
|
|
67
|
+
* and match them once the loader id is known.
|
|
68
|
+
*/
|
|
69
|
+
setExpectedLoaderId(loaderId) {
|
|
70
|
+
if (!loaderId)
|
|
71
|
+
return;
|
|
72
|
+
this.expectedLoaderId = loaderId;
|
|
73
|
+
const pending = this.pendingResponsesByLoader.get(loaderId);
|
|
74
|
+
if (pending) {
|
|
75
|
+
this.pendingResponsesByLoader.delete(loaderId);
|
|
76
|
+
this.selectResponse(pending);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Some navigation APIs (reload/history traversal) do not provide a loader id
|
|
81
|
+
* up front. This flag instructs the tracker to accept the next qualifying
|
|
82
|
+
* document response even if no loader id has been announced yet.
|
|
83
|
+
*/
|
|
84
|
+
expectNavigationWithoutKnownLoader() {
|
|
85
|
+
this.acceptNextWithoutLoader = true;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Returns a promise that resolves with the matched response (or `null` when
|
|
89
|
+
* no document response was observed).
|
|
90
|
+
*/
|
|
91
|
+
async navigationCompleted() {
|
|
92
|
+
if (!this.responseResolved) {
|
|
93
|
+
queueMicrotask(() => {
|
|
94
|
+
if (!this.responseResolved)
|
|
95
|
+
this.resolveResponse(null);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return this.responsePromise;
|
|
99
|
+
}
|
|
100
|
+
/** Expose the raw response promise (mainly for tests). */
|
|
101
|
+
async response() {
|
|
102
|
+
return this.responsePromise;
|
|
103
|
+
}
|
|
104
|
+
/** Register all CDP listeners relevant to navigation tracking. */
|
|
105
|
+
installListeners() {
|
|
106
|
+
this.addListener("Network.responseReceived", (event) => {
|
|
107
|
+
this.onResponseReceived(event);
|
|
108
|
+
});
|
|
109
|
+
this.addListener("Network.responseReceivedExtraInfo", (event) => {
|
|
110
|
+
this.onResponseReceivedExtraInfo(event);
|
|
111
|
+
});
|
|
112
|
+
this.addListener("Network.loadingFinished", (event) => {
|
|
113
|
+
this.onLoadingFinished(event);
|
|
114
|
+
});
|
|
115
|
+
this.addListener("Network.loadingFailed", (event) => {
|
|
116
|
+
this.onLoadingFailed(event);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/** Attach a CDP listener and track it for later disposal. */
|
|
120
|
+
addListener(event, handler) {
|
|
121
|
+
this.session.on(event, handler);
|
|
122
|
+
this.listeners.push({ event, handler });
|
|
123
|
+
}
|
|
124
|
+
/** Handle the initial response payload for document navigations. */
|
|
125
|
+
onResponseReceived(event) {
|
|
126
|
+
if (!this.page.isCurrentNavigationCommand(this.navigationCommandId))
|
|
127
|
+
return;
|
|
128
|
+
if (!event || !event.response)
|
|
129
|
+
return;
|
|
130
|
+
if (event.type !== "Document")
|
|
131
|
+
return;
|
|
132
|
+
if (event.frameId !== this.page.mainFrameId())
|
|
133
|
+
return;
|
|
134
|
+
const loaderId = event.loaderId ?? "";
|
|
135
|
+
if (this.acceptNextWithoutLoader) {
|
|
136
|
+
this.acceptNextWithoutLoader = false;
|
|
137
|
+
this.selectResponse(event);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (this.expectedLoaderId) {
|
|
141
|
+
if (loaderId && loaderId !== this.expectedLoaderId) {
|
|
142
|
+
this.pendingResponsesByLoader.set(loaderId, event);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
this.selectResponse(event);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (loaderId) {
|
|
149
|
+
this.pendingResponsesByLoader.set(loaderId, event);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
this.selectResponse(event);
|
|
153
|
+
}
|
|
154
|
+
/** Merge auxiliary header information once Chrome exposes it. */
|
|
155
|
+
onResponseReceivedExtraInfo(event) {
|
|
156
|
+
if (!event || !event.requestId)
|
|
157
|
+
return;
|
|
158
|
+
if (this.selectedRequestId && event.requestId === this.selectedRequestId) {
|
|
159
|
+
this.selectedResponse?.applyExtraInfo(event);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
this.pendingExtraInfo.set(event.requestId, event);
|
|
163
|
+
}
|
|
164
|
+
/** Resolve the response's finished promise when the request completes. */
|
|
165
|
+
onLoadingFinished(event) {
|
|
166
|
+
if (!event || !event.requestId)
|
|
167
|
+
return;
|
|
168
|
+
if (event.requestId !== this.selectedRequestId)
|
|
169
|
+
return;
|
|
170
|
+
this.selectedResponse?.markFinished(null);
|
|
171
|
+
}
|
|
172
|
+
/** Resolve the response's finished promise with an error on failure. */
|
|
173
|
+
onLoadingFailed(event) {
|
|
174
|
+
// Ignore malformed events or ones without a request id
|
|
175
|
+
if (!event || !event.requestId)
|
|
176
|
+
return;
|
|
177
|
+
// Only the tracked document request should toggle the response state
|
|
178
|
+
if (event.requestId !== this.selectedRequestId)
|
|
179
|
+
return;
|
|
180
|
+
// Surface Chrome's failure text through response.finished()
|
|
181
|
+
const errorText = event.errorText || "Navigation request failed";
|
|
182
|
+
this.selectedResponse?.markFinished(new Error(errorText));
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Create the `Response` wrapper for the chosen document response and
|
|
186
|
+
* resolve awaiting consumers. Subsequent events flesh out the header/body
|
|
187
|
+
* helpers and mark the request as finished.
|
|
188
|
+
*/
|
|
189
|
+
selectResponse(event) {
|
|
190
|
+
if (event.loaderId) {
|
|
191
|
+
this.pendingResponsesByLoader.delete(event.loaderId);
|
|
192
|
+
}
|
|
193
|
+
if (this.responseResolved)
|
|
194
|
+
return;
|
|
195
|
+
if (this.selectedResponse)
|
|
196
|
+
return;
|
|
197
|
+
const protocol = event.response?.protocol?.toLowerCase() ?? "";
|
|
198
|
+
const url = event.response?.url ?? "";
|
|
199
|
+
const isDataUrl = protocol === "data" || url.startsWith("data:");
|
|
200
|
+
const isAboutUrl = protocol === "about" || url.startsWith("about:");
|
|
201
|
+
if (isDataUrl || isAboutUrl) {
|
|
202
|
+
this.pendingExtraInfo.delete(event.requestId);
|
|
203
|
+
this.selectedRequestId = null;
|
|
204
|
+
this.selectedResponse = null;
|
|
205
|
+
this.resolveResponse(null);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const response = new response_js_1.Response({
|
|
209
|
+
page: this.page,
|
|
210
|
+
session: this.session,
|
|
211
|
+
requestId: event.requestId,
|
|
212
|
+
frameId: event.frameId,
|
|
213
|
+
loaderId: event.loaderId,
|
|
214
|
+
response: event.response,
|
|
215
|
+
fromServiceWorker: Boolean(event.response?.fromServiceWorker),
|
|
216
|
+
});
|
|
217
|
+
this.selectedRequestId = event.requestId;
|
|
218
|
+
this.selectedResponse = response;
|
|
219
|
+
const extraInfo = this.pendingExtraInfo.get(event.requestId);
|
|
220
|
+
if (extraInfo) {
|
|
221
|
+
response.applyExtraInfo(extraInfo);
|
|
222
|
+
this.pendingExtraInfo.delete(event.requestId);
|
|
223
|
+
}
|
|
224
|
+
this.resolveResponse(response);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
exports.NavigationResponseTracker = NavigationResponseTracker;
|
|
228
|
+
//# sourceMappingURL=navigationResponseTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigationResponseTracker.js","sourceRoot":"","sources":["../../../../../lib/v3/understudy/navigationResponseTracker.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAKH,+CAAyC;AAEzC;;;GAGG;AACH,MAAa,yBAAyB;IACnB,IAAI,CAAO;IACX,OAAO,CAAiB;IACxB,mBAAmB,CAAS;IAErC,gBAAgB,CAAqB;IACrC,iBAAiB,GAAkB,IAAI,CAAC;IACxC,gBAAgB,GAAoB,IAAI,CAAC;IACzC,uBAAuB,GAAG,KAAK,CAAC;IAEhC,gBAAgB,GAAG,KAAK,CAAC;IACzB,eAAe,CAAoC;IACnD,eAAe,CAA2B;IAEjC,wBAAwB,GAAG,IAAI,GAAG,EAGhD,CAAC;IACa,gBAAgB,GAAG,IAAI,GAAG,EAGxC,CAAC;IAEa,SAAS,GAGrB,EAAE,CAAC;IAER;;;;OAIG;IACH,YAAY,MAIX;QACC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QAEtD,IAAI,CAAC,eAAe,GAAG,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,EAAE;YAC9D,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;gBAC/B,IAAI,IAAI,CAAC,gBAAgB;oBAAE,OAAO;gBAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,yEAAyE;IAClE,OAAO;QACZ,KAAK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAgB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,mBAAmB,CAAC,QAA4B;QACrD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,kCAAkC;QACvC,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,mBAAmB;QAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,cAAc,CAAC,GAAG,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,gBAAgB;oBAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,0DAA0D;IACnD,KAAK,CAAC,QAAQ;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,kEAAkE;IAC1D,gBAAgB;QACtB,IAAI,CAAC,WAAW,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE,EAAE;YACrD,IAAI,CAAC,kBAAkB,CAAC,KAA+C,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,mCAAmC,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9D,IAAI,CAAC,2BAA2B,CAC9B,KAAwD,CACzD,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC,KAAK,EAAE,EAAE;YACpD,IAAI,CAAC,iBAAiB,CAAC,KAA8C,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,KAAK,EAAE,EAAE;YAClD,IAAI,CAAC,eAAe,CAAC,KAA4C,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IACrD,WAAW,CAAC,KAAa,EAAE,OAAiC;QAClE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAgB,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,oEAAoE;IAC5D,kBAAkB,CACxB,KAA6C;QAE7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAAE,OAAO;QAC5E,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ;YAAE,OAAO;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO;QACtC,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO;QAEtD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACnD,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACnD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,iEAAiE;IACzD,2BAA2B,CACjC,KAAsD;QAEtD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QACvC,IAAI,IAAI,CAAC,iBAAiB,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzE,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,0EAA0E;IAClE,iBAAiB,CACvB,KAA4C;QAE5C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QACvC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACvD,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,wEAAwE;IAChE,eAAe,CAAC,KAA0C;QAChE,uDAAuD;QACvD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAO;QACvC,qEAAqE;QACrE,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACvD,4DAA4D;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,2BAA2B,CAAC;QACjE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,KAA6C;QAClE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAElC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,QAAQ,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEpE,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,sBAAQ,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SAC9D,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;QACzC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;CACF;AAjPD,8DAiPC","sourcesContent":["/**\n * NavigationResponseTracker\n * -------------------------\n *\n * Tracks DevTools Protocol network events for a single navigation command so\n * Stagehand can surface a Playwright-like response object from `Page.goto` and\n * related APIs. The tracker listens for `Network.responseReceived` events that\n * correspond to the targeted document navigation, handles loader-id churn that\n * arises from redirects or preloading, and enriches the resulting\n * `Response` with extra header information. It also observes\n * `Network.loadingFinished` / `Network.loadingFailed` to fulfil the\n * `response.finished()` contract exposed to consumers.\n */\n\nimport type { Protocol } from \"devtools-protocol\";\nimport type { CDPSessionLike } from \"./cdp.js\";\nimport type { Page } from \"./page.js\";\nimport { Response } from \"./response.js\";\n\n/**\n * Watches CDP events on a given session and resolves with the navigation's\n * primary document response once identified.\n */\nexport class NavigationResponseTracker {\n private readonly page: Page;\n private readonly session: CDPSessionLike;\n private readonly navigationCommandId: number;\n\n private expectedLoaderId: string | undefined;\n private selectedRequestId: string | null = null;\n private selectedResponse: Response | null = null;\n private acceptNextWithoutLoader = false;\n\n private responseResolved = false;\n private resolveResponse!: (value: Response | null) => void;\n private responsePromise: Promise<Response | null>;\n\n private readonly pendingResponsesByLoader = new Map<\n string,\n Protocol.Network.ResponseReceivedEvent\n >();\n private readonly pendingExtraInfo = new Map<\n string,\n Protocol.Network.ResponseReceivedExtraInfoEvent\n >();\n\n private readonly listeners: Array<{\n event: string;\n handler: (event: unknown) => void;\n }> = [];\n\n /**\n * Create a tracker bound to a specific navigation command. The tracker begins\n * listening for network events immediately so it should be constructed before\n * the navigation request is dispatched.\n */\n constructor(params: {\n page: Page;\n session: CDPSessionLike;\n navigationCommandId: number;\n }) {\n this.page = params.page;\n this.session = params.session;\n this.navigationCommandId = params.navigationCommandId;\n\n this.responsePromise = new Promise<Response | null>((resolve) => {\n this.resolveResponse = (value) => {\n if (this.responseResolved) return;\n this.responseResolved = true;\n resolve(value);\n };\n });\n\n this.installListeners();\n }\n\n /** Stop listening for CDP events and release any pending bookkeeping. */\n public dispose(): void {\n for (const { event, handler } of this.listeners) {\n this.session.off(event, handler as never);\n }\n this.listeners.length = 0;\n this.pendingResponsesByLoader.clear();\n this.pendingExtraInfo.clear();\n }\n\n /**\n * Hint the tracker with the loader id returned by `Page.navigate`. Chrome only\n * emits this once the browser begins navigating, so we store early responses\n * and match them once the loader id is known.\n */\n public setExpectedLoaderId(loaderId: string | undefined): void {\n if (!loaderId) return;\n this.expectedLoaderId = loaderId;\n const pending = this.pendingResponsesByLoader.get(loaderId);\n if (pending) {\n this.pendingResponsesByLoader.delete(loaderId);\n this.selectResponse(pending);\n }\n }\n\n /**\n * Some navigation APIs (reload/history traversal) do not provide a loader id\n * up front. This flag instructs the tracker to accept the next qualifying\n * document response even if no loader id has been announced yet.\n */\n public expectNavigationWithoutKnownLoader(): void {\n this.acceptNextWithoutLoader = true;\n }\n\n /**\n * Returns a promise that resolves with the matched response (or `null` when\n * no document response was observed).\n */\n public async navigationCompleted(): Promise<Response | null> {\n if (!this.responseResolved) {\n queueMicrotask(() => {\n if (!this.responseResolved) this.resolveResponse(null);\n });\n }\n return this.responsePromise;\n }\n\n /** Expose the raw response promise (mainly for tests). */\n public async response(): Promise<Response | null> {\n return this.responsePromise;\n }\n\n /** Register all CDP listeners relevant to navigation tracking. */\n private installListeners(): void {\n this.addListener(\"Network.responseReceived\", (event) => {\n this.onResponseReceived(event as Protocol.Network.ResponseReceivedEvent);\n });\n this.addListener(\"Network.responseReceivedExtraInfo\", (event) => {\n this.onResponseReceivedExtraInfo(\n event as Protocol.Network.ResponseReceivedExtraInfoEvent,\n );\n });\n this.addListener(\"Network.loadingFinished\", (event) => {\n this.onLoadingFinished(event as Protocol.Network.LoadingFinishedEvent);\n });\n this.addListener(\"Network.loadingFailed\", (event) => {\n this.onLoadingFailed(event as Protocol.Network.LoadingFailedEvent);\n });\n }\n\n /** Attach a CDP listener and track it for later disposal. */\n private addListener(event: string, handler: (event: unknown) => void): void {\n this.session.on(event, handler as never);\n this.listeners.push({ event, handler });\n }\n\n /** Handle the initial response payload for document navigations. */\n private onResponseReceived(\n event: Protocol.Network.ResponseReceivedEvent,\n ): void {\n if (!this.page.isCurrentNavigationCommand(this.navigationCommandId)) return;\n if (!event || !event.response) return;\n if (event.type !== \"Document\") return;\n if (event.frameId !== this.page.mainFrameId()) return;\n\n const loaderId = event.loaderId ?? \"\";\n if (this.acceptNextWithoutLoader) {\n this.acceptNextWithoutLoader = false;\n this.selectResponse(event);\n return;\n }\n\n if (this.expectedLoaderId) {\n if (loaderId && loaderId !== this.expectedLoaderId) {\n this.pendingResponsesByLoader.set(loaderId, event);\n return;\n }\n this.selectResponse(event);\n return;\n }\n\n if (loaderId) {\n this.pendingResponsesByLoader.set(loaderId, event);\n return;\n }\n\n this.selectResponse(event);\n }\n\n /** Merge auxiliary header information once Chrome exposes it. */\n private onResponseReceivedExtraInfo(\n event: Protocol.Network.ResponseReceivedExtraInfoEvent,\n ): void {\n if (!event || !event.requestId) return;\n if (this.selectedRequestId && event.requestId === this.selectedRequestId) {\n this.selectedResponse?.applyExtraInfo(event);\n return;\n }\n this.pendingExtraInfo.set(event.requestId, event);\n }\n\n /** Resolve the response's finished promise when the request completes. */\n private onLoadingFinished(\n event: Protocol.Network.LoadingFinishedEvent,\n ): void {\n if (!event || !event.requestId) return;\n if (event.requestId !== this.selectedRequestId) return;\n this.selectedResponse?.markFinished(null);\n }\n\n /** Resolve the response's finished promise with an error on failure. */\n private onLoadingFailed(event: Protocol.Network.LoadingFailedEvent): void {\n // Ignore malformed events or ones without a request id\n if (!event || !event.requestId) return;\n // Only the tracked document request should toggle the response state\n if (event.requestId !== this.selectedRequestId) return;\n // Surface Chrome's failure text through response.finished()\n const errorText = event.errorText || \"Navigation request failed\";\n this.selectedResponse?.markFinished(new Error(errorText));\n }\n\n /**\n * Create the `Response` wrapper for the chosen document response and\n * resolve awaiting consumers. Subsequent events flesh out the header/body\n * helpers and mark the request as finished.\n */\n private selectResponse(event: Protocol.Network.ResponseReceivedEvent): void {\n if (event.loaderId) {\n this.pendingResponsesByLoader.delete(event.loaderId);\n }\n\n if (this.responseResolved) return;\n if (this.selectedResponse) return;\n\n const protocol = event.response?.protocol?.toLowerCase() ?? \"\";\n const url = event.response?.url ?? \"\";\n const isDataUrl = protocol === \"data\" || url.startsWith(\"data:\");\n const isAboutUrl = protocol === \"about\" || url.startsWith(\"about:\");\n\n if (isDataUrl || isAboutUrl) {\n this.pendingExtraInfo.delete(event.requestId);\n this.selectedRequestId = null;\n this.selectedResponse = null;\n this.resolveResponse(null);\n return;\n }\n\n const response = new Response({\n page: this.page,\n session: this.session,\n requestId: event.requestId,\n frameId: event.frameId,\n loaderId: event.loaderId,\n response: event.response,\n fromServiceWorker: Boolean(event.response?.fromServiceWorker),\n });\n\n this.selectedRequestId = event.requestId;\n this.selectedResponse = response;\n\n const extraInfo = this.pendingExtraInfo.get(event.requestId);\n if (extraInfo) {\n response.applyExtraInfo(extraInfo);\n this.pendingExtraInfo.delete(event.requestId);\n }\n\n this.resolveResponse(response);\n }\n}\n"]}
|