@jshookmcp/jshook 0.2.0 → 0.2.2
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/README.md +4 -4
- package/README.zh.md +3 -3
- package/dist/packages/extension-sdk/src/bridges/shared.d.ts +40 -0
- package/dist/packages/extension-sdk/src/bridges/shared.js +196 -0
- package/dist/packages/extension-sdk/src/plugin.d.ts +42 -30
- package/dist/packages/extension-sdk/src/plugin.js +48 -16
- package/dist/src/config/search-defaults.d.ts +46 -0
- package/dist/src/config/search-defaults.js +151 -0
- package/dist/src/constants.d.ts +47 -15
- package/dist/src/constants.js +47 -17
- package/dist/src/index.js +61 -15
- package/dist/src/modules/analyzer/CodeAnalyzer.js +1 -0
- package/dist/src/modules/analyzer/CodeAnalyzerDataFlow.js +4 -1
- package/dist/src/modules/analyzer/IntelligentAnalyzer.js +2 -1
- package/dist/src/modules/analyzer/PatternDetector.js +2 -1
- package/dist/src/modules/browser/BrowserDiscovery.js +24 -7
- package/dist/src/modules/browser/BrowserModeManager.d.ts +5 -1
- package/dist/src/modules/browser/BrowserModeManager.js +49 -6
- package/dist/src/modules/browser/CDPErrorMapper.d.ts +4 -0
- package/dist/src/modules/browser/CDPErrorMapper.js +82 -0
- package/dist/src/modules/browser/CamoufoxBrowserManager.d.ts +1 -0
- package/dist/src/modules/browser/CamoufoxBrowserManager.js +15 -5
- package/dist/src/modules/browser/HookHeartbeat.d.ts +38 -0
- package/dist/src/modules/browser/HookHeartbeat.js +76 -0
- package/dist/src/modules/browser/UnifiedBrowserManager.d.ts +2 -2
- package/dist/src/modules/browser/UnifiedBrowserManager.js +5 -2
- package/dist/src/modules/browser/index.d.ts +2 -2
- package/dist/src/modules/browser/index.js +2 -2
- package/dist/src/modules/captcha/AICaptchaDetector.js +7 -4
- package/dist/src/modules/captcha/CaptchaDetector.js +14 -3
- package/dist/src/modules/captcha/rules/captcha-keywords.js +2 -9
- package/dist/src/modules/captcha/rules/dom-rules.d.ts +28 -2
- package/dist/src/modules/captcha/rules/exclude-keywords.js +15 -2
- package/dist/src/modules/collector/CodeCache.d.ts +3 -0
- package/dist/src/modules/collector/CodeCache.js +9 -2
- package/dist/src/modules/collector/CodeCollector.d.ts +36 -1
- package/dist/src/modules/collector/CodeCollector.js +320 -32
- package/dist/src/modules/collector/CodeCollectorCollectInternal.js +36 -11
- package/dist/src/modules/collector/PageController.d.ts +14 -1
- package/dist/src/modules/collector/PageController.js +78 -4
- package/dist/src/modules/collector/PageScriptCollectors.d.ts +5 -2
- package/dist/src/modules/collector/PageScriptCollectors.js +37 -15
- package/dist/src/modules/crypto/CryptoDetector.js +5 -1
- package/dist/src/modules/debugger/DebuggerManager.impl.core.execution.js +7 -0
- package/dist/src/modules/debugger/DebuggerManager.impl.core.scope.js +1 -1
- package/dist/src/modules/deobfuscator/AdvancedDeobfuscator.ast.js +3 -2
- package/dist/src/modules/deobfuscator/Deobfuscator.js +4 -1
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.js +1 -1
- package/dist/src/modules/deobfuscator/JSVMPDeobfuscator.restore.js +5 -1
- package/dist/src/modules/deobfuscator/PackerDeobfuscator.js +8 -2
- package/dist/src/modules/deobfuscator/VMDeobfuscator.js +1 -0
- package/dist/src/modules/deobfuscator/webcrack.js +3 -1
- package/dist/src/modules/detector/ObfuscationDetector.d.ts +1 -1
- package/dist/src/modules/emulator/EmulatorCodeGen.js +1 -2
- package/dist/src/modules/emulator/EnvironmentEmulator.js +2 -2
- package/dist/src/modules/external/ExternalToolRunner.js +2 -6
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.d.ts +15 -5
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.class.js +43 -16
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.d.ts +9 -3
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.dynamic.js +39 -15
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.network.d.ts +6 -2
- package/dist/src/modules/monitor/ConsoleMonitor.impl.core.network.js +6 -6
- package/dist/src/modules/monitor/NetworkMonitor.impl.d.ts +6 -2
- package/dist/src/modules/monitor/NetworkMonitor.impl.js +26 -10
- package/dist/src/modules/monitor/PerformanceMonitor.js +47 -10
- package/dist/src/modules/monitor/PlaywrightNetworkMonitor.d.ts +8 -2
- package/dist/src/modules/monitor/PlaywrightNetworkMonitor.js +39 -15
- package/dist/src/modules/process/LinuxProcessManager.d.ts +1 -1
- package/dist/src/modules/process/LinuxProcessManager.js +18 -8
- package/dist/src/modules/process/MacProcessManager.d.ts +1 -1
- package/dist/src/modules/process/MacProcessManager.js +17 -9
- package/dist/src/modules/process/MemoryManager.js +8 -4
- package/dist/src/modules/process/ProcessManager.impl.d.ts +1 -1
- package/dist/src/modules/process/ProcessManager.impl.js +4 -2
- package/dist/src/modules/process/memory/availability.js +15 -4
- package/dist/src/modules/process/memory/index.d.ts +1 -1
- package/dist/src/modules/process/memory/index.js +1 -1
- package/dist/src/modules/process/memory/injector.js +8 -2
- package/dist/src/modules/process/memory/monitor.js +1 -0
- package/dist/src/modules/process/memory/reader.js +17 -6
- package/dist/src/modules/process/memory/regions.dump.js +9 -3
- package/dist/src/modules/process/memory/regions.enumerate.js +11 -6
- package/dist/src/modules/process/memory/regions.modules.js +4 -1
- package/dist/src/modules/process/memory/regions.protection.js +10 -4
- package/dist/src/modules/process/memory/scanner.darwin.js +13 -5
- package/dist/src/modules/process/memory/scanner.js +11 -3
- package/dist/src/modules/process/memory/scanner.linux.js +5 -2
- package/dist/src/modules/process/memory/scanner.windows.js +4 -2
- package/dist/src/modules/process/memory/writer.js +15 -7
- package/dist/src/modules/security/ExecutionSandbox.js +2 -2
- package/dist/src/modules/stealth/CDPTimingProxy.d.ts +20 -0
- package/dist/src/modules/stealth/CDPTimingProxy.js +41 -0
- package/dist/src/modules/stealth/CDPTimingProxy.types.d.ts +7 -0
- package/dist/src/modules/stealth/CDPTimingProxy.types.js +6 -0
- package/dist/src/modules/stealth/FingerprintManager.d.ts +15 -0
- package/dist/src/modules/stealth/FingerprintManager.js +92 -0
- package/dist/src/modules/stealth/FingerprintManager.types.d.ts +16 -0
- package/dist/src/modules/stealth/StealthScripts.d.ts +1 -0
- package/dist/src/modules/stealth/StealthScripts.js +50 -8
- package/dist/src/modules/stealth/StealthVerifier.d.ts +18 -0
- package/dist/src/modules/stealth/StealthVerifier.js +145 -0
- package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.d.ts +1 -1
- package/dist/src/modules/symbolic/JSVMPSymbolicExecutor.js +3 -3
- package/dist/src/modules/trace/TraceDB.d.ts +30 -0
- package/dist/src/modules/trace/TraceDB.js +221 -0
- package/dist/src/modules/trace/TraceDB.types.d.ts +37 -0
- package/dist/src/modules/trace/TraceRecorder.d.ts +32 -0
- package/dist/src/modules/trace/TraceRecorder.js +260 -0
- package/dist/src/modules/trace/TraceRecorder.types.d.ts +15 -0
- package/dist/src/native/AntiCheatDetector.d.ts +10 -0
- package/dist/src/native/AntiCheatDetector.js +211 -0
- package/dist/src/native/AntiCheatDetector.types.d.ts +22 -0
- package/dist/src/native/CodeInjector.d.ts +12 -0
- package/dist/src/native/CodeInjector.js +155 -0
- package/dist/src/native/CodeInjector.types.d.ts +15 -0
- package/dist/src/native/HardwareBreakpoint.d.ts +18 -0
- package/dist/src/native/HardwareBreakpoint.js +237 -0
- package/dist/src/native/HardwareBreakpoint.types.d.ts +53 -0
- package/dist/src/native/HeapAnalyzer.d.ts +18 -0
- package/dist/src/native/HeapAnalyzer.js +239 -0
- package/dist/src/native/HeapAnalyzer.types.d.ts +49 -0
- package/dist/src/native/HeapAnalyzer.types.js +9 -0
- package/dist/src/native/MemoryController.d.ts +17 -0
- package/dist/src/native/MemoryController.js +165 -0
- package/dist/src/native/MemoryController.types.d.ts +18 -0
- package/dist/src/native/MemoryScanSession.d.ts +24 -0
- package/dist/src/native/MemoryScanSession.js +140 -0
- package/dist/src/native/MemoryScanner.d.ts +45 -0
- package/dist/src/native/MemoryScanner.js +397 -0
- package/dist/src/native/NativeMemoryManager.availability.js +32 -1
- package/dist/src/native/NativeMemoryManager.impl.d.ts +2 -0
- package/dist/src/native/NativeMemoryManager.impl.js +108 -78
- package/dist/src/native/NativeMemoryManager.types.d.ts +24 -1
- package/dist/src/native/NativeMemoryManager.utils.js +48 -1
- package/dist/src/native/PEAnalyzer.d.ts +16 -0
- package/dist/src/native/PEAnalyzer.js +380 -0
- package/dist/src/native/PEAnalyzer.types.d.ts +77 -0
- package/dist/src/native/PEAnalyzer.types.js +16 -0
- package/dist/src/native/PointerChainEngine.d.ts +16 -0
- package/dist/src/native/PointerChainEngine.js +319 -0
- package/dist/src/native/PointerChainEngine.types.d.ts +39 -0
- package/dist/src/native/ScanComparators.d.ts +5 -0
- package/dist/src/native/ScanComparators.js +162 -0
- package/dist/src/native/Speedhack.d.ts +16 -0
- package/dist/src/native/Speedhack.js +159 -0
- package/dist/src/native/Speedhack.types.d.ts +8 -0
- package/dist/src/native/StructureAnalyzer.d.ts +31 -0
- package/dist/src/native/StructureAnalyzer.js +449 -0
- package/dist/src/native/StructureAnalyzer.types.d.ts +42 -0
- package/dist/src/native/Win32API.js +5 -2
- package/dist/src/native/Win32Debug.d.ts +112 -0
- package/dist/src/native/Win32Debug.js +284 -0
- package/dist/src/native/formatAddress.d.ts +2 -0
- package/dist/src/native/formatAddress.js +6 -0
- package/dist/src/native/platform/PlatformMemoryAPI.d.ts +14 -0
- package/dist/src/native/platform/darwin/DarwinAPI.d.ts +122 -0
- package/dist/src/native/platform/darwin/DarwinAPI.js +225 -0
- package/dist/src/native/platform/darwin/DarwinMemoryProvider.d.ts +17 -0
- package/dist/src/native/platform/darwin/DarwinMemoryProvider.js +230 -0
- package/dist/src/native/platform/darwin/index.d.ts +1 -0
- package/dist/src/native/platform/darwin/index.js +1 -0
- package/dist/src/native/platform/factory.d.ts +3 -0
- package/dist/src/native/platform/factory.js +31 -0
- package/dist/src/native/platform/index.d.ts +3 -0
- package/dist/src/native/platform/index.js +2 -0
- package/dist/src/native/platform/types.d.ts +50 -0
- package/dist/src/native/platform/types.js +12 -0
- package/dist/src/native/platform/win32/Win32MemoryProvider.d.ts +15 -0
- package/dist/src/native/platform/win32/Win32MemoryProvider.js +155 -0
- package/dist/src/native/platform/win32/index.d.ts +1 -0
- package/dist/src/native/platform/win32/index.js +1 -0
- package/dist/src/server/EventBus.d.ts +85 -0
- package/dist/src/server/EventBus.js +87 -0
- package/dist/src/server/MCPServer.activation.ttl.d.ts +11 -0
- package/dist/src/server/MCPServer.activation.ttl.js +100 -0
- package/dist/src/server/MCPServer.context.d.ts +54 -83
- package/dist/src/server/MCPServer.d.ts +43 -76
- package/dist/src/server/MCPServer.domain.js +4 -3
- package/dist/src/server/MCPServer.js +75 -81
- package/dist/src/server/MCPServer.registration.js +1 -3
- package/dist/src/server/MCPServer.search.handlers.activate.d.ts +8 -0
- package/dist/src/server/MCPServer.search.handlers.activate.js +37 -27
- package/dist/src/server/MCPServer.search.handlers.call.d.ts +3 -0
- package/dist/src/server/MCPServer.search.handlers.call.js +91 -0
- package/dist/src/server/MCPServer.search.handlers.domain.js +14 -4
- package/dist/src/server/MCPServer.search.handlers.route.js +63 -2
- package/dist/src/server/MCPServer.search.handlers.search.js +51 -69
- package/dist/src/server/MCPServer.search.helpers.d.ts +1 -1
- package/dist/src/server/MCPServer.search.helpers.js +12 -26
- package/dist/src/server/MCPServer.search.js +169 -122
- package/dist/src/server/MCPServer.search.validation.d.ts +1 -0
- package/dist/src/server/MCPServer.search.validation.js +13 -2
- package/dist/src/server/MCPServer.tools.d.ts +0 -1
- package/dist/src/server/MCPServer.tools.js +4 -68
- package/dist/src/server/MCPServer.transport.js +41 -9
- package/dist/src/server/ToolCallContextGuard.js +8 -1
- package/dist/src/server/ToolCatalog.d.ts +1 -2
- package/dist/src/server/ToolCatalog.js +23 -9
- package/dist/src/server/ToolExecutionRouter.js +2 -1
- package/dist/src/server/ToolHandlerMap.d.ts +1 -1
- package/dist/src/server/ToolHandlerMap.js +4 -2
- package/dist/src/server/ToolRouter.d.ts +10 -0
- package/dist/src/server/ToolRouter.js +271 -124
- package/dist/src/server/activation/ActivationController.d.ts +35 -0
- package/dist/src/server/activation/ActivationController.js +188 -0
- package/dist/src/server/activation/AutoPruner.d.ts +25 -0
- package/dist/src/server/activation/AutoPruner.js +73 -0
- package/dist/src/server/activation/CompoundConditionEngine.d.ts +38 -0
- package/dist/src/server/activation/CompoundConditionEngine.js +78 -0
- package/dist/src/server/activation/PredictiveBooster.d.ts +13 -0
- package/dist/src/server/activation/PredictiveBooster.js +68 -0
- package/dist/src/server/activation/types.d.ts +22 -0
- package/dist/src/server/domains/analysis/definitions.js +84 -0
- package/dist/src/server/domains/analysis/handlers.impl.js +80 -47
- package/dist/src/server/domains/analysis/handlers.web-tools.js +32 -13
- package/dist/src/server/domains/analysis/manifest.d.ts +66 -4
- package/dist/src/server/domains/analysis/manifest.js +47 -7
- package/dist/src/server/domains/antidebug/definitions.js +36 -0
- package/dist/src/server/domains/antidebug/handlers.js +9 -13
- package/dist/src/server/domains/antidebug/manifest.d.ts +54 -4
- package/dist/src/server/domains/antidebug/manifest.js +34 -8
- package/dist/src/server/domains/browser/definitions.d.ts +1 -1
- package/dist/src/server/domains/browser/definitions.js +1 -1
- package/dist/src/server/domains/browser/definitions.tools.advanced.js +10 -1
- package/dist/src/server/domains/browser/definitions.tools.behavior.js +107 -22
- package/dist/src/server/domains/browser/definitions.tools.page-core.js +5 -1
- package/dist/src/server/domains/browser/definitions.tools.runtime.js +34 -3
- package/dist/src/server/domains/browser/definitions.tools.security.js +117 -3
- package/dist/src/server/domains/browser/handlers/browser-control.d.ts +6 -0
- package/dist/src/server/domains/browser/handlers/browser-control.js +115 -33
- package/dist/src/server/domains/browser/handlers/camoufox-browser.js +6 -5
- package/dist/src/server/domains/browser/handlers/camoufox-flow.js +24 -15
- package/dist/src/server/domains/browser/handlers/captcha-handlers.js +5 -4
- package/dist/src/server/domains/browser/handlers/captcha-solver.js +25 -20
- package/dist/src/server/domains/browser/handlers/console-handlers.js +5 -4
- package/dist/src/server/domains/browser/handlers/detailed-data.js +3 -2
- package/dist/src/server/domains/browser/handlers/dom-query.js +8 -7
- package/dist/src/server/domains/browser/handlers/dom-search.js +4 -3
- package/dist/src/server/domains/browser/handlers/dom-style.js +3 -2
- package/dist/src/server/domains/browser/handlers/facade-initializer.js +3 -0
- package/dist/src/server/domains/browser/handlers/framework-state.js +24 -10
- package/dist/src/server/domains/browser/handlers/human-behavior.js +41 -35
- package/dist/src/server/domains/browser/handlers/indexeddb-dump.js +4 -3
- package/dist/src/server/domains/browser/handlers/js-heap.js +16 -9
- package/dist/src/server/domains/browser/handlers/page-data.js +6 -5
- package/dist/src/server/domains/browser/handlers/page-evaluation.js +28 -18
- package/dist/src/server/domains/browser/handlers/page-interaction.js +11 -10
- package/dist/src/server/domains/browser/handlers/page-navigation.js +5 -4
- package/dist/src/server/domains/browser/handlers/script-management.js +11 -9
- package/dist/src/server/domains/browser/handlers/stealth-injection.d.ts +26 -0
- package/dist/src/server/domains/browser/handlers/stealth-injection.js +127 -1
- package/dist/src/server/domains/browser/handlers/tab-workflow.js +1 -3
- package/dist/src/server/domains/browser/handlers.impl.d.ts +19 -1
- package/dist/src/server/domains/browser/handlers.impl.js +30 -10
- package/dist/src/server/domains/browser/manifest.d.ts +110 -4
- package/dist/src/server/domains/browser/manifest.js +138 -20
- package/dist/src/server/domains/coordination/definitions.d.ts +2 -0
- package/dist/src/server/domains/coordination/definitions.js +151 -0
- package/dist/src/server/domains/coordination/index.d.ts +34 -0
- package/dist/src/server/domains/coordination/index.js +145 -0
- package/dist/src/server/domains/coordination/manifest.d.ts +57 -0
- package/dist/src/server/domains/coordination/manifest.js +44 -0
- package/dist/src/server/domains/debugger/definitions.tools.js +1 -4
- package/dist/src/server/domains/debugger/handlers/blackbox-handlers.js +3 -2
- package/dist/src/server/domains/debugger/handlers/breakpoint-basic.js +7 -6
- package/dist/src/server/domains/debugger/handlers/breakpoint-exception.js +2 -1
- package/dist/src/server/domains/debugger/handlers/debugger-evaluate.js +4 -3
- package/dist/src/server/domains/debugger/handlers/debugger-state.js +2 -1
- package/dist/src/server/domains/debugger/handlers/event-breakpoint.js +6 -5
- package/dist/src/server/domains/debugger/handlers/scope-inspection.js +7 -6
- package/dist/src/server/domains/debugger/handlers/session-management.js +6 -5
- package/dist/src/server/domains/debugger/handlers/watch-expressions.js +5 -4
- package/dist/src/server/domains/debugger/handlers/xhr-breakpoint.js +4 -3
- package/dist/src/server/domains/debugger/manifest.d.ts +64 -4
- package/dist/src/server/domains/debugger/manifest.js +109 -21
- package/dist/src/server/domains/encoding/definitions.js +30 -0
- package/dist/src/server/domains/encoding/encoding-msgpack.d.ts +7 -0
- package/dist/src/server/domains/encoding/encoding-msgpack.js +266 -0
- package/dist/src/server/domains/encoding/encoding-protobuf.d.ts +10 -0
- package/dist/src/server/domains/encoding/encoding-protobuf.js +221 -0
- package/dist/src/server/domains/encoding/{handlers.impl.core.runtime.format.d.ts → handlers.base.d.ts} +22 -2
- package/dist/src/server/domains/encoding/{handlers.impl.core.runtime.analysis.js → handlers.base.js} +193 -10
- package/dist/src/server/domains/encoding/handlers.d.ts +1 -1
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.d.ts +2 -2
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.js +26 -44
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.shared.d.ts +4 -1
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.shared.js +12 -2
- package/dist/src/server/domains/encoding/handlers.js +1 -1
- package/dist/src/server/domains/encoding/manifest.d.ts +54 -4
- package/dist/src/server/domains/encoding/manifest.js +19 -5
- package/dist/src/server/domains/graphql/definitions.js +30 -0
- package/dist/src/server/domains/graphql/handlers.base.d.ts +39 -0
- package/dist/src/server/domains/graphql/handlers.base.js +240 -0
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.base.d.ts +1 -38
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.base.js +1 -239
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.callgraph.d.ts +1 -9
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.callgraph.js +1 -207
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.extract.d.ts +1 -9
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.extract.js +1 -228
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.introspection.d.ts +1 -9
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.introspection.js +1 -106
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.d.ts +27 -2
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.replay.js +645 -14
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.script-replace.d.ts +1 -9
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.script-replace.js +1 -74
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.d.ts +1 -5
- package/dist/src/server/domains/graphql/handlers.impl.core.runtime.shared.js +1 -5
- package/dist/src/server/domains/graphql/manifest.js +24 -6
- package/dist/src/server/domains/hooks/ai-handlers.js +21 -19
- package/dist/src/server/domains/hooks/definitions.js +60 -3
- package/dist/src/server/domains/hooks/manifest.d.ts +56 -4
- package/dist/src/server/domains/hooks/manifest.js +2 -1
- package/dist/src/server/domains/hooks/preset-handlers.js +6 -5
- package/dist/src/server/domains/macro/definitions.d.ts +2 -0
- package/dist/src/server/domains/macro/definitions.js +45 -0
- package/dist/src/server/domains/macro/handlers.d.ts +9 -0
- package/dist/src/server/domains/macro/handlers.js +82 -0
- package/dist/src/server/domains/macro/index.d.ts +2 -0
- package/dist/src/server/domains/macro/index.js +2 -0
- package/dist/src/server/domains/macro/manifest.d.ts +57 -0
- package/dist/src/server/domains/macro/manifest.js +36 -0
- package/dist/src/server/domains/maintenance/definitions.js +96 -330
- package/dist/src/server/domains/maintenance/handlers.extensions.js +30 -14
- package/dist/src/server/domains/maintenance/handlers.js +2 -0
- package/dist/src/server/domains/maintenance/index.d.ts +1 -1
- package/dist/src/server/domains/maintenance/index.js +1 -1
- package/dist/src/server/domains/maintenance/manifest.d.ts +100 -4
- package/dist/src/server/domains/maintenance/manifest.js +60 -11
- package/dist/src/server/domains/memory/definitions.d.ts +2 -0
- package/dist/src/server/domains/memory/definitions.js +561 -0
- package/dist/src/server/domains/memory/handlers.impl.d.ts +271 -0
- package/dist/src/server/domains/memory/handlers.impl.js +497 -0
- package/dist/src/server/domains/memory/index.d.ts +2 -0
- package/dist/src/server/domains/memory/index.js +2 -0
- package/dist/src/server/domains/memory/manifest.d.ts +7 -0
- package/dist/src/server/domains/memory/manifest.js +159 -0
- package/dist/src/server/domains/native-bridge/definitions.js +42 -2
- package/dist/src/server/domains/native-bridge/index.js +35 -8
- package/dist/src/server/domains/network/definitions.js +182 -7
- package/dist/src/server/domains/network/handlers.base.d.ts +167 -0
- package/dist/src/server/domains/network/handlers.base.js +1008 -0
- package/dist/src/server/domains/network/handlers.impl.core.runtime.replay.d.ts +2 -2
- package/dist/src/server/domains/network/handlers.impl.core.runtime.replay.js +52 -28
- package/dist/src/server/domains/network/har.js +6 -3
- package/dist/src/server/domains/network/manifest.js +132 -22
- package/dist/src/server/domains/network/replay.js +5 -2
- package/dist/src/server/domains/platform/definitions.js +30 -0
- package/dist/src/server/domains/platform/handlers/bridge-handlers.js +6 -17
- package/dist/src/server/domains/platform/handlers/electron-asar-helpers.js +3 -12
- package/dist/src/server/domains/platform/handlers/electron-handlers.js +8 -22
- package/dist/src/server/domains/platform/handlers/miniapp-handlers.js +4 -6
- package/dist/src/server/domains/platform/handlers/platform-utils.js +3 -6
- package/dist/src/server/domains/platform/manifest.d.ts +54 -4
- package/dist/src/server/domains/platform/manifest.js +19 -5
- package/dist/src/server/domains/process/definitions.js +156 -0
- package/dist/src/server/domains/process/handlers.base.d.ts +150 -0
- package/dist/src/server/domains/process/handlers.base.js +1022 -0
- package/dist/src/server/domains/process/handlers.impl.core.runtime.base.d.ts +1 -87
- package/dist/src/server/domains/process/handlers.impl.core.runtime.base.js +1 -404
- package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.d.ts +2 -2
- package/dist/src/server/domains/process/handlers.impl.core.runtime.inject.js +11 -4
- package/dist/src/server/domains/process/handlers.impl.core.runtime.memory.d.ts +1 -60
- package/dist/src/server/domains/process/handlers.impl.core.runtime.memory.js +1 -613
- package/dist/src/server/domains/process/manifest.js +92 -28
- package/dist/src/server/domains/sandbox/definitions.d.ts +2 -0
- package/dist/src/server/domains/sandbox/definitions.js +35 -0
- package/dist/src/server/domains/sandbox/handlers.d.ts +7 -0
- package/dist/src/server/domains/sandbox/handlers.js +66 -0
- package/dist/src/server/domains/sandbox/index.d.ts +2 -0
- package/dist/src/server/domains/sandbox/index.js +2 -0
- package/dist/src/server/domains/sandbox/manifest.d.ts +57 -0
- package/dist/src/server/domains/sandbox/manifest.js +31 -0
- package/dist/src/server/domains/shared/parse-args.d.ts +14 -0
- package/dist/src/server/domains/shared/parse-args.js +50 -0
- package/dist/src/server/domains/sourcemap/definitions.js +30 -0
- package/dist/src/server/domains/sourcemap/handlers.d.ts +1 -1
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-extension.js +2 -6
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-main.js +1 -1
- package/dist/src/server/domains/sourcemap/handlers.impl.sourcemap-parse-base.js +51 -32
- package/dist/src/server/domains/sourcemap/handlers.js +1 -1
- package/dist/src/server/domains/sourcemap/manifest.d.ts +54 -4
- package/dist/src/server/domains/sourcemap/manifest.js +29 -7
- package/dist/src/server/domains/streaming/definitions.js +41 -1
- package/dist/src/server/domains/streaming/handlers.d.ts +1 -1
- package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.d.ts +3 -1
- package/dist/src/server/domains/streaming/handlers.impl.streaming-sse.js +20 -8
- package/dist/src/server/domains/streaming/handlers.impl.streaming-ws.js +7 -7
- package/dist/src/server/domains/streaming/handlers.js +1 -1
- package/dist/src/server/domains/streaming/manifest.d.ts +54 -4
- package/dist/src/server/domains/streaming/manifest.js +19 -5
- package/dist/src/server/domains/trace/definitions.d.ts +1 -0
- package/dist/src/server/domains/trace/definitions.js +1 -0
- package/dist/src/server/domains/trace/definitions.tools.d.ts +2 -0
- package/dist/src/server/domains/trace/definitions.tools.js +178 -0
- package/dist/src/server/domains/trace/handlers.d.ts +16 -0
- package/dist/src/server/domains/trace/handlers.js +300 -0
- package/dist/src/server/domains/trace/index.d.ts +1 -0
- package/dist/src/server/domains/trace/index.js +1 -0
- package/dist/src/server/domains/trace/manifest.d.ts +64 -0
- package/dist/src/server/domains/trace/manifest.js +48 -0
- package/dist/src/server/domains/transform/definitions.js +36 -0
- package/dist/src/server/domains/transform/handlers.d.ts +1 -1
- package/dist/src/server/domains/transform/handlers.impl.transform-base.d.ts +3 -1
- package/dist/src/server/domains/transform/handlers.impl.transform-base.js +4 -1
- package/dist/src/server/domains/transform/handlers.impl.transform-crypto.js +2 -1
- package/dist/src/server/domains/transform/handlers.impl.transform-ops.js +4 -6
- package/dist/src/server/domains/transform/handlers.js +1 -1
- package/dist/src/server/domains/transform/manifest.d.ts +54 -4
- package/dist/src/server/domains/transform/manifest.js +29 -7
- package/dist/src/server/domains/wasm/definitions.js +48 -0
- package/dist/src/server/domains/wasm/handlers.js +131 -56
- package/dist/src/server/domains/wasm/manifest.d.ts +54 -4
- package/dist/src/server/domains/wasm/manifest.js +14 -4
- package/dist/src/server/domains/workflow/definitions.js +62 -2
- package/dist/src/server/domains/workflow/handlers.d.ts +1 -1
- package/dist/src/server/domains/workflow/handlers.impl.workflow-account-bundle.js +109 -52
- package/dist/src/server/domains/workflow/handlers.impl.workflow-api.js +83 -49
- package/dist/src/server/domains/workflow/handlers.impl.workflow-base.js +18 -12
- package/dist/src/server/domains/workflow/handlers.impl.workflow-batch.js +32 -29
- package/dist/src/server/domains/workflow/handlers.js +1 -1
- package/dist/src/server/domains/workflow/manifest.d.ts +60 -4
- package/dist/src/server/domains/workflow/manifest.js +31 -5
- package/dist/src/server/extensions/ExtensionManager.integrity.js +2 -2
- package/dist/src/server/extensions/ExtensionManager.js +38 -7
- package/dist/src/server/extensions/plugin-config.d.ts +2 -1
- package/dist/src/server/extensions/plugin-config.js +11 -6
- package/dist/src/server/extensions/types.d.ts +2 -0
- package/dist/src/server/http/HttpMiddleware.js +4 -10
- package/dist/src/server/macros/MacroConfigLoader.d.ts +22 -0
- package/dist/src/server/macros/MacroConfigLoader.js +71 -0
- package/dist/src/server/macros/MacroRunner.d.ts +12 -0
- package/dist/src/server/macros/MacroRunner.js +118 -0
- package/dist/src/server/macros/builtins/deobfuscate-ast-flow.d.ts +2 -0
- package/dist/src/server/macros/builtins/deobfuscate-ast-flow.js +25 -0
- package/dist/src/server/macros/builtins/index.d.ts +5 -0
- package/dist/src/server/macros/builtins/index.js +7 -0
- package/dist/src/server/macros/builtins/unpacker-flow.d.ts +2 -0
- package/dist/src/server/macros/builtins/unpacker-flow.js +25 -0
- package/dist/src/server/macros/index.d.ts +3 -0
- package/dist/src/server/macros/index.js +3 -0
- package/dist/src/server/macros/types.d.ts +36 -0
- package/dist/src/server/observability/InstrumentationContract.js +4 -2
- package/dist/src/server/plugin-api.d.ts +1 -1
- package/dist/src/server/plugin-api.js +1 -0
- package/dist/src/server/plugins/PluginContract.d.ts +1 -1
- package/dist/src/server/plugins/PluginContract.js +1 -1
- package/dist/src/server/plugins/examples/minimal-plugin/manifest.js +2 -2
- package/dist/src/server/registry/contracts.d.ts +14 -2
- package/dist/src/server/registry/discovery.js +11 -3
- package/dist/src/server/registry/index.d.ts +1 -4
- package/dist/src/server/registry/index.js +17 -37
- package/dist/src/server/registry/types.d.ts +1 -1
- package/dist/src/server/registry/types.js +1 -1
- package/dist/src/server/sandbox/AutoCorrectionLoop.d.ts +6 -0
- package/dist/src/server/sandbox/AutoCorrectionLoop.js +17 -0
- package/dist/src/server/sandbox/DynamicToolRegistry.d.ts +17 -0
- package/dist/src/server/sandbox/DynamicToolRegistry.js +46 -0
- package/dist/src/server/sandbox/MCPBridge.d.ts +9 -0
- package/dist/src/server/sandbox/MCPBridge.js +43 -0
- package/dist/src/server/sandbox/QuickJSSandbox.d.ts +11 -0
- package/dist/src/server/sandbox/QuickJSSandbox.js +184 -0
- package/dist/src/server/sandbox/SandboxHelpers.d.ts +1 -0
- package/dist/src/server/sandbox/SandboxHelpers.js +251 -0
- package/dist/src/server/sandbox/SessionScratchpad.d.ts +9 -0
- package/dist/src/server/sandbox/SessionScratchpad.js +52 -0
- package/dist/src/server/sandbox/types.d.ts +14 -0
- package/dist/src/server/search/AffinityGraph.js +1 -1
- package/dist/src/server/search/BM25Scorer.d.ts +15 -2
- package/dist/src/server/search/BM25Scorer.js +63 -60
- package/dist/src/server/search/EmbeddingEngine.d.ts +11 -0
- package/dist/src/server/search/EmbeddingEngine.js +83 -0
- package/dist/src/server/search/EmbeddingWorker.js +51 -0
- package/dist/src/server/search/IntentBoost.d.ts +3 -3
- package/dist/src/server/search/IntentBoost.js +10 -54
- package/dist/src/server/search/SynonymExpander.d.ts +7 -0
- package/dist/src/server/search/SynonymExpander.js +97 -0
- package/dist/src/server/search/ToolSearchEngineImpl.d.ts +17 -3
- package/dist/src/server/search/ToolSearchEngineImpl.js +277 -28
- package/dist/src/server/search/TrigramIndex.d.ts +7 -0
- package/dist/src/server/search/TrigramIndex.js +40 -0
- package/dist/src/server/workflows/WorkflowContract.js +28 -7
- package/dist/src/server/workflows/WorkflowEngine.js +1 -1
- package/dist/src/server/workflows/examples/batch-register.workflow.js +23 -14
- package/dist/src/types/config.d.ts +31 -0
- package/dist/src/types/index.d.ts +1 -1
- package/dist/src/utils/DetailedDataManager.js +3 -0
- package/dist/src/utils/artifactRetention.js +23 -5
- package/dist/src/utils/artifacts.js +1 -3
- package/dist/src/utils/cliFastPath.js +7 -2
- package/dist/src/utils/concurrency.js +4 -2
- package/dist/src/utils/config.js +173 -10
- package/dist/src/utils/environmentDoctor.js +5 -3
- package/dist/src/utils/parallel.js +15 -5
- package/package.json +25 -5
- package/dist/src/server/MCPServer.boost.d.ts +0 -8
- package/dist/src/server/MCPServer.boost.js +0 -334
- package/dist/src/server/MCPServer.search.dynamicBoost.d.ts +0 -36
- package/dist/src/server/MCPServer.search.dynamicBoost.js +0 -163
- package/dist/src/server/domains/encoding/handlers.impl.core.d.ts +0 -1
- package/dist/src/server/domains/encoding/handlers.impl.core.js +0 -1
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.analysis.d.ts +0 -24
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.format.js +0 -191
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.msgpack.d.ts +0 -10
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.msgpack.js +0 -268
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.parsers.d.ts +0 -1
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.parsers.js +0 -1
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.protobuf.d.ts +0 -13
- package/dist/src/server/domains/encoding/handlers.impl.core.runtime.protobuf.js +0 -204
- package/dist/src/server/domains/encoding/handlers.impl.d.ts +0 -1
- package/dist/src/server/domains/encoding/handlers.impl.js +0 -1
- package/dist/src/server/domains/network/handlers.impl.core.runtime.base.d.ts +0 -46
- package/dist/src/server/domains/network/handlers.impl.core.runtime.base.js +0 -186
- package/dist/src/server/domains/network/handlers.impl.core.runtime.console.d.ts +0 -46
- package/dist/src/server/domains/network/handlers.impl.core.runtime.console.js +0 -122
- package/dist/src/server/domains/network/handlers.impl.core.runtime.performance.d.ts +0 -63
- package/dist/src/server/domains/network/handlers.impl.core.runtime.performance.js +0 -264
- package/dist/src/server/domains/network/handlers.impl.core.runtime.requests.d.ts +0 -21
- package/dist/src/server/domains/network/handlers.impl.core.runtime.requests.js +0 -417
- package/dist/src/server/domains/sourcemap/handlers.impl.d.ts +0 -1
- package/dist/src/server/domains/sourcemap/handlers.impl.js +0 -1
- package/dist/src/server/domains/streaming/handlers.impl.d.ts +0 -1
- package/dist/src/server/domains/streaming/handlers.impl.js +0 -1
- package/dist/src/server/domains/transform/handlers.impl.d.ts +0 -1
- package/dist/src/server/domains/transform/handlers.impl.js +0 -1
- package/dist/src/server/domains/workflow/handlers.impl.d.ts +0 -1
- package/dist/src/server/domains/workflow/handlers.impl.js +0 -1
- package/dist/tests/constants.test.js +0 -104
- package/dist/tests/contracts/contracts.test.js +0 -125
- package/dist/tests/e2e/context-capture.d.ts +0 -2
- package/dist/tests/e2e/context-capture.js +0 -55
- package/dist/tests/e2e/full-tool-e2e.test.js +0 -108
- package/dist/tests/e2e/helpers/mcp-client.d.ts +0 -18
- package/dist/tests/e2e/helpers/mcp-client.js +0 -120
- package/dist/tests/e2e/helpers/schema-builder.d.ts +0 -6
- package/dist/tests/e2e/helpers/schema-builder.js +0 -108
- package/dist/tests/e2e/helpers/types.d.ts +0 -30
- package/dist/tests/e2e/overrides.d.ts +0 -2
- package/dist/tests/e2e/overrides.js +0 -149
- package/dist/tests/e2e/phases/analysis-phases.d.ts +0 -2
- package/dist/tests/e2e/phases/analysis-phases.js +0 -30
- package/dist/tests/e2e/phases/browser-phases.d.ts +0 -2
- package/dist/tests/e2e/phases/browser-phases.js +0 -59
- package/dist/tests/e2e/phases/debugger-phases.d.ts +0 -2
- package/dist/tests/e2e/phases/debugger-phases.js +0 -44
- package/dist/tests/e2e/phases/index.d.ts +0 -2
- package/dist/tests/e2e/phases/index.js +0 -15
- package/dist/tests/e2e/phases/maintenance-phases.d.ts +0 -3
- package/dist/tests/e2e/phases/maintenance-phases.js +0 -19
- package/dist/tests/e2e/phases/monitor-phases.d.ts +0 -2
- package/dist/tests/e2e/phases/monitor-phases.js +0 -52
- package/dist/tests/e2e/phases/system-phases.d.ts +0 -2
- package/dist/tests/e2e/phases/system-phases.js +0 -47
- package/dist/tests/e2e/skip-list.d.ts +0 -5
- package/dist/tests/e2e/skip-list.js +0 -17
- package/dist/tests/modules/analyzer/AISummarizer.test.js +0 -133
- package/dist/tests/modules/analyzer/CodeAnalyzer.test.js +0 -125
- package/dist/tests/modules/analyzer/IntelligentAnalyzer.test.js +0 -177
- package/dist/tests/modules/analyzer/PatternDetector.test.js +0 -149
- package/dist/tests/modules/analyzer/QualityAnalyzer.test.js +0 -85
- package/dist/tests/modules/analyzer/SecurityCodeAnalyzer.test.js +0 -82
- package/dist/tests/modules/browser/BrowserDiscovery.test.js +0 -72
- package/dist/tests/modules/browser/BrowserModeManager.test.js +0 -213
- package/dist/tests/modules/browser/CamoufoxBrowserManager.test.js +0 -74
- package/dist/tests/modules/browser/UnifiedBrowserManager.test.js +0 -190
- package/dist/tests/modules/captcha/AICaptchaDetector.test.js +0 -402
- package/dist/tests/modules/captcha/CaptchaDetector.test.d.ts +0 -1
- package/dist/tests/modules/captcha/CaptchaDetector.test.js +0 -218
- package/dist/tests/modules/captcha/CaptchaPolicy.test.d.ts +0 -1
- package/dist/tests/modules/captcha/CaptchaPolicy.test.js +0 -52
- package/dist/tests/modules/collector/CodeCache.test.d.ts +0 -1
- package/dist/tests/modules/collector/CodeCache.test.js +0 -86
- package/dist/tests/modules/collector/CodeCollector.test.d.ts +0 -1
- package/dist/tests/modules/collector/CodeCollector.test.js +0 -128
- package/dist/tests/modules/collector/CodeCompressor.test.d.ts +0 -1
- package/dist/tests/modules/collector/CodeCompressor.test.js +0 -69
- package/dist/tests/modules/collector/DOMInspector.test.d.ts +0 -1
- package/dist/tests/modules/collector/DOMInspector.test.js +0 -142
- package/dist/tests/modules/collector/PageController.test.d.ts +0 -1
- package/dist/tests/modules/collector/PageController.test.js +0 -73
- package/dist/tests/modules/collector/PageScriptCollectors.test.d.ts +0 -1
- package/dist/tests/modules/collector/PageScriptCollectors.test.js +0 -87
- package/dist/tests/modules/collector/SmartCodeCollector.test.d.ts +0 -1
- package/dist/tests/modules/collector/SmartCodeCollector.test.js +0 -93
- package/dist/tests/modules/collector/StreamingCollector.test.d.ts +0 -1
- package/dist/tests/modules/collector/StreamingCollector.test.js +0 -64
- package/dist/tests/modules/crypto/CryptoDetector.test.d.ts +0 -1
- package/dist/tests/modules/crypto/CryptoDetector.test.js +0 -61
- package/dist/tests/modules/crypto/CryptoRules.test.d.ts +0 -1
- package/dist/tests/modules/crypto/CryptoRules.test.js +0 -57
- package/dist/tests/modules/debugger/BlackboxManager.test.d.ts +0 -1
- package/dist/tests/modules/debugger/BlackboxManager.test.js +0 -58
- package/dist/tests/modules/debugger/DebuggerManager.test.d.ts +0 -1
- package/dist/tests/modules/debugger/DebuggerManager.test.js +0 -120
- package/dist/tests/modules/debugger/DebuggerSessionManager.test.d.ts +0 -1
- package/dist/tests/modules/debugger/DebuggerSessionManager.test.js +0 -130
- package/dist/tests/modules/debugger/EventBreakpointManager.test.d.ts +0 -1
- package/dist/tests/modules/debugger/EventBreakpointManager.test.js +0 -53
- package/dist/tests/modules/debugger/RuntimeInspector.test.d.ts +0 -1
- package/dist/tests/modules/debugger/RuntimeInspector.test.js +0 -98
- package/dist/tests/modules/debugger/ScriptManager.test.d.ts +0 -1
- package/dist/tests/modules/debugger/ScriptManager.test.js +0 -168
- package/dist/tests/modules/debugger/WatchExpressionManager.test.d.ts +0 -1
- package/dist/tests/modules/debugger/WatchExpressionManager.test.js +0 -61
- package/dist/tests/modules/debugger/XHRBreakpointManager.test.d.ts +0 -1
- package/dist/tests/modules/debugger/XHRBreakpointManager.test.js +0 -52
- package/dist/tests/modules/deobfuscator/ASTOptimizer.test.d.ts +0 -1
- package/dist/tests/modules/deobfuscator/ASTOptimizer.test.js +0 -49
- package/dist/tests/modules/deobfuscator/AdvancedDeobfuscator.test.d.ts +0 -1
- package/dist/tests/modules/deobfuscator/AdvancedDeobfuscator.test.js +0 -117
- package/dist/tests/modules/deobfuscator/Deobfuscator.test.d.ts +0 -1
- package/dist/tests/modules/deobfuscator/Deobfuscator.test.js +0 -134
- package/dist/tests/modules/deobfuscator/JSVMPDeobfuscator.test.d.ts +0 -1
- package/dist/tests/modules/deobfuscator/JSVMPDeobfuscator.test.js +0 -109
- package/dist/tests/modules/deobfuscator/JScramblerDeobfuscator.test.d.ts +0 -1
- package/dist/tests/modules/deobfuscator/JScramblerDeobfuscator.test.js +0 -74
- package/dist/tests/modules/deobfuscator/PackerDeobfuscator.test.d.ts +0 -1
- package/dist/tests/modules/deobfuscator/PackerDeobfuscator.test.js +0 -81
- package/dist/tests/modules/deobfuscator/VMDeobfuscator.test.d.ts +0 -1
- package/dist/tests/modules/deobfuscator/VMDeobfuscator.test.js +0 -78
- package/dist/tests/modules/deobfuscator/webcrack.test.d.ts +0 -1
- package/dist/tests/modules/deobfuscator/webcrack.test.js +0 -111
- package/dist/tests/modules/detector/ObfuscationDetector.test.d.ts +0 -1
- package/dist/tests/modules/detector/ObfuscationDetector.test.js +0 -69
- package/dist/tests/modules/emulator/AIEnvironmentAnalyzer.test.d.ts +0 -1
- package/dist/tests/modules/emulator/AIEnvironmentAnalyzer.test.js +0 -107
- package/dist/tests/modules/emulator/BrowserAPIDatabase.test.d.ts +0 -1
- package/dist/tests/modules/emulator/BrowserAPIDatabase.test.js +0 -48
- package/dist/tests/modules/emulator/BrowserEnvironmentRules.test.d.ts +0 -1
- package/dist/tests/modules/emulator/BrowserEnvironmentRules.test.js +0 -50
- package/dist/tests/modules/emulator/EmulatorCodeGen.test.d.ts +0 -1
- package/dist/tests/modules/emulator/EmulatorCodeGen.test.js +0 -51
- package/dist/tests/modules/emulator/EnvironmentEmulator.test.d.ts +0 -1
- package/dist/tests/modules/emulator/EnvironmentEmulator.test.js +0 -115
- package/dist/tests/modules/external/ExternalToolRunner.test.d.ts +0 -1
- package/dist/tests/modules/external/ExternalToolRunner.test.js +0 -159
- package/dist/tests/modules/external/ToolProbe.test.d.ts +0 -1
- package/dist/tests/modules/external/ToolProbe.test.js +0 -80
- package/dist/tests/modules/external/ToolRegistry.test.d.ts +0 -1
- package/dist/tests/modules/external/ToolRegistry.test.js +0 -71
- package/dist/tests/modules/hook/AIHookGenerator.test.d.ts +0 -1
- package/dist/tests/modules/hook/AIHookGenerator.test.js +0 -104
- package/dist/tests/modules/hook/HookGenerator.test.d.ts +0 -1
- package/dist/tests/modules/hook/HookGenerator.test.js +0 -38
- package/dist/tests/modules/hook/HookManager.test.d.ts +0 -1
- package/dist/tests/modules/hook/HookManager.test.js +0 -114
- package/dist/tests/modules/monitor/ConsoleMonitor.test.d.ts +0 -1
- package/dist/tests/modules/monitor/ConsoleMonitor.test.js +0 -291
- package/dist/tests/modules/monitor/NetworkMonitor.test.d.ts +0 -1
- package/dist/tests/modules/monitor/NetworkMonitor.test.js +0 -301
- package/dist/tests/modules/monitor/PerformanceMonitor.test.d.ts +0 -1
- package/dist/tests/modules/monitor/PerformanceMonitor.test.js +0 -204
- package/dist/tests/modules/monitor/PlaywrightNetworkMonitor.test.d.ts +0 -1
- package/dist/tests/modules/monitor/PlaywrightNetworkMonitor.test.js +0 -138
- package/dist/tests/modules/process/BaseMemoryManager.test.d.ts +0 -1
- package/dist/tests/modules/process/BaseMemoryManager.test.js +0 -81
- package/dist/tests/modules/process/LinuxProcessManager.test.d.ts +0 -1
- package/dist/tests/modules/process/LinuxProcessManager.test.js +0 -136
- package/dist/tests/modules/process/MacProcessManager.test.d.ts +0 -1
- package/dist/tests/modules/process/MacProcessManager.test.js +0 -144
- package/dist/tests/modules/process/MemoryManager.test.d.ts +0 -1
- package/dist/tests/modules/process/MemoryManager.test.js +0 -117
- package/dist/tests/modules/process/ProcessManager.test.d.ts +0 -1
- package/dist/tests/modules/process/ProcessManager.test.js +0 -159
- package/dist/tests/modules/process/memory/availability.test.d.ts +0 -1
- package/dist/tests/modules/process/memory/availability.test.js +0 -77
- package/dist/tests/modules/process/memory/injector.test.d.ts +0 -1
- package/dist/tests/modules/process/memory/injector.test.js +0 -62
- package/dist/tests/modules/process/memory/monitor.test.d.ts +0 -1
- package/dist/tests/modules/process/memory/monitor.test.js +0 -54
- package/dist/tests/modules/process/memory/nativeMemoryManager.test.d.ts +0 -1
- package/dist/tests/modules/process/memory/nativeMemoryManager.test.js +0 -127
- package/dist/tests/modules/process/memory/reader.test.d.ts +0 -1
- package/dist/tests/modules/process/memory/reader.test.js +0 -86
- package/dist/tests/modules/process/memory/regions.test.d.ts +0 -1
- package/dist/tests/modules/process/memory/regions.test.js +0 -81
- package/dist/tests/modules/process/memory/scanner.test.d.ts +0 -1
- package/dist/tests/modules/process/memory/scanner.test.js +0 -155
- package/dist/tests/modules/process/memory/writer.test.d.ts +0 -1
- package/dist/tests/modules/process/memory/writer.test.js +0 -81
- package/dist/tests/modules/process/memoryUtils.test.d.ts +0 -1
- package/dist/tests/modules/process/memoryUtils.test.js +0 -101
- package/dist/tests/modules/security/ExecutionSandbox.test.d.ts +0 -1
- package/dist/tests/modules/security/ExecutionSandbox.test.js +0 -122
- package/dist/tests/modules/security/RedactionService.test.d.ts +0 -1
- package/dist/tests/modules/security/RedactionService.test.js +0 -56
- package/dist/tests/modules/stealth/StealthScripts.test.d.ts +0 -1
- package/dist/tests/modules/stealth/StealthScripts.test.js +0 -67
- package/dist/tests/modules/symbolic/JSVMPSymbolicExecutor.test.d.ts +0 -1
- package/dist/tests/modules/symbolic/JSVMPSymbolicExecutor.test.js +0 -59
- package/dist/tests/modules/symbolic/SymbolicExecutor.test.d.ts +0 -1
- package/dist/tests/modules/symbolic/SymbolicExecutor.test.js +0 -45
- package/dist/tests/packages/extension-sdk/ExtensionBuilder.test.d.ts +0 -1
- package/dist/tests/packages/extension-sdk/ExtensionBuilder.test.js +0 -205
- package/dist/tests/server/ExtensionManagementHandlers.test.d.ts +0 -1
- package/dist/tests/server/ExtensionManagementHandlers.test.js +0 -238
- package/dist/tests/server/ExtensionManager.test.d.ts +0 -1
- package/dist/tests/server/ExtensionManager.test.js +0 -133
- package/dist/tests/server/MCPServer.boost.test.d.ts +0 -1
- package/dist/tests/server/MCPServer.boost.test.js +0 -543
- package/dist/tests/server/MCPServer.schema.test.d.ts +0 -1
- package/dist/tests/server/MCPServer.schema.test.js +0 -124
- package/dist/tests/server/MCPServer.search.test.d.ts +0 -1
- package/dist/tests/server/MCPServer.search.test.js +0 -723
- package/dist/tests/server/MCPServer.test.d.ts +0 -1
- package/dist/tests/server/MCPServer.test.js +0 -218
- package/dist/tests/server/ToolCallContextGuard.test.d.ts +0 -1
- package/dist/tests/server/ToolCallContextGuard.test.js +0 -114
- package/dist/tests/server/ToolCatalog.test.d.ts +0 -1
- package/dist/tests/server/ToolCatalog.test.js +0 -154
- package/dist/tests/server/ToolCatalog.tier.test.d.ts +0 -1
- package/dist/tests/server/ToolCatalog.tier.test.js +0 -97
- package/dist/tests/server/ToolExecutionRouter.test.d.ts +0 -1
- package/dist/tests/server/ToolExecutionRouter.test.js +0 -44
- package/dist/tests/server/ToolHandlerMap.test.d.ts +0 -1
- package/dist/tests/server/ToolHandlerMap.test.js +0 -75
- package/dist/tests/server/ToolSearch.test.d.ts +0 -1
- package/dist/tests/server/ToolSearch.test.js +0 -329
- package/dist/tests/server/discovery.test.d.ts +0 -1
- package/dist/tests/server/discovery.test.js +0 -64
- package/dist/tests/server/domains/analysis/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/analysis/handlers.test.js +0 -184
- package/dist/tests/server/domains/antidebug/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/antidebug/handlers.test.js +0 -66
- package/dist/tests/server/domains/browser/behavior-tools.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/behavior-tools.test.js +0 -30
- package/dist/tests/server/domains/browser/browser-control.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/browser-control.test.js +0 -74
- package/dist/tests/server/domains/browser/captcha-solver.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/captcha-solver.test.js +0 -153
- package/dist/tests/server/domains/browser/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/handlers.test.js +0 -287
- package/dist/tests/server/domains/browser/human-behavior.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/human-behavior.test.js +0 -155
- package/dist/tests/server/domains/browser/page-evaluation.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/page-evaluation.test.js +0 -38
- package/dist/tests/server/domains/browser/page-interaction.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/page-interaction.test.js +0 -79
- package/dist/tests/server/domains/browser/page-navigation.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/page-navigation.test.js +0 -55
- package/dist/tests/server/domains/browser/security-tools.test.d.ts +0 -1
- package/dist/tests/server/domains/browser/security-tools.test.js +0 -25
- package/dist/tests/server/domains/debugger/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/debugger/handlers.test.js +0 -181
- package/dist/tests/server/domains/encoding/analysis.test.d.ts +0 -1
- package/dist/tests/server/domains/encoding/analysis.test.js +0 -318
- package/dist/tests/server/domains/encoding/format.test.d.ts +0 -1
- package/dist/tests/server/domains/encoding/format.test.js +0 -433
- package/dist/tests/server/domains/encoding/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/encoding/handlers.test.js +0 -56
- package/dist/tests/server/domains/encoding/msgpack.test.d.ts +0 -1
- package/dist/tests/server/domains/encoding/msgpack.test.js +0 -420
- package/dist/tests/server/domains/encoding/protobuf.test.d.ts +0 -1
- package/dist/tests/server/domains/encoding/protobuf.test.js +0 -448
- package/dist/tests/server/domains/graphql/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/graphql/handlers.test.js +0 -87
- package/dist/tests/server/domains/hooks/preset-handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/hooks/preset-handlers.test.js +0 -66
- package/dist/tests/server/domains/maintenance/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/maintenance/handlers.test.js +0 -79
- package/dist/tests/server/domains/native-bridge/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/native-bridge/handlers.test.js +0 -127
- package/dist/tests/server/domains/network/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/network/handlers.test.js +0 -102
- package/dist/tests/server/domains/network/replay.test.d.ts +0 -1
- package/dist/tests/server/domains/network/replay.test.js +0 -51
- package/dist/tests/server/domains/platform/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/platform/handlers.test.js +0 -108
- package/dist/tests/server/domains/process/handlers.inject.test.d.ts +0 -1
- package/dist/tests/server/domains/process/handlers.inject.test.js +0 -437
- package/dist/tests/server/domains/process/handlers.memory.test.d.ts +0 -1
- package/dist/tests/server/domains/process/handlers.memory.test.js +0 -184
- package/dist/tests/server/domains/process/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/process/handlers.test.js +0 -103
- package/dist/tests/server/domains/shared/response.test.d.ts +0 -1
- package/dist/tests/server/domains/shared/response.test.js +0 -38
- package/dist/tests/server/domains/sourcemap/common.test.d.ts +0 -1
- package/dist/tests/server/domains/sourcemap/common.test.js +0 -240
- package/dist/tests/server/domains/sourcemap/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/sourcemap/handlers.test.js +0 -91
- package/dist/tests/server/domains/sourcemap/parse-base.test.d.ts +0 -1
- package/dist/tests/server/domains/sourcemap/parse-base.test.js +0 -414
- package/dist/tests/server/domains/streaming/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/streaming/handlers.test.js +0 -106
- package/dist/tests/server/domains/transform/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/transform/handlers.test.js +0 -64
- package/dist/tests/server/domains/transform/transform-base.test.d.ts +0 -1
- package/dist/tests/server/domains/transform/transform-base.test.js +0 -176
- package/dist/tests/server/domains/transform/transform-ops.test.d.ts +0 -1
- package/dist/tests/server/domains/transform/transform-ops.test.js +0 -242
- package/dist/tests/server/domains/wasm/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/wasm/handlers.test.js +0 -107
- package/dist/tests/server/domains/workflow/batch-register.test.d.ts +0 -1
- package/dist/tests/server/domains/workflow/batch-register.test.js +0 -158
- package/dist/tests/server/domains/workflow/handlers.test.d.ts +0 -1
- package/dist/tests/server/domains/workflow/handlers.test.js +0 -258
- package/dist/tests/server/http/HttpMiddleware.test.d.ts +0 -1
- package/dist/tests/server/http/HttpMiddleware.test.js +0 -152
- package/dist/tests/services/LLMService.test.d.ts +0 -1
- package/dist/tests/services/LLMService.test.js +0 -274
- package/dist/tests/services/prompts.test.d.ts +0 -1
- package/dist/tests/services/prompts.test.js +0 -408
- package/dist/tests/setup.d.ts +0 -1
- package/dist/tests/setup.js +0 -12
- package/dist/tests/utils/AdaptiveDataSerializer.test.d.ts +0 -1
- package/dist/tests/utils/AdaptiveDataSerializer.test.js +0 -67
- package/dist/tests/utils/CacheAdapters.test.d.ts +0 -1
- package/dist/tests/utils/CacheAdapters.test.js +0 -91
- package/dist/tests/utils/DetailedDataManager.test.d.ts +0 -1
- package/dist/tests/utils/DetailedDataManager.test.js +0 -67
- package/dist/tests/utils/RingBuffer.test.d.ts +0 -1
- package/dist/tests/utils/RingBuffer.test.js +0 -50
- package/dist/tests/utils/TokenBudgetManager.test.d.ts +0 -1
- package/dist/tests/utils/TokenBudgetManager.test.js +0 -75
- package/dist/tests/utils/UnifiedCacheManager.test.d.ts +0 -1
- package/dist/tests/utils/UnifiedCacheManager.test.js +0 -114
- package/dist/tests/utils/WorkerPool.test.d.ts +0 -1
- package/dist/tests/utils/WorkerPool.test.js +0 -143
- package/dist/tests/utils/artifactRetention.test.d.ts +0 -1
- package/dist/tests/utils/artifactRetention.test.js +0 -50
- package/dist/tests/utils/artifacts.test.d.ts +0 -1
- package/dist/tests/utils/artifacts.test.js +0 -76
- package/dist/tests/utils/browserExecutable.test.d.ts +0 -1
- package/dist/tests/utils/browserExecutable.test.js +0 -69
- package/dist/tests/utils/cache.test.d.ts +0 -1
- package/dist/tests/utils/cache.test.js +0 -93
- package/dist/tests/utils/cliFastPath.test.d.ts +0 -1
- package/dist/tests/utils/cliFastPath.test.js +0 -30
- package/dist/tests/utils/concurrency.test.d.ts +0 -1
- package/dist/tests/utils/concurrency.test.js +0 -55
- package/dist/tests/utils/config.extended.test.d.ts +0 -1
- package/dist/tests/utils/config.extended.test.js +0 -46
- package/dist/tests/utils/config.noise.test.d.ts +0 -1
- package/dist/tests/utils/config.noise.test.js +0 -21
- package/dist/tests/utils/config.test.d.ts +0 -1
- package/dist/tests/utils/config.test.js +0 -71
- package/dist/tests/utils/environmentDoctor.test.d.ts +0 -1
- package/dist/tests/utils/environmentDoctor.test.js +0 -234
- package/dist/tests/utils/logger.test.d.ts +0 -1
- package/dist/tests/utils/logger.test.js +0 -66
- package/dist/tests/utils/outputPaths.test.d.ts +0 -1
- package/dist/tests/utils/outputPaths.test.js +0 -51
- package/dist/tests/utils/parallel.test.d.ts +0 -1
- package/dist/tests/utils/parallel.test.js +0 -74
- /package/dist/{tests/constants.test.d.ts → src/modules/stealth/FingerprintManager.types.js} +0 -0
- /package/dist/{tests/contracts/contracts.test.d.ts → src/modules/trace/TraceDB.types.js} +0 -0
- /package/dist/{tests/e2e/full-tool-e2e.test.d.ts → src/modules/trace/TraceRecorder.types.js} +0 -0
- /package/dist/{tests/e2e/helpers/types.js → src/native/AntiCheatDetector.types.js} +0 -0
- /package/dist/{tests/modules/analyzer/AISummarizer.test.d.ts → src/native/CodeInjector.types.js} +0 -0
- /package/dist/{tests/modules/analyzer/CodeAnalyzer.test.d.ts → src/native/HardwareBreakpoint.types.js} +0 -0
- /package/dist/{tests/modules/analyzer/IntelligentAnalyzer.test.d.ts → src/native/MemoryController.types.js} +0 -0
- /package/dist/{tests/modules/analyzer/PatternDetector.test.d.ts → src/native/PointerChainEngine.types.js} +0 -0
- /package/dist/{tests/modules/analyzer/QualityAnalyzer.test.d.ts → src/native/Speedhack.types.js} +0 -0
- /package/dist/{tests/modules/analyzer/SecurityCodeAnalyzer.test.d.ts → src/native/StructureAnalyzer.types.js} +0 -0
- /package/dist/{tests/modules/browser/BrowserDiscovery.test.d.ts → src/native/platform/PlatformMemoryAPI.js} +0 -0
- /package/dist/{tests/modules/browser/BrowserModeManager.test.d.ts → src/server/activation/types.js} +0 -0
- /package/dist/{tests/modules/browser/CamoufoxBrowserManager.test.d.ts → src/server/macros/types.js} +0 -0
- /package/dist/{tests/modules/browser/UnifiedBrowserManager.test.d.ts → src/server/sandbox/types.js} +0 -0
- /package/dist/{tests/modules/captcha/AICaptchaDetector.test.d.ts → src/server/search/EmbeddingWorker.d.ts} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CodeCollector } from '../collector/CodeCollector.js';
|
|
2
|
+
import type { Page } from 'rebrowser-puppeteer-core';
|
|
2
3
|
export interface NavigationOptions {
|
|
3
4
|
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle0' | 'networkidle2';
|
|
4
5
|
timeout?: number;
|
|
@@ -97,6 +98,18 @@ export declare class PageController {
|
|
|
97
98
|
text: string;
|
|
98
99
|
href: string;
|
|
99
100
|
}>>;
|
|
100
|
-
getPage(): Promise<
|
|
101
|
+
getPage(): Promise<Page>;
|
|
101
102
|
}
|
|
103
|
+
export declare function evaluateWithTimeout<Args extends readonly unknown[], Result>(page: Page, pageFunction: (...args: Args) => Result, ...args: Args): Promise<Awaited<Result>>;
|
|
104
|
+
export declare function evaluateWithTimeout(page: Page, pageFunction: string, ...args: readonly unknown[]): Promise<unknown>;
|
|
105
|
+
export declare function evaluateOnNewDocumentWithTimeout<Args extends readonly unknown[], Result>(page: Page, pageFunction: string | ((...args: never[]) => Result), ...args: Args): Promise<unknown>;
|
|
106
|
+
export declare function coverageStartJSWithTimeout(page: any, options?: {
|
|
107
|
+
resetOnNavigation?: boolean;
|
|
108
|
+
reportAnonymousScripts?: boolean;
|
|
109
|
+
}): Promise<void>;
|
|
110
|
+
export declare function coverageStartCSSWithTimeout(page: any, options?: {
|
|
111
|
+
resetOnNavigation?: boolean;
|
|
112
|
+
}): Promise<void>;
|
|
113
|
+
export declare function coverageStopJSWithTimeout(page: any): Promise<unknown>;
|
|
114
|
+
export declare function coverageStopCSSWithTimeout(page: any): Promise<unknown>;
|
|
102
115
|
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { logger } from '../../utils/logger.js';
|
|
2
|
+
import { setTimeout as asyncSetTimeout } from 'node:timers/promises';
|
|
2
3
|
export class PageController {
|
|
3
4
|
collector;
|
|
4
5
|
constructor(collector) {
|
|
@@ -118,7 +119,7 @@ export class PageController {
|
|
|
118
119
|
}
|
|
119
120
|
async evaluate(code) {
|
|
120
121
|
const page = await this.collector.getActivePage();
|
|
121
|
-
const result = await page
|
|
122
|
+
const result = await evaluateWithTimeout(page, code);
|
|
122
123
|
logger.info('JavaScript executed');
|
|
123
124
|
return result;
|
|
124
125
|
}
|
|
@@ -152,7 +153,7 @@ export class PageController {
|
|
|
152
153
|
}
|
|
153
154
|
async getPerformanceMetrics() {
|
|
154
155
|
const page = await this.collector.getActivePage();
|
|
155
|
-
const metrics = await page
|
|
156
|
+
const metrics = await evaluateWithTimeout(page, () => {
|
|
156
157
|
const perf = performance.getEntriesByType('navigation')[0];
|
|
157
158
|
return {
|
|
158
159
|
domContentLoaded: perf.domContentLoadedEventEnd - perf.domContentLoadedEventStart,
|
|
@@ -170,7 +171,7 @@ export class PageController {
|
|
|
170
171
|
}
|
|
171
172
|
async injectScript(scriptContent) {
|
|
172
173
|
const page = await this.collector.getActivePage();
|
|
173
|
-
await page
|
|
174
|
+
await evaluateWithTimeout(page, (script) => {
|
|
174
175
|
const scriptElement = document.createElement('script');
|
|
175
176
|
scriptElement.textContent = script;
|
|
176
177
|
document.head.appendChild(scriptElement);
|
|
@@ -215,7 +216,9 @@ export class PageController {
|
|
|
215
216
|
userAgent: 'Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 Chrome/91.0.4472.120',
|
|
216
217
|
},
|
|
217
218
|
};
|
|
218
|
-
const normalized = String(deviceName || '')
|
|
219
|
+
const normalized = String(deviceName || '')
|
|
220
|
+
.trim()
|
|
221
|
+
.toLowerCase();
|
|
219
222
|
let resolvedDevice = null;
|
|
220
223
|
if (normalized.includes('iphone')) {
|
|
221
224
|
resolvedDevice = 'iPhone';
|
|
@@ -304,3 +307,74 @@ export class PageController {
|
|
|
304
307
|
return await this.collector.getActivePage();
|
|
305
308
|
}
|
|
306
309
|
}
|
|
310
|
+
async function checkPageCDPHealth(page, timeoutMs = 500) {
|
|
311
|
+
const ac = new AbortController();
|
|
312
|
+
const timer = asyncSetTimeout(timeoutMs, undefined, { signal: ac.signal }).then(() => {
|
|
313
|
+
throw new Error('cdp_unreachable');
|
|
314
|
+
});
|
|
315
|
+
try {
|
|
316
|
+
const cdp = await Promise.race([
|
|
317
|
+
page.createCDPSession(),
|
|
318
|
+
timer,
|
|
319
|
+
]);
|
|
320
|
+
await Promise.race([
|
|
321
|
+
cdp.send('Runtime.evaluate', { expression: '1', returnByValue: true }),
|
|
322
|
+
timer,
|
|
323
|
+
]);
|
|
324
|
+
}
|
|
325
|
+
catch (err) {
|
|
326
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
327
|
+
if (msg === 'cdp_unreachable') {
|
|
328
|
+
throw new Error('CDP session unresponsive — the debugger may be blocking page evaluation. ' +
|
|
329
|
+
'Call debugger_disable() before this tool, or run it before debugger_enable().');
|
|
330
|
+
}
|
|
331
|
+
throw err;
|
|
332
|
+
}
|
|
333
|
+
finally {
|
|
334
|
+
ac.abort();
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
export async function evaluateWithTimeout(page, pageFunction, ...args) {
|
|
338
|
+
const timeoutMs = 30000;
|
|
339
|
+
await checkPageCDPHealth(page);
|
|
340
|
+
return Promise.race([
|
|
341
|
+
page.evaluate(pageFunction, ...[...args]),
|
|
342
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`page.evaluate timed out after ${timeoutMs}ms`)), timeoutMs)),
|
|
343
|
+
]);
|
|
344
|
+
}
|
|
345
|
+
export async function evaluateOnNewDocumentWithTimeout(page, pageFunction, ...args) {
|
|
346
|
+
const timeoutMs = 30000;
|
|
347
|
+
await checkPageCDPHealth(page);
|
|
348
|
+
return Promise.race([
|
|
349
|
+
page.evaluateOnNewDocument(pageFunction, ...[...args]),
|
|
350
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`page.evaluateOnNewDocument timed out after ${timeoutMs}ms`)), timeoutMs)),
|
|
351
|
+
]);
|
|
352
|
+
}
|
|
353
|
+
export async function coverageStartJSWithTimeout(page, options) {
|
|
354
|
+
const timeoutMs = 30000;
|
|
355
|
+
return Promise.race([
|
|
356
|
+
page.coverage.startJSCoverage(options),
|
|
357
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`coverage.startJSCoverage timed out after ${timeoutMs}ms`)), timeoutMs)),
|
|
358
|
+
]);
|
|
359
|
+
}
|
|
360
|
+
export async function coverageStartCSSWithTimeout(page, options) {
|
|
361
|
+
const timeoutMs = 30000;
|
|
362
|
+
return Promise.race([
|
|
363
|
+
page.coverage.startCSSCoverage(options),
|
|
364
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`coverage.startCSSCoverage timed out after ${timeoutMs}ms`)), timeoutMs)),
|
|
365
|
+
]);
|
|
366
|
+
}
|
|
367
|
+
export async function coverageStopJSWithTimeout(page) {
|
|
368
|
+
const timeoutMs = 30000;
|
|
369
|
+
return Promise.race([
|
|
370
|
+
page.coverage.stopJSCoverage(),
|
|
371
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`coverage.stopJSCoverage timed out after ${timeoutMs}ms`)), timeoutMs)),
|
|
372
|
+
]);
|
|
373
|
+
}
|
|
374
|
+
export async function coverageStopCSSWithTimeout(page) {
|
|
375
|
+
const timeoutMs = 30000;
|
|
376
|
+
return Promise.race([
|
|
377
|
+
page.coverage.stopCSSCoverage(),
|
|
378
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`coverage.stopCSSCoverage timed out after ${timeoutMs}ms`)), timeoutMs)),
|
|
379
|
+
]);
|
|
380
|
+
}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { Page } from 'rebrowser-puppeteer-core';
|
|
2
2
|
import type { CodeFile, DependencyGraph } from '../../types/index.js';
|
|
3
|
+
type UrlFilter = (url: string) => boolean;
|
|
4
|
+
export declare function setupWebWorkerTracking(page: Page): Promise<void>;
|
|
3
5
|
export declare function collectInlineScripts(page: Page, maxSingleSize: number, maxFilesPerCollect: number): Promise<CodeFile[]>;
|
|
4
|
-
export declare function collectServiceWorkers(page: Page): Promise<CodeFile[]>;
|
|
5
|
-
export declare function collectWebWorkers(page: Page): Promise<CodeFile[]>;
|
|
6
|
+
export declare function collectServiceWorkers(page: Page, shouldCollectUrl?: UrlFilter): Promise<CodeFile[]>;
|
|
7
|
+
export declare function collectWebWorkers(page: Page, shouldCollectUrl?: UrlFilter): Promise<CodeFile[]>;
|
|
6
8
|
export declare function analyzeDependencies(files: CodeFile[]): DependencyGraph;
|
|
7
9
|
export declare function extractDependencies(code: string): string[];
|
|
8
10
|
export declare function calculatePriorityScore(file: CodeFile): number;
|
|
11
|
+
export {};
|
|
@@ -1,4 +1,32 @@
|
|
|
1
1
|
import { logger } from '../../utils/logger.js';
|
|
2
|
+
export async function setupWebWorkerTracking(page) {
|
|
3
|
+
await page.evaluateOnNewDocument(() => {
|
|
4
|
+
const workerWindow = window;
|
|
5
|
+
const originalWorker = workerWindow.Worker;
|
|
6
|
+
if (typeof originalWorker !== 'function') {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
const workerUrls = Array.isArray(workerWindow.__workerUrls)
|
|
10
|
+
? workerWindow.__workerUrls
|
|
11
|
+
: [];
|
|
12
|
+
const trackedWorker = new Proxy(originalWorker, {
|
|
13
|
+
construct(target, args, newTarget) {
|
|
14
|
+
const worker = Reflect.construct(target, args, newTarget);
|
|
15
|
+
const [scriptURL] = args;
|
|
16
|
+
if (typeof scriptURL === 'string') {
|
|
17
|
+
workerUrls.push(scriptURL);
|
|
18
|
+
workerWindow.__workerUrls = workerUrls;
|
|
19
|
+
}
|
|
20
|
+
else if (scriptURL instanceof URL) {
|
|
21
|
+
workerUrls.push(scriptURL.toString());
|
|
22
|
+
workerWindow.__workerUrls = workerUrls;
|
|
23
|
+
}
|
|
24
|
+
return worker;
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
workerWindow.Worker = trackedWorker;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
2
30
|
export async function collectInlineScripts(page, maxSingleSize, maxFilesPerCollect) {
|
|
3
31
|
const scripts = await page.evaluate((maxSingleSize) => {
|
|
4
32
|
const scriptElements = Array.from(document.querySelectorAll('script'));
|
|
@@ -39,7 +67,7 @@ export async function collectInlineScripts(page, maxSingleSize, maxFilesPerColle
|
|
|
39
67
|
logger.debug(`Collected ${limitedScripts.length} inline scripts`);
|
|
40
68
|
return limitedScripts;
|
|
41
69
|
}
|
|
42
|
-
export async function collectServiceWorkers(page) {
|
|
70
|
+
export async function collectServiceWorkers(page, shouldCollectUrl = () => true) {
|
|
43
71
|
try {
|
|
44
72
|
const serviceWorkers = await page.evaluate(async () => {
|
|
45
73
|
if (!('serviceWorker' in navigator)) {
|
|
@@ -61,6 +89,9 @@ export async function collectServiceWorkers(page) {
|
|
|
61
89
|
});
|
|
62
90
|
const files = [];
|
|
63
91
|
for (const worker of serviceWorkers) {
|
|
92
|
+
if (!shouldCollectUrl(worker.url)) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
64
95
|
try {
|
|
65
96
|
const content = await page.evaluate(async (url) => {
|
|
66
97
|
const response = await fetch(url);
|
|
@@ -87,28 +118,19 @@ export async function collectServiceWorkers(page) {
|
|
|
87
118
|
return [];
|
|
88
119
|
}
|
|
89
120
|
}
|
|
90
|
-
export async function collectWebWorkers(page) {
|
|
121
|
+
export async function collectWebWorkers(page, shouldCollectUrl = () => true) {
|
|
91
122
|
try {
|
|
92
|
-
await page.evaluateOnNewDocument(() => {
|
|
93
|
-
const workerWindow = window;
|
|
94
|
-
const originalWorker = workerWindow.Worker;
|
|
95
|
-
const workerUrls = [];
|
|
96
|
-
const trackedWorker = function (scriptURL, options) {
|
|
97
|
-
const scriptUrlString = typeof scriptURL === 'string' ? scriptURL : scriptURL.toString();
|
|
98
|
-
workerUrls.push(scriptUrlString);
|
|
99
|
-
workerWindow.__workerUrls = workerUrls;
|
|
100
|
-
return new originalWorker(scriptURL, options);
|
|
101
|
-
};
|
|
102
|
-
workerWindow.Worker = trackedWorker;
|
|
103
|
-
});
|
|
104
123
|
const workerUrls = await page.evaluate(() => {
|
|
105
124
|
const workerWindow = window;
|
|
106
|
-
return workerWindow.__workerUrls
|
|
125
|
+
return Array.isArray(workerWindow.__workerUrls) ? workerWindow.__workerUrls : [];
|
|
107
126
|
});
|
|
108
127
|
const files = [];
|
|
109
128
|
for (const url of workerUrls) {
|
|
110
129
|
try {
|
|
111
130
|
const absoluteUrl = new URL(url, page.url()).href;
|
|
131
|
+
if (!shouldCollectUrl(absoluteUrl)) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
112
134
|
const content = await page.evaluate(async (workerUrl) => {
|
|
113
135
|
const response = await fetch(workerUrl);
|
|
114
136
|
return await response.text();
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as parser from '@babel/parser';
|
|
2
2
|
import traverse from '@babel/traverse';
|
|
3
3
|
import * as t from '@babel/types';
|
|
4
|
+
import { LLMService } from '../../services/LLMService.js';
|
|
4
5
|
import { generateCryptoDetectionPrompt } from '../../services/prompts/crypto.js';
|
|
5
6
|
import { logger } from '../../utils/logger.js';
|
|
6
7
|
import { CRYPTO_DETECT_LLM_MAX_TOKENS } from '../../constants.js';
|
|
@@ -84,7 +85,10 @@ export class CryptoDetector {
|
|
|
84
85
|
async detectByAI(code) {
|
|
85
86
|
try {
|
|
86
87
|
const messages = generateCryptoDetectionPrompt(code);
|
|
87
|
-
const response = await this.llm.chat(messages, {
|
|
88
|
+
const response = await this.llm.chat(messages, {
|
|
89
|
+
temperature: 0.2,
|
|
90
|
+
maxTokens: CRYPTO_DETECT_LLM_MAX_TOKENS,
|
|
91
|
+
});
|
|
88
92
|
const jsonMatch = response.content.match(/\{[\s\S]*\}/);
|
|
89
93
|
if (!jsonMatch)
|
|
90
94
|
return [];
|
|
@@ -46,6 +46,13 @@ export async function resumeCore(ctx) {
|
|
|
46
46
|
logger.info('Execution resumed');
|
|
47
47
|
}
|
|
48
48
|
catch (error) {
|
|
49
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
50
|
+
if (msg.includes('not paused') ||
|
|
51
|
+
msg.includes('cannot be resumed') ||
|
|
52
|
+
msg.includes('while paused')) {
|
|
53
|
+
logger.warn('Debugger resume skipped: not currently paused');
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
49
56
|
logger.error('Failed to resume execution:', error);
|
|
50
57
|
throw error;
|
|
51
58
|
}
|
|
@@ -14,7 +14,7 @@ export async function getScopeVariablesCore(ctx, options = {}) {
|
|
|
14
14
|
if (!coreCtx.pausedState) {
|
|
15
15
|
throw new PrerequisiteError('Not in paused state. Use pause() or set a breakpoint first.');
|
|
16
16
|
}
|
|
17
|
-
const { callFrameId, includeObjectProperties = false, maxDepth = 1, skipErrors = true
|
|
17
|
+
const { callFrameId, includeObjectProperties = false, maxDepth = 1, skipErrors = true } = options;
|
|
18
18
|
try {
|
|
19
19
|
const targetFrame = callFrameId
|
|
20
20
|
? coreCtx.pausedState.callFrames.find((f) => f.callFrameId === callFrameId)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as parser from '@babel/parser';
|
|
2
2
|
import generate from '@babel/generator';
|
|
3
|
-
import traverse from '@babel/traverse';
|
|
3
|
+
import traverse, {} from '@babel/traverse';
|
|
4
4
|
import * as t from '@babel/types';
|
|
5
5
|
import { logger } from '../../utils/logger.js';
|
|
6
6
|
export function derotateStringArray(code) {
|
|
@@ -13,7 +13,8 @@ export function derotateStringArray(code) {
|
|
|
13
13
|
let derotated = 0;
|
|
14
14
|
traverse(ast, {
|
|
15
15
|
CallExpression(path) {
|
|
16
|
-
if (!t.isFunctionExpression(path.node.callee) &&
|
|
16
|
+
if (!t.isFunctionExpression(path.node.callee) &&
|
|
17
|
+
!t.isArrowFunctionExpression(path.node.callee)) {
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
const func = path.node.callee;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import crypto from 'crypto';
|
|
2
2
|
import { logger } from '../../utils/logger.js';
|
|
3
3
|
import { DEOBF_LLM_MAX_TOKENS } from '../../constants.js';
|
|
4
|
+
import { LLMService } from '../../services/LLMService.js';
|
|
4
5
|
import { generateDeobfuscationPrompt } from '../../services/prompts/deobfuscation.js';
|
|
5
6
|
import { calculateReadabilityScore as calculateReadabilityScoreUtil, detectObfuscationType as detectObfuscationTypeUtil, } from '../deobfuscator/Deobfuscator.utils.js';
|
|
6
7
|
import { runWebcrack } from '../deobfuscator/webcrack.js';
|
|
@@ -149,7 +150,9 @@ export class Deobfuscator {
|
|
|
149
150
|
return Math.min(confidence, 0.99);
|
|
150
151
|
}
|
|
151
152
|
buildAnalysis(webcrackResult, obfuscationType) {
|
|
152
|
-
const parts = [
|
|
153
|
+
const parts = [
|
|
154
|
+
`webcrack completed deobfuscation for detected types: ${obfuscationType.join(', ')}.`,
|
|
155
|
+
];
|
|
153
156
|
if (webcrackResult.bundle) {
|
|
154
157
|
parts.push(`Recovered a ${webcrackResult.bundle.type} bundle with ${webcrackResult.bundle.moduleCount} modules.`);
|
|
155
158
|
}
|
|
@@ -5,7 +5,7 @@ import * as t from '@babel/types';
|
|
|
5
5
|
import { logger } from '../../utils/logger.js';
|
|
6
6
|
import { JSVMP_DEOBFUSCATE_TIMEOUT_MS, JSVMP_MAX_ITERATIONS } from '../../constants.js';
|
|
7
7
|
import { ExecutionSandbox } from '../security/ExecutionSandbox.js';
|
|
8
|
-
import { restoreCustomVMBasic, restoreJSVMPCode } from '../deobfuscator/JSVMPDeobfuscator.restore.js';
|
|
8
|
+
import { restoreCustomVMBasic, restoreJSVMPCode, } from '../deobfuscator/JSVMPDeobfuscator.restore.js';
|
|
9
9
|
export class JSVMPDeobfuscator {
|
|
10
10
|
llm;
|
|
11
11
|
sandbox = new ExecutionSandbox();
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { generateVMAnalysisMessages } from '../../services/prompts/deobfuscation.js';
|
|
2
2
|
import { logger } from '../../utils/logger.js';
|
|
3
|
+
import { ExecutionSandbox } from '../security/ExecutionSandbox.js';
|
|
3
4
|
export async function restoreJSVMPCode(context, code, vmType, aggressive) {
|
|
4
5
|
const warnings = [];
|
|
5
6
|
const unresolvedParts = [];
|
|
@@ -92,7 +93,10 @@ async function restoreJSFuck(context, code, warnings) {
|
|
|
92
93
|
warnings,
|
|
93
94
|
};
|
|
94
95
|
}
|
|
95
|
-
const sandboxResult = await context.sandbox.execute({
|
|
96
|
+
const sandboxResult = await context.sandbox.execute({
|
|
97
|
+
code: `return ${code};`,
|
|
98
|
+
timeoutMs: 5000,
|
|
99
|
+
});
|
|
96
100
|
const result = sandboxResult.ok ? sandboxResult.output : undefined;
|
|
97
101
|
if (typeof result === 'string') {
|
|
98
102
|
logger.info(' JSFuck');
|
|
@@ -63,7 +63,10 @@ export class PackerDeobfuscator {
|
|
|
63
63
|
}
|
|
64
64
|
async parsePackerParams(argsString) {
|
|
65
65
|
try {
|
|
66
|
-
const sandboxResult = await this.sandbox.execute({
|
|
66
|
+
const sandboxResult = await this.sandbox.execute({
|
|
67
|
+
code: `return [${argsString}];`,
|
|
68
|
+
timeoutMs: PACKER_SANDBOX_TIMEOUT_MS,
|
|
69
|
+
});
|
|
67
70
|
if (!sandboxResult.ok)
|
|
68
71
|
return null;
|
|
69
72
|
const params = sandboxResult.output;
|
|
@@ -131,7 +134,10 @@ export class AAEncodeDeobfuscator {
|
|
|
131
134
|
async deobfuscate(code) {
|
|
132
135
|
logger.info(' AAEncode...');
|
|
133
136
|
try {
|
|
134
|
-
const sandboxResult = await this.sandbox.execute({
|
|
137
|
+
const sandboxResult = await this.sandbox.execute({
|
|
138
|
+
code: `return (${code})`,
|
|
139
|
+
timeoutMs: 5000,
|
|
140
|
+
});
|
|
135
141
|
const decoded = sandboxResult.ok ? sandboxResult.output : undefined;
|
|
136
142
|
if (typeof decoded === 'string') {
|
|
137
143
|
logger.info(' AAEncode');
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { logger } from '../../utils/logger.js';
|
|
2
2
|
import { VM_DEOBF_LLM_MAX_TOKENS } from '../../constants.js';
|
|
3
|
+
import { LLMService } from '../../services/LLMService.js';
|
|
3
4
|
import * as parser from '@babel/parser';
|
|
4
5
|
import traverse from '@babel/traverse';
|
|
5
6
|
import * as t from '@babel/types';
|
|
@@ -126,7 +126,9 @@ export async function runWebcrack(code, options) {
|
|
|
126
126
|
unminify: optionsUsed.unminify,
|
|
127
127
|
mangle: optionsUsed.mangle,
|
|
128
128
|
});
|
|
129
|
-
const remapped = result.bundle
|
|
129
|
+
const remapped = result.bundle
|
|
130
|
+
? applyBundleMappings(result.bundle, options.mappings)
|
|
131
|
+
: new Map();
|
|
130
132
|
let savedTo;
|
|
131
133
|
let savedArtifacts;
|
|
132
134
|
if (typeof options.outputDir === 'string' && options.outputDir.trim().length > 0) {
|
|
@@ -303,8 +303,7 @@ function isFunctionMarker(value) {
|
|
|
303
303
|
if (typeof value !== 'object' || value === null) {
|
|
304
304
|
return false;
|
|
305
305
|
}
|
|
306
|
-
return
|
|
307
|
-
value.__type === 'Function');
|
|
306
|
+
return '__type' in value && value.__type === 'Function';
|
|
308
307
|
}
|
|
309
308
|
export function formatValue(value) {
|
|
310
309
|
if (value === null)
|
|
@@ -386,10 +386,10 @@ export class EnvironmentEmulator {
|
|
|
386
386
|
return typeof value === 'object' && value !== null;
|
|
387
387
|
}
|
|
388
388
|
isIdentifierNode(node) {
|
|
389
|
-
return
|
|
389
|
+
return this.isRecord(node) && node.type === 'Identifier' && typeof node.name === 'string';
|
|
390
390
|
}
|
|
391
391
|
isStringLiteralNode(node) {
|
|
392
|
-
return
|
|
392
|
+
return this.isRecord(node) && node.type === 'StringLiteral' && typeof node.value === 'string';
|
|
393
393
|
}
|
|
394
394
|
isMemberExpressionNode(node) {
|
|
395
395
|
return (this.isRecord(node) &&
|
|
@@ -3,6 +3,7 @@ import { resolve, relative, sep } from 'node:path';
|
|
|
3
3
|
import { getProjectRoot } from '../../utils/outputPaths.js';
|
|
4
4
|
import { logger } from '../../utils/logger.js';
|
|
5
5
|
import { ioLimit } from '../../utils/concurrency.js';
|
|
6
|
+
import { ToolRegistry } from '../external/ToolRegistry.js';
|
|
6
7
|
import { EXTERNAL_TOOL_TIMEOUT_MS, EXTERNAL_TOOL_MAX_STDOUT_BYTES, EXTERNAL_TOOL_MAX_STDERR_BYTES, EXTERNAL_TOOL_FORCE_KILL_GRACE_MS, } from '../../constants.js';
|
|
7
8
|
const DEFAULT_TIMEOUT_MS = EXTERNAL_TOOL_TIMEOUT_MS;
|
|
8
9
|
const DEFAULT_MAX_STDOUT = EXTERNAL_TOOL_MAX_STDOUT_BYTES;
|
|
@@ -155,12 +156,7 @@ export class ExternalToolRunner {
|
|
|
155
156
|
if (rel && !rel.startsWith('..') && !resolve(rel).startsWith(sep)) {
|
|
156
157
|
return resolved;
|
|
157
158
|
}
|
|
158
|
-
const tmpDirs = [
|
|
159
|
-
process.env.TEMP,
|
|
160
|
-
process.env.TMP,
|
|
161
|
-
'/tmp',
|
|
162
|
-
'/var/tmp',
|
|
163
|
-
].filter(Boolean);
|
|
159
|
+
const tmpDirs = [process.env.TEMP, process.env.TMP, '/tmp', '/var/tmp'].filter(Boolean);
|
|
164
160
|
for (const tmp of tmpDirs) {
|
|
165
161
|
if (!tmp)
|
|
166
162
|
continue;
|
|
@@ -112,8 +112,12 @@ export declare class ConsoleMonitor {
|
|
|
112
112
|
scriptMonitorReset: boolean;
|
|
113
113
|
}>;
|
|
114
114
|
getNetworkStats(): import("../monitor/ConsoleMonitor.impl.core.network.js").NetworkStats;
|
|
115
|
-
injectXHRInterceptor(
|
|
116
|
-
|
|
115
|
+
injectXHRInterceptor(options?: {
|
|
116
|
+
persistent?: boolean;
|
|
117
|
+
}): Promise<void>;
|
|
118
|
+
injectFetchInterceptor(options?: {
|
|
119
|
+
persistent?: boolean;
|
|
120
|
+
}): Promise<void>;
|
|
117
121
|
getXHRRequests(): Promise<unknown[]>;
|
|
118
122
|
getFetchRequests(): Promise<unknown[]>;
|
|
119
123
|
getExceptions(filter?: {
|
|
@@ -124,12 +128,18 @@ export declare class ConsoleMonitor {
|
|
|
124
128
|
clearExceptions(): void;
|
|
125
129
|
inspectObject(objectId: string): Promise<InspectedObjectProperties>;
|
|
126
130
|
clearObjectCache(): void;
|
|
127
|
-
enableDynamicScriptMonitoring(
|
|
131
|
+
enableDynamicScriptMonitoring(options?: {
|
|
132
|
+
persistent?: boolean;
|
|
133
|
+
}): Promise<void>;
|
|
128
134
|
private clearDynamicScriptBuffer;
|
|
129
135
|
private resetDynamicScriptMonitoring;
|
|
130
136
|
getDynamicScripts(): Promise<unknown[]>;
|
|
131
|
-
injectFunctionTracer(functionName: string
|
|
132
|
-
|
|
137
|
+
injectFunctionTracer(functionName: string, options?: {
|
|
138
|
+
persistent?: boolean;
|
|
139
|
+
}): Promise<void>;
|
|
140
|
+
injectPropertyWatcher(objectPath: string, propertyName: string, options?: {
|
|
141
|
+
persistent?: boolean;
|
|
142
|
+
}): Promise<void>;
|
|
133
143
|
private formatRemoteObject;
|
|
134
144
|
private extractValue;
|
|
135
145
|
}
|
|
@@ -71,15 +71,18 @@ export class ConsoleMonitor {
|
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
73
|
const page = await this.collector.getActivePage();
|
|
74
|
-
this.cdpSession = await
|
|
74
|
+
this.cdpSession = await Promise.race([
|
|
75
|
+
page.createCDPSession(),
|
|
76
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('cdp_session_timeout')), 500)),
|
|
77
|
+
]);
|
|
75
78
|
this.lastEnableOptions = { ...options };
|
|
76
79
|
this.cdpSession.on('disconnected', () => {
|
|
77
80
|
logger.warn('ConsoleMonitor CDP session disconnected');
|
|
78
81
|
this.cdpSession = null;
|
|
79
82
|
this.networkMonitor = null;
|
|
80
83
|
});
|
|
81
|
-
await this.cdpSession
|
|
82
|
-
await this.cdpSession
|
|
84
|
+
await cdpSendWithTimeout(this.cdpSession, 'Runtime.enable', {}, 5000);
|
|
85
|
+
await cdpSendWithTimeout(this.cdpSession, 'Console.enable', {}, 5000);
|
|
83
86
|
this.cdpSession.on('Runtime.consoleAPICalled', (params) => {
|
|
84
87
|
const stackTrace = params.stackTrace?.callFrames?.map((frame) => ({
|
|
85
88
|
functionName: frame.functionName || '(anonymous)',
|
|
@@ -225,14 +228,16 @@ export class ConsoleMonitor {
|
|
|
225
228
|
try {
|
|
226
229
|
page.off('console', this.playwrightConsoleHandler);
|
|
227
230
|
}
|
|
228
|
-
catch {
|
|
231
|
+
catch {
|
|
232
|
+
}
|
|
229
233
|
this.playwrightConsoleHandler = null;
|
|
230
234
|
}
|
|
231
235
|
if (this.playwrightErrorHandler) {
|
|
232
236
|
try {
|
|
233
237
|
page.off('pageerror', this.playwrightErrorHandler);
|
|
234
238
|
}
|
|
235
|
-
catch {
|
|
239
|
+
catch {
|
|
240
|
+
}
|
|
236
241
|
this.playwrightErrorHandler = null;
|
|
237
242
|
}
|
|
238
243
|
}
|
|
@@ -276,6 +281,22 @@ export class ConsoleMonitor {
|
|
|
276
281
|
if (!this.cdpSession && !this.playwrightPage) {
|
|
277
282
|
logger.info('ConsoleMonitor CDP session lost, reinitializing...');
|
|
278
283
|
await this.enable(this.lastEnableOptions);
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
if (this.cdpSession) {
|
|
287
|
+
try {
|
|
288
|
+
await Promise.race([
|
|
289
|
+
this.cdpSession.send('Runtime.evaluate', { expression: '1', returnByValue: true }),
|
|
290
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('session_unreachable')), 3000)),
|
|
291
|
+
]);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
catch {
|
|
295
|
+
logger.warn('ConsoleMonitor CDP session unresponsive (zombie), reinitializing...');
|
|
296
|
+
this.cdpSession = null;
|
|
297
|
+
this.networkMonitor = null;
|
|
298
|
+
await this.enable(this.lastEnableOptions);
|
|
299
|
+
}
|
|
279
300
|
}
|
|
280
301
|
}
|
|
281
302
|
isSessionActive() {
|
|
@@ -287,7 +308,7 @@ export class ConsoleMonitor {
|
|
|
287
308
|
async execute(expression) {
|
|
288
309
|
await this.ensureSession();
|
|
289
310
|
try {
|
|
290
|
-
const result = (await this.cdpSession
|
|
311
|
+
const result = (await cdpSendWithTimeout(this.cdpSession, 'Runtime.evaluate', {
|
|
291
312
|
expression,
|
|
292
313
|
returnByValue: true,
|
|
293
314
|
}));
|
|
@@ -351,11 +372,11 @@ export class ConsoleMonitor {
|
|
|
351
372
|
getNetworkStats() {
|
|
352
373
|
return getNetworkStatsCore(this);
|
|
353
374
|
}
|
|
354
|
-
async injectXHRInterceptor() {
|
|
355
|
-
return injectXHRInterceptorCore(this);
|
|
375
|
+
async injectXHRInterceptor(options) {
|
|
376
|
+
return injectXHRInterceptorCore(this, options);
|
|
356
377
|
}
|
|
357
|
-
async injectFetchInterceptor() {
|
|
358
|
-
return injectFetchInterceptorCore(this);
|
|
378
|
+
async injectFetchInterceptor(options) {
|
|
379
|
+
return injectFetchInterceptorCore(this, options);
|
|
359
380
|
}
|
|
360
381
|
async getXHRRequests() {
|
|
361
382
|
return getXHRRequestsCore(this);
|
|
@@ -375,8 +396,8 @@ export class ConsoleMonitor {
|
|
|
375
396
|
clearObjectCache() {
|
|
376
397
|
clearObjectCacheCore(this);
|
|
377
398
|
}
|
|
378
|
-
async enableDynamicScriptMonitoring() {
|
|
379
|
-
return enableDynamicScriptMonitoringCore(this);
|
|
399
|
+
async enableDynamicScriptMonitoring(options) {
|
|
400
|
+
return enableDynamicScriptMonitoringCore(this, options);
|
|
380
401
|
}
|
|
381
402
|
async clearDynamicScriptBuffer() {
|
|
382
403
|
return clearDynamicScriptBufferCore(this);
|
|
@@ -387,11 +408,11 @@ export class ConsoleMonitor {
|
|
|
387
408
|
async getDynamicScripts() {
|
|
388
409
|
return getDynamicScriptsCore(this);
|
|
389
410
|
}
|
|
390
|
-
async injectFunctionTracer(functionName) {
|
|
391
|
-
return injectFunctionTracerCore(this, functionName);
|
|
411
|
+
async injectFunctionTracer(functionName, options) {
|
|
412
|
+
return injectFunctionTracerCore(this, functionName, options);
|
|
392
413
|
}
|
|
393
|
-
async injectPropertyWatcher(objectPath, propertyName) {
|
|
394
|
-
return injectPropertyWatcherCore(this, objectPath, propertyName);
|
|
414
|
+
async injectPropertyWatcher(objectPath, propertyName, options) {
|
|
415
|
+
return injectPropertyWatcherCore(this, objectPath, propertyName, options);
|
|
395
416
|
}
|
|
396
417
|
formatRemoteObject(obj) {
|
|
397
418
|
if (obj.value !== undefined) {
|
|
@@ -428,3 +449,9 @@ export class ConsoleMonitor {
|
|
|
428
449
|
return obj.description || `[${obj.type}]`;
|
|
429
450
|
}
|
|
430
451
|
}
|
|
452
|
+
async function cdpSendWithTimeout(session, method, params, timeoutMs = 30000) {
|
|
453
|
+
return Promise.race([
|
|
454
|
+
session.send(method, params),
|
|
455
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`CDP ${method} timed out after ${timeoutMs}ms`)), timeoutMs)),
|
|
456
|
+
]);
|
|
457
|
+
}
|
|
@@ -7,7 +7,9 @@ interface DynamicScriptRecord {
|
|
|
7
7
|
defer?: boolean;
|
|
8
8
|
[key: string]: unknown;
|
|
9
9
|
}
|
|
10
|
-
export declare function enableDynamicScriptMonitoringCore(ctx: unknown
|
|
10
|
+
export declare function enableDynamicScriptMonitoringCore(ctx: unknown, options?: {
|
|
11
|
+
persistent?: boolean;
|
|
12
|
+
}): Promise<void>;
|
|
11
13
|
export declare function clearDynamicScriptBufferCore(ctx: unknown): Promise<{
|
|
12
14
|
dynamicScriptsCleared: number;
|
|
13
15
|
}>;
|
|
@@ -15,6 +17,10 @@ export declare function resetDynamicScriptMonitoringCore(ctx: unknown): Promise<
|
|
|
15
17
|
scriptMonitorReset: boolean;
|
|
16
18
|
}>;
|
|
17
19
|
export declare function getDynamicScriptsCore(ctx: unknown): Promise<DynamicScriptRecord[]>;
|
|
18
|
-
export declare function injectFunctionTracerCore(ctx: unknown, functionName: string
|
|
19
|
-
|
|
20
|
+
export declare function injectFunctionTracerCore(ctx: unknown, functionName: string, options?: {
|
|
21
|
+
persistent?: boolean;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
export declare function injectPropertyWatcherCore(ctx: unknown, objectPath: string, propertyName: string, options?: {
|
|
24
|
+
persistent?: boolean;
|
|
25
|
+
}): Promise<void>;
|
|
20
26
|
export {};
|