From f113441d5ace54354fa589037dd7995101ed6820 Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Tue, 26 May 2026 10:42:19 -0700 Subject: [PATCH] Split server upstream transports --- extension/src/service_worker.ts | 254 +-- go/examples/demo/main.go | 313 +--- go/modcdp/client/ModCDPClient.go | 67 +- ...ModCDPClientRoutedDefaultOverrides_test.go | 2 +- go/modcdp/client/ModCDPClient_test.go | 10 +- .../injector/BorrowedExtensionInjector.go | 2 +- go/modcdp/injector/ExtensionInjector.go | 42 +- go/modcdp/injector/extension.zip | Bin 511965 -> 540998 bytes go/modcdp/modcdp.go | 5 - go/modcdp/router/AutoSessionRouter.go | 100 +- go/modcdp/router/AutoSessionRouter_test.go | 142 +- go/modcdp/translate/translate.go | 39 +- go/modcdp/translate/translate_test.go | 27 + go/modcdp/types/types.go | 7 +- js/examples/demo.ts | 292 +--- js/src/client/ModCDPClient.ts | 160 +- js/src/injector/BorrowedExtensionInjector.ts | 2 +- js/src/injector/ExtensionInjector.ts | 34 +- js/src/proxy/proxy.ts | 2 +- js/src/router/AutoSessionRouter.ts | 307 +++- js/src/server/ChromeDebuggerTransport.ts | 256 +++ js/src/server/LoopbackCdpTransport.ts | 467 ++++++ js/src/server/ModCDPServer.ts | 1405 ++++------------- js/src/server/NATSDownstreamTransport.ts | 309 ++++ .../server/NativeHostDownstreamTransport.ts | 213 +++ js/src/server/ReverseWSDownstreamTransport.ts | 210 +++ js/src/server/ServerDownstreamTransport.ts | 45 + js/src/server/ServerUpstreamTransport.ts | 40 + js/src/translate/translate.ts | 11 +- js/src/types/codegen.ts | 21 +- js/src/types/generated/aliases.ts | 26 +- js/src/types/generated/cdp.ts | 6 +- js/src/types/generated/zod/Accessibility.ts | 26 +- js/src/types/generated/zod/Animation.ts | 32 +- js/src/types/generated/zod/Audits.ts | 14 +- js/src/types/generated/zod/Autofill.ts | 14 +- .../types/generated/zod/BackgroundService.ts | 14 +- .../types/generated/zod/BluetoothEmulation.ts | 47 +- js/src/types/generated/zod/Browser.ts | 62 +- js/src/types/generated/zod/CSS.ts | 116 +- js/src/types/generated/zod/CacheStorage.ts | 17 +- js/src/types/generated/zod/Cast.ts | 20 +- js/src/types/generated/zod/Console.ts | 11 +- .../types/generated/zod/CrashReportContext.ts | 5 +- js/src/types/generated/zod/DOM.ts | 161 +- js/src/types/generated/zod/DOMDebugger.ts | 32 +- js/src/types/generated/zod/DOMSnapshot.ts | 14 +- js/src/types/generated/zod/DOMStorage.ts | 20 +- js/src/types/generated/zod/Debugger.ts | 101 +- js/src/types/generated/zod/DeviceAccess.ts | 14 +- .../types/generated/zod/DeviceOrientation.ts | 8 +- js/src/types/generated/zod/Emulation.ts | 146 +- .../types/generated/zod/EventBreakpoints.ts | 11 +- js/src/types/generated/zod/Extensions.ts | 26 +- js/src/types/generated/zod/FedCm.ts | 23 +- js/src/types/generated/zod/Fetch.ts | 29 +- js/src/types/generated/zod/FileSystem.ts | 5 +- .../generated/zod/HeadlessExperimental.ts | 11 +- js/src/types/generated/zod/HeapProfiler.ts | 38 +- js/src/types/generated/zod/IO.ts | 11 +- js/src/types/generated/zod/IndexedDB.ts | 29 +- js/src/types/generated/zod/Input.ts | 41 +- js/src/types/generated/zod/Inspector.ts | 8 +- js/src/types/generated/zod/LayerTree.ts | 29 +- js/src/types/generated/zod/Log.ts | 17 +- js/src/types/generated/zod/Media.ts | 8 +- js/src/types/generated/zod/Memory.ts | 35 +- js/src/types/generated/zod/Network.ts | 125 +- js/src/types/generated/zod/Overlay.ts | 92 +- js/src/types/generated/zod/PWA.ts | 23 +- js/src/types/generated/zod/Page.ts | 185 ++- js/src/types/generated/zod/Performance.ts | 14 +- .../generated/zod/PerformanceTimeline.ts | 5 +- js/src/types/generated/zod/Preload.ts | 8 +- js/src/types/generated/zod/Profiler.ts | 29 +- js/src/types/generated/zod/Runtime.ts | 71 +- js/src/types/generated/zod/Schema.ts | 5 +- js/src/types/generated/zod/Security.ts | 17 +- js/src/types/generated/zod/ServiceWorker.ts | 38 +- .../types/generated/zod/SmartCardEmulation.ts | 38 +- js/src/types/generated/zod/Storage.ts | 104 +- js/src/types/generated/zod/SystemInfo.ts | 11 +- js/src/types/generated/zod/Target.ts | 59 +- js/src/types/generated/zod/Tethering.ts | 8 +- js/src/types/generated/zod/Tracing.ts | 20 +- js/src/types/generated/zod/WebAudio.ts | 11 +- js/src/types/generated/zod/WebAuthn.ts | 41 +- js/src/types/generated/zod/WebMCP.ts | 14 +- js/src/types/generated/zod/helpers.ts | 12 + js/test/test.AutoSessionRouter.ts | 214 ++- js/test/test.ModCDPClient.ts | 15 +- ...test.ModCDPClientRoutedDefaultOverrides.ts | 26 +- js/test/test.ServerUpstreamTransport.ts | 136 ++ js/test/test.translate.ts | 14 + python/examples/demo.py | 207 +-- python/modcdp/client/ModCDPClient.py | 40 +- python/modcdp/extension.zip | Bin 511965 -> 540998 bytes .../injector/BorrowedExtensionInjector.py | 2 +- python/modcdp/injector/ExtensionInjector.py | 48 +- python/modcdp/router/AutoSessionRouter.py | 41 +- python/modcdp/translate/translate.py | 29 +- python/tests/test_AutoSessionRouter.py | 88 +- python/tests/test_ModCDPClient.py | 6 +- ...test_ModCDPClientRoutedDefaultOverrides.py | 2 +- python/tests/test_translate.py | 12 + 105 files changed, 4385 insertions(+), 3436 deletions(-) create mode 100644 js/src/server/ChromeDebuggerTransport.ts create mode 100644 js/src/server/LoopbackCdpTransport.ts create mode 100644 js/src/server/NATSDownstreamTransport.ts create mode 100644 js/src/server/NativeHostDownstreamTransport.ts create mode 100644 js/src/server/ReverseWSDownstreamTransport.ts create mode 100644 js/src/server/ServerDownstreamTransport.ts create mode 100644 js/src/server/ServerUpstreamTransport.ts create mode 100644 js/test/test.ServerUpstreamTransport.ts diff --git a/extension/src/service_worker.ts b/extension/src/service_worker.ts index 954b81ce..91dbc4aa 100644 --- a/extension/src/service_worker.ts +++ b/extension/src/service_worker.ts @@ -2,252 +2,38 @@ import { ModCDPServer } from "../../js/src/server/ModCDPServer.js"; -const bridge = ModCDPServer as Record; const started_at = new Date().toISOString(); -const DEFAULT_REVERSEWS_URL = "ws://127.0.0.1:29292"; -const DEFAULT_REVERSEWS_RECONNECT_INTERVAL_MS = 2_000; -const DEFAULT_NATIVE_HOST_NAME = "com.modcdp.bridge"; -const DEFAULT_NATIVE_RECONNECT_INTERVAL_MS = 2_000; -const downstream_clients: Record = {}; -const upstream_servers: Record = {}; -const client_id_by_config_session = new Map(); -let active_downstream_client_id: string | null = null; -let next_downstream_client_id = 1; -let next_log_id = 1; -const self_transports: Record = {}; -const self_custom = { commands: new Set(), events: new Set() }; -const self_log: any[] = []; -const compact = (value: unknown) => { - try { - return JSON.parse(JSON.stringify(value ?? null)); - } catch (error) { - return { - unserializable: true, - error: error instanceof Error ? error.message : String(error), - }; - } -}; -const trimLog = (log: any[]) => (log.length = Math.min(log.length, 80)); -const routeFor = (method: string) => { - if (method.startsWith("Mod.") || method.startsWith("Custom.")) return "service_worker"; - const routes = (bridge.routes ?? {}) as Record; - const route = - routes[method] ?? - Object.entries(routes) - .filter(([pattern]) => pattern.endsWith(".*") && method.startsWith(pattern.slice(0, -1))) - .sort((a, b) => b[0].length - a[0].length)[0]?.[1] ?? - routes["*.*"] ?? - "chrome_debugger"; - if (route === "loopback_cdp") return "loopback"; - if (route === "chrome_debugger") return "debugger"; - if (route === "auto") return bridge.loopback_cdp_url ? "loopback" : "debugger"; - return route; -}; -const upstreamServer = (id: string) => - (upstream_servers[id] ??= { - id, - log: [], - }); -const configuredClient = (params: unknown, session_id?: string | null) => { - const at = new Date().toISOString(); - const id = - (session_id && client_id_by_config_session.get(session_id)) || `downstream_client_${next_downstream_client_id++}`; - if (session_id) client_id_by_config_session.set(session_id, id); - active_downstream_client_id = id; - const configure = compact(params); - const client = (downstream_clients[id] ??= { - id, - configured_at: at, - commands: 0, - events: 0, - sessions: {}, - recent: [], - }); - client.updated_at = at; - client.configure = configure; - client.downstream_transport = configure?.upstream?.upstream_mode ?? "unknown"; - client.route_config = { - upstream: configure?.upstream ?? {}, - client: configure?.client ?? {}, - server: configure?.server ?? {}, - }; - if (client.downstream_transport !== "reversews") { - bridge.stopReverseBridge?.("non-reverse downstream connected"); - } - return client; -}; -const downstreamClient = (session_id?: string | null) => { - const at = new Date().toISOString(); - const client_id = - (session_id && client_id_by_config_session.get(session_id)) || - active_downstream_client_id || - "unconfigured_downstream_client"; - const client = (downstream_clients[client_id] ??= { - id: client_id, - commands: 0, - events: 0, - sessions: {}, - recent: [], - first_seen: at, - last_seen: at, - }); - const id = session_id || "root"; - const session = (client.sessions[id] ??= { - id, - commands: 0, - events: 0, - first_seen: at, - last_seen: at, - }); - return { at, client_id, client, session }; -}; -const logTraffic = (direction: "command" | "event", name: string, payload: unknown, session_id?: string | null) => { - const { at, client_id, client, session } = downstreamClient(session_id); - const upstream = routeFor(name); - const from = direction === "command" ? client_id : upstream; - const to = direction === "command" ? upstream : client_id; - const route_path = from === "service_worker" || to === "service_worker" ? [from, to] : [from, "service_worker", to]; - const entry: any = { - id: `log_${next_log_id++}`, - at, - direction, - method: name, - payload: compact(payload), - route_path, - downstream_transport: client.downstream_transport ?? "unknown", - cdp_session_id: session_id ?? null, - }; - direction === "event" ? client.events++ : client.commands++; - direction === "event" ? session.events++ : session.commands++; - direction === "event" ? (session.last_event = name) : (session.last_command = name); - client.last_seen = at; - session.last_seen = at; - client.log ??= client.recent ?? []; - client.log.unshift(entry); - trimLog(client.log); - const endpointLog = upstream === "service_worker" ? self_log : upstreamServer(upstream).log; - endpointLog.unshift(entry); - trimLog(endpointLog); - return entry; -}; -if (bridge) { - const handleCommand = bridge.handleCommand?.bind(bridge); - if (handleCommand) { - bridge.handleCommand = async (method: string, params?: unknown, session_id?: string | null) => { - if (method === "Mod.configure") configuredClient(params, session_id); - const entry = logTraffic("command", method, params, session_id); - try { - const result = await handleCommand(method, params, session_id); - entry.result = compact(result); - entry.completed_at = new Date().toISOString(); - return result; - } catch (error) { - entry.error = error instanceof Error ? error.message : String(error); - entry.completed_at = new Date().toISOString(); - throw error; - } - }; - } - bridge.addEventListener?.((event: string, _payload: unknown, session_id?: string | null) => - logTraffic("event", event, _payload, session_id), - ); - for (const [method, key] of [ - ["startReverseBridge", "reverse"], - ["stopReverseBridge", "reverse"], - ["startNativeBridge", "native"], - ["startNatsBridge", "nats"], - ]) { - const start = bridge[method]?.bind(bridge); - if (start) { - bridge[method] = (...args: unknown[]) => { - const result = start(...args); - self_transports[key] = { - args: compact(args), - result: compact(result), - updated_at: new Date().toISOString(), - }; - return result; - }; - } - } - for (const [method, key] of [ - ["addCustomCommand", "commands"], - ["addCustomEvent", "events"], - ]) { - const add = bridge[method]?.bind(bridge); - if (add) { - bridge[method] = (name: string, ...args: unknown[]) => { - self_custom[key as "commands" | "events"].add(name); - return add(name, ...args); - }; - } - } +function startConfiguredTransports() { + void ModCDPServer.ensureOffscreenKeepAlive(); + ModCDPServer.startDownstreamTransports(); } -const startConfiguredTransports = () => { - bridge.startOffscreenKeepAlive?.(); - bridge.startReverseBridge?.(DEFAULT_REVERSEWS_URL, { - reconnect_interval_ms: DEFAULT_REVERSEWS_RECONNECT_INTERVAL_MS, - }); - bridge.startNativeBridge?.(DEFAULT_NATIVE_HOST_NAME, { - reconnect_interval_ms: DEFAULT_NATIVE_RECONNECT_INTERVAL_MS, - }); -}; - startConfiguredTransports(); chrome.runtime.onInstalled.addListener(startConfiguredTransports); chrome.runtime.onStartup.addListener(startConfiguredTransports); chrome.runtime.onMessage.addListener((message, _sender, sendResponse) => { if (message?.type !== "modcdp.options.status") return false; - const self = { - id: "self", - runtime: { - extension_id: chrome.runtime.id, - service_worker_url: chrome.runtime.getURL("modcdp/service_worker.js"), - options_url: chrome.runtime.getURL("options.html"), - started_at, - }, - server: { - __ModCDPServerVersion: bridge.__ModCDPServerVersion, - routes: bridge.routes, - loopback_cdp_url: bridge.loopback_cdp_url, - browser_token: bridge.browser_token ? "set" : null, - cdp_send_timeout_ms: bridge.cdp_send_timeout_ms, - loopback_execution_context_timeout_ms: bridge.loopback_execution_context_timeout_ms, - ws_connect_error_settle_timeout_ms: bridge.ws_connect_error_settle_timeout_ms, - native_bridge_attempts: bridge.native_bridge_attempts, - native_bridge_connected: bridge.native_bridge_connected, - native_bridge_last_error: bridge.native_bridge_last_error, - }, - ...(Object.keys(self_transports).length ? { transports: self_transports } : {}), - custom: { - commands: [...self_custom.commands], - events: [...self_custom.events], - }, - log: self_log, - }; sendResponse({ now: new Date().toISOString(), - self, - downstream_clients, - upstream_servers: { - ...upstream_servers, - ...(bridge.loopback_cdp_url - ? { - loopback: { - ...upstream_servers.loopback, - id: "loopback", - url: bridge.loopback_cdp_url, - log: upstream_servers.loopback?.log ?? [], - }, - } - : {}), - debugger: { - ...upstream_servers.debugger, - id: "debugger", - log: upstream_servers.debugger?.log ?? [], + self: { + id: "self", + runtime: { + extension_id: chrome.runtime.id, + service_worker_url: chrome.runtime.getURL("modcdp/service_worker.js"), + options_url: chrome.runtime.getURL("options.html"), + started_at, + }, + server: { + __ModCDPServerVersion: ModCDPServer.__ModCDPServerVersion, + routes: ModCDPServer.routes, + loopback_cdp_url: ModCDPServer.loopback_cdp_url, + browser_token: ModCDPServer.browser_token ? "set" : null, + cdp_send_timeout_ms: ModCDPServer.cdp_send_timeout_ms, + loopback_execution_context_timeout_ms: ModCDPServer.loopback_execution_context_timeout_ms, + ws_connect_error_settle_timeout_ms: ModCDPServer.ws_connect_error_settle_timeout_ms, + downstream_transports: ModCDPServer.downstreamTransports(), }, }, }); diff --git a/go/examples/demo/main.go b/go/examples/demo/main.go index 27b010d3..88f9409c 100644 --- a/go/examples/demo/main.go +++ b/go/examples/demo/main.go @@ -22,13 +22,14 @@ import ( "regexp" "runtime" "strings" - "sync" "time" modcdp "github.com/browserbase/modcdp/go/modcdp" "golang.org/x/term" ) +const demoCDPSendTimeoutMS = 60_000 +const demoExecutionContextTimeoutMS = 60_000 const reverseTransportWaitTimeoutMS = 60_000 func optionsFor(mode, upstreamMode, cdpURL, extensionPath string, launchOptions modcdp.LaunchOptions) modcdp.Options { @@ -46,19 +47,28 @@ func optionsFor(mode, upstreamMode, cdpURL, extensionPath string, launchOptions return modcdp.Options{ Launcher: modcdp.LauncherConfig{LauncherMode: map[bool]string{true: "remote", false: "local"}[cdpURL != ""], LauncherOptions: launchOptions}, Upstream: upstream, - Injector: modcdp.InjectorConfig{InjectorMode: "auto", InjectorExtensionPath: extensionPath}, - Client: modcdp.ClientConfig{ClientRoutes: clientRoutesFor(mode)}, + Injector: modcdp.InjectorConfig{ + InjectorMode: "auto", + InjectorExtensionPath: extensionPath, + InjectorExecutionContextTimeoutMS: demoExecutionContextTimeoutMS, + }, + Client: modcdp.ClientConfig{ClientRoutes: clientRoutesFor(mode), ClientCDPSendTimeoutMS: demoCDPSendTimeoutMS}, } } server := &modcdp.ServerConfig{ - ServerRoutes: serverRoutesFor(mode, upstreamMode), + ServerRoutes: serverRoutesFor(mode, upstreamMode), + ServerLoopbackExecutionContextTimeoutMS: demoExecutionContextTimeoutMS, } return modcdp.Options{ Launcher: modcdp.LauncherConfig{LauncherMode: map[bool]string{true: "remote", false: "local"}[cdpURL != ""], LauncherOptions: launchOptions}, Upstream: upstream, - Injector: modcdp.InjectorConfig{InjectorMode: "auto", InjectorExtensionPath: extensionPath}, - Client: modcdp.ClientConfig{ClientRoutes: clientRoutesFor(mode)}, - Server: server, + Injector: modcdp.InjectorConfig{ + InjectorMode: "auto", + InjectorExtensionPath: extensionPath, + InjectorExecutionContextTimeoutMS: demoExecutionContextTimeoutMS, + }, + Client: modcdp.ClientConfig{ClientRoutes: clientRoutesFor(mode), ClientCDPSendTimeoutMS: demoCDPSendTimeoutMS}, + Server: server, } } @@ -67,17 +77,17 @@ func clientRoutesFor(mode string) map[string]string { if mode == "direct" { route = "direct_cdp" } - return map[string]string{ - "Mod.*": "service_worker", - "Custom.*": "service_worker", - "*.*": route, - "Target.setDiscoverTargets": "direct_cdp", - "Target.createTarget": "direct_cdp", - "Target.activateTarget": "direct_cdp", + routes := map[string]string{ + "Mod.*": "service_worker", + "Custom.*": "service_worker", + "Runtime.*": "service_worker", + "*.*": route, } + return routes } func serverRoutesFor(mode, upstreamMode string) map[string]string { + _ = upstreamMode serverRoute := "auto" if mode == "loopback" { serverRoute = "loopback_cdp" @@ -89,11 +99,6 @@ func serverRoutesFor(mode, upstreamMode string) map[string]string { "Custom.*": "service_worker", "*.*": serverRoute, } - if mode == "loopback" || upstreamMode == "reversews" || upstreamMode == "nativemessaging" || upstreamMode == "nats" { - routes["Target.setDiscoverTargets"] = "loopback_cdp" - routes["Target.createTarget"] = "loopback_cdp" - routes["Target.activateTarget"] = "loopback_cdp" - } return routes } @@ -105,14 +110,6 @@ func mustMap(value any, label string) map[string]any { return result } -func mustString(value any, label string) string { - result, ok := value.(string) - if !ok || result == "" { - log.Fatalf("%s returned non-string value: %v", label, value) - } - return result -} - func int64Value(value any) (int64, bool) { switch typed := value.(type) { case int64: @@ -219,17 +216,6 @@ func main() { } cdp := modcdp.New(optionsFor(mode, upstreamMode, cdpURL, extensionPath, launchOptions)) - var ( - eventsMu sync.Mutex - targetCreatedEvents []modcdp.TargetTargetCreatedEvent - pageTargetEvents []map[string]any - ) - cdp.Target.On.TargetCreated(func(event modcdp.TargetTargetCreatedEvent) { - fmt.Printf("Target.targetCreated -> %s\n", event.TargetID()) - eventsMu.Lock() - targetCreatedEvents = append(targetCreatedEvents, event) - eventsMu.Unlock() - }) if err := cdp.Connect(); err != nil { log.Fatalf("connect: %v", err) @@ -241,7 +227,10 @@ func main() { fmt.Println("connect timing ->", string(b)) } - serverConfig := map[string]any{"server_routes": serverRoutesFor(mode, upstreamMode)} + serverConfig := map[string]any{ + "server_routes": serverRoutesFor(mode, upstreamMode), + "server_loopback_execution_context_timeout_ms": demoExecutionContextTimeoutMS, + } configureParams := map[string]any{ "upstream": map[string]any{"upstream_mode": upstreamMode}, "client": map[string]any{"client_routes": clientRoutesFor(mode)}, @@ -289,32 +278,6 @@ func main() { fmt.Println("ping latency ->", string(b)) } - if mode == "debugger" { - if version, err := cdp.Browser.GetVersion(); err == nil { - b, _ := json.Marshal(version) - fmt.Println("Browser.getVersion ->", string(b)) - } else { - fmt.Println("Browser.getVersion -> (debugger route rejected:", err, ")") - } - runtimeEval := mustMap(mustSend(cdp, "Runtime.evaluate", map[string]any{ - "expression": "(() => 42)()", - "returnByValue": true, - }), "Runtime.evaluate") - runtimeResult := mustMap(runtimeEval["result"], "Runtime.evaluate.result") - if runtimeResult["value"] != float64(42) && runtimeResult["value"] != 42 { - log.Fatalf("unexpected Runtime.evaluate result: %v", runtimeEval) - } - b, _ := json.Marshal(runtimeEval) - fmt.Println("Runtime.evaluate ->", string(b)) - } else { - version, err := cdp.Browser.GetVersion() - if err != nil { - log.Fatalf("Browser.getVersion: %v", err) - } - b, _ := json.Marshal(version) - fmt.Println("Browser.getVersion ->", string(b)) - } - if r, err := cdp.Mod.Evaluate(map[string]any{ "expression": "({ extension_id: chrome.runtime.id })", }); err != nil { @@ -329,6 +292,32 @@ func main() { fmt.Println("Mod.evaluate ->", string(b)) } + responseMiddlewareRegistrationRaw, err := cdp.Mod.AddMiddleware(modcdp.CustomMiddleware{ + Name: "Custom.echo", + Phase: "response", + Expression: `async (payload, next) => next({ ...payload, responseMiddleware: "ok" })`, + }) + if err != nil { + log.Fatalf("Mod.addMiddleware response: %v", err) + } + responseMiddlewareRegistration := mustMap(responseMiddlewareRegistrationRaw, "Mod.addMiddleware response") + if responseMiddlewareRegistration["registered"] != true || responseMiddlewareRegistration["phase"] != "response" { + log.Fatalf("unexpected response middleware registration: %v", responseMiddlewareRegistration) + } + + eventMiddlewareRegistrationRaw, err := cdp.Mod.AddMiddleware(modcdp.CustomMiddleware{ + Name: "Custom.demoEvent", + Phase: "event", + Expression: `async (payload, next) => next({ ...payload, eventMiddleware: "ok" })`, + }) + if err != nil { + log.Fatalf("Mod.addMiddleware event: %v", err) + } + eventMiddlewareRegistration := mustMap(eventMiddlewareRegistrationRaw, "Mod.addMiddleware event") + if eventMiddlewareRegistration["registered"] != true || eventMiddlewareRegistration["phase"] != "event" { + log.Fatalf("unexpected event middleware registration: %v", eventMiddlewareRegistration) + } + echoRegistrationRaw, err := cdp.Mod.AddCustomCommand(modcdp.CustomCommand{ Name: "Custom.echo", Expression: `async (params, method) => ({ echoed: params.value, method })`, @@ -341,69 +330,11 @@ func main() { log.Fatalf("unexpected Custom.echo registration: %v", echoRegistration) } echoResult := mustMap(mustSend(cdp, "Custom.echo", map[string]any{"value": "custom-command-ok"}), "Custom.echo") - if echoResult["echoed"] != "custom-command-ok" || echoResult["method"] != "Custom.echo" { + if echoResult["echoed"] != "custom-command-ok" || echoResult["method"] != "Custom.echo" || echoResult["responseMiddleware"] != "ok" { log.Fatalf("unexpected Custom.echo result: %v", echoResult) } - b, _ := json.Marshal(echoResult) - fmt.Println("Custom.echo ->", string(b)) - - tabCommandRegistrationRaw, err := cdp.Mod.AddCustomCommand(modcdp.CustomCommand{ - Name: "Custom.TabIdFromTargetId", - Expression: `async ({ targetId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.id === targetId); - return { tabId: target?.tabId ?? null }; - }`, - }) - if err != nil { - log.Fatalf("Mod.addCustomCommand Custom.TabIdFromTargetId: %v", err) - } - tabCommandRegistration := mustMap(tabCommandRegistrationRaw, "Mod.addCustomCommand Custom.TabIdFromTargetId") - if tabCommandRegistration["registered"] != true { - log.Fatalf("unexpected TabIdFromTargetId registration: %v", tabCommandRegistration) - } - targetCommandRegistrationRaw, err := cdp.Mod.AddCustomCommand(modcdp.CustomCommand{ - Name: "Custom.targetIdFromTabId", - Expression: `async ({ tabId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.type === "page" && target.tabId === tabId); - return { targetId: target?.id ?? null }; - }`, - }) - if err != nil { - log.Fatalf("Mod.addCustomCommand Custom.targetIdFromTabId: %v", err) - } - targetCommandRegistration := mustMap(targetCommandRegistrationRaw, "Mod.addCustomCommand Custom.targetIdFromTabId") - if targetCommandRegistration["registered"] != true { - log.Fatalf("unexpected targetIdFromTabId registration: %v", targetCommandRegistration) - } - for _, phase := range []string{"response", "event"} { - middlewareRegistrationRaw, err := cdp.Mod.AddMiddleware(modcdp.CustomMiddleware{ - Name: "*", - Phase: phase, - Expression: `async (payload, next) => { - const seen = new WeakSet(); - const visit = async value => { - if (!value || typeof value !== "object" || seen.has(value)) return; - seen.add(value); - if (!Array.isArray(value) && typeof value.targetId === "string" && value.tabId == null) { - const { tabId } = await cdp.send("Custom.TabIdFromTargetId", { targetId: value.targetId }); - if (tabId != null) value.tabId = tabId; - } - for (const child of Array.isArray(value) ? value : Object.values(value)) await visit(child); - }; - await visit(payload); - return next(payload); - }`, - }) - if err != nil { - log.Fatalf("Mod.addMiddleware %s: %v", phase, err) - } - middlewareRegistration := mustMap(middlewareRegistrationRaw, "Mod.addMiddleware "+phase) - if middlewareRegistration["registered"] != true || middlewareRegistration["phase"] != phase { - log.Fatalf("unexpected %s middleware registration: %v", phase, middlewareRegistration) - } - } + echoJSON, _ := json.Marshal(echoResult) + fmt.Println("Custom.echo ->", string(echoJSON)) demoEventCh := make(chan map[string]any, 16) cdp.On("Custom.demoEvent", func(data any) { @@ -430,128 +361,22 @@ func main() { log.Fatalf("unexpected Custom.demoEvent emit result: %v", emitResult) } demoEvent := waitForEvent(demoEventCh, "Custom.demoEvent", func(event map[string]any) bool { - return event["value"] == "custom-event-ok" + return event["value"] == "custom-event-ok" && event["eventMiddleware"] == "ok" }) fmt.Println("Custom.demoEvent ->", demoEvent) - pageTargetEventRegistrationRaw, err := cdp.Mod.AddCustomEvent(modcdp.CustomEvent{Name: "Custom.pageTargetUpdated"}) - if err != nil { - log.Fatalf("Mod.addCustomEvent Custom.pageTargetUpdated: %v", err) - } - pageTargetEventRegistration := mustMap(pageTargetEventRegistrationRaw, "Mod.addCustomEvent Custom.pageTargetUpdated") - if pageTargetEventRegistration["registered"] != true { - log.Fatalf("unexpected page target event registration: %v", pageTargetEventRegistration) - } - cdp.On("Custom.pageTargetUpdated", func(p any) { - event, _ := p.(map[string]any) - fmt.Printf("Custom.pageTargetUpdated -> %v\n", event) - eventsMu.Lock() - pageTargetEvents = append(pageTargetEvents, event) - eventsMu.Unlock() - }) - - if _, err := cdp.Target.SetDiscoverTargets(modcdp.TargetSetDiscoverTargetsParams{Discover: true}); err != nil { - log.Fatal(err) - } - createdTarget, err := cdp.Target.CreateTarget(modcdp.TargetCreateTargetParams{ - URL: "https://example.com", - Background: modcdp.Bool(true), - }) - if err != nil { - log.Fatalf("Target.createTarget: %v", err) - } - createdTargetID := string(createdTarget.TargetID) - if createdTargetID == "" { - log.Fatalf("Target.createTarget returned no targetId: %v", createdTarget) - } - deadline := time.Now().Add(3 * time.Second) - var matchedTargetEvent *modcdp.TargetTargetCreatedEvent - for time.Now().Before(deadline) { - eventsMu.Lock() - for i := range targetCreatedEvents { - if targetCreatedEvents[i].TargetID() == createdTargetID { - matchedTargetEvent = &targetCreatedEvents[i] - break - } - } - eventsMu.Unlock() - if matchedTargetEvent != nil { - break - } - time.Sleep(20 * time.Millisecond) - } - if matchedTargetEvent == nil { - log.Fatalf("expected Target.targetCreated for %s", createdTargetID) - } - fmt.Println("normal event matched ->", createdTargetID) - - tabFromTargetRaw, err := cdp.Send("Custom.TabIdFromTargetId", map[string]any{"targetId": createdTargetID}) - if err != nil { - log.Fatalf("Custom.TabIdFromTargetId: %v", err) - } - tabFromTarget, _ := tabFromTargetRaw.(map[string]any) - b, _ = json.Marshal(tabFromTarget) - fmt.Println("Custom.TabIdFromTargetId ->", string(b)) - - if _, err := cdp.Target.ActivateTarget(modcdp.TargetActivateTargetParams{TargetID: modcdp.TargetTargetID(createdTargetID)}); err != nil { - log.Fatalf("Target.activateTarget: %v", err) - } - pageTargetEmitRaw, err := cdp.Mod.Evaluate(map[string]any{ - "params": map[string]any{"targetId": createdTargetID}, - "expression": `async ({ targetId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.id === targetId); - if (!target?.id) throw new Error(` + "`target ${targetId} not found`" + `); - await cdp.emit("Custom.pageTargetUpdated", { targetId: target.id, url: target.url ?? null }); - return { emitted: true, targetId: target.id }; - }`, - }) - if err != nil { - log.Fatalf("Custom.pageTargetUpdated emit: %v", err) - } - pageTargetEmit := mustMap(pageTargetEmitRaw, "Custom.pageTargetUpdated emit") - if pageTargetEmit["emitted"] != true || pageTargetEmit["targetId"] != createdTargetID { - log.Fatalf("unexpected Custom.pageTargetUpdated emit result: %v", pageTargetEmit) - } - deadline = time.Now().Add(3 * time.Second) - var pageTarget map[string]any - for time.Now().Before(deadline) { - eventsMu.Lock() - for _, event := range pageTargetEvents { - if event["targetId"] == createdTargetID { - pageTarget = event - break - } - } - eventsMu.Unlock() - if pageTarget != nil { - break - } - time.Sleep(20 * time.Millisecond) - } - if pageTarget == nil { - log.Fatalf("expected Custom.pageTargetUpdated for %s", createdTargetID) - } - - pageTargetTabID, _ := pageTarget["tabId"].(float64) - tabID, _ := tabFromTarget["tabId"].(float64) - if tabID != pageTargetTabID { - log.Fatalf("unexpected Custom.TabIdFromTargetId result: %v", tabFromTarget) - } - - targetFromTabRaw, err := cdp.Send("Custom.targetIdFromTabId", map[string]any{"tabId": pageTarget["tabId"]}) - if err != nil { - log.Fatalf("Custom.targetIdFromTabId: %v", err) - } - targetFromTab, _ := targetFromTabRaw.(map[string]any) - middlewareTabID, _ := targetFromTab["tabId"].(float64) - if targetFromTab["targetId"] != createdTargetID || middlewareTabID != pageTargetTabID { - log.Fatalf("unexpected Custom.targetIdFromTabId/middleware result: %v", targetFromTab) + runtimeEval := mustMap(mustSend(cdp, "Runtime.evaluate", map[string]any{ + "expression": "(() => 42)()", + "returnByValue": true, + }), "Runtime.evaluate") + runtimeResult := mustMap(runtimeEval["result"], "Runtime.evaluate.result") + if runtimeResult["value"] != float64(42) && runtimeResult["value"] != 42 { + log.Fatalf("unexpected Runtime.evaluate result: %v", runtimeEval) } - b, _ = json.Marshal(targetFromTab) - fmt.Println("Custom.targetIdFromTabId ->", string(b)) + runtimeJSON, _ := json.Marshal(runtimeEval) + fmt.Println("Runtime.evaluate ->", string(runtimeJSON)) - fmt.Printf("\nSUCCESS (%s/%s): normal command, normal event, custom commands, custom event, and middleware all passed\n", mode, upstreamMode) + fmt.Printf("\nSUCCESS (%s/%s): native command, custom commands, custom event, and middleware all passed\n", mode, upstreamMode) // TTY-only REPL. Lets you poke at the live browser interactively; // subscribed events print as they arrive. Skip when stdin is not a tty @@ -622,7 +447,7 @@ func runRepl(cdp *modcdp.ModCDPClient, mode string) { fmt.Println("Enter commands as Domain.method({...JSON params...}). Examples:") fmt.Println(` Browser.getVersion({})`) fmt.Println(` Mod.evaluate({"expression": "chrome.tabs.query({active: true})"})`) - fmt.Println(` Custom.TabIdFromTargetId({"targetId": "..."})`) + fmt.Println(` Runtime.evaluate({"expression": "document.title", "returnByValue": true})`) fmt.Println("Type exit or quit to disconnect (browser keeps running).") cmdRE := regexp.MustCompile(`^([A-Za-z_]\w*\.[A-Za-z_]\w*)(?:\((.*)\))?$`) sc := bufio.NewScanner(os.Stdin) diff --git a/go/modcdp/client/ModCDPClient.go b/go/modcdp/client/ModCDPClient.go index 8d35d192..f48ecdd8 100644 --- a/go/modcdp/client/ModCDPClient.go +++ b/go/modcdp/client/ModCDPClient.go @@ -70,7 +70,7 @@ type NoopBrowserLauncher = launcher.NoopBrowserLauncher type ExtensionInjectorConfig = types.ExtensionInjectorConfig type ExtensionInjectionResult = types.ExtensionInjectionResult type SendCDP = types.SendCDP -type AttachToTarget = types.AttachToTarget +type EnsureSessionForTarget = types.EnsureSessionForTarget type ExtensionInjector = injector.ExtensionInjector type DiscoveredExtensionInjector = injector.DiscoveredExtensionInjector type BBBrowserExtensionInjector = injector.BBBrowserExtensionInjector @@ -831,12 +831,7 @@ func (c *ModCDPClient) serverNeedsLoopbackCDP() bool { if c.Server == nil || c.Server.ServerLoopbackCDPURL != "" { return false } - for _, route := range c.Server.ServerRoutes { - if route == "loopback_cdp" { - return true - } - } - return false + return c.Server.ServerRoutes["*.*"] == "loopback_cdp" } func (c *ModCDPClient) ensureModCDPServerConfigured() error { @@ -1198,11 +1193,11 @@ func (c *ModCDPClient) validateEventData(event string, data any) (any, bool) { } func (c *ModCDPClient) Send(method string, params map[string]any, sessionID ...string) (any, error) { - targetSessionID := "" + cdpSessionID := "" if len(sessionID) > 0 { - targetSessionID = sessionID[0] + cdpSessionID = sessionID[0] } - return c.sendCommand(method, params, targetSessionID, true) + return c.sendCommand(method, params, cdpSessionID, true) } func (d ModDomain) Evaluate(params map[string]any) (any, error) { @@ -1250,7 +1245,7 @@ func (d ModDomain) Ping(params map[string]any) (any, error) { return d.client.Send("Mod.ping", params) } -func (c *ModCDPClient) sendCommand(method string, params map[string]any, targetSessionID string, validateSchema bool) (any, error) { +func (c *ModCDPClient) sendCommand(method string, params map[string]any, cdpSessionID string, validateSchema bool) (any, error) { startedAt := time.Now().UnixMilli() if params == nil { params = map[string]any{} @@ -1324,7 +1319,7 @@ func (c *ModCDPClient) sendCommand(method string, params map[string]any, targetS } return result, nil } - command, err := translate.WrapCommandIfNeeded(method, params, c.Client.ClientRoutes, c.ExtSessionID, targetSessionID) + command, err := translate.WrapCommandIfNeeded(method, params, c.Client.ClientRoutes, cdpSessionID) if err != nil { return nil, err } @@ -1355,11 +1350,11 @@ func (c *ModCDPClient) SendRaw(method string, params map[string]any, sessionID . if params == nil { params = map[string]any{} } - targetSessionID := "" + cdpSessionID := "" if len(sessionID) > 0 { - targetSessionID = sessionID[0] + cdpSessionID = sessionID[0] } - result, err := c.sendMessage(method, params, targetSessionID) + result, err := c.sendMessage(method, params, cdpSessionID) completedAt := time.Now().UnixMilli() c.LastRawTiming = map[string]any{ "method": method, @@ -1532,16 +1527,16 @@ func isKnownExtensionMode(mode string) bool { func (c *ModCDPClient) baseExtensionInjectorConfig(send SendCDP) ExtensionInjectorConfig { trustMatchedServiceWorker := c.trustServiceWorkerTarget() - var attachToTarget AttachToTarget + var ensureSessionForTarget EnsureSessionForTarget if send != nil { - attachToTarget = func(targetID string) string { - return c.ensureSessionIDForTarget(targetID, time.Duration(c.Injector.InjectorServiceWorkerProbeTimeoutMS)*time.Millisecond, true) + ensureSessionForTarget = func(targetID string, timeoutMS int, allowAttach bool) string { + return c.ensureSessionForTarget(targetID, time.Duration(timeoutMS)*time.Millisecond, allowAttach) } } return ExtensionInjectorConfig{ - Send: send, - SessionIDForTarget: func(targetID string) string { return c.autoSessions.SessionIDForTarget(targetID) }, - AttachToTarget: attachToTarget, + Send: send, + SessionId_from_targetId: c.autoSessions.SessionId_from_targetId, + EnsureSessionForTarget: ensureSessionForTarget, WaitForExecutionContext: func(sessionID string, timeoutMS int) int { contextID, _ := c.autoSessions.WaitForExecutionContext(sessionID, timeoutMS) return contextID @@ -1904,13 +1899,23 @@ func (c *ModCDPClient) trustServiceWorkerTarget() bool { return false } -func (c *ModCDPClient) sessionIDForTarget(targetID string, timeout time.Duration) string { +func (c *ModCDPClient) ensureSessionForTarget(targetID string, timeout time.Duration, allowAttach bool) string { + sessionID := c.autoSessions.SessionId_from_targetId[targetID] + if sessionID != "" { + return sessionID + } + if allowAttach { + attachedSessionID := c.autoSessions.AttachToTarget(targetID) + if attachedSessionID != "" { + return attachedSessionID + } + } if timeout <= 0 { - return c.autoSessions.SessionIDForTarget(targetID) + return c.autoSessions.SessionId_from_targetId[targetID] } deadline := time.Now().Add(timeout) for time.Now().Before(deadline.Add(time.Millisecond)) { - sessionID := c.autoSessions.SessionIDForTarget(targetID) + sessionID := c.autoSessions.SessionId_from_targetId[targetID] if sessionID != "" { return sessionID } @@ -1918,17 +1923,3 @@ func (c *ModCDPClient) sessionIDForTarget(targetID string, timeout time.Duration } return "" } - -func (c *ModCDPClient) ensureSessionIDForTarget(targetID string, timeout time.Duration, allowAttach bool) string { - sessionID := c.autoSessions.SessionIDForTarget(targetID) - if sessionID != "" { - return sessionID - } - if allowAttach { - attachedSessionID := c.autoSessions.AttachToTarget(targetID) - if attachedSessionID != "" { - return attachedSessionID - } - } - return c.sessionIDForTarget(targetID, timeout) -} diff --git a/go/modcdp/client/ModCDPClientRoutedDefaultOverrides_test.go b/go/modcdp/client/ModCDPClientRoutedDefaultOverrides_test.go index f91cb10e..84f5cab3 100644 --- a/go/modcdp/client/ModCDPClientRoutedDefaultOverrides_test.go +++ b/go/modcdp/client/ModCDPClientRoutedDefaultOverrides_test.go @@ -9,7 +9,7 @@ import ( const getTargetsOverride = ` async (params) => { const [upstream, tabs] = await Promise.all([ - ModCDP.sendLoopback("Target.getTargets", params), + cdp.upstream.send("Target.getTargets", params), chrome.tabs.query({}), ]); diff --git a/go/modcdp/client/ModCDPClient_test.go b/go/modcdp/client/ModCDPClient_test.go index 7dad0781..d8ef0081 100644 --- a/go/modcdp/client/ModCDPClient_test.go +++ b/go/modcdp/client/ModCDPClient_test.go @@ -524,14 +524,14 @@ func TestModCDPClientRejectsUnknownComponentModesAtTheirOwningFactoryBoundary(t } } -func TestModCDPClientOnlyExposesInjectorAttachAfterCDPSendIsAvailable(t *testing.T) { +func TestModCDPClientOnlyExposesInjectorEnsureAfterCDPSendIsAvailable(t *testing.T) { cdp := New(Options{}) disconnectedConfig := cdp.baseExtensionInjectorConfig(nil) if disconnectedConfig.Send != nil { t.Fatalf("disconnected Send = %#v", disconnectedConfig.Send) } - if disconnectedConfig.AttachToTarget != nil { - t.Fatalf("disconnected AttachToTarget = %#v", disconnectedConfig.AttachToTarget) + if disconnectedConfig.EnsureSessionForTarget != nil { + t.Fatalf("disconnected EnsureSessionForTarget = %#v", disconnectedConfig.EnsureSessionForTarget) } connectedConfig := cdp.baseExtensionInjectorConfig(func(method string, params map[string]any, sessionID string) (map[string]any, error) { @@ -540,8 +540,8 @@ func TestModCDPClientOnlyExposesInjectorAttachAfterCDPSendIsAvailable(t *testing if connectedConfig.Send == nil { t.Fatal("connected Send is nil") } - if connectedConfig.AttachToTarget == nil { - t.Fatal("connected AttachToTarget is nil") + if connectedConfig.EnsureSessionForTarget == nil { + t.Fatal("connected EnsureSessionForTarget is nil") } } diff --git a/go/modcdp/injector/BorrowedExtensionInjector.go b/go/modcdp/injector/BorrowedExtensionInjector.go index c6af6ec5..59af9085 100644 --- a/go/modcdp/injector/BorrowedExtensionInjector.go +++ b/go/modcdp/injector/BorrowedExtensionInjector.go @@ -73,7 +73,7 @@ func (i *BorrowedExtensionInjector) borrowVisibleServiceWorkers() (*ExtensionInj func (i *BorrowedExtensionInjector) bootstrapTarget(target map[string]any) (*ExtensionInjectionResult, error) { targetID, _ := target["targetId"].(string) targetURL, _ := target["url"].(string) - sessionID := i.ensureSessionIDForTarget(targetID, i.Options.InjectorServiceWorkerProbeTimeoutMS, true) + sessionID := i.ensureSessionForTarget(targetID, i.Options.InjectorServiceWorkerProbeTimeoutMS, true) if sessionID == "" { return nil, nil } diff --git a/go/modcdp/injector/ExtensionInjector.go b/go/modcdp/injector/ExtensionInjector.go index 7bfc8aac..f2ad9549 100644 --- a/go/modcdp/injector/ExtensionInjector.go +++ b/go/modcdp/injector/ExtensionInjector.go @@ -36,8 +36,7 @@ var bundledExtensionZip []byte const modcdpReadyExpression = `Boolean(globalThis.ModCDP?.__ModCDPServerVersion >= 1 && globalThis.ModCDP?.handleCommand && globalThis.ModCDP?.addCustomEvent)` type SendCDP = types.SendCDP -type SessionIDForTarget = types.SessionIDForTarget -type AttachToTarget = types.AttachToTarget +type EnsureSessionForTarget = types.EnsureSessionForTarget type WaitForExecutionContext = types.WaitForExecutionContext type LaunchOptions = types.LaunchOptions type ExtensionInjectorConfig = types.ExtensionInjectorConfig @@ -79,11 +78,11 @@ func (i *ExtensionInjector) Update(config ExtensionInjectorConfig) *ExtensionInj if config.Send != nil { i.Options.Send = config.Send } - if config.SessionIDForTarget != nil { - i.Options.SessionIDForTarget = config.SessionIDForTarget + if config.SessionId_from_targetId != nil { + i.Options.SessionId_from_targetId = config.SessionId_from_targetId } - if config.AttachToTarget != nil { - i.Options.AttachToTarget = config.AttachToTarget + if config.EnsureSessionForTarget != nil { + i.Options.EnsureSessionForTarget = config.EnsureSessionForTarget } if config.WaitForExecutionContext != nil { i.Options.WaitForExecutionContext = config.WaitForExecutionContext @@ -213,33 +212,16 @@ func (i ExtensionInjector) SendWithTimeout(method string, params map[string]any, return i.sendWithTimeout(method, params, sessionID, timeoutMS) } -func (i ExtensionInjector) sessionIDForTarget(targetID string, timeoutMS int) string { - deadline := time.Now().Add(time.Duration(timeoutMS) * time.Millisecond) - for { - if i.Options.SessionIDForTarget != nil { - if sessionID := i.Options.SessionIDForTarget(targetID); sessionID != "" { - return sessionID - } - } - if timeoutMS <= 0 || time.Now().After(deadline) { - return "" - } - time.Sleep(time.Duration(i.Options.InjectorTargetSessionPollIntervalMS) * time.Millisecond) - } -} - -func (i ExtensionInjector) ensureSessionIDForTarget(targetID string, timeoutMS int, allowAttach bool) string { - if i.Options.SessionIDForTarget != nil { - if sessionID := i.Options.SessionIDForTarget(targetID); sessionID != "" { +func (i ExtensionInjector) ensureSessionForTarget(targetID string, timeoutMS int, allowAttach bool) string { + if i.Options.SessionId_from_targetId != nil { + if sessionID := i.Options.SessionId_from_targetId[targetID]; sessionID != "" { return sessionID } } - if allowAttach && i.Options.AttachToTarget != nil { - if sessionID := i.Options.AttachToTarget(targetID); sessionID != "" { - return sessionID - } + if i.Options.EnsureSessionForTarget == nil { + return "" } - return i.sessionIDForTarget(targetID, timeoutMS) + return i.Options.EnsureSessionForTarget(targetID, timeoutMS, allowAttach) } func (i ExtensionInjector) targetInfos() ([]map[string]any, error) { @@ -264,7 +246,7 @@ func (i ExtensionInjector) probeTarget(target map[string]any, sessionTimeoutMS i if targetID == "" || i.UnusableTargetIDs[targetID] { return nil, nil } - sessionID := i.ensureSessionIDForTarget(targetID, sessionTimeoutMS, allowAttach) + sessionID := i.ensureSessionForTarget(targetID, sessionTimeoutMS, allowAttach) if sessionID == "" { return nil, nil } diff --git a/go/modcdp/injector/extension.zip b/go/modcdp/injector/extension.zip index 8032e35e8f67569bd6d299bcd5ea2782249d03ca..28d163a45b1277ec0a673e0052202034a7bc9667 100644 GIT binary patch delta 483024 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ⅅ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

*od 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

dhr?fBfo#@B1eAnC(544DVxS%ZVw^`@*c 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 delta 453775 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

  • d^4Dppl-DFez#YMUEZA9aapo2PZ_ z{9ePtsG_mtPI@(BG(B0p(Ag-hqbP)dZ0w|QOhWk0-A%3Ns&TAjaA~p*QcUmgy zx->&K+xG+f&$gbTJMNdH%%InXS-sTRSC&zpNaooLSN|#p6vy3AJ5(;N50}LHS#hGWD4uWw}Qc@H3}I z_%O&9%u*wTlAGUrE_d2jQn?+M0#Mj3?BD`O3~=Yk)#TL+FG|B<7=Ob_L9?go*=6KX z1~{;ca~)w-Cds*YSss|IRGc8k*n2da`}N*3B>^JoGfME}(t6fr*j0juI_aXo#qK-+ z&g)EOX}E{p(O(%Z=aLK7Y9EzV+*ivnU@h|P`oI6`Aa2+}5G&H5}kIzMW=O)m1eUkbEg9~${Vb9yTzm` zIjNQLlf8T?JWZ)SM^?|K}Ed|s8{uv%Z6L<^$f|e8S4G)Y(2oG@6G%#Jm z&tVh@oRg^!(SL(h^tqW03?Y*Bq9~2as{tQ0gsX7kBMOj{;(WSSc2u&b`Jgfi0tCH~ zmqT57t%UoJ24@xvm(BEGen8NXXYqv`XCD(Cj=y0u)Z)*Dw+lZL=85~6u-zSiPh?wI z0XVr^>VTINy&jKd6|PC#5DGsN@l89z2r*YO^|28x@qbprXH?SgkhaTe1XiQOMq7t2 zq!~?vY>NiY*x&sMM-X;=L}uVeS5W4#GBzvUHeub?jv)iu%-C|?m8F5N^)=B3D?bf< zF~uvZqKzLaFcku?k|9BXRj*X(nCVpsegh7ORK|pz9ILik!2ZJY3Bf>ql{*$MQG$2r zou$OY?0+T-eu*+~{&6vYkIcXzO3e*yek2YokGwkYPP-$e(q`vfR6MI(kZjynGDrv+ z^Ge=hagf;&+L?x;Me6!KwUO5wWA?& zYndozQPS1pZcZ>t@R$2l8f9D@)_Iv5h&Ii=oPSg(J5MEe=VmM=<7Vd>GiI?&z*WCw zoqZW&g&tY7)luGvv&=4{61-#dt4+=<`)iI@{sL%JKBy0}6+C|d=)kWkGO4S{A*{0G zb>wVbQf>8Rag1x5sAtdczA3MRCXi%DL<%Zj_!+&fpydyNKqrBpJGdUuRG^=nyTLo_!@g$-{DV~CAU3q)wG%&N zS&Tg2QAoZZ<+$wd7!(OAv&JCEoPV$a2@}mr`Jw8iC)mD_Uk(wn^}M zC7-XOW$krTwroBhkTKUdhW5gP`cj*?+X;*uhHU z@ysHWRl7Atc{o<&Tp?LSsN}Uvqjrf=q{d)|5^{}j>$mD?JdR6)l zob8u;&7}A3(d*T|C|YMRLFv@tN;FH7JJ~+=xSf^*my|y3P{5|b!S!28MyWe(T(~6X za6V7PBDVw9TxQ^)B(k0Qd4K2X-?fgq!5FiSx~mO!)P1`ZL`Tkmbv)R@H1D^PzxO1Y zP=Qr66|`o^3P`y%Tq;hs@4T@|2mGoSf7M}P%CtMq1C;GMJ255j2LTyqt}K>d^sE4(U!(bJmRTfOAqm)@qK*$?tcdm$V`0Vrzq%s zC1o2<{RfS4rq1s)haYi2x8czcByIb-4rRm7RyI5;6moFKJmZsGVh+v2C>8c<#w8o^ zY0A}1gAs%o)XhQR*w7&HEhldl6Y>`uq$zi!27!?*?|jzdg&>)l<^{m;gmE53Whb)7 z8rIcw&mRUn#foI1h=2Q!#GuvfvT$a=U`P#R8y%Rdot#01i!_gX@uSiMm*bp|aWo`O zUW}9L?FdSiELB%UK(A*+(ItYeEh-2?SOT2X3o(1HNT*HcK%MWVatzL1RO`D58rcLq zC`TRmdl`H@#e$%y>(eDkROY5D=*SvX;;!3$vCr%>D#2gAD1X~Y1Kj{ei!)j%TA*+_ z!N0G{gJrd+YQ6WcM(Cu5{op6)~=?28Yev%l+ITCs?@%YP0Fw!R_9c zl=bn=QDRx;n|}p_NNIfQ3e`%$hncryBZ9-KV;1jORPJ*?N|LK2$K9PgwdcTcz8Rqo zivj*+{zhA#kT;=ZDW8Su2Mmqz+#)s{I&{LOLRy2H>T>UumF*KD1o(kx1VkNwByLM*mFY^e-eF{3Cht)ny>FQh96f^%mO=E?fRc&hf;_ADbgy z;Ew9>$)+k76q*D_l(cLOq>DIO6(0j_Z|!QGrjKU$JV zMvNkEbANU~oI_-5x*e5;N=}}Pl8ayNltrib;?D3jsUia(2Zc^#K_L#hmz755&lgx^;5-Z(0zMiI_81d)z&wrAQgH7R!tI=;Q*`L{*2V5np%;M=? zcNFTs2U~BXIrUiF>-eGye9O>11^L5N8@8zl}tQh!X+)hNx$n)B6bRgz+`OO(KMjVp7OJh6+C+NUwQbPLQr#&j!|=?P z78P}_KV?2?m<;uhqMx70=aQRGWG+cw3oJccMB2%5^Gq@N#bwE#dDOB$XMfDM9Z)GRdu8;licN@gfNOt?I>7h!l4@?5 zD57+2y*Lzyl|2|r@N-4osZKbc?O#@(FKc>|!J@dS74fc0W8Q@v+nb%W68xoe%4|$_ zly0+D`)EV{nDl%##);o^mw&IsL1pKx1izw4)Y#$p_7zNe^K?(c^mM%fx^e|@OeLNA zt-`RjOnR)aU~Deqis-OfilMD4^6Ndu(8|V<(fZ5fTM+*HbpQX0EDdmXBT*6@yRUX@ znrwo`2RPvhA*rM544~ zZvwl^{aC+E3*4LUO7^4JS)a4c$o86XYd?ytGdDZ!^CQRvVLjpZoddmSkaP3+bU?&PLb z$&Uy*u^H#-9Y2hJCx4U1Sr)>J@YZ8hTdv`0)J|VHr)40p*u9)$9r_{Hl z`~vJc=BJYFHgXrfdfv?&RvE8%)zKTa7JRKLTA5en_G#d207XE$zpLkQ=*pU9;~+-W zQ4$#ZWFArJ(fh;lJSup2Wv>qkrAI}tN(GY(z^_$xD8ajQIvJ}w5*B|!n`TUP^2WlQ zAWCk}a~Ur5BT=N=Qbf;cicGTSpm26FdIB~CSfHh1diR5J;BRIatXC%u7$FVDVFd|| znU--Xn8w}**_i`uy&Z0mC#G3Dp)J_DQTs6s|F+*I{-Fc@{&2Fj zz`S3FTiXlV{AFlD5f}e0o|&Dyocz^J&0?{`Q2GaXF~IBl^&nge`r$h3%8Dux+jOuCEdlX&OTwQh;nS2E!T z4yDq)j|Y1kklB9=4SuJmM1|hzp2c0IORJet`h>t8!_5qL!FIclL@)DTr2nXkooN3S zf1lvrZ`!}#;@^L^e@DaKY3~kva%-Lh`?=F{JNV$tv^c^Cuedi-m;q)o<4XHTM;gNj zwuJe6ihuvjt<^Q@;by?S5g;J*cijF9fp|aQ=M|44h8chVzK?&uY(b;-NKO(WI`%{KujF zacF-W+VA_&wwJI=rnKNWwv40rxcz-`d`*LW6c&w;y|~AXxMNeUY#A2fz<{OxP?trws1D&I#@t~JaYVZ?)JV+DIG9n+?U zGEZzZ@b<|SJn;o^nmIi2F*t1%8w5S{~Q6c zI^MUs7PJwVEyWl>r#x{p22sD=CZj60>-sQ)wYSP3|Ld=Ijp0{NO88&Tjj+ECd%M{3 z&m%wBwGjr=_=j)MEzdvu0}VocYHtjtS+IamzSDMn+uB7fRvUae9|9hjC*IoE$~Wf8 zVjq9UEjo|>u-V{!j90q@t=o$;4vxS$INGueeNb7uc_(nR+U;H(=OeEW-3L9@f$7s~ zZYFjE+MO{NY0Z-6CT&(Ns`xHnlO93SGIjl~3~j&dP8zXl(mp+FZ1-lnClKgqPPk?5 zVPMZZ?p?v~je*FZ%NSk&^Qc{pwE@o3Dms6iO=rWPI~c!k{niXz==#xMh>FL3AXZ-2x7CEGvpPbxWeffRf+;^H9uYKtWL7dJd$oUNn|vFOkQtvjb1<~_A~KV}WjwX#(M)*X+r44I zMwiCV8B)Vp+6))@2^`>UvyNm1+!bW!zGiRb9e1TKPG<`Sa){eNGP6E={*{eka6T*< z9+R8w637o|k3XLs}-V$47r|UTu`_ zFBW0V%Hi!tuaUOkT{av($Gb8h z<3*ag0wf*|ZMypN$6oz*rNa0zs5 z(~FT^0%RuFVNrlT0;N}&WX^x5(`;*8nAsVGAy!dygThLjw7eiSSG+Zs`+>i?-?nlD zPV=pw<_Vdmo&T;~(biL!+kc#)19w|?Wh8@Fv>INz2{egQ$^zxyPhBbIUk z3(`^&nXppJlcEsh+awVdD&p?s}G6q}9i2jLC;2Z7~DD_jS(>9~ItVI$B73Wt^FJ&A@+CzGv9|Q((~VB7p%a zLpqkWfqVSYLCyo$MRT516-2*NS_cyY!4>GT>W*6L;NbrUjYucz8@wIg* zeQCZLmd(3>v~zzq;?W-Zv$QfhX-ODPXbE!HsS(Oxa3OS0mEjFD(6`2PLt1(M8(P6z zt;)n*YOl#Mc^1|0-M)o02BceH`*4Bn2DcYHe^yj(7jU-)_l3w>2gd8RotH)LBQLc2 z5u+et@^L$GaN{0qjm$o*Q6YW5z1epB6wnP6t0v$Np}T*S2XHouAvnngAb1{*9EkwJ zLjnQDj4%+X%nC;^+KVlbc&!u$=yBr6%)^lA5ezKDiWv-WKEgYQ=(IHq3Y+f0xwhtJ zy3yC$i!-<#w6epz*!4Wf?x6gUcPlT#fyeO6V)pZEG%u1gQD& z*|W_d0$S;mB!7F>-U}4%>qg`~^_2OYA?H?6xo)J^ed67T;;I|jk^MIHwLiQ<5=igc z_UBU&d4TGf)&_mO(g#?Ew@wECkC#~s?=-X#JsE$f8TF$X(zd9zIrX?b@;va(&~C%b zpE@tE`;+NJrnjDIwu|)KXuk(|rH#Fc>@U-)*^M^_awLNP?JpM`$QFL{qTcg%H7M9? z1p9tKT<7eIe-IF;4cVhT|5NDM?7qXK*M_??D#^dRG%<>9HS_1#G8!bU2pQSiRvmxn zw3~lc68XpXxm`7AcdcO#C$s(GXb$XXfTke9K-3O93Tf!(PN=J<>akzEmiNLO(!HRx zMWoLhhs)5a#^{Y?MTzGvm??0gGoPc%UsqN)wPS_!;F4<(-L-8Ns4VXXq!WzNJ124g z5V3Qw5^;Lv-zd-f-so2%MR9{_msYvlYI}d(LetEL^aitGGKq5 zX-wPL5MX)3FtXPU>n7$J&V$A5hH8Kn$PN?{?Os4Md(DGUW(?6aM!|GzFMCUb-M4Kb zxS)SEvc0F?SNyOS6KM07hxUYU*oQ)rYq2J*XV{k%{7RQ~jL{!9N1*gS5C?dW!i zCLQtBd_)QB%rnDadP&hxot;<>JMw?tu-j?5Vn6t z6*6yIW@t>%? zJZibLsgJ`zl?x?_t+LGP<+)jzm+5%zN^V)rhGPfUTbkI6T)5}r^qLib-ofYB;NH8& zpMjNzK6Pi{YUoZ5h}!0Q8f1S_{Z&6y@37(+r@|ZzzpytE!P`xaNXM@I@i=@Wa#(q^ zfW*}REvLP)Qsjx#pW+R-qjF;oka;HfIv9D zXhJ^jfW+&1-6QZuzq^ruDWP;vMP!VjYW~mC89kzBG`XROQH_otBjtbG3A%4ANk)!l zj8eRZcQ(ubq=RZ#?gWi+RyFk*mvU%as}`b#%}?WjUyPm#c)~lQ$}W(H0yQ9@mB(X{ zD2%r5t>@l1iJQ%q)ti{%JM-hMV@-)S(&8LPnC;C4plR^r52ST+sQ0Z)R6v-IoaM*{ zZn=`01}K@UGn#H}6Y77tSb(k9mS&>JYRxKJ&U1%KL|(IDm{<^PJhg2b&21G&FKFd@ z2o4d)A3Wa8X1fcmaMZ3nX@4e#!a`EM*~E}0KBIv{+snr4c~G-p-Pi1@SPwk6zQL*- z1?%4YL6_Mlrf%CVq^wU7X4&Db(1}ip=wLDF!TRXEB==FWiMxLqG%;(j<24Vf!=>SW za!>6C&XF1J9K=9>j4!CHsn*SY*j}s!r=LFCB}XuE#5f{><*DR90s|5KiEQc_T4*sJ8j|^fIZTAzj z-S=qgf&CSq)l)Aj?E`XTotp?L4Gg9h-kbt_3&NINg7=PNIPtoe&|}Pyy2iTYMY@@> zGeQs>A9|-!CrS9h<1x{;26PEgWQI2awTv1A@@InT6Qh47K!2bK{F)t{f9-6WXpg*w zUH$sThz!eY1X}j?9TZfN?@`Ho#ZaLaKv~>wdJj9hG8+uvbwqq_XP{|4B(BG(33G@& zC)TadDtSL31{pM(Qe|Iz=e+fntv$kxw3v9}F9LKfaF@mUfSANkSKyefP53$L8_m0v zLPEssen5ZN+W}0ynbR768o3= z#t=-Cc5NLoPVBwk7;VUVZ!@wH3lD>gv~U_8uYG^Bc+`@+zya$eLmVU`BZ6t}_`oZ> zmoM8!NBhVv!cE;G$xAC09Qotlt^l}1MB2Nz<{TZvxgx%Pcd`B=&u$stqt=(?Xv;Z{ zI>gH^ODsg085?|zAG*0&Lo#ctw-BR?}!_N zF4=z@)cWr@#&PUe@MX9d$&jX8F{lhqCn*(BHI4oq7C5=}!KIty?J$%8+JhORV4 z%rQ`38mtF=ad*?POZDe%jvj$7w^gXNZ$zyGscgDDOXU8^JN*RqRUW7ON>agm3jDdxXfL>+@-h>{Lvj=g6QYBx^el$1fd#FXZX`I|(YnV|kS zRD!r8o7)WTU4I`Lx-f{(?T*i;H1la@%@WWOT;xDwfC)12f${vRq01DdrMW?L+hTv? z(tm_LKOhy{(;1#GYNcD$XIsdMs@Y3Gx8qQ*Cmq{W|g&b;OK2;(kL(Du@>WkSjow zBOs?H6z>KO>LgU#M;=@bdlu~bCo+G$z_sYi2D*J7Aaa;j8f%=Cq_(N&$&iDi(pyVp zrU5Dw+ZVbZ`LG0VTcRds@4JK~c?^zFrv!xaD%coWj~+LBGnKyp#7RqV#*}fQz)+>N z?-^67;BBu?=xf0%xg&fCu+8Qo#A)bc<;d&92%002xgEfx3AiIo+roB#6VrbW5G-d4 zA;ZJV)W!mszbD|&^Ag|!%|duMHZRi~3bO+*05wMQ`NTU~hN`q}yVm9*_^zipdr^Y6 zN%kFflhps#n7BAh^miBq4JIm9@h}y$cLH=l8U2FwR z>Hq>knkG1=a6tA@b=QvBi{O9etbZW~47YxL1Wl>BlQt!b!!`YiGDMJc?8F$-ah;&n zG7u=w$GA1{Od~J=_UYSpVbI~?t>Y4iPBn71I5jYV-)mkW4vy`zdWqB4jr=koN5!4r zD;rG7P(vT5W49WQ{2w-mo*=B*23v~q)Vn1fqxIFU(zI0{cuHyG1h#{BdHzfyW|C15H4p7CX9EvyJ3o{|GLqjGtrq{nkzDKqOKbBu zyZZ_m5VT#K7;R4EJm`O=m=n_9`LK<}wf&(A0Nos+zxLueu$&>in%%W`OIY>JHGldQ(`d2E<=!(FgQ; z_nO-gWcmp1kx+EDkx-3IwrFpzw=m=dld`x+EJCBu2m=aam|L1b!HbGSkx5(z0_1+j zA@^n@Aa{F5p4vN-@>(R@!Vyq18dYqT)t(Ia$vJcF1njE=b2f_42L$by*LGZXZafV; z_Mv74F-mTEg_Lu4H8R`pHPz|_i zmhwMFUYdmC4!unViMPolx3v@R^+70AYf2w_1Vr!Wg{bguK=pT5gIND}M;W{wS82ol zycU02C&%U{id2GWIsxjuVDeJOISC%ZjMrnE@w$Q7@-62aKpkOhGMcC=&f@skR4v#$ z-N~^vOc4v#8*=Q&o}n9qn!OnrGnU`WQJP_U@i`iMVn$Vde#b2r;1u&mJHD24Gu4&A}!%SY{Gc6rU7kjOiQ^LZn?oH$kCE_d4Rk&S=4 z3^Xc@%?~&>Lj}xA&|q<60lOMJUZB3s z>=-^?ur@YzWBB-D=;XWLaqBN*Qb>P>QKEN4uh)NWr)W@(#-#3$5+3*fXb{|tTVC95 zwVJ0S>B2tIKKtvZ4eUC_kYw0c;xA?}9G-Y0-&$TQ{cBv*$SOQRk4krXTB`ZA0eX1i zSVH0h2?k*zmjPzNRKs5_r?}Dt#U&|yJu*6rfaS$_eWMUH8izd+BjNJ7&EkK%_q3(e zmWh}!uQ;`CV2FtaE|)YcV5fk^IROXHDS$J+kuwOFbsp8L2krPE=hoGWp26; z17`}@^F|8`ZFR?@67J>tfN(Xi2YWG*qqb4F&^?a>Of|_3PYRC&28Dg6*o~e{Xmyak zkgAzySbQr1^K z>mNGt9m7%^A>RH*`McKp0JW4``EPuRD^%q;6vio>`h*2IW!Omb08{>K>;$@weM%(n z`P+v|?YL)0Mk^rvhC^muzWp^7a^IH?L9i%3*5SU%Yham>HA5l}w)%f#2rkj>wmG{~ zW`%C)g<k)5;>5eytq)nf6{dkp_32f*+hBjBp%(k-AR5mFj{^73;)~lea}^sMfSFS(n~T@IfF3cCAIIXF z8~sC+v8c0&6e6vXY-6Bl`TMZ7xRyOSZ0iMwJAUBZI!?EC&H(kN-n2kVsiN5#&|GGfd-2$Zo>(tXHbgHHDdCPDRi=ZVr#BT)&687eg z87yH$xv*iVE}`TL$9CY%KvOtSMN}|DfM9aJ5Vh2XA$xx@RwC*|1eLl2~>eL2|q!0JQVXsZk2Qs9; zQQJTN0Ka*pW%yxw_S%dgZHbG5lp@sFBc+_F>Y-p&OyW+6(DIu{xfH4KuFie2pK$p*zj;-6kZPW z%j88kYgBD--*P(hqcG9%2i5yW_`Z=i%mPm!Cgp$Kz}n9gqo0|)7v^W1ku!cXJN$=j zUZMz$`j9DIb*hf=R2`L1)lv3T?MJ6-5}ztF;_Rs!(^TstC)r2D`7%*#MlrI1`0~bH zVK0d1R4iMK=>h)BnZ*n3Ln0@(_t#f?_e5L6Vabsp`v~JSE)0M$FzajNiPe^Uz);<7 zvciA(asrpR7gx4PY}k}b_qsjEn=<@v{Ngn)+2I^UCb$3sFAv~sAAOIJ8VW&WXGL;?KpB0*+K5Su@o9I zq#hB}8=Vd5f^4}!pw<_E>iOEYkb-uP=ul7veF2svE<|hU2N&Fa4+EkJL1C9VhzEaI zMA0y~_r$r~oPW-$Q3ku*iOHMVopH3b9ho3T>o(Y`A%0IBH|$8COUizYDoDufjjkwo6au%9m67Lq zr))!dzmHZ&vF(sa_~HM275|D>qa!G&hwcO~V%r{#$)kx!@$^we+-PnW@kM_-lh|#^ z2Xlb%=zgUf0O9WEgTM`#xb_&3p#LzQz|IJc6w0Y8F9*bB9qVFIf`4R8`TKYccpZX2 zaSzmc;BC94k(F=G`y~A`z#QIQZXFmeFQ@KD1z@l(mqYM##Bq|CcsnJ3UD0umz3>z` z0KE143U%m<{SyLWmwpSQ%h7-L)@6Y9tU@Lb_?dCBKsh$LfXwS?VLTw0tLNHKjG)9V zMVfc0ge_j3wk=9Ho@MRbm|UphDM?lC^=0e54U+#0{7JN@6_W*SCI9 z;KfT*3@2VVTVd|p1u|Q9o?8W+!x+-51-Bwf`suxBj-90HIBdg$I+J*(y`RwN ze*1g9a$2W(v`Xv|cMN|trnnV>OT+ec9NY-P1#seuo1r%GRqPiPC@|iJEXWR6bW6Pj z7O$4HMsVCR{h282V`#`vPmM5vRAJh#cW{@zA$;aZD}E!7hQMhL)D6o*d`Nmg%zYc4 zJ_{0Wo}lkJu4h8xaU~-h1^c%7js}T~9YZ3{i3Z6doRJ1cV0nK*UB(H9h#9KTBwPtm zL^+It$dLbdy#viG@m7;rf?gW#mbruQ$6Rs=6Zu$?m!$Qugv2C%SN@6i9hcq=Zi{#q zPXp(2;!d2VvS>F4S^p~%gGbiogjtt;vM%O$!@7ht)!Q3vuG#DYy{lZHcku$9gbQ@! zU9*0PFu`Nh8eo6b#C7N1WKz`RCX1xsGZlu31=PyTc3L;tDVwF{D9TbJC-0uR3)F-! z%nh;Kf)JO$-+MKxn()et3Pbu1_0%$EIP%um=h}5HAkR_>&|lXirE&ZBKlab5ceHj? z6v|^oI@k-MgY}p|z3L+qrN5JW;}vRX3i#GnF=%ADCSHI4Ml&I7K@mM%{N9TfsgVJI z34=r#UhC$HY1hCE@{`n~?*~h!ig711Ii}AE-zmN^;Lhb54@lkHXWK5KeZwzYKf;nW4l7rmCL_ zNjA3;NH!#G(trN*p9Qji7_JWO??|r4K&~ecQ0IRbzmdn4)y6hLUH9g|K4~K&tUvJ? zz{P;N3wR6N?>68`tBL&um+t~zZ8`ie_;>|cgEx0n*>l}G#hYKB5inyC^l{ew>@!`M z-GEWIm;YxX5jK7eXbCXi;aig9i9B>6BO4?8`l;7n1M-Z$p2pzciBG585Oh8DLR7>U zqmzF?fDacoxz~(vix`$}guB$O`e3V~z95l&f%|ZGW;CB8^chBb40e4ZHq+x$iJMf>({Y%v2hQO@FW z;MA3!TsF+d$at5B?rW}7*AV&o=vmYb16_aj3=u=|d(UQmbTw&DAnDb+fnO|F`qlhI zbV2QJ_w+Y3G#T)q8JK`~)Xm7F-D`pqaIwO=wW2x6s1kCc_ejaNLJQt2I|EM%TsGz- z18L@BNA6+U_gz2*N3h)H??HU~)Om+uT8BMHh&~P|&DynVVU%Cb$UAT8iQgO=!PkEm zaKhU)urZu91Vdp;(TW7#l7XGcL~e?qkpaHjXOMY3AQ*qxjXHKFY_pH{(m<^;{0%xp z^aaF3NU-(c2ybX@g3v$s=ds&{qtv%>%LRvKe;#4=GNcYrlFrQnGIIDVy$yr_*wGM>f8u z*>VR3?Ga#n0o^xhXP|$yaAfFm z*IjW=p0-&o(O5sBzucpML4$##jY22lFv^R(>^x9R7g3Dv+~0Gfq;aU|u~+MO6Pmew0FZY(1-A0Y z^N$mfZw3Q70%qub+iG(H$Pa%2*`W)NWY5-b;b_`tZ)}$|H4aMhM5}3tr(2c_NXkRs zI&yphJvbZNsb}?jqTMB7GU#b`O0&Klg$*H$$I`>8lRqq0PeY$N_sRx!rwQ)W4e+lw zsS~o4dY!sBnN-<~mep00*YL(Jb#=MlDe7eRX%2%>sfTxy`PCnP7m$Bo3TCt>#wfDk zgk+_1GJyp*@!a*1j{*oZTdU9o9N@s*bp|Y}&#p&)gPa*OsR6yk&2PkG-VbaYQ$<5g zDm-z>GY2^P0J(`AQFu+1Q7Bv-J2CLCiP6cMe9UGHTwXc)c+0sEAb%hHaycOQ7?`DQ z2iCTi*?g=2ngg*5(Jz0G1?p|1;(WX{M4|2BZzRjV@9(e7^54PoJF;{bFTYczSkDl< z33F>bF>*5GQoy}36mrNW>I#fRtApGMZF~B+@3<{D+*_d3arxo{hpJIFmBkek>60F) z9r2j3lTnV8E9p&0DTJd~rA`SL%!FR9XQS9lENn2^9I_42u3>*ZkUzg0Sz3?3eX-oK zmzRggy%4T3VmkvX{vlE1B4XK$K(X_p{YDpU-v|xvhNi8MHP{E@73_P&mYAvsAejU{ z?3*M8#6SFp+V}j^hXIMTgzGQp0ZaP@@2$J6H&M?n^-cJAt%=G@Y`IJ(Ah`sO&l>00 z5p2m7WvX{PE4P2=L;WLt0kzsk>Y}mB?oU?|6*w+E;oGpuB@M5|Hle&i2Z^+5aVicy z?VAuRlVmEV^JckI>XvMkS%D33m#k2mAL!5%VOr+K_z#dwum0)HASC?HV{5*tN$K4h zK}v|tdq*IeY=O_^*wvf&&t8PK5@s+*(O{1JV1$nMvEzS`YDOf@-lJ#@;0O!3e-FYi zDB^nqI@AC8`TzMp|L1?MCLd;>{^$SwKmVWqIlnr;J)c~jKg{O;^Yj1tpZ_~)KPU6~ zGOXK-@iToVE($B%|D%AU*QkuSD#FO^Vz4*m$zXDWT4Zt+4TJ<|Lv7;J)K-l z=3hey|F`{sah-oU@N=46US5CsG`gEyVtWJg!{ny@?{fB!9n1N?`)Pcp1o}_C+%S+r{(nbo|NcCm+yb?A z&w_uK%pZ129wNCT%+F@2)BgN&nJ?z|o5}ps%zxSX^!3Ut5=zeCKL);4`5t^<@)pb@9p#Xr`yGhZ@<1?yu5dQW!C-S`tM^;zAUGQe-p-xTW_*A z%#lb*6?+04N^>YA(xpc_auInJj$nu_WJ@(?6Ok=Kv2Sr`1tJ|H^st2g48{v&zALdP z-d8cEM)#GUuUjb3A}pkV?K!OS@ce(%ZNVPj zPNwgNvzyy9Y|sCW?=KFg#mNsJCRcx(S7vv!D~p-pkNwBqTwZ@7Kbt?5BWo5%Z9bgc zolj@`v&9xqKOHP6$^8890A8*Q9m1l`&g}Z~dTIz?1`5+6*n+}HaxDTF;wXRk--GvG zUw@vSjXr$7G)?SU{~bVJTPPR2|874r_{IEAKF#J^?-n50^-F&JZ<+ZI@Lj>T=kof? z)#df%@4@VBa(8|`4-akhqn30v^T{VdgUz4#tAl!aet9`qNOM=Cc0lx(!};~Q`Rvmt z|ARP-(*>V({bfPiE!XfZ7gT@zu>`q1HWB>J?6$eSet$mugb?sqKq!)S$4tBLcB0>M z51ZrT=K8}z3Yh(UeEW6L$Nc(cw&3@lU|g?e9~T1u?fCB}SYpCD9L&!bPbKCc+m2xo zL}*egJw+Q|EqLC~9~^+ed^UN1bG;B!f{wDSo(u__$<6KO`Rw>=a`S)b?3#=&`awPO zxm6)85c7IIc{kgeJq1=SbHQINM7O({0$ict(vCp^116W(?^;3s2@Yg%_~DPk$?ffI zZUpYF&$nmI*+RsbUA>zn4;FpgTwi@!lEk&RQyjp-_1|BE%ZC1-oY^)gZU2ketl{K# zGP(kt^&|K7`uxM}`22rrIvd?wTNTVB&;0dd{%*lNv@G82Zym$-$V*@@rRa{TIf%X2 z|I_W{!_5;Ag$2tyzdc^`b$NdEju2b=nB2j)*Ed{ad>Wi_-*kT6+Es#M9{u)Yr)+n@ z2<)D}JG*QR#n>!(Ok2aFm)Dfb2p%)7U(KesOzZaX_d!k`_2qx>n>TMSi`~WJORH2p zxoX`Q7PlON^N;=of=u@x%@L1I{P%$X|8DT&Rv5iD^L_vN?`C+o;J@!IR`Ni+>6{v{ zude4G4AX95yactl)0I;@$9y)up4*|H&96Vqwr-4(<7RgCHz@eOOwJelpy>>ZGsL*` z_w|R#`4tZ2|NA5V{Qv%+|36Sm0|XQR000O80Dzw-og%U7ND>18>J1kFA^?{!KnNta z4*Uce<$rM`3VzqGfN_290cSu`f;93T=z6py2uc|9feV0=23j7v&|Lt^?5=88Rg-{p zxxalgB43fu%B(Ixve)#n(3Ke(85#MGj7Ryqpc}?S2H981-2SdD*$8YsgkSNT`{(&p zI?wNc`b^HRnvVO?@Q`k6978vKt{R!T5nL6?_#?h}Y zQ^(RvUBVnn)Xq9%BxMYmWpQ)LQ0)je8VR(D0v4gg&AW~zCsHYD%b~NXIi1|6L;{_n zfJJ9jXVJ-P%Q=}to$#Mw3W2=CzpvR6Wf2L*-<6n?NGFuY>+~0>XYTKIuF^ic-ukoC z^?#z6+xc8?eN^`=?#!-}$ATn3V>I|lXX7D{^z0GA(eLm-DSJ734&YW*YmcZF2mfdMjG*giX3J)AK6K^=)9}D$!CB(0LTpD75Ygp(5qD< z&2IoQmu7{2S`jgKrm`b{43Cr}StNsY<$o?FZM;bEob?)g1pQdC8Oj~;B&^%INJdkr zGor-NkMv};1$+Y`S==Yja7zwlfsA%&2SkZm6Vj4%jBOh>VEfx0`9m7+4Y%i57B$-= z5vd1UftSbeX$ci7rHJLlyDMh7@x9y`T_-P{T2-Sr zn(;MKB*_))-C~1^36j(mb+HDwj$So|r zv@ZH`{>ES=$!gk(TV&#%^1Q_k!d*Etbb}Vh*QB9F-%j?0V80&~8gQ9-D zT4=E|o5)MX!gsu7uiKNd>(wW{RbCez=KMfz$Obc&BUi_>Nd;}f0^M3(%-k(3PO5Q$r08R%mGht=`g>u*Ah$nqI0vYWgWrD0E zr;qNGM&Z8R?4>O71O_^cx_w_yLPz2c)G7lP<05x@=))Cy^nG%k4rI&KdV?SAyUwBY!E7#W$cphVF3) z*p-erf8ZlB<%yXWu&LpnaI~fviH{xWoP@ijp+MX_jih#)O$!Uf{#JKgEEdhjgGE!9 zI|j-8l>RB}np%g)MBbye#^h(mG`re*HY>Ys0brzH4iQbbKNr7fcCpol)s?m@vvS*Njbf#8h6y`nRo&R- zTa?~p0ibiq}H#Y(}Ci zB}yZa(MkLLGwWrL*N{3)}-BqzMmv!)k){(3stvhVG+%B48 zP9hSClt;yUek6h^_`()}t2D8$@?05A0j-Ou3o(fh!MaDQb$87X3beZlLY$0e*W5cB z+mxmEFUFv)a(~g4jz_m(zz6ECzvznv_0TWU8HT>9u{6q+bYTTBFS(;K^8IJkzYm-O z+?^vSA^kfVE%cS^tYRpYm|eS|ifDr_)sR0B=JAP0P=tGeBO=`9N1$(n5Ccc$WxZo{ zlpH(&_KB#!WIxsO!5A67#!G|sz+lX_!5v{s4KFMYeScr)Q#>z0fOi20NBDs!wjrVw z!LsnSMG!mm^?iXwf5yh_z&P*(m@IFqt``Ai45xSK-;WnU--NO|Ehuo)2~fM-8KFeC zyG2?fXyZfSt&eXy^yQ~~27>=bbOJdqq>Io5&Ow3SAJ^E2Y{?ySO*k3^TNu7`m7RCn zQj*Zv)_=WV7b~_!_t&>5LEz!tSmq<12)y`t8}@JrRq+M<=N1EyZi85ueZYUp8m^J^ z?Y9ykETlF*OylTqorQv*!++`q(Oq8R2mEJVbp#>0I2uhbe2W{iik=vk~Nr zimt?7^}*PtKwM%zn}K9YbfM7{{jmwsPpXGFm4ByYFGf52wL>T;$0n@V1k}V3xOWF^ zcbYLMF)$wSZ^m|ddK;sSQP;A4lPpK3B;G9bK1tUk zn13v|V*HsuqRK^QXw0k4Toi^s=4hjs)G$N8t+>|uyt}eVZk@BBupD{Ovc}2DIi&ec z96EOk`(fV>JGe^#WPC$4Sb*gQgcOJV4E}Uwb8%6Y^uMLx$n1UV$Z6zvESryyU4v47 z#?sp2qRHfZC0L?&5OIupARmLki(q-?8Gj+~d_x2SF7gB9pT%v;+jnx&`1$jmBl{4uq*86Pm@#r!#k%u^iWObV5^vUA_PD_P?ynlwW zgu@%=}Ki&Zs+OMUKX*$TwL z{Un&t6_o3JGpqtGz-Aha*KSZx!u~#~Z>f8Zt*w`AibJsKhhNB)(~@zEEkB=Ykj0|v zMCzA1b=EdA^=o~5+SCPg-#moq%YP4r*K!&`0a{t%SUzBDQ+d-HilKPAE845FR|m0g zABhAA)j4mA%l_fs=X;+&{9i0)DG8D_n? zRD(kHHM%zulB{F#y(JcL9)Hi{OM8)~p7~h{IZ86VfHx2Hj*AWtPNZ85Tb+dM7e?*Lq%tkK9a*po#$Mh=!I7d3mWW!4_n<< z(xWl39UR|Avkh67bH)<)C0MsHk^w3BjRB(8IWf5Py7x2e;BcBy!BL$EYa4KhZfqbFgu-9 z7zw!{?mF!IfpO^lgWwrk&-8sqr|}Jq1n!Uv5>FM>8Dwpli-)L`T}zH7jrtDs$(W}y zP70K_cOc(F#KWH;BB4^lj#kxGy<-g^9n=O&0d}@Sh~T%dLw`U>m8w&B1-Legn)D$L zLyZ`C+45a1SBp|aMe%}&w{E!{g{$9w2et+HG7o`W3@p5bJMWM;W{#{tg!uSUeOrK! z6nbQXmsSNr3wI-JhFqaO|C6w{j>72pvMb2cBg$tqpV&lS$pxcSW=SnC=QqiTA&2z74A9uy!OO6oU=GgMWvMeNyn zwWwwV8xdlsVdQWB@z-kpX`2m|9)$v1^EFDKV71#4jDKT93Sa$<;UAl=d3AYN;v5&3 zgsoXo*Q{^5Yc};+y{v*_Spxcx*JUlr1MQ2k6C0~o6liWkKJgY;r`9DGd3^B*%kH zc+?II2!Dxzas9ipE?dxEwsEjLejcvodm?`6o;56F^&V-)uk6R=zEOcu;FH}GWN34O zzjzDl%@Lk;Rf?E_6{h}`fBo@Spj&K#|Niefmav5fhPljARASct7IZuk{MSGJYS6s> z?j4S=`SycP|Kl-kuCjkWJ;qV|R~1)Sb(*XgJAWP57F*LvuxI;!Y@4N3w;ZD}7^C^G z|KqRUnB(gW%|&wg=O>#yyWo+*T$7dW-bI;d@=Nf_pyl614g9jKmqM{ZpEb{Lzjvk$ z<(H)Ck8obFSmts`Tqa~;+E`@ouB3~gj5NRvE+nLPo9WGo?c`bWF`Kk z)qnEBAdR+e3&uMCzPyD!Ljdb`ihWb0|IEPN(ngDPWDf4Ymx|MJp%6DnTx$4@S7OiG zW}+O{*EC*Vbn)l+G`Y<0Z^0DOMZbLnLDhG*AG68z_SRi^5*}1d^K9qRJVt<>=LhTJ;v51SYv*^nOeaz15Wr)6>Am`mp zkxl_)1ZrWly@CuZ`}ylVA(HOgd`s_XA4aIP>7^{4>~J!ITfV_K8VxLcTmQNBg?W>K z775u4PA?dO6L9SlJ!w$431$&QBp#^f=sV1JB@ zAh4AyD_!Nit0}D1Y^QQoR&kk_6)bJ8)^bty6NTXmr=);v0z5++2ysGTM7v=#Kvw`T3u=;khS}`IR@bS(SCMsvds%=<{vk5m4?f z#bWVVi}2((Jo%I8u0|$*3sh8x^?$s~TeQHjyX7hQS+s!YYKys20>DSA8hTV#!H;9I z=cP^1mcwjP3|N0aiRB`~$ zf9r;eY6v|*9^3>U@h3X45T>nufOS{^q&Nqfh<#o$n0Iv9k}zn6`1J=q?ti@NiI8Af z@AR(fw~9yj zeZnPU(h!08UOJ3hM_9mNy?-?PQ9U(mU-$j0+kgC+K8ZH%)nhFGSd@RvGf)~rv{{0? zVZ6FfZLFlI=zk>E^wsE^zDljh*r&OYq25lZuvcCIz6E(rKuqYrCWw=xc@Y0YrLMZp z`B9u**lBTDu`K|8K!LxxzS=74t-n_DzbX$aQjuD+#if7|DW!|h3ZGzo7tepW^0Ja!6LB3^&BOBk(!4x&9FFJ&;&a2H{F2U|9s;|IReit#U+%spKz zCq)X=?$-AI3;I6u0*v+*sUNtFo2FddV}2&^Lv9z`kzg z>IG1|6YW|Lmk+4U99MQoM=6yfY@F^MDQf}4?Xu;H9K<)s))qL8A<2Ja%hMWglCgYI zMRUKcop)@vRf@&-T84k*69Ft`Vg>IT-pSiyi6Xai>kaRnZ0x(4bfzRUQhN~0LMko+ z5nT|_0DfRf@NlMqmgYP8Mrbrts%R=uP-TDTERS5M`Oc$;Aq1NEJ}l&f%9PruO1`4H z1-SPd1K45>z$?Ezz#V@-BJig$gob!(2qQxKy&+88vTx@>43RX)gF~vBqfB|-ENbZM z$(07$Zk969bhD%#wVR_Ja`h1;)M9FlE1LYt+ib&6%rIW=h6YDHBhLeXu4RTQ6+TPc z7J^TZVIq{{kq8~0!Q-a|b;KW#J{CMC~BfBT;&r^&r<8 z+*y2LeQ`Ge@b0=;mFCv!sSTm?l7~P(Nw&Cs|0Cf=DM}@W znUp&2-N!>6xcZT_q1&G*WdM;#m!tvx6S=A&GRwpk8dFB=%rvgu%Qxt=#@?ED2exja z2;4WQ4)jjlX*Pe>33gOpE%jhm7dX@mkU=ZOEv;M1waWkepIb_C*0CAmyRxfk`>R&X zHc)D70FRQS$_uHVd}H>bSFkSz32ktwcWAS#Cb#LoZY`>dwrFo(OV4NGko`$16r1L9 z2^=#q3gup@o@>*1ue{t;Pn(R?hq?`hzBbj$)0RP6V;g^_{Pw$Q4m%mF$-?0wy;aDY z_?~Gsq&UBqGg$YxipApC<+pJ|mEG&RjVfv$ajL^F!au)Lx|{NP8tGf9FJipfiw9aw zk*Ul=R7+c>AFc?Lw}N$B5ryxzlIhS`V_q>L9ud^?=OnyfduNav)@a^yhO^)UZopvL zL58&rtT%s>w7Yab6KQV)RU}34BdHHV`e|$HXHwbQeccONrgn?cB9VjOlPO@#T%`Tu zUXDXCG365DEH8Xke)CyiWs%u@U*+~eFN@W#upm^`?r!l2fh0i~6Ven6AVv~+SS|y} zf_|znStJdFRkQ>MaLIR3-x>%o@DoXa@IT}eF5G|QQ+Q^f_>C4=&R|FmI0d6E<35E* z3ODPgCB#BX(aSRtNn?|b;w>rv@DfVC`MKC=zgYpj~EyaiRteJy!>yxFse^Gy2NwmcMi@+=e7Z?mx-)}f^Di#MQ)p2+q zCQe!$lZ-Bc>UlRdCf+D2^yS5PI_#Koko?Sly@gXK|EXW;0Fzk`C^DWLg(RFpndNCo z98cy;VYIyOE#B%Jn=f|X{n_qK$|c$5{IQw;egx5B%o71Qc9u8jJ@jYXQF(#4W_y1H zkUUyIyT70e<78^9R003<=Wic%&AOeDhg2jvgEEgWq|6 zH2@LxZggd~K$2@34zo$MuS^>CKf#xM&KAKD1Lo5M%FVZ-!6H@~>vS>EN;ABe=%`lg ztZ*azcE6NRIz_A*X)6q!N|KFi$$?XUB#E|PEY~@#MK~YC-YQ=AYilxVF zb$P>x216lElhYKsXmR~W3*bLlAIPi zCD|oD(z9tgHoj3{ox)|dycastPt3I%$NtX%rgnH|X4;$8VzKRQw<`^}*PeSLtKX#W z4C%$alK%rJ`D`-k3_;776{T*p)|^61qIGzj-b#h}=F0bvQye{{!n8@NQ+P{I`<7GS8{`kl(jT`hF1wa%((NTrw7 z5K?RPG8QKt_(Ad2mI6ArjfpsmH&C@M5-~i>ldrHcqJ?>g0)Rg&%{^BsJ!4dQN2ZW( zZv9oQxqrCzm1^BE3;Va zT&jyhxwzB>VTnkB^gUsy4fTa913_kE)jxkuF5kwyksShCGCYmo*1VEi6bYN5h`(6OGk>dz)o*74n$Lzyepz*?1t)?KRx&su*eXyq|Ig4aCBhY^3! zR%x-elVh5@q}pnw;tUbGlic-A`>J@g$wnJ`_8GC~N;f(PXzmDFmPj`akxDnjKZvvk z;RYWIT+rgnhOOezP}vN*0P5BvRiOdMGc|SMmm%hq&+7CQY+CLB>OJGR)#t$wiI72C zFRHp|Z%K|NLe_sEveSnJgAkK+NX#dNBU-m!_Y^i`=>0&74I&8Q&jvuHeP)2P;HDt) z3J$$2=T&jWhXa%|_6XZxLCjl3@F2QWCzX=}j@=Bnj05OKk@r%FySHpA_qUcHPfl3) z6DTl61=c(6R8#RIIH2iVeE{wDTiKze8mgs6b8mfWaziM&o0-DKkjK8X zbyZQ9otuAkalLkrXhB*ko67Mnda048^chV(`CVgQ_b@)pdR@mhMoxXJ%6zhBm~2A2vvxbY7}<8#0edK zRNrD;{8mTiA(lRHmGnF$6!UqdG`92*_PN`~D-Ny5KFLy^3mZH4qMBJ@sJ~^)<0KBLATEl4WnJqZH*acgoxXU4NW`At9^MFeN|Xv zQ`xGG+%36>iruZx?G01KGqEbvwr?BO_(iD3synT~Gwc!JDX>z;AP^W}uLCjW|NNg@ zbk6`N<1TFR&(XkQ1o~>+DIi2~Ayl?lLkfRlm>eo|0c9?9nG4xQb;maK!0@keKr!`o zf1~q>d0G=9EcAj1&aH#0HdNQ1gX7r{=PN&z**kgHCnKyRssSxF4M^78BTwywLb>X} z?>kt;H0%89mF9*Z1b=>OPCIErH;x3!>Rq1(p~blswENq0y=K5xhgYjqcJ?5>{Y2ds_n8s0WQek~@-@0wd5pG`< zOXs3QeHNIV5$KLVQ39`q^n=+G_R^VfnVW3LWZve;4EsT9-WZdNYO5%3a6f-IIwERH zRB)A7sDM5NuLU5n;E$~P{m} z+*lkz->;UnYtCVVxMVd*uveIX3g*By^=HJltIavMZpWv$-*_4CvGvQ|v!cAe3vS0b zD7F7A>%?h?)crS0cJy2YDG7hO>w@9}4(HzkQw;7{ZvNx*CLpo3CW(sDvI+N0BiDa? z)-CXvjI{|HD^sl1fSrVG33vA1=xtY!jGXre-p6SPEKuU1Vv z{7UD}2fGn+v{NJGX%{!Su^efqH;T)C=SpYV9hql$66bSwAhUb9S<8R7Tf(E#*1o7u z{Akurw5dB7Nd6_)vG4xJpB(aBQ_Nqph8bJ2T1-s~_J5M?^PlxtVE7WqZWEoQv}Mk? zx%atex(d-kEa?xxcIzRs`JsQ`aq=Oug=W*f>+?ebphow;;{in0jz&@Yjz17p`(m+g z`34bLNWe`J{fQdo{l4i5MRtD}JW1@^Zc#)gmv-$t zPEu5#BFUD=6nSnW?>GAaFDkNW@HVq=yHpXGT<*8;I9MSAoqKt89j-_aeHGjH`(Tkn zkRN#VU6(9s?U4|!ix%0@a8%m2{k6#Q6$phe5PWg1w71Lk-&13I+&p}S^i~c{n`(W;b+G0 zg2vM<*l-}4y4ooo|J%Q9{oixYl7nc5^Q|YiMr?hk3UpirLDpHHZ~fb20S|%>+b{VJ z6?8~1kJnX)k4`qQeV!jf02jDKtK}e5RAwn6Mr*ZTr>K8k1z3pHD}kn{uxg@JRm~KY zh**5lngonpT}O)JEz(p6H497W`4lw6X)H=G0C)w!?Ro}b7pXf%{ts^9HP|kNL`QhShP}-Fw=Kcgt%CT8XJkVdnXRhFw=5dER_ss^x>n=BP;1L|hsxG7 z)>~{YU6ib7xm7MJwnS@KIhB+Osx-UM(bwg>%UgfxD^kQ;e+vo-&b+e`$pNPI%A?Ic zWb|Q7Ms$&AG?k5AwsZ*m>;gp^{1Vy<4OP`YUZfuv%&BK6;Xk3=#d(j3%TP zIT0Fj%Y^_S!5Cmh+QEgAm%8)uklFwbksgy&Lu8l~sG@&?4B@|oFpB%SymN{*kK zHmzbe_#4?MNRh4C6U})i5_XJC{yYm}(LZZ<@DfXYQ$7etRUjkf3s}%h`J)7ZQxz5F?ySqtszN?|!WM zYo~N+n`GQ)&!K9+y& zK>_z^8(iiX@GqtLr~|KZZ1_{QZu+1h-Gr@{B{#~nfklP|U56- zxc2KuOK|@Ufe}YDjZ&}KxeEgHxKybe174_t+&bVg!+<{F-dHVAOf}%3`GHZUv&<6g zOx*kDiq5i1fOt5-ADU^Ddb3&uMyG$uQScB|!~lZ?l`8~~BpXxA{2-A|t}OSgF#8U^ zRi2cRk!+r%AgXTGR!eraU>CzTT#QJ7om^S&@C$Pxn7zeYsE{qyixLooxWZx5gmb|84~(A3Y#?$e5*VqEhhOQO~QYCXYE1X zkv-_>*xcRVo8*0M<*9w`==8PS?IOv7I73Iu4iqF)$Th#}*pMQbKzi^QxC~J<0VC-W z_P>5Sqaf^4=KSTvEC;^mVAn#(>_4oK`tPO*|XuZmYR zhkfdtx-m)RDJq}8(2#6MP`Q6i?Hh$8SwZ3>5&>b~G>>1%&3s7HF#HLOLO_a{@2)z& zUE{TQiqKFz#mxV&qcazTB`PRS!|hfdSLQ|x-zu+lmo}M3V8pf6f)c43PKfg<5GF~8 z6ZIybL1Y?%Svc#CO4LyN5ru+4iq4k-GbjX4lQ5^H(d^SwwfI!Lgpz+uOfmD_e)jDv zr}8C@fbk>+AznTS0H(NM&uF&^y_|4Pk&6|H=`h{_q7M~;s zqZ$~QEQRL_WdfOrpFGFB4a;xLo6*}S|KjQN9?HLXdNptL$wGg8>YT65oUeIKQ?|1b zF6xv(Bh`Sj$TgEGBt5CnGzw#GP-ZHHGZ#2BmBX#|Ou-M8x@RQsiFA4<7oV6jr$o;s zwd^?G%t<OvES8F%Jszo9BTn zXh!bgI)&$Jvc!~H5H2kQhn9sN%j~yETamPtNW1Zrwd77ZMdnlKj{N3%l$}e-OE#yS zk-D^HN;*a6o3&`!(YvK1Ga^X{QIi$B7RxmIOO6-fQ{?p3hmu~jNfL)BuP{O9iv*EN zu0Q;Xr#FAKTTrJ-n8vyz&@>6NYP!nCBhv(ocrqmrB8BIZs}+9isbqSqQVAm0*sf~5 zPdPLj1UI&@O{ZW!>guaJ{L<;>O01JO1i35W2T!%RW3Xmr-h1S?%rnG%Dgkp_>pr9s zL@vGKh)gdSc3tF&fwoX&k>1|BmrR@pE`YR>O40?BauMC z$<%^@Bo1NT8s)dhVeCo*&lw0I^<>r5QeWs(tI!DFUH!f?TUZ~c_uOC}8&+-E_iXzxcyA zTb6dm&@_O7c$+d0ep9})Vg&gM%i#y{CZ5DH#6hASXBv{=&5?_URC=L1W(^Y zO9?dLtJ!1DOQorVUtwJ(Gn;EGMTI_&JjNrAiOOAq;(-APfFl6#-2Vrz@R5HTy!Qe> za9599)dz3t(TjD${W;-kJa97}xT{95meJc|;Hu}n??kRUgSVZ8OF+UMzy6$JqzvLWD7*qHF9-eKP{z9wK9+_zACtC38q$pUn#-WN${&AxEcwrLV~G} zKqdI_drv0zq=@|HnO2?h8#8}tDJ+4EmPUdakzw~BlxnFEcE@V5HkbWmVvAxTSo|2G zv=BNXG|1Km=@0-rR^L!;Fo^61Q_?9BCK@t{SX~oMAU?Fiv&TGws6?{`jF!j$w)KC% zdw2Zi; zrR`f}JRfTDf;M{l5Gj8L4h^=vL!c0uq!{aLctd5^1bml3pVhl6pO{Sv`O0vmL=Llg zt;KwP1RV5Ni_G0KI)Sj6v!4476_DS!P)l})Dy~ZD*hqUbA~?AJl~b8@Qmz)o44j3T z7(Z>&!YNKhY6Di}2P2%VD;! zuc+(w37UAo#EmnKg6uVa9eeDsPMCJ zn{{@)=6F9H#@laCoH!u?G!v{W;&vm~7V#Mr0owWMwoeQe&y~I6xn-_+POKHrZ6m~U zYJ+(0F+n`HED+Ca1H^M`e|YXUKRkD>56>Or!*j#-@Z5hkJyZ!a_iH=%Yne+FhR?Ot z;kjjWD8FSMRq~YIGLM=TofFHVbK9`!oZ1zg$IObnnWB^>#vw8s%cSVsuqZl@85DUl zMJZ}dbgr$5&Mjl2b7D($ZkZCD6HB6V(>&;0TL+y7%zx~30ZWa4&b95&xoi4!Zd(4F zn}$E<+U|en+%)?+*H%C0rqR#2w)r{to7Py#0+PHeo-4bWbIYveoLJSIn?^O~+NS2* zF{wE>ENadTgPL?a3nx*lYcDqVc@%)Vc}(IbCV zd_oRLYKnSRHu~9FCvgCx4%Lek-Dst;Xy_{{ZAG88gKg|k)okbPjq@x?LI`3F0l)V| z;@2dRk8luy$wc&O3u)RuL6|4JFK=~w@dHz-%>sTPN@}toEfy@Z1Y(td0bk5Log^s; zb4Mge06|O=*v~zlw9-jh-I{)HKh!Qn*qN+15)q1=r=-^W$~sA{ z$T4c=oS|060m@RTCmQv($~@JWHx=f!zPza}ueIfgy13952N^M2!VEsqGzovBw^shO zr!&mMm96^iYJQuF-e!|>wpPYA zb+NT7Hr2$2-yArsi2WtcCrhDH!?v`ri4rzBUKmD)&ui?bsrrAww~)mGE{$A`Sw4eZwat393kwz`axtz9P1yACs4t$; zuFxNH-#|Q<*OyotrCs1LQefxa+SJE)fVx9B;)n~uF<_hm(PCqbz!td4*vdjg=iu)o z{#}hm$l*j3R+)5-^bNMz%IMC3$rT57B=j2O~LiT755& zw~|-}re7(ze*0QHw}5y5U6B)fhOu9JM5NS)jc#y7S3kO_>N$F%BhO8KiU7zWC{7go z12r>$4kg*n6EAT{rb?#Kw8VoI0x0)(5(D)02ioZ0OM5VC}!;_k+8Qo-o*T>fGa+? zP>k&@3-=mtQI@eIq{g92zYbRV^^TN~`}>HCNc^3IdDu(*RVR!gP(RO87y>j10g@L3 z&jSqN4J?8I#7ut?Bx0uPr!xP#{zZrs$k~z4F5a^2D(x)^>Ee;WTaI2McDRz$E;~NF zZn+CU>JIsnZ?6(1&%IAoTVaIODk-HSrU&AjsySUDh+=a2>wD+d9Ko?Vk#eZa?~X5eUhl7m3VENA$J-$RqQT5aHc7)TmTy)?qB`3^YyAL69W@Eb9z3Tq5E>(eo_*jO9f@gc5#Yl=1kE z@iOE`hGM?J1X?UaH!lLD6txVXA`3yvIqHvC%;Qp#9h+31s^6fj`3vj<2fmsa~#quoQe#7JA@ymyZ)hpt*^Xmf^+!s`_ zt?1WJ+1Cm}G;A;GNqvW_%v)y>DG&9L?8P!bJO7DqcLm0I!$J07!^;tQL%1tK)$H1k zRFr>d?r_0-7b6p&_Dm|VtRPZi*o>MRcC<*KW<$@u|I+^pC5)6x!G&w0E~6fp9ilyi7`S9x3i=l^W!FWfVvl+*e5=|6ArsMPL|N^K|O^R!JRFWZ9+ov>?`==WnAYv10m3Cm)YN%~7x z!l0X>xXbZ`&lD+y!Mm107%RCwEiK}h$Va4K;DAmw*kHv|>!Yf}zoNtgwn~a4=4IO~ z4>_>Nd<0zq4>EuL&#j+7u+Dh<-~oSIMR}$>=s}agY%b6y+AGM|u(eucVn-s3u>T$i z5}GKSVKG|7Q@KfwC{2e%x9{sG=qCKZ*#9&Bc)KCtpi|`+TR_ISP_*_Nw#%3Ooy*$S zRHc1s?Wrm#Jtv)L3|!VOfl`x12e}g6bvowxCh?+>O*{XDAdVC(dH9ww zFBvR5CsH6DAX1XL&1Q&&V&8Dd1Q+bZqWO4$o4U~k{-XQIb8rxPM>(yRD&J=FC8mF@ z_7hbz%7XAJM^yf;v8yrpSulToGv<0u@d+gq(5=mwCk{_1p&3kBfGNQ-fObP>Wmv%9 zbd76Y_OniMdzs`ZydD_(YS2DE2*q zrw&gwOS2HhMISxmSw4pct;+NYUwr=;}$-#5ngKYDx$5OV{a?gtS zwj0z{jdNJo0@>ROCMJI@W%8GAO%OFmBRaDRwFJpJFxrTDR+Z11mSW3%-t3yqJ7^uqnJ{vkXqzzf*ye^6+nK8r zl;`sp@t|5Bna;CoOJfD}w=-L)c}$4o{R3d4hZK3%_Q^YF*Vk)2@e-7IA*Qypi7BXn zakdZ>zPMoXoa*`ItpLJ52zL5KarNi`EV@xt)R~!bM6mL=i>8<(RlG?k+mq>BmSmCo zK%f6481-Eu^SFP35ejiXfcx5az$_)^1529~yV!$fG{cFGbabAWzXlaFR|+~g4Hy+0 zT&Ae@!EOQRFhYNR`&PhyqGw4m6`-7{&C*#*5FZHWQALIs#wB)#Fis%j4<0{TYL>f7 zv4H(lPuMVH_-iTq#a9_!$Aeudj@6P-Lc)W$T#8ARAasAOeNm9%xnVBQS3l==AOT|= zym7@Q+dN0C7CmqtU@J`TDl0~6ySL^0DPO#`HmOn#RjQIweNpQI5~V(+p{JGYl;)gN zgwr~0N&KD}!C-> zU7szmJag@mBhoHC%#cB{OAI50DHk!NAr;z zYh2gRdm%fFfaS)IW$_-w@1m4gdQ#jvo#9>;^Vf%OT>(dZLS_w&y{a+)=k5Qu6Y&7H z-%`T>y=0s2w8Rb=4<#U~-bUc<2fL)aJe{T?;LzLJubb^;OB^1k7jigP1i}z-ew1q5KWD#HN-M;th8=|ke5g^T+=*=-~j z5YAv!mHQNjg;;r9@*>yXo;($JC`30t3{!!B1H^KFK*36Bq97iqA{>99eykFy8bV2ZTMctm`HBh-vBN~3X@5~c zRL>H5XL+z17(s_QJhZ%84WNFO$jh+ZAz9(cZ3S=M>>4qlR#(_F>iFw^TUiuu4dZyti(B+TCKOqrNY|3B}KEw?47|L4gMb32({Q zrw6bet%T1*xWpR9b;N_@$Ev^fv)bUK(IZ|&Gx=VyXUYLAbR3LZ<{7|Vq!{vcCrFpK z3=a@dwma+xKev5pBe+8IPEG^|2n>IrKm{nwK%T@KOL*rmkyJ)YxMTPW)SI>an1}bOsGlas>JXDDMc(i{cqrdSY z!*?c*#DMjq6YrKgb1yFaTrCzNKN9t<>&K$9qe$@0E!Nrc)o{3@ISUvI%YKkW94fGW ziMJOo5|tYsHS$`#!++pN^=;F$h1{h1s&A~aX1Fh0kY@|nwFpvU(;{1lmnvAuVT)od zw-^nAR7f>k9-Et|Ky48Pw)KA&8#ZYh(D3u;Z!_9db@3$-3DAyfxtigFN8-ggfbvyz zJ+x55suo9BtX6Ea1h$RK+8IaAeKvZ(B%{GNBf3tm!(E6@D!zS0Q2A%7;}^go)euwD zEGHIXxp^4LA8 z&r!&P_Ai$*WL7d#r$FGCsA4E3WA+pY9KS@Iuw=|m0Y6^WrO7DOa2Uc_r1zH^HUl^p zCeRStMG8)Ksw=@;{|J8ue6hPVK(CCi7CUJe6x#*-cvY~hRJ=}s&~dL?M)n_pj6;RE zDc)a`+3A)D(554gC6GvgL-c z5%tp$O+QUX5}tcfh(f?PSqL&&nAl@H?hMC=WpD$5VHw0!RK0w1kU|s#i_^paCS=st ziH!PskWqhMPqs4PAv9@eK*)i$0bwSkEs19wGJ&?q`1Vv@#0F{Oka5~L%(S#6o+uP> z3WZaiF1|=(AHWTqExwqJb^rC_Sqf1MEKU;xm~0j}D)mV-!YMT{I~@4QPHU*}pLAM7 z$br)u!rbe#9XDvnc(#k{HRq5!)rg4^4N2d6CNt zr$7jAE-%~?;Rmw2!EAe24WlHGfme;*oV4t(&?ouZldZ zZ4H;O_(q=MNFnh{D}baaJg~(_ zIAwp>dRg?>pq#K{DKv;};??1IPtJ~hIDB{X>iN;DqqG0sMQw)iMmRHkIb7mFNI$|P zfvty@o`gVn{QC4LO2TjnKM7TLRO8c`srIqG{os+(Z~(u8+Yi8Ro!mFOQ??L*>DpD< za*9>&Lg~*R{f8wH@1A3Sf;v{aE{(iF#S?$$6p(&?q3|gug26LO?BGDp&fFR?>Ez5o z2hPnL=w1&j!t6Hr#6p{oR+mYwN63N3Bh3A_9i3Wd9M<>?BY&Z=)&ITA`yD>ycRqg*dJ`8Xk_eVX0v3OL z2#F#pQ!pivbd`XKY$Suc9zIfJp9BVyjtLSy#6M$OdIm(7%YjY3A2(AXMFUo+8q zKIt73AqQSC5$1lCXR*pLdz$hVko3?Xfd^h2B-p+3K!qn5!v@exPdj-n26`VL?pXq} z7}fJn>f4kSGq8Ar8Nj`^x2SK&4Rn9>dyzKG5p-yfBhWn$ajbLH00&neNh2Hp2ZlI+ z-0v8N8pkyI2d-l`*lK`_HyR-Bwas8qGp5PUxJJ=nlL0Q?WPrHWCWE?D?(Jlfv-qZG zU}2XvbQ}|1Gt*}=bWj4xJ1X%32?9U~)P?2g%qYwg&BAoG2W!lv^&S8RR(yZ%Q13q1 ze5f&ZWQfo=!mEh*N_&QoOwdv~kYQO~=H$Pq^+fFs7QbOeHs&u9B<~p%E8~d+h>T3MBY#8&ADYJg z3bsoI{#}J6PX^N*(C^WvA({r89rt7;X;C(efhx zky^3!by;-phcP0k@Hzqoy!aUTeIh;t9m2QbL2aT|awe6cz&Z8rr@S{<2JD7gfxoY- zww$Neq)MDyUI2r&g*O{?dzf~yb$|ixl*P&0H#EiLWqf^rq zUYzk*ZBb8>0CKObN5|*6gIvU~+kwC2hRnBjwOHD2nCVL0_2HG2`-V;7=!ppX6=Nxf zxmTWYU(LBp6%oM1$|1fC2pwjR!>DhEg)fU$l5#hMAB!q?7ps4J<=nDZ-8o0C1^>-{QR=V>PrB7dFn*ClmWVTn{uPQ@V zX6rHh|GAsNvv!g~IR>ALDwH#bd+lkE7i5e6cym$i$7ARPPHI97!Nc0^5O_JSn7OeTrMZ%CO>TjioF4J05N`G~AIY+KePfBj2&yYw3<3fPME@&m}4n1(E;bUQel?Q{^Ak@P2=q7#V{W5pCTk%+T~HT0dDm zi8_O$dQ!AS@_6fRdUjqe%D!|v_+Ndg`jRY%!XJ<-R2mIl|fYo@V@5BGx`obQz_W0XAyRJGBLIh@0U$9!0{`VG!kdZAH zQ{~ato34M{`m3nxuh`16m_OQnV2piN9;6BU`SZ8#xb|F6AQVN)m;t!>fB}em9W4+t zb>x8wjuv5MHF4-MfV}6PI2v*IiJ=h=FTk;NXW!!~LCbQ-4Ee=NV5~3v1p#XLueWwx z^l~pfy(V4ob>P_OC0~Nw??qqMnmYh^O)|=Xh{J!hyY+4cesYbC4<i{v(9DFekpA_WVc*uH5+oz`Ig&7ehjMcO4lPs+iA@An+8Bh!LpvEZR7A!XG+^ z;KXs4liT*1e}5h!&6~*nJW+Ox>g;0(|=b9!a1&Q3=m`~W<0tq`eI=^ zjop6|g@IRnRU?+mf>mT9Q9$hQ0&&{t_n(!Q_XplWD)QZqk??1;#i6pDRTRZW@W(2U z$Zd}2L10ZMXDZHF5r$6$6j45#t-g|R&%QCnu_%jgo;=){2-f5G!Hv+5`s=dZ5k=hr zxMlK;(Ip^FUPxcc9M))RbPAYAHKZS(dmMj~uOCV8;j9b~m%`fPHifqm>Ry>E;{)8+EY^Q7 z=t&b7KLFsOv0gBy6KU=a8FNWm(c zbP!#YJ;c}ZtqdrmNm~{Wbm-WQK=*uV$2#w6*2%EbNiP~Qd}RDpLqOf{%Z7ibbj-}+ zj@^g*sN zYlWwmed0w%W^sRc``UFLr&LFs0Wv;)2Bd%X`0>{0(B`vdxhnccf9pPzBLjH2YvwXh84&GrKAT_O~y;M(>;V0>LGvYH>Tyh?8{mIL)muF5Du^_ z<%MS?1|@&%`C}(nNr8V$Bmk-Ko}=>N&F{MJSKa>O$F%OIy?Q)vi_8A;-sgLtKm20v zG0#vhgJM2!BhW(uw9Q!&s3TOx!_WUDu>X$$`ag|D{M7*BuM}df0HHaG?$PW9l2xuP zyJqpBJSi_BvM=s2yc(eL4=ot(=>Turj0Q=Bqv8QZQ!Pje|HywzZB-qr8FlLwJolAz zh&RpdPm5;8AQ(Wmwevq7v#sF4R?(JQY`thcmh{?KrOddTCg0#ayKS2OR1GIxBja5Mx>A2es1JOs@?J8T zxW(A|M}Xem+J}FTlIQ^tv=6r_89#si77Gisk`SeQh_9{;>abBpR{YOsF?-p*Fd{pFD`a-^(qMlV!n zk6BQUV~gh2PI)scSN+znkiE~=%dJnSRs5{Noz>Ukwz9C%T-P*j(X0rO)(!qj0kAUdq0aq_Jdr@gr zz&>yWy@CQIJ_$u9fJ7y3B@lBbitv|5aOdB#jm&Yu8X(ELXdP7TY`tIy;nrAZ#C9Z? z8o=}^s+}5XDAD!f>@}MUA(YJmlK-3p+<55b2#|k#O{3uK1jNSyT(87ZD3(Eq$tWc0 z?KHi+1PK8nv~o3Ii(J_=s;p;tp~k#Bra9@5`GeFOB?ZjEW^96Nov4dd_3+C_pW})w zS7G(s|7Y$q74kHCx8bCm>nBx{ZOAsR0oIg|cvJ0%NQB(XuYE=P&W@*{z|FyN}&|*R= z6Z_CD=oVW;mjbs%un$#?-nts3xU~4O)`i z3K6|=Y)eG(l&TI?-T}$HP1;Jc@$E?d=q_yL3ANvv5A%b@b?HEIH%%;N1 zrBuLUO^>KS1gTCLujBTKS>ir{A*M&--%Hy37UTB0MH>A#qp;tkA;$pGBhd4}(nbZJ znSWhzoN`boMivj~MC*>#3~m-}MEaH1ne18@xsFtyIUfEOd&M~m@)}%=_7^4d>Au2br=W-VRXr$SO%61 z5e$c{4-^qQVex!D_E1_7;3Kh-W6@gFLFIUXvGY)xMa;B~q%6Rnq)=!qNpm=WFr{X5f598?&UC{=Vq7*y>V^$-L`)53=* z-5s8(qCx2NwhP(~7XW|Zu6k%cQiKk_2z#L1&%_l3ng0R>%z9FfIT{Q|8BfQW=Y*1< z#m8HFy7(rY7GApNN#`I5|7f$gRdsMAP>OwreYF@Pe0SC;hm97$;`8T!KkeD$;**3% zhP#)(5GHs~AbhZ*`Rm2D z>#O98x5iMyX#kijhIH>6_UC{3IL_O|vj6?xZI=oml6bn8hRUSjQ-DPrgKtcD7b16k zb(dGq>p*b-L6-}(wUjo0TFoQrh1+wK&D`sfs?(m*^R`8szJ#j06F@RNaNNUy4$f&0 ztX8WVuG2z}bt=(3(N!i~MIlhHieO_W3iCaWWO@#3=o(ehK|uKfAJoLPuMOTpvc*KA zDu9N^k{0QVgx6pxFa5!!6oDQ%2OLaRM;ZPAYA$cwMQeBs!$$6Z=%zkE=dQe1bdecA z2)D>2ja-PgYZW3ZZF^f`0? z$Qq6TfV^||(Z9y!KkB%w0t$$FBlIDJ~NMr_3i6R_pCv4Egd55iIxI?@rAzgtn%h5jpM)~GLnE) zyAg;5pusMi4d2?Qat*ypkV9YSFWDKS^-WzyT93Iytw*4|)?*Rf`WrT+r)s-K4Qu|!CuAHsMf2b-l*jlg@}wapKc>q z;J-#k0;0YEI%%mtfKF@zp3U9Br$1x~3xTCQi5{+BmVKc_^db^s)0U7tFZx2r<9^=$ zBZk=A=KuZUtXXnfIQF}!XV(}5X8VsHnptrH`rfyH_&L9=i)A%CDKF{g6Aq7}5F(=k zdlT_hIn9zfaW*#F*M`QK2g76Blw__^Ybx z+gntB$ET~bF6kZjVBC!R!SI0RcF?|})#7U3e9dlW zY)g3X&DNT2NoWW67|s4*^tI(|-NM_gl>ga(W_@C9{GjkM zDL}RT;XWZ(*2Sm9zT$yQ0b|aqMRQRsPDILQ!erRgE*B$}vXk%e+(`YG-7Ra*6Pt8@ z7z*#e6!o1P$&*;8dn|)3J9W`WcyX1w?`Xb`PUZKEw5n^2Z!yjk&@Wrsv|Z`schdFj z-mcE#*qt0!!9M&)X7DwRBez($<$9Tref_h*_W1FZoLFEXR$W#z)WsFq+rk)FS%z=J zR3cw!W~x4^t?90=;ec(Aa%Evl??-rl7*QBtbCw_Ux8AN*irlnS0^PbbNn``J6Q7tE z7;UgYN+`ppz;=m&N#qw!OtVo-w&YZlS$J2`Mez8pKk;a&KiT?4(ea&0X6ko+T|mCX z6O102y3Tc8FG&`CI@ig|$_u?LZam41X1sBzz603geFR$>QeNra)Vy?^kMT!>|qvy%i{b%Nz9f}wqdG8}>y)OQS|W`eC|<;$_l zXw4j>M;358zhyV0dcI(L@KPM*^aNEW3}e=EpQ3bd<4KTm**Iic8RV#G<(!(!2SZJT zKRYGt@egs&hcKqPt4(ubItV;}mce8JArlPjatS9FT}hj4+R1uyPVDIhla%E>IX+TT zSa}E5bClnqxW^1>LNzGkm<9GFG97+@1&LfbDUl>bEgdLZE5t=#C!W++y z^2Kn$E%KhC!3oLa2}bUllNSyEOOr4-)+hiUd^GpD@PA~%@MH;TE)}L%EpWbd^z7sV zrIaVo+^_B2uVwC=qh~aaeUh9#D{D{Y!L^a*!MDugPQi4ZbPc9|oTkxCOfYi!`s47$ z%@n1ck=0Vp&CjUgbehRiWWEy@mx4N(qSWCR#;AZ#nFD5>Gz-2}Uh}ug$Yb9!k1eY- zi+#!*?utxj!MDt#Q3EIpO&72bfrx;>r^>N?KN)a#rYt3vObRQK1jKjdxcW|ytD|FM ztiq?x`P$5pqx9&1^tIK^BE`&ysqex-DuELwj~1Lr)o?B@iib$0DG*7PkkYRj1yjD@ zILv?jct&#Bmq`E1smVnA7J1;@lVriC%;9$MG?S-@{FhG-NFMu=>BWks7b}tes(3}x z*_TSM8-qNaAag-*MKj@B=4nUo6oLe1|4fC8paATXHAI)4$5&1tf6-5o7BIhTAq@NT;KN%zFCq8!GIm1AwVE){k2J#z^ z8t*QxjYcIvZlO2YtS&U*F*m*0BJ8QCWJ*PhOJ(%sfGGZ&Kt2!GDe z`NHLYEoKIfd2SBCm*jv4zY$4E&vy7BlF6|SKX`IY+rqy{hS3(1BtYiqS5XZjnZPsk zQSlvo@FKpWU}>KNFUcYBQk(!U7a&usjn$u~ahRs)zueQ=_^EOC%qH}c@R=u}t1Z%iw1 zR8o1v!J4jz=!Pm?eDln{U%k<*kobh0s>WEvYUg_=6L_W!T1T>F5(iMNs`$MV1SNYU zjrSw_p?eWOM5=Sht*jGng)d9Sm5(GL#7Zx4@Ow`reoYej(uU6~B27QCKn}bR$t?JP zjcFfM+t^P?d0*aYPT&WocBI$v11npQ^YcO+p7~p};wAsY4D;Zy(5D6TT&lZAd{Wxc zB*i>Mk|YITp07v}hxo|W?m{2(-l-JK)?=5S9T#NmF8J787OI2T&pn>B(n%|xB4qBW zv`P`#5Vw_P!Z&7>y_&=5RU8w^6$(RtwerN;u0y7XY_ksjjaf?Wu5(oq0MvR*uDNi8 zd#oUdjp%;1;#VI^dhymNm|tGux2j1d@Jw>IspZ9{ZfdubP7@%FwMvsD0l}ZPOe8Xm zgNXNA0w7W_n_QaS!N->}m0p-?a$ADmm0rZeCufsK=!_YSF`yeYmhI-zwl$1@Q6Jli zj7^mS*{H1`v+!e2B^w*2PLTk81&cYIKt>`$k$c!mT*4eqQ#P-x>)DFj%~sCEY-QZa z*jL|Im$%0LXC!hcJ4ms0kAZkl9-Ixt3h!T7wC#YJH2h0-X+DJpD>NhqaCCur_cVx`!$&S%DtYL8cPS zYzNV?Ip8{d+3omEw{wpnop}uD=zQ(ORP7dPP|4Bh{2Q~Bdu^Sok~jcZn3?+uO_MP8 z%g~yZ&fL-!{?wcfygS=U-91xX;Ahs}|r;>oaElYc%(=-lK=`%ZgU?P@ZFrDh0Fk!FA0K ztq{>!C6VaPm`6@yYk3%dgCF{o$iGzj*GBr+D*aDJ`kx^E1KI4~eUN+ojZVCgNxHY# zPkb&@Pk8bvYobRy@{*SMj2BUL!pD0njc=J|Q4IcJCE1mh^#A}-`+B#M!Dmc$EL%Oy z$P|a-sIHd%&4m>*NyJtuYbhMs*(^3i#pc6}eA>kNSn4MIEfHFOJuLg)m?59dSC4uUC_|m{UN-ZCXUCvGw8Mk4+sdXQLbwt2Uc6*umezKJqxzS^ zE0iqw?V}~?ctdenIhX=sCg$y!#(o?XTxJ<2fr1eaqi;X!&%OA9Ym_PeNt@ET&ZB~j0CC)w&Fb}xxEGG z*a%?^-I7Y}_#50M?7~3d)NtKzGE~Ueh_sGq)tI)J+A*CR$zUD-v*iD-bR+QgkraXL zkdhA&dWUL%Z&HH^p2_tjNxD+qk;7+q>tMb*;H%0ps`p641D$??wnHTS5Ecy+`ea>$ z2j8b`Utmo+C>D!yj$jgiE3QB3`+_CR&l>)1fbe;B(yaTkGt;;#gfZh}7VHXUifEac zD9Y;o@n)Ywm-};gA-0^D*@r?y(BuZsdomX~9A5r^S}@27KI4bs0uV2&`Fv4+ELtx) zFA6qVugjK8$gRvbD>ewrV(HC1SX4lqFYB~yKLk)7;2CD^C+3)q5^s7_UwH-vfWKgD zu4lJ)B|+ADN3YpyEN{i=F5~?+0EOfRVRWDPK@^w#+0bx*j+koJq+ql2S$VO(x++UA zYmVE0rf+7=!k=pLN~U^-oJQlBk{0t&PJ+57J}|+(5D;ab3j=Ertncoc^^%?0i>s1k zNG`fLNP?SerQmxwT*~LCeYtW|Ma44X4Mr_pm2)}b%rQ-_U;N~29>)DgW9zWZwmo&u zmg_k~BhSd}s>jd8f8b$7h${?oUM8MdXeKv*rLxY%ye|KS;X4+@-AMU2m{E9~5t@%> zU;~RG{ERDP^T#d+N;)>%6=34@kpNlVl(RK39yR1|`XgT<<;Pb0LB!(zRu1mM3GM8_ zwyUYV)Ywhv5&uzr*?54}Ax}WX5IXIVHGC|po{RCsy4QNJC`X?W*0`sSfkC8vPz8y9 zHZXh6F!`g@KJ)l6aIJ$KvJA+c)25R+UW3=`ZxoC?xVGz3nU@MD~dRFg;IzPleEKyggmC&VV0V(bfCXf|gdO04dZ=pk~&6pY+9hnVozuHAog8_g@< zu(`(f3BXfKFbcJ4y`yS!*68v_S*+pO z9kd*t%;7KBl33zhK={09K?K*89FFC8j6oibtLgyc9X=Y3obo27ZjH@)$E{u`LJG&I zcW?k^=bv}51cwirQfDBJRWa$^1)5lFN~Oj(IjL3`zhkR@b;%~fB&_vf_7N?7#|6)l zBdY|pyLSUulaZ)5?TEp{xJT}PlrYU_Sn6GiC;5HPx!!k(;AO6F=Pf(pyko~=wp#jH zq;3*nB+Cj!67Lk-a19-a3!Z4YvYt;d-UUj&e@-=tB;(4W?Jvrre~0>#?5KDr1HvP1 zOuDc_sdtN}SzQ#f_sG;umScf0Yk-L|7j5&A{e0Iq@5}K=K!I$^!C~`%NXZ`F&A9Mk z!b;d0J_9wunRwP`jp+MDIbjWRc9j#ePYlrMaL*P^SE`O=3?h|*dOdGh;&dNg0)0aC zgfYJm2d@3t0W7lE@5jzs!F6Ciyl@8@x*wj~zIyOjE#JYz`{?jp&byj%?7jg~on=UP)Rd*)%D912-&UG^#XTZYHTw-&AKMo0ju5Xn2jzyPi1D zOTPj2WXabBL9mwEY_@v9UeH#n_$o)IUo|V=eQetIY$c1Yj3MIQt&09SxvYoviBcAy z*vtF&YCuF^VEvHpW0wsVcx5%f{BNJ8NQ%U$&QH>kr;47kSM)k~WtsGbP%+c2wP~?&2 zOo`vVB~$VpN&Uye{e;7#gTXnLIaoqA99~Q@9D&k*_GxZ^=%6RdTCYFRMEibcyBaH&bm(oCtgT-7u%0t&d6&4MQPfnD2hG9 zE;8DTd+2`na%#^Axu4o|!m=F+%nG~ofCY?qJO^?3>|=am+JhiyJY$asyKKm+hV-Ca z#A9iHBcRO-t%Q$VbAy*xb1e>=$QXE>i=&ApWI-b@<=(5JL=n44@(n3svwc<8CFsk{ z(Iou3T&&8r0~2nrZTVRB*LYa$3u5ddfFjl|A*9;)g61e*4{!u)?t(zZVBDg>Nn14X>Rd(^;F1q73lY85y>sb&)E==nF9 zBShHP$Psdi;USI~Eo{lJz!U)opIG^Kx1N>kv?p@P`42$+?$$}UYQi*ptx7no`}Wq!ekP(>H0|yddOfaHBorg>xUD|GS;UhC zMnzBBt2IQLVbwU+J#LyT4IWEa=B&h@&)B%D7K}mQpSkOc<%<7&RxbL2SM!|hEQ}AQ zeKC8_j?c3a7zH6sq>&7AUFE{p6Hp0%6OMHG&Sa*Yh){%xURZ>^t|g?Is$iSts#=u1 zqZKGkl#tJ=4*E~Rh)%TLI<&#MPS`bS@N)^X!)1QGtP~>bT7sH@5=s& zp=2pXa|uJ!2;BE&v3dhHRsyHe2%KIQ2%t_>km#-PMR`-ripA-SWn=UlRmPuxEldCJ zb=ltXQLc*6GzoW7F3Ljs<&%I$q8IWzb~Raf!7)dbS=UFGKRVV~s-Qoclr~3=N{|qz zWse@JVC3OQe#U0UwFLL)lCpeJ;B<2zP;5@~@i8YzVqgT@%i>1W1m643nuB81s}pG) zM&dauTke@vEd#Q&nQgrVvn-8T0W+ajkYOgY6oZ4Bklxs5ylN@K` zlj9>JS)n*7KQ!;%a@>j8m~G3dWKocRxL}kqiPE#l z4xv}7A=@1-y&aMGuuU6kMnM(EL&X?HZ-K&Paf8#)S6oT*A#9ByEHh${!DuX5(awis zBfCFRrK{;exa;Af&1uiUC7scTD9m5w*$j~0Z%2PDe!8#_mNy+UDj~{D8xQBUVl}IaJ-blrlxoqhrr!i5}t`%^eU$!)1lnbiqboxx851E?GbDIMW}CZuvoV zRlA1$4qN@!ng-~?56+V5Gbd+Wu04atQxd#W?{Hs*p5bQUq)`TwiJp6AW1JAr{LNT& z2qJTmS~ynx);WNG!nnZNJxK4m19*&kaq2=w>9=RTfiQjQUzf$4jpW#)3(VyCEjxqu zaCIHc;#k8B;_a3hEdSS{_7AnFjanhVQTOGd@lGM7F1c$2&rP@KBxBW*K0N@OB^P0g zLrA4p$%k5Fc-v#&A~AjR*8>~L?!8WsV#fWr+LI-?fkpOzyR`K+wodguDsg}(!?)vfdb(<8X zPa8u^x_%fLf@I^H3#>ADP<5}f;Kc$quH`9HOOGyl{Dq%6emCPV*1$0N?nDc`+5B$W z`P)sN_z((z@Xfgxke9D?p8nQX%Z+bz(d!0biL5yF2=SPw$<2@*b*80a_Rof5$Jzu3yjm z$rB(7M#pbE#LaPQk87o|kh-7|+^Vb(De69qM2cm7TNY|jq)$D0M;#KNju`U8Cj$=ymFo#)htTq;wW*=Oj0mXYNA?z0+?0N!md1Wh2W)!`<7_mBtJgtk5YsY$kpAOmo}hDm|sQOo&Ndk2)oy90xS%p56uztHE0| zS1^bOp?oD{EGh^a9&t06ZCoLUo-#}LRoT*bOKvMQL04}qovqx=D`$758=%~GhBj0a zd=#Gqp_)%8G9j5yK3%%}{pMLYTNG_jF@wy1wJF}H3UO)KV5OD!o(J~ntXc%t-N011 z=P3lcFuOE<$BrTEHm5$L_tT3_e^6|+o?iOqiotYV*QeFIJiNRFfqVwPaM6y^A2_M| z^lS!pR8NuAnLRURV%{2PmJQABf2MWN;#Ss58040#E1Yxdl@{zn2k&Ox&dN6@F9zU$ zKo_s-dQQ!t#CY0y8s$9YQsywFMFV`#9i*FG-S2C(8a&GztbU#u+Ulv?icmP``11Nw z6mqD_>%#=9vN-0WDx|wV4UI1LY(Bau2I!xX#~%7~IUb{*T0l%da9QV%R9?m=X)+!P zlCqfQkYw0`+`+~(>f|K?{|P(67gY^^3iUaUhq(vp*;EJ3fAW+0CP!l7igK_G>;bTTV|BYH$F``t`JLTJTjgP+*|*HD7Z( z-_KXu(lnj1Px>^=?+byFWfB>QqcuJVCS)kw2v3*n@{ zTc_J!(zTSehR*|jJT)||M(Zqphc&fq3GvF%INCt#I-s~@*LP3*t2tD17Xa^2iCK{6 zTyO48vUTOBICJ9okqq)BcQVzPPt7Wd(-;oqjfWu)xZVM>o;=xpdb=9`=$U^Fj&bbo zq%C;^g_iX5CU;0Q0$IiZKDlXGBf#G@kF$rnJ`%*5*HUuwy3QyXXy9ajvL%zwtbRzL zllaoe?Tx`Xl+1p_v_T(mN+J!so8I7LkM9zj?3lljDQNfO&*Zxw$zUs{>w!Qk^130R z731CkN9fi4P9E8_MYWsChVNfOJ4V(TUBu)l$(}>@d!FT7=$}Jqr`eM`Ic@gDTrH*Z zD&6}_tW}+tmb?+*$1&7@-pSU`KohchDWM6&9V(yh*J+@50E(1jz8y6V+)}T*%b?R^@ygoooPq5c2XAu07;=93f8E z=ke<{sW|thO^ODZGU5H2(wTX+_R<;jD4B8g00$N01danTcbl^8M;gc6E!OVbyT$#z zJve;GeSrw`!SxL~=_X&G8y@_XI!?Y>U=>Sw>}-#+d{Yp zyHl7O3x&K1_W7AL-(8 zLws3gDKnIandm?U!-~W}Oe{u-5hKllGsBHosV1y{C-jIX$0=inA@SrmWt@;CzAUR$ zG(1Th$i(CcRpQAp%lN{U__89UXb6*FzEwUN&Lj@xVDgP<>kU$`yOA&_Q5XkLLdcUe zU%-k6K6;e9?mz*J7H0rbbEBTAyRx<&g=<=4 zlLk|N3G6gRNR{wzL<6e?pv>?pYA5xa-!M;vSCf%e$ic(!G6TYwtwaz-U!%X`qr!LqHdSj>W6)c*XJNB{ z4>c71z=9S~Wue&PvEF1=QMDa!y-`IAi-44XafFft#SY zk1WE0_rXu}e8l6=`A$dXo6~;eBpH5x0oae9GQ)!P{rCwqD2?8a9!>{^z57Y$*95_+ zi^zY-9hPFcn7jw!uw-t3=#ZQgSy$;{i_p609$?i}HHMW{A|UvHFlQ)P5+c6irmOh3 z%sDCQtCE!315mbWLln!Ron5~y`q}j^uR~+|vFMg?;1p3H4zAbrds)W|hH+hg08%9M z6n)xb5K1=sK9qA!E=G=IThW@WQ4+VDJ8q7+Oqu83Ju7_do*4yp&kO^*r{li9u2qv| zm7XkFCmf@iuB)Uo1|;7I>+0r`vYaue=#GjMqRF&%oU0`;`DHU-n~`#zOj+_38;`zz zk%dF~gigqQdfS(?W=`p($+T5}N@7Ucq!K0Mak17{H~cViUe{_LH-JdGgcl38VzGp` z(=|LkTN|BB(+J$!fLQB1J`0Zcgx6JC$r?I*cG-&us^!^F7cBLnxp5X6U2zzOP$6NC z@hDRJipwldDRydsWx-cUX3L zme+bZ=prCqEZq~9|Dp627kQ+d7}9D-q^x!FNVyX<+`vZ@Qi7xsSl=ph>R)9b`F*u| z0?lWYQ)-NK0{=tNR_XzVz#HibzAsltb>ApB@lEqzuX~!!K8@TD`t~BfWxg>ca8D5d zeUWJS!RN93;#_#n&R*qz{0!*oN+SnTNMPVS9T|8}h6dgvv4Q0#oE#jO?Am$JfoUjW znMSw#4DZj123p>BlS~c}V^EXgHfFh#->He$ojOJzc#>62kS(=2V4lL#`Ec*v-c?IX zibFk$d%~S|EAHA!@RHUCTt6+ZOj566YlG8fFGG!n%#}EqWL5!xNg2@xB&Zsa@ropv zrJAoPC{EQX^<#PQL{!0lS0d|VBaz!xQ`yyIi!Q%} zz2xy)54jV%`LiFNoIJ+_QHm$LVTt-vK#D*=hB;fL9Y|>c};H~V-6P4 z_PK3vPH6#wW5&$NKMApo>8kA2#_pX_G7xZ$!E|Tq7NZiSuO&05VQB_V5d?+>i&q%C zfy!`<@Fa_Wq$I*kS@9I)W_fS7O9kAwPfA!G^Blqq>3NpF2fm(m2gU4q&_8DCsLpXf zZWZ!-AkS#h_*hjbP0H)0kOy<;72_W6p5;H67xepgjq@A%6OWHdcR=ONIu}E9yyjZS ziV5?(^1c&gU*-&tu`l-gm~rz;5TVgy%dqe)aE)$%;eEZD^=FNIMVUl0a^>Yh<}mdm z8De$rV3mi&k#?=d#c<#r72rzV=u6;=`?_>@cmAOUQ(E%-pOy|bF}KG%iZs42%KP;c zH#(ac+1>7EMnntYH|q7dkD?K$a0kagqqE0B&*slEC-en6t>@CJ*OxCsavMj=CFS~0 zoB8d3#*!LfAPQjOUFDP6jOn)gJ4&S6;(9OB_FS~Bb%2n}Q5r%s+~VA^dN*AjWJ6xB z53|9mu=Lw)N|cuTO^KEcHZiw@Q+ArHW@T?L!DiXYV_C;o9pX9F(?-gnLIICBQfS{F z{zm3+Bl*rmG8&kFOz0pLnz53`o>GLU$gY?A3&lV)LKMkc92~>+}i0n$RRnegJLAxs=W6g z>0Ac3PWhTAlo~T$X{d~zj{zV_8(xSU_jVHW76fmt$H+F($p~+kDM)gB~ z?ida9!#aOt_R?;O+ZX$_U9#n5EuzXFUTe2OQ?3k1R5q^-qP)uZcdB}V=BWenoLSM8 zr)3QqgdcKV5UTE^yee-d>GRIyOlId>rGpHgPG+B=+^02<1|*<%+w;a)r0o$~j{EY2 zPskka3V#4enlJoG9;r9+hM&`l0W+F^jKGt^U)yByzi2ChROWYU5LFsmrd#Ku&C2fQ zyk?okPC1t>UT&nmTn832byMFin{{$1%+#?V+cbViNDNVy-N^t@w2$uhDD9?|+MON) zR>D4D!kf@z_TyO_>tAB zlz}zW+d&=$8aPN$~Ry|W!@;)VDTKdQU;7>a5#Qn zbl&@kzsx4~6?eCyVrOi!tRjMcSWn;M0=uF9P@?LPhkqL^yfOayOz!U?Nd4W7HnTyS z3_BB3690ZLOK*@J8;qhPb{M`F()m!#1|@XqO%^n4()9vGyphu$&K>eM=qexi0Y4X6 z58r+4(S_Z!g=H#hAJWZ+i~0>iX7~{05SibJ4vIJzChbI*{OnGQlkYfx9mxpeQ+`Y_ zsirQ|2fK@qliyLKaHx%wb`B*ryIVrU-ly*EZk8_VyuCeHC#!e!8QOe2YgYJvb~r~* zlvByfHc$)hLYlB%2Rgsa8>?gPK6`&~4HA-M#{<8=S6beX-Y+*5Oa5!L3lqcY78`>v$`9q@u;U7)oR!k-_I}Jp>@l0YV1&o4>)k11 z$zX*yIwcvkkC=(Hc(_@UuG=Qb`5h4?+2c1WXYmFH%IVUA52CUJzc6EV>fN!*G(!W% zU{d~oF^Y$|Kk0xmNzNWHA(9QpX_;3%s@j%eG0BGRi>e#>OmFyqM0$|E@`-ll_O(>G zau_yY-%8Rl`_xOCa&k8nWenj6p0QF6UDI+5=*nl9OP6x{m$zO0CIc9V9n%@CnA_@! zyW@jUpUUhHgS3F3#eY1%AQw(UfGLAP(uh0B-%P7A992_#3|U@OS8LEb*rhR84^EGN zs32U0IQODA17THv58uyTzl1;7IG8+eeBP!Gi-n2YmQEH& zT>+jE4EAt;8Lh3oW?eC*hEcI5#4VM!OM7DoTy`wj$qH zP(1#PjcuO>#8G%4EROsj!Eq>gcIDncIR;@WT#iVkov*`^I-zqU#i0N?!F(9dJhgQOAM%RuCQoM4~YR^GJ|jc%CqSfZ3vGsGcZ{gU1t4!=LH$G!()o z24Z3v2P128%CP zk z34;{Kb;|leA_a1-vSxTBE7gV7p_0r*599|sOuZF6$vI0IqJ3lWHIt~Q&pg3+f-0Fu zFMU(SbSoSu!ZqQ|SV8CyFPIItDVUC?KLwGQ!Vco>U@+1?Ap+1~SE8wh&6=Z|{r zN9FMf>I;GGiDszk2)bVN)EDprX@{E*heDLKM%`%oD?T-~&Wsv;q0LBD9u2KPFS~x^ z>^=_$U!(&dYMpKo zFc{U7P%&hqA1CElo3eW;u;YPxDz;32!sGQR8{I&Cb|g_xeU=q+pg#YM@*V4qIuhnm z)bP)$Y%qW+se8zBa;Tx)o+{W{Bl4-Y$<%0Vs4~m!CRnRKcB;2}ug%gB9nz*GNPrb~ z)myV^IpeR=wScgy3`T4vRfg<5{8gS95$BA`JYil*HLk6Kzk=Wi%6~(mRivGNpd3Y4 zyAoeaSz3!neb--&sUB%n;|)bis_`j(`l^u{dj@(da;-vZ>KO*myDNL=!r~g(vpgmZ{iyFS*zYNNh5nvhR2Sv$*1@9DCr|tk*J{?hVlFe_ zw@ybcK3y~yI$I@4C|2i}I^gh^GT`u+B;fGT>*P?wNd4wPhH29?A_247X-RnLF(Pnj z7N)Oii$QxJ=3K^kF>jgc z%Gzz*3|_(~iKTSvg~t$oyVCtnNm|LWsLwKTP?~}Sy-8{@f|{&WVa-fS7-4UyL?U60 z63AKf#byd|z9q4J7b0hydNO^L6^t@y!SOa&rj=@qz>*0F(5T~;M){#jepTr-68{Z;Xyy24&Oto!yBi^PXgXIR+{N1g8XNSa+^m#oETplYP>W9V_)ume|LL07&gZku)gLsfo+ zwP<(ihpJl_3;Hd8J!fO$d9kb(SWcXWjWqazaEo{#tysf!3*-o})1OtHbZED`1!4+z zKQAsAzWx@em-c?%OgO(@mTk-KAvjzZdbG?f_)ULyt=5Ns=j_f3QGGLO7AoPS#Oc8}%IXsn43%*X*_vK=;v0IYyKWfKr`JVWo?*;Y z_+WgTt=TV#1gtxS_B8Lqr^W33^QQe+v~z66s|Kz>Y>t$3$;d$vKPH@TY_m~AH-g7l zM$+K;(0($1pY!2y*61gn7mZ$Ug8=dp;stnBetg!RaNAG}Cb(CnDiJ}W;|Gnl<>Me5+T+*WgPlM6w3aIj@a%Jd?5 zJWvL%@5)A+IC-&n@>O}ZulA+fHGXW`h3aEZmMryutXz~m+k=|-m8yxRDLDG>`Q@(p z-pRh{Q>OYW~!{|J1!%&)|ZYH@@13K65-K|i0ABd0?%kTnwvBo&1t?E z*H7vhY+bh$)XE~I)b>KaRT_cgi@q3N1lC9=@OpjvzJfVV$#L?CxFJ%~pG)eLi?a1D z}f37Sm$W~RzZ#)025zWH=+lDrCW!Yo4DzVk<_}Oy_ zuTwN<7Y!BhEE+20frq>J@*9I0!sA(l6F?jd*;rk<7E992fVz{y@zC9HG}&!&jn z=lGg1*Ja#1Qts(3T)z%Zj|sd=Bje0DsNxBKm5ew)0Kq^`m2?8qWI|VT#|Y&+}jv(vxMJ zg+k@LnWS$|j}P$rR^T1;Wn&C1H3ka`h_0g#%}Jj)6OxUP$a5 zS?0&0VpFh{ZxynDl}xBRViT{0Cq=k_H62_xY#_AeRv85%n2y;st*qxIoVuTY=PhIG zdvfV%sID6rN^=l_xCa7XwmL&LOOb-p@_E(Dho3D%?dug|nM%hEsPCbRjWiqtB|Cnx z^fjBCfX{Ef!C`0P;{E6XnY162=r$ZQRm!H?w0@1Zi({slXSP{V( zsEi0p66-w1xQj>K6ReP5tHGa~xCTNZ8h@4QV0!|}qz+M}<^XM6mfCD^WaEiF#LEFT{tE=!i|eMtzB#HpOoWAYS<)1Kfp1#U zRSpHtlXX;9pGdDP3CP)s7x)yycOi6{6Ds3G*d*J}2dPX2(dqmNjD)A_%S*QGAcLJ$ zJXx_H;?w{@?Dlopv}|R6gga5uu}WXED{6ad<*_C8vNC3hO{(3L&;vzclZx4_T$F9I zEPL*;rdTWi8>{u@MB?-Dj57|+ty2PdwJzM53P%-mi zi^n{0UDfFWHvBe<3mRhm3ib z#jJb?HV|#I;A`K*`Kpz_@YeWnsrUe9)iF?e_d34&CVh^;hORLVF?Xg z-97{{MoBUm6MGncIXVSmaxUoSMYSmPHvm6m%wsd0pt)SLK4-VfPB+g=W!>KOZoO`y zkIl!gzY?Dx#52vq>#`CKsA=lQYTnD1>)(rNb``8gEiq{gNwq$imWJe{zSt-%bs)JOnJC}WE=gmSnwPiO>$s!_Rks0 zzF0hD^8_EuibV&%3r?Re_p0o9R?EiT!w$Tx_MMyZkR3|;3QlF7yj5F$P*rp=gXj#M zi&GyP>&v3TK4F8gylNJ(r#kyw2JN8P8Ht_S7^%gu^!N+xlAQiH& zzx8plnlsYoY}HbJwJJEEv)zl$DD-3%UenOYQ zRJ+B3x-ULdXgGv06&vHLYjFZxR`UwIkJWMw>{ew7D^WRXuIfrMs_9phqv)rsxLtC0 z1KVung(1aw_E7xfj?8fEJuCoiK$5?%*k$QT^_omZzw~U`eqX{&>(;QBh4P{1rE;RS zT3@hTi*-j}e=_;=#US90Mxcj_HI9Ra{LaDiaKS*-jy3K&_RD5!@-x4w8-tXAST zyEL`z4vo};p~b_SYy6G-%0hZ>UgM1we{~n)&%<@ye+pFsK0iOeJ30(Q*2aeKxF1Wb z>tQ8cj3iZ%z5-dk*rnkcTZ$ie|6>!RW`xVpp?P}4TDU5pJ7Dv}Lq0jSgpMVH#}}fU zk$8mpp6wKzq@znACgDppKiEEJt6(`-Pfk2ho)Mp{RxzRpF=>Pgy^-|$%4M74ESN;y zz91yUe+$K06TXc^+m(9wL?LSi6U5laY>%i+`OP2DOccvAG-C|o1PhX`bWy(8O!Vsz zrCv$aYC&Q5q|@~Za``$S?{x5+T}mslegD`t^%bv^L$On3H9xJcYBfP$77IAu5%?eU zLC?N}u_Pp$CRi}foAyn|r|28*=LuU&W}cr1e-Tb)F-g2z0J^-Bs`41XL#O> zhjzuC4A?pBdA)?8dV5y+0m(E4kkg7S?uV;pcFkRJon2Qg$nbk_RB}qr+Gbw7vIyJ5 zf6IW~0Ye?6b^J1dh!-ER>=_&z=Z=d2ZN!C4*qJe_buPjd&tjE&_N0s`&U&>s<}$pf@@x3pgzX zjCT}RL@%qb+@3OoU3ZGvHSFkba-x40hL}C+Z9vRBYw>gB;R#Kr@aTy#F0LL39TF}4 z0L3hp(0J5RWQ(373(#{Zb8}|3RE5egNg13I{V9nL5+*d+a-W6D92 zKi?UccpwRV`!gGCv%|8^+4Mk_8*LkJRb>m5%?CU$1L0Ngx4ES-W^)G?WCJ)nS}iVl z#;nhxDdX~thQVizH%Of1DV|KP%2Rf>E}!Fr+yFF}=>LchWhs!~^GCNhe<+s_bC=LR zWx)RT04(Uou#42v%YvjmG<=`%caPnR+Wai_A$%c1!?3OUvf^*55WR(Kvs{#H3YS9s zuBW4}#jf8rc}pKYjB{PU$2OT6Y+*zpf6}~Nq#|tQj9huP0$(ge87v zP^*xvpzHM<9(R*v4VTr8|5oM)hlgjc6N~^jJLjC{6`8Hujyn!Ze{Dfg_eB?#8(Gqu z!r$qMVQ2U~f^?7nDlxJHxmId?N4=z#4_veeX!N9FQS2LzXn8cvSd96d3697t$1|#z zkZQX*egpf|^H)8)ZrTIT^^iBFQ@AkUE9!S#-NQ^g7TT=WeZS&504L=oyU1O0Wgt}4 zr-lsTg>1>FI4iCQf2@wy$C`(4y;RrVys(K7MTosOHBh~+AL0>lHjv0DHkCo5eO90X zNL_x^zqrQ!HVS}0+Go{B%{Gw{rw8dHbx07t3-Oo(5tauJauEs>8k63L62ON;BhmUt zid-Tsiiny#rR?^b{wR`-3S==HTI%b^>#_#JnX8t~H=H|4f02Oy0stbP#wo)F0{Oyc zQ~$T8@Vf4bOBD3$k!-fenPFaYxhciZB_qOnUC)xa`ssAG2<0VYx|wIai_E}GZqt~c z;oU+tz}Gb4#U#VNBluWPgSQVaJ=JWqormF{#R-g>%}si)P`t9yF3<_g&;v%a69lWB z<&m~#%30Fke-R;h7>3?-a?X!NTigph@uQOwuo$<^m)tpgKIe^E9rZcWmrsU}K@=Q* zJ03-}MVGsy*dB*Al{Alf91oK3(&t_#sDGr1^`fo|v48zoE#|YpSv^5uhCB2m8La82$L?--W_`rhCTivyDUgzY$8q1XE{DmXYawD1f#mfr-vN^ zliwl-hNe}h%Bg{y2W1zKK1L>p5PzwU92<;7fx(Fidq=0YoZShGgL0thIbcAYjKW%Y z^3L{+e|DXdUWl7Ex|?WR!`H@PoFGQ_m30nr)j5(#ObOd+BXRB@vdGmDnTD+s z>n*TkMGC)fx*meBaC*2I1F`oIRJ_FFAxr=6@Jv`_aHFkGJGVh|k!o2s{B(hBeNhQ* ze;@6#PX#UF?MIW^mMwBX~h zNssbDVT*}WJzuO9wz5T)lBRuMw!*;YiDAflTB4v`jtHj^NZ?-zbp@7ph*q|9$GiT zn0K@o&uqlML}t&7X9J}(6>2X_Q=YTX;;Sp$Cs*J%N*peqRmyb+gDu4o+L$t-HNzg( zV6yeGSP4D82u0w^^-9>@y}_3eai+ipr#q^RWy=e}=Dh+iM%$aZCGODFOgrEn30^g) zxFY+LxpP^iaqI`e^{!sry1=g>f8frFjg|6y;Vwbg*TGLcmv!%Tz!Sc{F|IsaUwyIn zyT@wz5!2iqy((f+i=+1CkAR3t~QqCBjE3n8$*U|j(!lt=a7)HIRUe~Zgf4k29S z!L5ahNb&$3jcE^FCg3SLWe^{zdMFhR*!RiV0sMkNC9fLa7hPajM4{9w#D-rxh$;r8 zFhL3!>>V%GS75h?dmnEx8nSS6NOlf`r)I_}bB%cokEI=7m4z3#mq*Wzw8g8D^<+J- z8sT_40P+J{5(YrL9>dG|e<^yQ=^RkLqQK-d@!11VbkFvc%jqVnhmC|LRS4nIOKRCoH4MfU$X-qUudI^c!v9-o{w_k>zPYaPy5?N zd3s%P*uRwJs#st&JjBHz=jBZ~fA$p54LCj4%O&o4|JB)>@vLNp=bq_EpCR~)0LL^K zG6x5*PVIHWlgArme`lP6tBC{QY2pQ|8xOiXYzm$Vo&AgVKnuI@MI&vS#ekG%Sp-z% zz|Dm%=rCycjrhs&5y>WgDh+hf0+E27-m*cw)JJiVg>-WVzpyE-&|MrJ3{5JG`Jt2F zoIbUYiPI_>GLkI3>7FPz5h9t@3etJb5V^k{H>>rEuP^Oce{u0WdKaVsbPqXeD{w1V z&S|M2@HO}}AqJ2VNX6i=A6$d8uw!=H1#1OCGGG0kR_q+7oV0jaqnBern+Jv+ zZ;A!itES0Bf0*J+A(|*Wr8|}1#L=%#En?sgh0vY`oT_Tbbo|c zNqNsXRXtm*=Oqz-!WAO@36Y&xj+W>Iu`d^KcRnc#pqI0RZJUl$f-1eQey^jJ@@2!p z>*b3Z`)q@V!C3bN!I;sNw3wf~ye>*2FP)=)fARtm;WC^FfVXMy@kJcO|F$ae_`OnY zA;C?eIY0ltE2_pSVn}0+^6MjQ_q!MSbBN*SXRHl z(;-N$HutqLvwJUNxH@GcgCcir84A^$(V+AJp3op8is6J~e0kk37v`uQY@(oLM30G* zf5GP6dvD36YN#odZn8r&u1o37}Mo-KoY2LAG8QbY!sCEEsB7?&6;Ce-eN( z&Bux6ZC6w%?H{@}Syl|_BWhsBiTIRqT%-v8#SxlHP1dyr*1SG7iiSze?Zp*0M}V>uESqNg zvU()kJ~j!DGVdAjwcse{=q`)6eA!L4 zZHxjdWu&mHdBeP{-frxG3;w&s|~8oJ>zp{-`VuRt3ob5Dqn z>tN0s#!m4#*}216IG95<_#{Gh8XY{!r z!4UD&NaF&;r}KS?cs69Ef31XA5$;^{K2~sg<&c^;ajn8J9%N5ifif;n0YjdzzdEdE z&3r(UA%_Q9b1;PmlOEG3(sAA89BgRDou1c>U?wSDl7DpbH4ZZ`1n62~`f12)MV}rmRwpLiq z;%`eL3`e3vhfoTfG#+cg@r)5Di@4o3YN5&56?22#nY=_%ea0jP4dL#YbW^0-}DHOawy>on{#e5TD;KA>z?K`K&p9_B^*| z7OdKCR`}POfcmF!e~iZci$8CgKHc*#Zf%TKZIYf*axnIR{Zh38d-S0IA#Rz3AR*Qp zRtu3vZ&pB(E#m3mQLW)pXk*P<00bSL21A;VeiH4cZfa=8NKj|{6n96nGh)ydrS3e^#EtjmsVVZyBfTthl-= z=WIG=&?L)B%YfJGJ`|%UYa3XpwIO4*)P;PD%+!jxyXf*97&>6Vfk6DgncMdC#n#vM z6AX5cySP^9YKc1;$yw&S#!l%*vE$DyK}Pam4_V@wg<+w^890^rWszq=<`T1PK9ti~ z3EqMEQ5zvIf2#|^XwrBwRd+?2lhcWtG-m^2zUOx7|L@jxMW>Ry@Qf zv-jBspxn*GMpu^3p(3MC-NLcvP19o@g3~)FN^n`Uv+E<}(d)MsX77TfUO5;6o;9Wf ze_B-^2oo0Az^m@0yz;*jWu4qQi)}f>$0{1`i`=uEe;5(t+|gp)FTt%*cCT#Xr&sA7Qz7cdD0PEgo;(L~DYN?3@l6Ap7YpRC{oGeBYg+D$eT! zRm|Ut$(XLm%VM^Nyzk0h`j(8$^k*C$QuTZZY!~0u0zQOd zctTCK({F0~p3#Jj?cTSxi^b~NE6XL*_M-HQdkM%@!5S5V8SeDW4D4fQ(l|Hq0NBj5 zKDjwG^m4xYka5wV@sX$HvYYXNS**CxX)gXcv&DG>#0XOzV&Y`Oz@Rg$=c9CDRO&H3 ze|;K?RcUoI!VUHSLgllc6X9*sq>Sg}WpmvnPYNUNOKlS!_KeZn>>OG%S5LEWj0w}N zlor8x>tmE)u5XeO`F?o7ouF`EqPwn=q?>2O>E;~__6?E-}18>C*Zj7pGtEy z{yMikxm|0Pj8~c(0e?6JL>eqg40slQ?(bQL&MT*&M-4=eWJ5Pz& z2-wWQjUT}fPbV7+o4K}0ApS*lSe|5aS z30eI<)C34Nq+dJl)TQS{t~{5;%_z|lD>qKARI>H$_Emq)BQN9>4i8V0?Kz{;EE(*{ ziN>HsXU5PA)7h*NB6i)XHiTij!Nu|rSZKI{~aH+Hi9*Cjh^?~Reoruf)xH@4V}+*4@55RucZh$A-? zKat06Ghc&Y=W%yfjqw_qaqYa;?(|k0icUY8WbjG_`cSSw%Zoq4A`2or&I^1|E&)L?a zl(U`h^!Na+R0|C11*SH+Q)C%8<8Ji1u-%@b}`Exx$>&9er=H9n~u2+#UsaVv9A zN~l17yAuWe+WQ#+g3EJZQ9aEuGnbf1Ud z9R02^!9NyNkKx-d)(~lRnvLwEi8O<^R>>fp({Rd7OKX zR0(rY&r0w4FVjLGLVDgZ7sivwsmT_-NQ<)8zQh(Cw`B{CH(@Dy0*|x#&k9v13XXmX z@(_{NeI5iut(>gGe8gwJC*dsawwwO%Z3rs z)Ya^a6^I0e@KChP-(70n#MO1tmHRS9HN_tW;0{%R2F}r4xnP)2Sr_vsOaA?mbyT%l zh;Y{z#q2$sh_4u?!J3~^*rZu%lvk7!QV_ZWHnu6f8Ne=KxzZZS6AX72}`7cdxh zm71lwF1V!4PG=NK49fW_lv=Zc2yrEOm#m97BTQ6!!yvNreT;x`L~JpSxFs^qppV5W zcKf`fbf>rUbbZmcW%*;ZSUkO-X2)CLr6;{P(y`L0CZsd~9l8vAOw)r7J*LImtcXr( zr*hdcdYw;de`jQmqV=bD4cn)yUor`fvP~e&80+v5uNQ>+>aM5vu+%-*eF`g58$&C) zcAz5?TxL*P5zRGO&0Knl=@{gk{QQw|;<)MXe09yef1Sd*BE25y1#|i+XMp{E&02A9+fa1s_uL! zU#+XCudSptq5}~l%wM)DE3EWWSi^D=Mrg=nc9 zwAs|0UbFU0P7GpAq6IuEcf_MIDwy5F-7MsLhRW909XprRtMxb`*WbJ?8^shjj^{79 z!>dcaWGLyGF5wQv+lBWhICd7@)3*7@*v(xsf5yGQ?kba~V{~r5>4Tu%QG(k^J!RS( z-1V>>b)y)JbUU$}b78O~iHjfseBQJli*}Cpmsd^yCVv$e!JX_LU>rE%x2gHz&1zB9 zcmy1&Pv>d22l<0Yy$PWX(kj6i2q}~0!rxVClZA2q_acp77_=mjuS7X;k*;ca?fvZq ze+|h}16KEyb=7~es^AMXn_|bF+TZvj##wF#GZ~iP^LNQmguoovB8rZeq7)t)r+3qs z$r|*of^kI;uEAk;?)><`y|avbI1ZDM)Qlginw^VbVU;)po__lQ|D< z$QCUtiR?^P4j34$JDGS|&R9?3v+7Mx@f@^G*Kx;IM_mK{;O8Ew?;!oj@sS)fGCkyN zEtrpv3Au|8*?Zff7bjU za-%QUy1}#Hd8b+^cLsR~7{{$0}2Gpy|iK_s!2QEg)WU-~3cS+%^r0t zW}exO??9Q=S*<$C16j z;PZ+Y&i9n}`R9uOI2Z=cF)^2B1SaM=Y!J-B7IA7d1ZCm!c}fao+9fTIH=YdpET??E z7)kc&QF%YvH(a3@e*p5hL>-inmIpkA#30<(h1uddkRaF3u-}FOAm`Q-#}c%tH%{1b z91%Nl!mE%$b`-?H614b@!`N%9-}E$`ZIt!;H-fY5Xf*JUS-6tIV67D zYQ^q3Ab{KYf3!PXI}M~aNQ8S$iPPc+7qm#aAW}M`dXHdFRppBIY_v05hG*ao2>?|E z0TE!R79s8P)?tbXof-^5p@Tmt2sEo2k}K+32PBIT0(|iW0z`x_EIvZQ5f*&J_#FH? zWQ5QBCIMkr#&*@NkkYI*DCN`@hUA=fU2`JUG%E23e?k>@R}|`?<>E~fqbV2F*bGsq zjfs0YFc6t?QH95lh1zJY47sO)&MPieSbYLh4|1PO)UG8WT&2~8#jBor4MD11p-%=& zYw}28{d_x`dpLIFj5qBM9VjZl0VXjeuSDfpqO9^l7N^E&A#coM_J!lQtu8rC! z7N+Pue}Z986^_`}t|lb=rBwxFzjk%4S59nH7!^0GDq{j?Pa7@4vfV9wzl@OZfP%BYQMqM~k9TTIw(S1Oh5jA|@NxI%2o!b7M`dAAp_S8VQ7;}e|Q zm6E{sv?52Yu8`Z3b$1Le>@%$)bSGnU5j?F%f8&0es0Zcrq{6|d=ZR#5&duo({z0M! zPtTs%%aoMhQ-G>D7*X1;$d0dTRO5d!(3SWj4?9(OBF3841RobjRl#_;Zgo0ls#T5s z{y@>&5ntW)Ef9RuTIr(i6?Dyu1~YYQe{F`aH0t!cYS5ZIkuzPU4PQqF9ziHGGp-`h ze?Vv6>JzRZ31Qw`GK{EOR?VK*6jKSp~rw=eTW*QyK!#yhulFc*kOO3%P zZ*V7HMOH)}rzY>4j#-sA){tA*&~-5S07Pp{z6yqemRR*hAB5Z%6*|GF(fbOeEAj?`aPaH!e*z|M`<;s5wF4tK_jYj1Z{F1P8y2~n>(Bv? z&;gv-n-T`{q($Tj#L>RnX|B(8tHVMMUbM499_2lZ4EB@fRm@=LP%niXWSi&4*c%!- zM8;f!yQ0fzo#EFuDxgfO%kSaXkunX{7xUrlju4N#U2BL0U-9S|2|5&ZYxKE@f3>O% zKl#x*!;WyBpWvNo(=HAgU_-&P!eHMVw4pOdNc5q`Vw- zv*}XebE0UG5PqVhb%$L=dgMkvZ+^DyDEy#l$dAI_4L{LW6|`0Hys3B{_3aP8gNA(5 z?GL<=`rNebN8U}-{Gsh})vyflU)ctCE#D9XkfpUDKjTlK5@s zos_tEaDTE^;!pp5Zl(NhkYu(sR%c}FvhzP%72pk=8-?j_G^SLay8a)V_Pxufqq+K3 zUpBk)@p6tPXS^W?Ma{XcPOmzJpEPy{AJO+>AmZY;JMjD*0ZTQfC-!m2i7{U;=6~?OJ zV?+SLq$7?c21EN~f7UjO#YNF}d{3vnVP(-4D3K#5HprPx8{h>X7!H?}5OU$|f$fwp zn{`Kd5P&dn;7T#aW!5N3(mn97JvB8Ow$+TS<+EE)Q5(dA<@M=VdDG*J_aGp-q-<;j ziU~VeHoODyG}aY-#U>8(B?WOP+V7YrYjM{kZ+@`6*gLu)e*y_WFqqp+n35=*4h>}CQ`qXM`{M=5Z>M}GbpVL%`Z*uD`RJoQa^B4G4Q-& zP^MDNHQzk_e{|+@Z)MVwY`~ostajf%Vds%@-?N(syM2Jk;gmK3fum{0T2w8I_SS^8(~?S@7Ptmw|hk z|JYU9(d;J|>HWtycn_-Ts(+{E>DHgO-n}ck>c6R2EVV% z#fsg1jI?L3UmD-9%Kjs}XBcU)fXM{&?3m#Xt?_z7i$!>6MP3#+xuq86Wp*riC^Mp} z3wEM!f0pA)ji|1L**232N_w1`LttBa&@^0xk$I3YM&j<^;G-=nIXj_ZnRHst zntCo07cjeK#i}HLDosOT;FkiU!i;jFMi^o@+2)CPKS*atLr{kK@&VlUupJlO5Se>%*d*S5(92gG-(>NUH%Kz*0ZVjlF1 zObDf<*mP2zh|1tN93+06Z+Ck>d3YQQTc zY~fX3^H-k4rhjZce*IMxtHoc|etugVK;y<9J!xA36KE`rhR)+|}vj43&AdNG>r zXN>Xak>TVuw9`oQGDgLR>W;P1L&8F(~1a%ZnVU~|!w=_an=v(?&O zH%&ajT0r8PSV`TmRghm;nec5CLaY$nDZer)5Tkv_x1styW zWg5$O#Q=YiN-9F1CDMz)KPD56;NPcHKIb>|>ZV+rK<^D~OalTF$GJX{*+B6byr@4b zSBZ_OI`q3c9}at8b*P;ME8ZZalv)h{vIT4KHsgcSrInF7=^D zxVYFS?bWseeCdyE+zKmEwB;+BD(13Y$wfq~pT-va@7#iO@SS2P)Mh+pc8=~-uH4PU z_d)2E4xo`LsCH9Kf6b$zpw1N7#$>1l4IrYhE`PXn$3U#phD|_5%=WH|7QOv;h}EEB zs%HIUhuKNwFCjd`E6|j8`(SIv?3Zb+@fs|pFQ=;!11_;gEy_mssD)>k2UDMfe2p2~ zp~1!s*`Q4=8{DvW!kAK;G+_@#nlxVA869#l`@D=e*ZF~Xf5Tfz!j$w=J!Vq+F{SWm z;)xk((uk=!)TCj<%n8TxG(8o=mDaGyC+Rf(mDaGJ32gcdy_Oy_Hjug6G>o|^S}3Az zocMNVQ$ONf7^6OBZk*mv!qfVO(s4g6W7bD6qJ(x&ygK^ZGh%TZZco(cds-a4IFcNH3N&LN=@!_;; z{7^}1mE(FNLlHYe)|%X_gq{sLlwcWZ_1$zMZN~T>3^ikOl$OO|+&UDtIfJqM;f7pzMES!v9OpFq3Hk7a16Oe}q!K(A`39Vrfb zHs9zRf0GRm=MVJbRg|*a{)}Twl#wh>=4$44q(PNUA4CchQs z4J3HOl-43Cg`{ao)}rEV{ul{}56>{8CzgeH8#6*6lGzy31=n3IEO>MdZa^XXvD_gb z+p_T(kcblac9)|-wP({|;B8NWBels_5fyDHe>Mh8!ZOwp+fXfQHHorg#E6RGOYewj z$5*_O`NM2PBV9Lp8Mm-;!>8*5%9XxS0GlydXmd6hB^1vv(IrGz>Pzb(Z)$ z90aUT^RY%*Pj!Lr3J<%!S`H}cj#+akJ2n_Z6wM&p?`8-YEg3(8f-Q0VUuI}*cIX~t ze+FJPhRqhaV%M7*g3oRG_(Q24(Z95KkQ>wXr$KRkKl&*Scrcyr33wAeI|w3lPyKYg z3AZD3pN9RvW@vCNhP@mOP5_sT5!1j$GSJj%r-Y{s`4eNH4I5e0fs3=NR4wD-y=gPc zI~PN&p%ZULo7vnAkREk%Jb^EvEbR{;eiQIF%JB}CJISz?sQyBJ4JdGKYw^ z!5_FJLt$GYIGormhC|ty4zzK^+dgskISm-md(j3AMvuv`k8n{|SGvN#MJ zF%}&h@h+Nn+_??NA8qjlgknP7vzIHEjFFC!Oe6zMowl<)ZOHGffi`3W;>t0_k{Bk~ z36dxrBTG%eo6oC><*Z4KA0c(kYrHR_+9XZ9G7yi@O(ms6SoujItXMB#InQ8u|VFso)D|7C7n&k$H%x+n--|XFSKK4hr@=u(?wiU}5 z7gYb6*uTNVUXxLqJGW_B|2+8ZXSmV6%t`KVpBw1)?&f*CZ7rcBf4A>wS%2FmJjoh_ zW_E&~&{J;|-QTJsI*Xc7%AuruxSdn0gHoc$=z)5Pj)p9rg!T`C8i06=Zj3~)u8XeR zmnoX3Lm`v19%qNNPIos850WmPinJ<;Ef6M}wVVfXwj(a@%2c}+nPIx(QK{6AmQ18> z7G#?9f-W<>aUq>de<{sVWGb5`GsO>Q#N_g3{q*1G-gF&0%bP6|O*MBX71Y@6M4M9c zykmC9(cJoG+al=~^A$&C*kMfEbUyu6`amd-{o!C8!>D+bF;qf_$v_pfJ>MS+OfiJU zpeJm%EYX|`p>j!`wOab5NF$f1oe~N4GWN-(2%wzN*n1|NL zSdZuL4WW_aDxUA6@%n@uf(p*#D7GQDjkMO7OT1w?AAKnphrQO(PWQTjivYN-jJPQq z1aq)Oon;NfdGK-n9K_2~C^uNv@2)2SFo@A{KhcsAs zOokl;3_%Uxe=^O*2f-X{2}Z}M&|%!JiRlnj5SMGHH~{2ea_yZ0nV!`uTsB~mL{Nt; zf1)5RA7WeK% z0dO!l`j7rR-`?z1!i$2qSp3RfF$f38pw3Ymtb;e8f7KF$@Sc)=S_@GScNV2TrstM2 z>+-$F`t!_k*2|!iY(l#a8onH}j4K@V<#^U{N0t}LHOodtO+lfBE$~6OPh1QlWM3VX zg-|G1iza;S)$y-XS+ z-oAVkf3&_xdbIY)9a~i#zGZvs>_P$HXuSjXa#eTyW*(~F8@bG?K5~_(wMU}01uA#L zaalEouKu*zP}s3RodbcOECQ0`29%nlAXx#@0zr%{lA^)}N=h_ai+fDr0(Hb8?bXYy6=y4VfWJahtz%bsY}nWvut zf3K31h9tR^A|=T^XK2cMeHGgCJ|fF9CV#|7V^aOfNnVryO8^$8z;X~6AR+ER&7vel zct#0IaV$4Pm*L7QM2|<{=B2~q!fc>^!x2=VdXJ3GSG&jgRiJXin~qhfMaDU28x#e`{14 zFjx)L88axfY9E&BQaXkWECUp|MrRfsAt^AeJ!D)Lk;yEhhrpoN*p|n5&BQ`0WRh); zy4V5K%F)&bQOQqu#eYop_`?y2o8RdkhZGyT@#jmn~fR9{@@b zy_&3H2=NND^?gyZ^R1mN%lmU>*;92VjZzSVk$CJ3KI*)@r-R7q2Q!Neo3D4(TM+xn zr^eUc-~a-jT<>IQHe24ke=ED?4$PVDv|+ft^FT~7M8$G*!y%gv`CZ$ry#`=@Q=?h6x-PxmNeTL8G0VWH*^^;fD{-NF z@HKMkRpEDoM+mFBZaql-hhkC9pSO+I<3!k}o-BDbWTxbnBPRwwcw%^@v3w2mWK z5|8FNZVlAh8|@=sH$-=Da_GIM?&_;P?nM(fmnGbf2B79;ha$&-H5c6*?E_7mX8Zgz z&5qfYaEdMKIdXec-zQJiKo{FX!F$We2o6`&lvP9P{+vH^m-C!LGX_>vwJ7vF;FF4$ zU{nd*KSDEDf4}itN-}w)O0!xWZr=I_dTe$mA~r@A9U$J0kDQ^&WjAr-gnp~)HLgCh zf*rgT)`scFZqs01tT!-ORrQMS^l6sCb}4P7Y2NUsB#g_62CRR>gc+iSDd^&Ez%u#8 z3)xgn$Spxt9!e_A*cgTpNnZ=C+i!^`f6$3|M7ACn1rR;^?^}__F++xJ94 z!M^8EWY!CG>l*+*RFUJit?3zm!lp`}(aVR2h`>>h5)gm?mX${jzW&yS&n#B^2cOUh ze+Pz6ZXRV2|G04u7W?rbowi-?ClCFBEnz=pZX~IWh&MW^Il}maO4?jakrf=$M1{u3s-if8@8fc`-N7_#DK(VW7t(M@5e@cDpQYU52s(T90@(ki>d0l*9S-V?cA_W?Q zhjriHs>bbZ!Lu3LB6UXt)m>jKS6Y|i89OUg3sYz1tS#z}4Ovk4J7|`xMFo<%-L0qG zeVSy>0UL!NkLxa=GGm9z0nDh{0IRk@gZ zbL>Rknc@I-SkD^t+_oiVK1-itCv<{sipFPE%cdyr(r0z|zt?4Z%Lf_HIXgJ!nXgx( zJWqe~ESUbX?D%j*Rck@Pli7?VOAc}8cw0xuPvm^fV(vr;V>a;_gNe?WK6QagJx z=eqJobC$=ZCUEY_{0W$bY8U=Fc0kyrf##6u0{Dup$j zeaNoA^Lerr$P_chpQ%;~o_f?ZT-#7)oRo0sFu(ZP4Zj%Mo~$bV+e|yG z=PQT>x+}aHJ_U2)Q^tBZe>2@=m@;BvaWnahIcV8p3ti;`ylEFF>xH-MQ9WC%;RgV8 zJ_ujhA(u}0vYway>{=?)d9vAB4y%b+)ehQ{n>YYMwbGxImuw_nn~7&-%Z8!{S}h1> zGVG;dz^jd_xRQP^eA#OHfQ~f=oMCfXOkb)$=;SHAK`_s8a&2Yle>jxFRn!Rhv~50i zWs7UO!r;jZmBX>og-Y^VQdU?tI%^d{5CSo{;3YdqbA;dswc=$?t^R6Uslq`BJwQQ$ z$EwpvRFL!%^B^r)a2+Cel0Ae;_w6 zt1B?5TepxQ_Lh!tf7_ccv46*A&SGKl+DIgj3Ni1xKO2EI9YLDx%?N?~t7DrcO9X&E<{lz+w5!#3fw(%eCNxe;GxNu4v3OdZ!u3d|i-E-jD^j8$ z%_@xRl|`~#imYUHIX+l4ohKCzo^CSUq^Zq^nG>o5Gf8t)27k!ux@)pRhcEy~7=k$| zfSl5BT;{>%fJ3^@Q9_=>u4f~k_Ll)iSz_HSP3+Fav#djTPc9hdAl6uo*X#N{VV*DB zVw-jE{jUZU>)5DgM}w|Ms{}vfi}JEhf%9>JT(cc6s5~DRG**`jI?u}mGus*Y_GE%x z2&508sWFsaw111+@7c|?6968m*R!UUlbK(Wxf!FT$-etOVR!LxZn(6(C3j*?VCNcf zzZVR0S9Mxd;L`efhGxRVD(g?$D(g?uD(g?gDod=#$wpaPz&pYw3(o>q@VZYDm6@ZF zdi2`(guAVgaI&r;j=Yg3_h6YwrO%1_kkZ`|ypp0aCx2UGO8i3mbNIpi39%o~8v%z> zBKQUFa@aC7dk-J%%!yF2Q^Jqqw!D;5HFBCYbbrXashnyp3Gket(A0f(1c4kBvYlOPF193j|4vsLs*% zHr~1thbEejqJ6|-!Is;0?}~nXX?%T!Ul)sY**8s(EG}UMsrhL9SY1~9@3Oc-lT~+l zF==#LKwsw)TW|{A7?FS%yxLdFB39Q*@%n3(XYa&XUo;=(n!jGcukYFF>Z?`a4YZZK zG=C=6{H7MOpSAN;+1!d>zGjmu+~t=(ZDv@G@TC{$LPS+>7tL^Q;7Os4MlqCt?C>)H zHm|!BYz%A|mssLb@CndioL#p_!NT1o`TmbF;Ig~`Oi7w;hYbx2${>_4`q8RmPG%`$o>M1yGq&>x&--jD-y|)#rWAq zNOU`mPAsE=&u6!Fv8-lzer`bUSAqKl1#C6LN2c8vLm?!6xxKjUORw5!qTZ(@(toHv za1>9cY8|&r-bIM#ZE>{>*a`aW^10^u0Oo6P1d6NDiphf0QZzlCj_aa3jui4mh$Zy^ ziz|Pp4eJye{q(@*&xXdZRv27VmRYFT7e{7KR=zM@mTfEb4txld3lT8Jeh9;67yOny zlqDa2ye{j9b9T(~L0e&WF}l;A<}mb<%nQPuC+ zeR;vItQj5OTe?$24lOKjCpxh@t)`Pubx-CeC3@&hEfwD=a6xeF&x6Wq8H)ZvMR+pD zMX$tx7R}YOWIJ*O?6)l;FuiQez<$h@hwCScE0_k?UYllW4=?quvI`6?S%0zq3wKn= zrGQW(`InO&+sn&fd}G59BG120SJW@6&bvV-cqRCqdgtkaV=uF<)Y2x1^MTb}em&Xr zF7%h@cZK!?yOJf%=UA|Mh8fJ1SaVQx_IE z9$r?U+{~MWNFMe=ST$?P)x%48^?azH>$0484>5{GtJ3Dqdz*)WEr# zJC-gV_RT{CT!|NiS<|i_0)%yv@ufd3E*X&z=R7_OtAin<*%!A+(|-oV=hY^qks*u$ zel(qs!*y--aLJ$KAF567;j-$M1-ytDgUJ{ht~gC7x~IP9R2{p_H6KA%4FP`m4H1_+ zCAwxwKURzRtZ3)_3GP(`T3b*EZ@6sjg*Q7$;rZXI{>R7G)uJSssIl9Tdh9$DwCl8& zk_lFcgSMRWyJ*KH`+sdGRe!XQPrdhulG;Ov%F!G+VOMo{bv3eMEmuG>7HFUtFKj}6 zOi?fa?s#!nZ1R$PC znZ0KVt++CaUVUpG4T5Ai4{+9vG{gIXRFX)(^BTrPLWlsW?}IXgH(kliefXHiLh{}Y z2jRPL%cUL|?SC77kby??61y9G%E=QEn{vX?NWS$u^2R`AHcfsrtwfRvQMme0{#SGH zBR9ur*8NGr$#n8%#*(c-cFJnS+8`ERd`9FxVR!MZ=E-7JfB&Vo5-V3Gukj=Y#y9dn zV6eyE?)W4n#%igLr+OjP^Aes`9!f*{?Y6)pBEsQuh=1pEi`do+!BIt~F(EXeMR^`8 z+x3FoU|+)48h_>S-D;M+*s0ba8S>!}XqJVyn1NUHY0<_nR9-H6-b!#iol;~TmW(<6 zPdF&37ELWI7X^k;+j8k;uyY78vuk*P86sIcFn^y#xk-aPd-x#!QTY40igEjHR3^X!(>BBP`;sCZ^blOrtTvnC95 z@hLy6Vs{S-KCM@?1Ua&`CHOb^coY1mf|#e@Y=0+2mMAW*xPVT7n9=t>x*yrr^XdCi z-VPC?&88tjWA5hpkGnPgmb+PEXAO)fwDici5#p^hzCtdG?)}ilx+-qr9d?svFtZJg z?7?szG380FA3ms3Wox<`4;Mo)YlvJl^IH+NZIoh=$qJiM%Bw~?k3t*}x2F}V;-C~* zDSyhZ#Jl^hPsM%ZRbnSvrX5%l4z0NW1G@M&`v!W{1YT5i`3iZOu8+p{oAt8JE!8S5 z_n|={;8G{Q>d=5bEODBW(dEtR1-tt$LYfP7=`A|+UIC!ocZOe%m-GbY((G?ldQ0lz zm)j30ppL`L8xV#J0IdrDaguw4i8wbAug1oat&LZR;< zSVX18kk(RdZRezzq^M--USs7{4LXScQa~d}yMJMylChXXEGb|&nq<9R6@T}Sx?KGp zUac!Z^0`Gy)y2o*f&&XyaM6WYLtmx{O?~q&H@3Ye))(2>0r-|_kT+a zu!yqQv+Jq_xqg3p49+VXZd#*LMT3s&=T(c>6DDYto*hm-G5vLYTyWzO&R6=<_YX6o zeqa3#i%L^?D*grl$*oh zUwl6+*&%SopF7%$Kg^zqGe*3Nmd43uyc$z%VH5#?2j%jwE0oq zcgVF^?%Roi2!v`KO z-6%T4f<*;OOf2qF(SI(`|M6kM=W4bKgJDj})$?HBMN4r>7RY<3YX# zz^K5k-|+}N^)YJ~P7^&CtqnZAf%!T-U7vA2uGT{iJ=Uu%@R{j3Y3PPVft`amx`b@} z%7^|}XkO-juYb#RIjsHWzg}`Z6LtY8+kj$R;HuwTUM>RSv)m^yXSjGpuy=G~mvXSt zkKB|voA6K&jl>yQtv-AODB0hy%?TJn>?gpE)sZ0vYo3*hV(>xweOa!aEZA)<2px6? z^mKiB3C6nvZ{*g+3h#bniq0vw;`24cK+IY(yDKnBI-`_NimfO%P7 zWmsfPT@!cJZ!_MO(!uYGrdeGCG@$}(tSSp<;j`uiBO#ZE3I$p|%BVWmMb2tJJjU(O z8yw@p(Rcdjo)734?%wMJNaBQOqs@bXpht;Y!V_udiQ5i%kC3nBXU)r|1!?vNafth| zXzM6|Hh&C7WM&eSHus!?1~`&FBZgD514l7Qc7-J?61BcqaED*w0pAk&85McX!a8)+ zBD8O)&5>B!Q3%#i;*2-rJ9DfQA$?BuxcBh>#CuH=qbPg1v#KCpo zDRTI3>k@{tuC{4NL9{Hu3P4^_rw?};8JQ!cWPex888~m?_X+l6$RlIb9oCl(qi4_{I;@sq zN-0AP9y;!ZTJLJJd!uhk9qEj0`x!i~3R0@P9rT z7p!5sE?%i|t4etPXXhUgHg*6qWTltt6E*4wa$c@d-U@bw2f-4Q+WQ`qGt)E@z~<2h zxM`@3u&uGvHDb=h)m`iX5*tEtcbn1}^$MJ+4%y_VHbHH_w(QLp);Z%!JZv-QpDii$ zdubbPfC@mJ(F~1#K$7euiR;z{6n_HLVYEN0PiM_a7$MdG|IDBHNOzLy1GaJuOG-Q5F z);GqieV{ZrZ=Vf&t8tHK=(cCB_0H4fkJ582GFQ107^M}OH^_#E6~<5;b-)ke8m<&0 zD)A7+sUpy|vM6LjRa=U3Z-0;a8|@dwyG1!agJ&~wuHRJ#$8rqLNt$6zaMm<0i~3fj zQ9r~;df5uCNaX}sO&cf<&b!f3IoryJQ7b!H@SCdKji^njM&Zkqze|&N;UQ9;ZeBH( zC)?BY1>e0-%Bza?A+qAfa3x7Y##4)}s7MD%C z6rdtZHaCiBL)D&?i(A$RGzbpCJZG)K=&7vp&#u|MX2phM?{WI90QKVR%N562(b0ke z-Z?Ko9Uhs7BUYRr%AVb%FRJ;Rd*NhrKy@ry%BZhHcIdlRt51DdUC~jddncABHHO?A z#QsWn=J6qwhIYqg+kdg{u?HdTG<8BX#=e{*dbC=DSNcqrcIWo02A%+LvG8RI?B6$r zIRmZplv{1j)TE_j+{lz%;v9FfwV#0ifNVgpcB>l@;E0?vEaI#zHP+x7p{5Wxq~_Bh z21BPrY$hd5x9^Kirs)p#PC5gf7lPq3CQBEYda_dSNxazx3V;0AHmp8})X*@;@Y~Q$ zReU-OO&17qW)kLrys1~Plk{BR(pDGiK8iBr>cXvC`M#io3=T!U(Fy6+)KTeTXMs;T zy-Y_20v25=L?QXM`oGsrUvLKrrLkG!+Vx+Zv8#r3GiikMii7i^=w@YP2_-ELuAKdCldbEBnOxFpkmU zdKYH3vg$-Q!*M(~Q2DW7D@V&GJx0QV?MnDh<+=t&$bV~o8YhPjMC7b0&x^iT*hhL3 z3TOXR!^G_8=|;@QqIwfa~`W{*eALc0aFRcSlgj6>8{E|4}ZF{aE+E$cU^8om{JzpNH;-N9~TjJ z9(ozDT={0ra>+)MS_*&N;sJ*D;~2JCm0^D5&EQ<(TQ&Fu@oF??6Oa3blMk*8TXvJl z>()p!X3=W$dLxc2wP};}&_L6&`YO3;MXfjdvc>miPQvp(WDhMMpj_mgPoMm^r#2tQu2@7qc`>8HE1bzWB{Ww0o(_ZJb!5(YDimpTYQW;Y4P7Gv;0?b=BC51nyw#; zAu`crla(#J?&$_Bw0vb!FR`=W=*gU1K|CoVb-Jk*Zcg5eOK1*%nHjarC21P|j@+`| zi-*rSAh5Svbwe$wjE&1BqP~ojFf%~Ky{OoK4EevHKBtSW{Q4`@Hh&rL+mqA!+`f&pUU+2WhuYsk9~<_@v{i z#J`u()Tfb~H>?toW-~2YLp@uydkR)%4XbQcos_FZar@KvC%^5M)PG7c@PNGkA#HyTBQh1{~c+$)r02hd2^f{{Y5|Q5*E{>swPTDt~ zCS>=~Kod}BRp_?Nb9-q<3vbd{1{K-eWRwoKZpyAP3C``52*EnA^R)VN{|bHnuh8fJ z6rs;MIZ5)D32wLSPPe zh=(+km<^wC+;RAqJ;)pk@&4ico!mdU)aQ<`81+)hj%QZk?&7zVGj~3cGJDL2VxZC4 zPg>bcRJY5sBIx*HnuQ$DWI`9lX1TctZ z6*Mz6;zoy@%-I zH}tnkjEN!bHsGd?-C)RG;p_8i96v4rP37tAC7qpYJhDB9Z;DY{l zJutEsyc9NxMkg`Kmd|JNYC~6OZIb(X>85@+_vpH-&tnOW0POi!b+3vK)m6bCR)T~Y z-lV%{!nHxhWNgbh8jBBv2#GjA%W-@b3x5N$sZ%S(1m@4%W{E0ZcfKYiw8SDQr!_xTi^WsW*zWIRafJz0wu5C}2r#aLHd`+lWp7Si z3~Zm-YtZPW{v(@$7S)3Ve4h*$v6$cIt*gyk`hWPUlf1&-$zyYCbz@TB|5#pd_e2Maru#i#l433Y zXf`6V;Sf3Pep)^(HqYPV69>mftGRhR!jXta{@?Eak+KpYK^iNI`slWK1h4)f1b~T) zoY}Gr=8ap3u;_i=DSo%SOFjy!8o=JWyC%lh|CD1;?YK#-4Duw8wQxFT9e*+>=&_qKb~;x=Z1AIGsfXTt_d{PntiKjK0*juAt8B=^EA+2Yac z8hQ8n2WMHR0iNAMFW~waM z3TX1_{XS&!tX0jdf`2{qU=uG%Pb@SKP>mo<>2X(uxnevIL<%%?uL&$(9UK$EH^C@F z!wqr`4u535fEaBbo3lj)I{(6on@5fspxrHDJ0`38^82FW%si@J_t)rGl6w%#Py;Jg zD^`~qGcRrfF;?MAD~*iO)w$1cFAN4Y8uY@DKv`SC2oZY3qko3K)c;cVmeW-+Xn1D= z;R->GhyfF?bq*t znxpzdv8d)x+J7rlvWBFW6U?bYwTHH= z{vm(AC{`v?Szsk`HlaHoo7<-S)R^C|cl9-!eaqDwzH_Was3^Z(Es+)-ee;*ZxIu*9 zV+i4t)Bbk*hKaO(AH7`fW1Q6On zpotR-2Y;@UtMI?sk})BeW=rh;Ee&wHiak_-VK$MfDU5z7x~9tORkPZ*e9lxs;jddY zG%~4-r?}vl>CUDtofzKX#DZN4rD=OoKi$g|CGT~rn3*;WVeDfS&s;-0MVT$2P6G$X?>DTrTKqkvVL@+9Z2%!)lnM%KvCrKQUGPzv9PuC5W3J z$LgEDJ#lR6C{sg!uaUi=M}JgSuKsC1tUZ2(In(X0`U;Oz7bGM< zc7JIW{tWl43kScbrAzhWX|I~0yLT9-f66O4;5E!k?HMyQlzT$ygCPMl5iwUq#~(;P zZ8zJx;urUIMeCaV$N+U?-uoc$*p8js?@Y*RxPli(j>a&PSyKG(mL02$Piip`2F6n+ z@MT*IpAOz{yJL0jUXcoXV+RB#P}RTP(0@|oJJCRdP8%-q>#QrS4Wr7d!!t+ez#iHz z8HrGPTS7*WBDqBtm&jou?G7=ck=|Py@i>k|kF;WAs=`~~=tq~iaE@U5wl1B)p^_on zV?^IW1)(YCzN3@i&GU1(hGbQP6Gs$&b^ zs1|;;k6nGfs{?S(nq|EcX%AVoo~}oiC<~abAaeN0tXP3c!m;G65}18DvfDE=%?gNH ziUulX?m;_?%;OfQ>OezkgkivkNy2qJIIlK4HW*897WaTr6%nolNQ=-FB`Qi0n}(`pSAwh}W_7gy zk@ei6!t;NkxL8F_EBWA*tiP~-{@_%SEf@ArQz=b6X|kbey}0MIPZ~s7*M_V0TvZn9 zp$!eI;o#OlhQVJy*i|&U;D4_lfK;!mH8YZ4?mAwqECE-Eh*~yAzpxpiu2IQbMP4hg zMe&+}GQSsiZ{B0&p^cMVe`8GcmQ3FwI>tZN2_70IhA-l zR?CJ(<^871qgJd9fXtrkjVU|1Fj?&I!p(SVc*%dzNmwCzcCJvj1g47|Cs{N@qEn0| zcXO&Z8Pmp6I-iqa41b-h2!Qc#{_8?4(~DmQ;_SUbCkqH(9`4&t?%)-Na~OElgZJ`5 zZS>YST25YgMr-?w4BU<-s(^@kq6UoAruvCvVnywSDxoY-y{tpjC+@NkwP~(l_YjC0 zG}o|rZmLFrYk^Q+deB?ZdgQQ8t7S(x8QU@t0i^5rAr`=zB!8nG=sGb-;q&-$0SlZ) z)0O-KTv7F(@{~;FSMT9bnf2bF>;Cv=!H?WV`-k$#9Cf3SL-=Hl{(0>7xD2{ntiF>x zIR=XqUk-*3;&tpiy$1$hTPQV%Z zvs}Q4Hw;4eU13xgmZ#D01#?u|9U-pDI601=Fhm{h;G~E}U7QF$Lz?5#LM+ciYB0?5 zks_#e+AnG$<2q4Ica9qs0oWt{QpZ>%U9P}bq@1p3kI={J8m7K$7Mi4f2R_E8R1(TxUAj7xqf2 z-zDvRcY3B@XQj3n$itfcZiDpKI~x!3F;TyFFX`JiJ(4eD`h8&!1j5efg8wQrX5de?&f|UmguWmVK#hBXtT*2l^eIEilVyw4vk2mCt3}|Df_&#` z5q~_t2)$mjh@Ec49*kL}oPPu!yjVmIN1{(XERxPoVlO2uQchUtWc!Qo=?j^wei1yF zq4T#d!iP4&eCCVjnNBRDw+kVW<}tOk3xJk-LNez??g>&xV&X;SaZ@k>?;?5{m65J? zk$H3#%KW;B9c;x?i!M@*z9LC2Js8L-Pk$`SqXz>!2a4oK^l8c9he-SyMqIZErVn>6Kq*W4>l7rKp=~2Ca5uu0s;#^NsZoSUnCv25_ixSfm7J%Re$eA z(m`#)&1wu#GDh^}Lvm?5>8cG`qu49e)+;#p-PD zFWa#N|E0@bmi@A;u1Zdht^vR4dXfWdQ`7!dm7mV8--$cax&>Zp`hW*}KOWl$dh++O z=vLC3E5Dj8DORT8!b7GXkFCQc_VabS96d7Phi>m#VC1qkZtPoS1^ zEpeGci10J0{Zc)o32N$3pnulun%|pa%PCUbD+BGg*m^cAC@pw#FV$*nj8||VuyTHB z4*C!M642&7zlZwk<=Z!)w)qC?otJfS-|hx6O%&ZdsO}blR;X^c-*x?8*$Df!THn;{ z|AuMS$FZjR0M+06=+)$d)~m@s>Y8th?)GD|YPm96XRBU;Y0=)5$g1TE&wK;* zyt(=UnXCC!rOWx>kTcxJ^!`&bo?TiWoprHbd*F^O8jw_^2(%JIpIN)y5Mgsl!NxJG zWEublX_B(a3A^@<0Z&j)q@%yH%*)E~CzNwv>^^M=0 zwmzIQrKvXNo7_glk~Dc4J2{TB={GvHp8{xY&nCgOAh_V+b}t4UWPRdrVbcKC=?SYE zR{N63YJcca)~M+^lAh|yB0iin$zl|mA<1Ewj`EKiRTcGrZT2N}afJ&8BqL!T8}u zTl0W6M(LxfxhXrHF0&U?)uRzJ>%*h9ev(6d9%+#uu8Pk3@o2bViei64+B_OM9$eyo zdbF*|WoZ{I+pdwgF?Lq}kbhR(u4439{JmqF^+)0fJ(EY&`7{#b7E~KHvpm`sRYx{^ zw14FDYFDCw+j@n4Zpu$WH)>{#-LN_m`)g)*J?hn701&W}nIj%8Re*@mD)AT3K_T2w zM#uP?tt3-)Wx>$zc(cFgu`&(_Z{D%|M~TB_#}?s7#adz3ZY3v{(r0ZtwL!ZbdycBa zzW-}ib+_Ey5D-7Ax@6t)Z3?Kpo4imnrCf#5?z=zD4d zJFVaJmFf5}OQm?KCZS%VcR-PPOUtm%%HFG6^SN$P+D_iBo7BHBTj&g!njQz%N`Kq( z=Wo)}SzZ-=nblysyQ-^YPR7jsz8}g>PK!zyOR{uVpPS-@aJ2^*%FUQXbp~BFT>F;>Ndt6NQFm)@keCPQV`CF91xznXqtrJPS;yiK*GTYi(qcTST0`e z5OB>IL!+8pf+t{J|$(`>O3$(dWW+ zTo$qsr1>PKHhfd+W4B+!ed8M%F+iLhZ&h~qZUWor zP{LaQ=BFzkY=sMQiXx`$IFjf{Rz;kSP}t@FG}YwM^wIXqAw|`Cl&$GXhqsT3El&~i zP*2vg80vPg?w-i1G=D!Cqgmwza?w#yy)&VcJ}41%h*0I62fjqsilEP%oLi9ov$*TE z4%0S^%A!c;$RL2U6$75}=r@0JVO9QqQw?QLJ#nj!^cwZnVo~#RyoA|B-m6a+i^`wm z&@_+AD_oMf?cxHW=>JEpHCO{%`1b>MVL0l>PSCOWNewJ9h)?wC6aU1Ow?U6-zjw*x+4_y~Mn9F+!k6|Wq zjXKTwZdRSc*^{MsIEVxxOmm?hDDZ*iMUE~e^1{1)Jkz16ITH^aotj$8O<)oi%1}5) zN=8smwQkz3{LqTPMR8-Oe<$-@%%PfqQQ0~P+J*#>tAB-i1q$cI6CO{tSTop~tKJk_ zom-dxqm1%#EM*U&fTRpZvsB--!ljd|?yUhg!Jlgpk)voh5qNTi2Y2nbXk>}UZ5$-< zOB^y|1m=h?NZ`Rw7Q`IeZqAxjnYL06ZDQR3zb2knxGiZ;eQlP~#Ip{XU?iu>o*v{I z2r*qIR(~@BzgaxoHh#%0B=Peyz3h!2fSAKS(2T%uCjLSEGWZw9Z_Ix)7k(V#1pbNe zLma<(`6uwp=bw!qkril995*i1bUu1b1Gvt@PaoH0o`!G*xs(3K1n6x9(HXK9^Em|(0xC!jrQL0Q}0u9 zWCwGcrE_3g;9l(5c5O@apCL~ILY&4gFDKZ!quNMDNr7HylHD{x*zxzETi? zl6m!2?Sf+5$yT8#caWTe2QvwDGLk8?$loEJ=~`knBdGoolY~u9vRG5dG3g+`emOE! zCx42PwWP`as)n>j@HAmt1e57J_uOu*eYjbUC%17B6gw`WBIsgiE=ITuB|J+?EE>faZoW1Y57c~HAnq}v?jf5``~Vu2!B>tqK?4I;l|e% zRTpDZj+W%G33#$l_PqBF8s~ug9&;M z$NIH{X}VP1mNfNW)!6q4P8K&!F#crtzvN+g;gZ4`Bi_Ik4B6fkeYwzIMh1l6MnBvP zcaTT6NZycCrZEY7AAkOblPXN1|Lg*61IgwiUxF~#_{(#ixy=O`j zji8=K^qIH|olWpoJXf2v9UjTvcI92w?)uDToVoktX(McMoaEC(227j4^hI~9*tXpRdGYzWg zGuDBuvI@m8iMS8&iPn?VYU04lnU!FV`^+<25A`I9-Ai3FYS(~+PC{#ZY4vqotRG}q zOn%;#Jf^^KPBeMNttoB}vj08^wFi9ewZN!J;{)+j?t|&Tq_=uWKE$cXpOp5o2c}L- zduNM42uPa+N`G*@Q))_=-B@#c=+pjY*YjV9#7gWop-23}b)3H8(`*apr8cLMY`JjWPXm>R zXUsx1Y;54mTMPRgF1w0G#d_9CR{`%!S)c5_koStvBCnPGY7SE1weVk0Aqu^g_L~Yw zf!Bg~j(;Ik!-FAK8zOywv>FP{%e_vQd+nV#Bdo-0gC{KxRPZ1K^cYVRt4oors%Vkh z%F88+77?w+44P<>-HON?NftY;L3Tv@n_Uk{tA`djt%BLuVzqEs!7N~jm2JpKRw%S6 z(8{DCqDnoD#8cV?DtHixL@S{hHjFVH2mIpJL4Oie5QSJve*m~?3C8beUI4NfZH;y3 zT-P28oa@g>fwM~E*H_76y0vv(GEl*TfL+ETi@nyIBLh+co%}`a(`{J?w}wA z{`!gDk_c4rIDiD|Q>7^P#u#&?0BwOQiW3S9N{IE*k5<(sW2h+n;&a;xqC|^OTgMN{ z3x8DbASA^zrPueZK0ow@Dz)3<(G*mv-4;KZH>KfoYYzzYO zSBiBXI*2iKkYfm47C0L)OEm6b*To@sw7n(5e8ZzCD1WM{k?3he(Z*QkyQ;v>)_3M0 zg`*2Zl>JjW5L6sV54{NTq%E+8{bs>E5`St3mar>6>eN;&zArxd=dq0i-wHeZfgLk| zJnoqt7}g8-5E8PdHt_siwF8xS&m6)J?!Qe>!8h9-O4PI977_Mtd?dhrz}y4mzisV6 zr8erY2kPB!yEhZ^HNv;I?FOX%0<{fAJ|zr+z&*SH0iQay0j#YzZXqCSn{NOj8-INt zuz3*G0qghyAW-MwR}ZB1BBlctaTY+($m^gUc=INo1KM#3K(NjWg&s)%y*~#w<#&Lc zQ12mnz2Tk(x67cL0`?nnRN$S%_qLE;eRqc2o&VOE*Ux)!ugU7cHRvF0_X3g!)q4rZ z0Zw>EU?0STNM2X;6hrt=U?=gZ#eaTv1%k(1ECx3AYK#jQK1X5$_PsCwu>YJ20r*@d zQbGU&M~x2{yfb10_8+T&z$t%@>418C!|6o6i(o;9zMc^reCol5VdvO~pfGokfrvdl z-~gs_zFU2SokwGL;dJkKbe6BvdFrv z?WCdrbwG;0HXzKI24G^zQ8Dn|ROdO{9H8VR=jU#;!QwtS03FXoiFSfu?Krwy17wFCp5Iokh&+%1OTDbc8w+ zVK-Z2 zK!c+Xx6={FD})-h)5V2#2o1Po4HR&h-d8T;fc4bN_1anr=J;*#ovC%x6xp33?p=3> zirl^Rx{6&_bb3y63qwTGu7diG1nVxH>q|hK$Cf(*xkl*vI-KiUw%Y@BF#`_>dZq23 z(CsI}hng-*?OJhx={W zf4?r-M9i7+{Xg2(_a{qcPxUI`@Q*|Phr6OXI{9xE$C__)IToT9h(uYPw&`9 z?G7uDpZHHDU=fGNewtuFT@!xf2FJ0&;@Eb{|8#7-;@NNL{5C&LDO(^ua4jh6lmEU1 zXDIG>b#^G0>|O0w9zTDAnw<9%O;B_E2x`g?C(VkjR&2}Ec0Fj}7lM{TlVlCp27cDH z#p-Kg4nFBxZ`xwT12gM#D5ahq`I8(Eh5h;1oM*8=FVomw>oP*&wz6^$!?-;_1eiQf9g#)I|yL$QA@tqDgN86Gj%>XjpP4M70v*eb&vi|lXp`F+PM(DIrs1EQ;H)s@%g zk2kEk_|XjIni(OWNV4>;mMv)C7f<9_ueaM6M~h{0@KSF7O*VnUV_N%S+4=Rk(hn z{9gMVpPST4b!t+l2Jk$sS64~_fYWKIq|KQ@h-z_O7CoL+IWfgdU?BSX2<(XLjBIS( zQ1f_ZQZ_jeCu>&h34~030Fr%vXqzeHk{yvA!qO0Eisg>X6q+=AV!}DZR1=+Kiss&x zWH+*Y;$?p`OMKtC^M_FK$&kT7`EJr6qt%JaJ#}GT@_xmtd$sF@L{(&symYmy#PTGT zJswSB{g8ETDz;;7#=p1;{SBCt*q^uMeSgEcUGC%p&-PpfEVomf1-520;x}TFZ#UIa znE>ToA?|<4%VoTDH?&J-3X9&0p6$POTe;re$why8!>r~?J}|30Y{v^$rUu`<%YN9d ztf}wi-+$j#oupBy-KJ{Bzl+c2Z!u$V6XvF5Q;+1^=Pk3m<=>ljRR~Y7L+t)KbD=D#`zg29QNI7$MYeA3Z@3w2Nm?qqRuu5gu zlF-wF4Ll~G%i>A}4+-8im3q>Y8{w!?28Vy2KRELiy(VR;(>oin%B`DdmdUZ2T=pl= zU7AvNN)&sJDfY{fO?I2|d}{NgRS|0lC!Q(or`x<+$--*-0zwI4n|2%9D32?Ns$Nab z7h-_o&jn4h;cQTO8HY0$R?JMZU08c0>aaUg%WPWWKD4Qo)d%>^W=Bz;rT`Sr^@o3S z6fH;JY#7RL+9^C#fw&HSb8}GPH-UjJez+_2U++Q5J)ZjFgTEYjz*{Xg&EZrbStEb# zaCeGExiDzisZ+=-+3htU;|Vh&ESR9QK^C~4`J9(*COj~Fz;$8`iJ7P>BLIR)U#pS; z%BN`vLAiSzbEr26awR?DHBr(d0D^zsDUwby?y?D-CQyPv>eTFi)S8tf0iRP7Rm}$! zk;vCN$sin=rkfFt_~)}3NicJ^=ZBr6AQ=-?2ZA73^tGysMgKHK!Rhx7<^M-bUc&b$ z`BayAZ@5sNph>4Fe;=hVMY}CRzsR6Xf#T*7d(;f-{3u`xigaKXVqnqPR2X}cDM2MG# zJIHE4rbqk9sdTPlbe)heRf$e*=2X#O?9ee)g$N)cN>z~6Sn36nVMSgmFR%-EW zW}zw`6eQpbFSJ|w!DoJf-NJtlL{kOcV1=>PCL|3;TjQQX@?!r_#Kr!fK;Ss)OQSB` z1Aw*{kb>vAIh>$(G-eS5y<^UxKwn_P>|S2*f*s-I1=p1j=mKov-22a7lqBfF+rtLB zKrC_ht^gTk2`>y#dze7imTl)=&_E(I;pGh9`lUL8ORjep6qk~3gdl%669Qw!T1gl5 zm<+8~i_nNo3qx+IjW|a&A;|i}@e$AC@xGH0=9kr`Um25tX(0>237sLGcPh$`>|67iS$A5xh%(`)U2s6;u z8N!#{Xk~!UUVa1+&YbXW)K+pI=#5K?24wZbPx~wU^vfz|6X2=zyC5uYsI!O_PpdCjrTpinZ~!kcgWNi=^vXd zqg!R8&lU&Z2{r~cT|Xt~_Vz{yC3$~+-Iw8akgP@wSZdpOoh*c}lN zCI>H2$X3CeLo$ChU?andhhQXBs|G$_>WMnFGRiGnMyp+?Q%rqIrK&OLJ$^s9EOzESP155jm~! z5TaS}%48T4I^=DD<}y#i%D=XH&gHM&nxZGyd!J~8W)YStpa5b1{%jUSTHBB(NCGw| zG0v4m>K-F142!sYY2d^W+xv9#3ez%Uh14S}LUiXMmn%~bK!ET(xn|;>DXt*in0IA@ zyu#bOm|%ZwB=Y5Ax2MU=9c>*r=*>72&ZRe7o)o>9^Xs7oU%Iy<%$?q%Ay*gd))Z%E z9GwojnWCi8wLFs#C`0KN3%bN&@>8hii%vB}*f6WWG=AB#Lh+kye$2I)_xo8YJ++vl zPVU)6u!s2(!WjDBXJ5uL{4g<}QB&5 z***q#KFY)3gg~R`DS<}M9!6dq-}h1P+#TNsOlvPKc&_aplLJepq}GFP&h2df#rtO_|XW2T``W=L zBV2paLxH4(O~kA~@M*#xjWq|n9pnN4TZSeQm_-d--wsRv`tgIf26KEQ>%IECtarW8dY-dFfBt{H z=o%p%`0@Q#okbrXoi#mwB19&%l%;2Vzbn;u>)T72Qsr2`tHDJi3S?{dtEv9B`pl^j zIYPu3-6>WNJEU~XuL(&^+;!D(|Dmm`<^69}D{~1-lx2Sa`6*9TsGjK|+S#BlZi=p4op49Ziyf102iS_2 z0j#>-{-V<#3tiyGE|b3p?`0(-28!eOYe1Qp(>^+;+!?2hZ?->v2VnG|-gqZ`hnt zIMr$%NAqi?n4?wpb-9u=%E@lHQB#H8kgS1%;3ANZ2E;&NHO+iuBRc|M|Ckw#H)hiZ zkM`zdGsduCeD(4C4P9UX(;0uEVeqbn1zBO#9g}LD2M24>==L(VvRgV%hw8ou-;G)A zyn;~`d!A&yS~0Au>k4R!R4TF6tYyOg>;yCaYzKcc|7-^{v!ACt z$JlGO8p*lQm~rlR-JAFYQi_Xh`(qGR``ColK89hnV&P7YsnzTJ3<0(8%HdPn-R9*8 zwk(VJ;+@0^0-kyTdQsa=Q3YevQ1^@EnT@&^4QQK4IcI%x28v()RP~(LE}klGKY|ow ziXvg-9V*8|0(zpViyVJyaVBO`6s=a}1@}}{L-|om72=(ROKG;B^lxO+K&R%rwh@mb zFe|D=it$D~8MF-hQw1-D5;9mP7pG@upy2YR>iDi~xR=x^OY*FFU3I;s7L~D7&CS+6a7r=0or#Ry+n?8~4ybXWC^V6>Fd;U!rsWR6f ztm-nI0K=FstS0uUxb`YaA+S0x+fU89D^@@(em#NGgqlhLU^VtB1)5h4fU;lGV&W;w zRsXj5d{OG<@fXqahw)+jA7J&Z=-WmgrowhaBgq=x)j z?s($$YKf?rr9FSRf|>ncqH^)KAk4hX0P9)W@7zFkI|lpE#7=*yhF^DAddJA&{lXv4 zVn$8X3fH`0LT@1gdcvuP``=k}^n#wnn!Ijh5@x=^75{4E{cNLBU!QF>#Q$^g{+(b;(Nx!J1M)#VobsXGt*hpx zGBD&XxX^y+N|9kwF8Aa23y~yP{8e@gtMYfYLzRE&sHN);{AQ-(PQ87*<4=O}Z^q5S ze+efU|Kqo6RSMpWt^fP&n_q`v3-(U`eevcpC{F7256a1$vxfxG!$XWh%A189^~-|_ zo2m&}81Ns@-$b_P+>X_F#cR*8Scna4A_Sq%iE|PqR#*JQNkZa4K5fgbz)Cai9p4`C zufKmXD_H6(TS~SUMYFnU8AfNK_NjQ;MtQr-%a&L9phoCv+il;q1K*px@2a)TrSE+_ zxn>BxEU$}Q%@}jpjwLVddH30kURL>SctZ^en2vmr242y`85R8ku$-ZWIeG+m^Lj3R0`pNzcr1W zttQIyR=zN5n(~frU)>e8{e>-V_6Igq*&i;uUC(Dc?#92Unp?WmK~|LiUi2HgSKEIV z5~J4Tk8hi2Bqk76S=1?fp{nJ1xR3cWG)?(VKFAl%JuP;n^={LoHVCMd&yysrnl=>G ztQ|3m+{_lONFVo7-p{{_ouO2{H2B~1mvtiPNtSUHitWE+0L(m~Q%LQxTFtx}HOytK z+b>r^(9sal9&eD6Q5=brmq^y4+lhZQhaZXPBUx(-q5De1DtiFTAwi+zdU1~^c!EEb z=0R}U2=T+8LG0+79EWMwi!hO-E!?SHJBw43?b&*!p~#P#D;~C^HY^$5MyXY2A5K;) z_M^Yp7SZHGc4gP)DdJ7^kR|gsLC*UvlII6oH@qX56o zgqg0x&AsVi+%)QQJ8-n8-drCyr)TvGT)fJKJ0sbpVwE^s5p88@W4h2UdLy+0R9y1Mz`61x z#fm2KcockYG(~I zu=uv>P1&r68>=EfND=u)KR%Atk%__E;jC%OPU{p|Q9E!R%|jA^?aLB zS3ivzs4IV%7KUw+W-l3I@5)tryFZurXR9!i73e4^#kzC#V63SxSoj+UAtojn8$4>e zoNuu@s^bwm5(tdN@}aP4jT?WcZ<-o^?l{Gwnrb(O-LpEH zFk`a3YF68}Vk4s+!~_l+e(dTG#lUfLoopyI$!2=?mhUdZ{Sq|G<~m%P$wzW*9;qIO z_}<}4F}Ay6!tab^T)^*z=e}HxfMOf#l?n!#z`Z2LXER1G>C8`XA|E(LB}_?dA2iWrhT3;2J}sxs^!Xs_2g7MhFhZxXq)cG}vEs^5IQ8X4 z(MR3sdR;&1d;Wy<^z=yc^FGYah;4B=)?-$}K^PFAD8VW@90Mq$;UG+iQ06iMy?~f# zoAHP+u?c^A&0PSS(S+p%FL&FTUovB>%xmsGUx15po1_pQm0K*2|EZBlYF!CP&)<-k{Nyv7>OR3coF%y zA|!5bXC$ApF3^41lk;QxI5pv>BEbqTI*+{Co^gprwdMhY^CbgTfo&vyzQvJn5kEr{ zUMr_)s#zHUke7jl4C{zZZWEF5B&!@~%YpUT~v3^=?Y^mPUk!9^9pOAlo zV>kWToDU;qTo;7#iM3GYhI$QWKd-B`@K2hWRx^h5i)uYqbrID7ASUt~f}&O6U~;zN za6h#CTg7j(T#iTmyj&kJo;C20a{T(bF61Y5Dk)D>`DU|%u2cB|B6YG{GGd0_rA&Xf zY13a3>U5FCf2Y1jv~caZU8~P_&+308(y=aCZPk&US7h$r2I?5V=8)7ba8Q>AuPfu4 zhN(r*MQlH#=(kF|5G{{KYS#K~xvI=TggOD|A@pK5b0*>v7>eMqE)b${UT*7R$#)In zdnp{8;(L8B^L7pQaxy$)t3&a38DPfoXFclUc5&=bF*V{rC;Z)8FknrHlE8m|x83p> z9C=K>-sqQ|J}{e)pJiAxYh(rqPB?)yG!y4qI$cf9oJ&JVo_hnNWwRtN-rc=k!e_i| zeOD|v@4RbIw$&JvL@O+-D91W?Gjjd2+KhvU&4BMaYqHhHL29aiW0Ow-Y{$ui;y4pt zckM<@ZKbJA>s>(XVJqZIMM{4zQF|mMn9XSuG}BO8J@s?5HO=Yyzm{{K@`t8fIh&TR zB{VQy3SAZu*{Kpoobu?1g~veBtFl->7%cI6ATz}q>4`EFl(Opc@7kA(nS= zQ}m+%M{jig3m6ghQs-%bbaRP{`G))J#cgi=)SsHYf^%s;n&;?jQ-WT-c9-j<==Ey2 z4w#D42xS_>4-TUjQccBF+c1L}E+hTK%*jb>Oae9OT6Qw!00Y6v0>VpRG6!{vLEMrS zGbei4R=bnU4>A~-7doM;a?QY90U%n&jr5c=^LXwr_VCWhw!q8wh{@HE@Lvl~`NztV zywLflU=4q|FYx-q{FZ_Rt|2+H+llEE{v~RIDq0cIh;lvk1ND^H(bzT7hO%C4D*;Xx zs>DhoCs*Et0ph0jbcRKE;7rVfX^qU}Ooyt0GaYZJTvh35zXH&&f(d;x^9Kd`xk0kL zBxRimz(liLWU)Td-nH<9xdEnRBcSMVu8zmE0|bAd6|t)n6R)D+z5N}(IS}pxzi!|f zQV|DlzDJqvs|nu+2zM2}OyKmiMuN@KBl~ceDU3VTsrNN<-UBhp;fn#6y2mqXM`P=|c6htI>jPr|FGyds~WJl#CC&~$C1d^kv5S;?3T-~5a+u~JWxapa zwm(ktk>)Husdt?njArAK!YGGHE=Ks9b^D{Xbl_&O&23Dhn>&4Q6GOpFzZ4VMC5Pq# zj}1ApqS+vRk1q#io{wd%+#%{Jg9az4REMAc_h`%Co?7TH25a%WA$XSAd2`tLs$U*< zKFjxq)kpjlVyn=8i`Xg}UnEwa;k$ptR!wP*sMm@868#vZDnVZ=Cd!lkI_B+S zq#WymddHY5#$Zry8oR|1F!sK&;brudV^tG*>o^1h>n!l@aj=Gmv-1YBR@C52$W{;T zd&s(wdKFofqi-XRT)%Q}hmblHN za{#Y9j%DKgXR=(q%d7`H+-H9++^3=KO0wm`eJ@&TR|5grZ%A8JG#L9`X+4hc*QJS4 zn-<4j6kq=-jk58vX<(TJ_Mr=I-zie)C$>993Ay3_=dsh3-n~Ki?sME7%4Q#y+T=h` z&dc2$#%UjrXMsbI)N|h&HnCUvC*;0<-W%aPFs>K00RQ<1Ze9Q3`|p2`f=__Uq$__M zdhv|-DO;AS;k4*h$44r!xyT}G|LV<8^T)@t$w_(6mrS|OBkZWW9A)0`KuOUi43VD7&$APc`%qzQCCo@GRKTIBDI zH|Zm?5&wAR-GQ~|+QeAP0?UrZK^Lk+W=NM^H{RD$XgIxL$f$pLKAn>{!=|RUo z^kgM(wu+8bz<~smt{rYfA_DB%`6;oE)iBA7BoFEpkeDk>Yn{#<$@y0+_sI^n?V z{Oa~af*NE6NiOno=k8w9jkZ_95WC9>{i6_-@KURF)nxpI1gfZ$ADHN{2*{v zwDQ>HqJ{68a+U|P;7ptWz>@VHn880*X><6;v+&eWxCAC2Ts;9>bg+NcZgseeM!xmV zN9QNoS8IQ$v%3bL^&VS&vUl3{N89^@?7ESXbnh42UnhUKzs6d$|I4j|Il#s`xOSq> ztS7cZ#aZg07sqi}Xy=W+I77z}Hbp~#n2$q4MHU(abkr5b9UQ1Hj7=p7yofstLUZON z%vXi8)*o1lsJxPVS1-EuQ_qYV<+@ToRp#8Ym&ZrHSIw&ZH2x)C(>oRiGTenVdZUF$ z8~j#D?BIVVo!GbSj>n#aN}a9PmmM=}hvTDPtA1$LjCHJOSKSrMd-c@%$%ixH&jJtV zjZUudqxN$B(iIK(Y_!GwuIsaZORT>89eCULyHWfBhZp5daaXlU&7YuUvKcFrdE|7l z?#2G9`#7yz?e%@Ce#s*Kt1J2&)1&w`_Q8MsvfY1u=vsc}Vmh%u8%~wOZ)FD=I(`9l zY>~aGni5p^3qeaG(jK%JKVmhpilClUMyZ9MD*Wu#W+Ua2->V+H2Brka7VF^x?}2?* z$KyQ@Z3DI8XG?FEx0h87YwAzB)~nCuayOJVTXlW3P`70Bf<10tH9WUBKUjKyS9V>s zGW~xhR3)LFwr#hn8h%Xu=ki{reIwywm5n!A>HP0(5_?gut47RYPsReB3qXJ8_QF%( zWPWO#%uj)nSurQs$2`u26I{&Dr7S*3b<&^QX*DA{S)=8Ga6Jxso{oX`Vls6H8UPMh zO#6urvW7?Ch>Qjs#*2-9^lejo9)Dc#>Y9Ho24$&Iq1jl-M_wI7ZBk#LyuUfW&;3;p!!;RKgHYrsD*F;malKDFTwyRyoZM6$FV-+$L$9l{G z!hhZr`~_VZkn)Z2vDW+`UB<}p54YvL=R3+~u* z0~O{@^!15B2C8ekkhNNQix9t57p20m;$xwrGD?r<^JF z#A7QuJq(mtn>Z5I+}4yc9%Eo7|6-ioY{~9b2Q&tw6+P=&TrYGfJw*z?U8S-g=iH1q zR>||#1I=nEl9`thK>SknLSr(ryMTFQj|&~X>_*XeiC)h7sOW;_j+bbI(;GtJg`hI@yWo{i5vdD)rv=rA*Pqtb35B z%8U@VM;9ezSD!Av@#banHOq0J%4?5u%1v#prs(ksRQi>vl4${tGkSlY+3w0V|D#8Q z&Tb)fDziKtX-;^wsdf0{x@Pw9$K!Y=dF3N`;@+YuN;q*y+Xl#YQbVOHjXLK1PglP6E*i=8Ky%8{q9aeXc3X-!v&|+Bs#&rmQ3dBRbD+qiBKMg5QN+_y19Qa8{tl1+Sr)HcD~W+ zV4KfT3|sd^a}FcYfXuXaO*;&|JU&XVY`bi04KnhMOV_U0Ry|UyEAOfVU^{&oHB#?y zeFAd9{l&=XJVPDlG<9q}k52f|v(>`~5y3xKX^L*W;~wwXo?i{qpDVNo{ci9;I^BQY zm3UfcB87HY55<2R*6$i3ovjXIQ-Te-;=dUIPV!8co}6^59v^=|4@SmJQw4-EXpG#y1Xucf zhJH_t4m3D$9*5NQu^htIk6ApZ^d2fuDk6DEb++VTW0IG1O5VaYSMnsbcKm6^@>HzW z<(uNF3_c+0JioJvJOP{IQkG~>a3#xzC==!sm%%XKW9(uW2msE>LaXCH65YV6dQcK2 zhFP9WP!N9++Gmp!j(?WKBKRkVV9)kwZ%AH69Gg7pB>>Fg#cYyIp)^a*`%y}V$Y;HR z70u1>1lPzoB-3>~)Z|zMt4jR7j^ibd?-(ohR9XyVrZ5kuxG25*scx8F;uc26<Hp?9;p%@Xenn;01Kpt=iu%Pp@shQ+f`uD@ zSyp#EwP?I#FM_<=8 z*BGte@-m}tDz7xEU(Urw@2kGv=oNrVjxJ96s-ylcFFdMWVzy<#e?Eq^2CbhR&*n;4RSRT zFC<#J7eUE#Pm}4M@vEU@A#yi2@h&^hcP@7{OO1p?{N3G}iOk)rqYbuVbp8UkNLM_FL4tNni+ zvYKFELxWFAxjDc2E@&H0R7Yf7Gy6D2+_td7{keF>!cbm8tBHvpfHhG0S7#} zn8BXNmpbO*xfSA^lqt~0x?357JEM_^XeXzJU(n?4Z z$|j+^3VB`qPE%ZC5QU7i6dIv)*I@#BsQV*`U?{@{iDJM_gr)mI%>>^U5j9xoU3A=P zNlFx?PLEZdAbmj3Qec1W$VBC9uiV1=;FGTP>hqR;ds*IHwr$;i zP+^+70bXi)=*j|&JK?%8T_I(<9bCvn0ZfJCl-PYacLnad^CClzSMkl7#(s8 z0BlD8vc1!a1=9&RC7_KxOkf+Q1aLIBZ_CE$q^b&59!(X6f9^Ur@kTA*hpEzmQN z7D%>E&I)9vy$MNyl)96Ng7hSskqtcGU5rZhB{U! zeqvB4Wex^@9*dXj`BN-YLe-9CR)(^h+M4Y~Wm=T?0!$25+1cx?0~j|W1}AnO2s0iG ziesItm_kHO73`71wAX*tYha!owf-C320-Lk2(=AD^;9jF6-RvAU!0JT}Tg z7Xf=Y%7|2M``A?y{$W~<5QVpmn~OQLJP(-LOyLqpZH5`WhnsB!{32IvI~4itHv1y5wCmGjS-B(;kJyW}%)ZHmfPcjog2b=U!P8F?JZMBZImu zSx2Ztc7rqMCI)T*(6Vq6hX4L3I8I~<8s6zOP-(|N>aA$cFQI4@P?T= z63NJs5lTkL@o~`U^NOvf%usk23HouOk(-;ctDFO@eW%|NWkHsP;2>gLo@+HF2*}Zm z7y-18D_u!e(v5%gzLB1XoQ!{6`}zKYKb9GMK@Dm2;-2&DO%=9Poz0(!xa@g;!jDbG z`t04*o)hljrm5l*VRPP8g#ZXkF?aIXcc++3ebx*Yq@MD(?mqz69^@>c`OQN}?<=sW zISXAu$~(9s71E3OyaxgGK)9Tv93d|IZuQwh`;Y&V%36PK(hur$lJ9tkvo+!3()py* zSDB{#B(cqCGv>O^Xmrib%davT+*GSo`c6~yu-wgI8ZE)Nn6M6cHnVq9^=0+}kgELk z#ia^AYdhpt&Y3DQIg=*(l|xmQ_}#`dv*xmaJ#=&A8bFsm7yT+srWJ-?o~SSg5eCdA zG!*+R$%TKh|HVI?{$kknuoIc7lRydD@Xe zl{^^9m0z}vubN@RO&8llYaWO*k=RMXv@#YDksaw&Z)Ee>owBcTIqiM&v-AgPALQ*^ zQ#6Kmjw(d(_TqLjuGX5Cu>Hld1V5RCtuoJdjt@8G^pH)N zS_4`Ve4kHKAeMPLf?`R;Y8})oJyBH-B>2MRK;AKw+d9D7*$#F+jI&OWXpE^aye#*# zX#S;y*?Sb^4rQl#h&eM3Y8UCuksU%B4U)`x)keRSHOU6Ddk@+{y@zYA?40HyHq0nH z7wLaY*^x;9f(NU95pT}g#U$}Z*jF5NG7IdYBU;hz{iVelT4C#Lt z*eycwf#Et%&-5k9Kn)wlFVuxevK+$!CEve7sZ)vI7b%HSr)}U;WvGfr^{Ct)!DA88 z%IA^gA{Yl0b@7s};6m^(VPZv&UK1BGsba5B{BkB)?zP7+YLew1m(fd`RI%L}xxk5( zVDo@`nbT57|4OHs>Vg+Ltx3|l-f4f8IF~$~R^Y0qH#5Wa2wtWi?|j1R^xB5E?|WER z{?W_k=59ZBb7jmlU~Li12EhW4-cL8+u^Sd7csnj0>jk~p?skS<8Swgqao%3a8XUeK z%sKJJ6lbN4rRG@EFZWP~+!E7<=#!1O0i-JDIWOFeMqon2+a6at%8})5WWaE~AR5m;kTvmMi*nE)X>ch4emNyso%~EjD0Cfvs zdK_Nxq3o)5RV~SuUIh(7zRo-%C4Y}NvB~6h+bzqF+ZB`6`-W#4c>@v_QspM)%x$&( zT{_N9lktj5dF@#!q9dc6(CS^5dAg#`+5Dx&ZYTUFT!d2`w7yj9*M0K^N3E zQ`aleZGgs{m)t#NlF9hGE1}rsN(1d8?s@tF?W#!c;YCqbu6E6;Xogf;(uqh{$UE5}eEfVogW~dB@^Q`WEOEsS%Oc_q zpHM^~0T2TBH${Ixyk#reb%hTrbC6*t01|E4JiTRBad}zccf9eoOL=jNDbi_OWj=e0 zo!874-pd8m?)aj$tMNA)5(5|FIv><_Xd`7LKLV`|tM#dat8aJQqKS?UHp7(fgs#Mo z(u4xlyG@hYAX7e&_pXpAYc*X)ZOUUmdrF5HJLt2yp=W$OFaJb>2R>2u1`ZiC}Dw5;eC70Jc*^fMe@> z#%Dwr0-wfV2!TR-c0OBZPhvHV_B4G@@<600yheXusx&YKI*_&-R3}QnMb$mEdFa_@ zXZoMQ{INAg(ag*Ts7_!$iYjp&_TWPB@R%eF4@!vAxrO7CFhxiK5~y>?`FyjK(;j*w z6QudcM>HuKKYW}z?HF*PTc13e!|(56^dod+Z~-|q&R&=1pk3jSPPUDB@-2)XK-`ZL zDPn(uq^WojtO6P}5~vujftFcuBqltXh$bP+y?Fl7OR(?)P3&6dV|=3(=>Y=&u^1Gp z*uPm2ibsi6bMAOFkSr%s#j2x;a-vtpX!%eKOQe<)neWB3_ytZ2FSf-ma9bd8E@+wG z4)4f`d{N)M_!sZHQ=f{3AF!{I;-Zphb0;sE?BR=0i>o$1N*6_LP!=fDE)2j3aso)?4$ZtZ`S zZTMK&-q;1=0|@nkQs4&rLFh^NgUt?v?1unL=Mb$9)+je;~zMv7! z(@AU_r^H!GSZS^kF6i&{_BZzaj1FvNhzXpi`q^1iD03irI zh`1o`lcj~@?%5$3vbt$^^-4C6C9*u2Tmk-*#R_2HoH>M0A>vbIiX!frj9-5AEk~55 z3JHKfNj-pwAl4Hlgknuw>*s0&SE?INqa1 zKlw1@N3d&$8&mD%wzjA0Be6+^&SiK1iI(|3WU`sRc^!S{?iLm)vD^6DS--$;5!l)W zd17f3>LrH!kDE81^UT}lTmCcG9vB@(v8CDdaRvJE&5mFggwYau(3f>mY?wU2* zb!GQbIL0oPMI-qr|CU+o9Pl5ymcbdSvUjeRKXI;?KM{Vei%NgcS*{>?zz>F&gA532bGt`|+iR*G`P4;!{Oj8>BbC|t{U>Qt?h)g33WFE`*s11)r0T0+zJ5M2mp zB^MGQQVM3Ix(glA2?}zcs)l;9(xXE+9>0u!%T0S%I@PR?0Ggw4BT&1*hK)DE%0N#e zb)c8=quqmF+5LZx>4V4%BXkZp|H%p(!Y{=z0ESyGTvFIpEmUxxEBGhi3jWEsf`5Xp zU~j@o_XT5fU7j--&I*bC-GZ%@(!I28Kb2j%demNDTR$7+ll9Sq-MJ1bZ$?hUXA~}n zsNaLQCvoulaSMyKOnSnM%y==U9^c!C@4 z=By_?i`BBgpOGh?0~51IdUY|`{4S?dEE z>Y`dVx3_V?yzkT+Gnaq=8b z#k}-nCEuXiQyDl8gzZ#jd)TJ!HNo>J$$Vu~-v|n@1*Lm$6+)pVGX0P$g;Tq)Y9&&ebV87>Y)cDVH0Urv z>jHkWbp1>4Gv)8S`ZN~qt+x^Q*)lz(F2{d(v9DHV^CEgimE%#;pytqP!U6l0=yZT> zd+T!mc9#4OsmCGu_toJf`rXsex!3!C+yI|IV80g3;C(L)wv)AE1c5OjPu7OK{2VG_ z;--ooBMv#s{xbA+5Ru99v!D=E9%97W*iRJ@fjtpLFtePFUArkZD)}jN(4$P+Posx8 zL;G!i5c`a98&ZJJx#K;@?wm~c9;2TkoDMqqqO^AiT6@k6IUG3LJTa3*!z3XQK?mDG zjYjEwOZkZWK4X1^LU1N`jHlY)lL*~oY-5Dtp-Cxb&!zN`6NQY)GX$ycX-0=Ge|3li#^e@#MHCN4{$#V7>o z;)E*pu21MIQR5{F@I_vwKsyH)D)fagIy2gngv@A9!0oKi^@~U?`*v0^3*8f^mPX5e zy{@5qOu4j?RM)wu7P!C>s)9oaUFJxsibGAi*pb%=?`|jTC^Dlp3 zMP4uHoeruP>oWu(a5ZG?!n^Z<6=6M74T&owh(ci(M`G1%Xn{*4;b{=98(Y)RtCw*8 z4n)q8iQb+NiQb;T%ZV8QTh49B;O#Vja5FL#x)wwvo)hp1l@l;VVmRK!A~fleoFO+Q zA}0woJ4gb<2)%0OB7%j8B=wJW*Ed29M)Lx#C!J>b-&&*RS>*=)Bt-xZ#U{ru!EEs8IFU}p$5Ny>IjHJ zow5nE1-cDgva~79@7#99ImG(6E&-vQ*D8TXqATi-r%ha5hqN<;nuO5XqSyq4xpuJY z^sxmPcS9@^Y= zMjJ#W*bDwR16uM{c;uWSb^YJ^HfGVZK7Z)MOUozgbyuzh+fUo(x>`HcWD3%%SrcGB zb~V3>M3hQY%@u0-@x^X=TMqrpT~}OHbv4{OCC<;Y=DOwgwuLeGdwJD=R|A`x`Gsp{ zgs+8*2eD!F9n#Lw(V_IDyBVw zpJXMOq`|Fq;nxy9S@rC1pieOdPMXz!?b@LL46(lJ`tO--*Hx=heDwH&m+H2cY$mxq zEtWT>qTOpx*9gJz`5dl)Wx+aYR^{h%_3{Odj9*N)CeXmEXeb}~{v^VcP@OOwAEj75 z2OiBGvO)j?iB6bDOc%k-3^WvcwZ;x;;tuLHnA#gi!Fj`Kv zSIa^Sj8hHHY}n)vCpoN~YR?xGFntikfEIr_0u=a#y5-BVF4?qyPBx~>Et!WfCo5|Y1L7rWKEG+SJ%oT42OAX*OF!(|U^kCi(dgjF2o!6HNTu6fb!nx#SKZ8cQV95Ad4 z)d70rtw@)EO6~LV?>km<+LfSB#LmLYc-~|te`8(0 z`dlt|!t$(|s=pZ=0{Y(mpj z^v@Hwt;n)yt2RMU3Y(4dAdz~J7*o=?6x(^WG`2N=_p}5sa=J>v%XlqPUvQ{aY_|D7 zy<$H5`}d;X$l0c@?GmAhG7U&k_hTLBdz2u9qc_VEewNg9Tx?=(KaEqKz0Q6k1IBGr z1(e;CeBO2DJ_4Zx#HAZ3HP6~=^|oE@Y5{mDmUw^}<1#~_7H+TAKKU zWt4l=`z1+!&5S@p*i>YwErvE>1-7H$mV6I?@p%Y`fZ0u$0mr@U&H8Nhw)p(wp2&aX zNoG@g<~x?Ix)OGMLZe7z7|MN$u|a8g?&FMv31&TtBoxzKeC+C32C0X0kV3}+o=)E` zj4q^Xzo%lt#1ZepVvKP}O<0|>uW*T@po@0LU+N3<#~wNypWG4J>K$?HX&<6l&d|Pp zEz9i*f1ENSq1l!iaFN|i%Aj?+>doGiN{d6}VeIPOQi=T))KM}wW#g`EVwZ1R&Igxw zyK;1;cQW0ro3<;@u0Jr-lX%yFO2Vg{GGcW>^*oeDQni+Dis&m?s@h8z2;=gbc6pml zE-(gjbYC>PV9IrvbqUTigg?bQaZFBs?^+k1o@%xbrn> zREP{3fgYtxg)`ojjOTJsmke8ZHbr-TL1o~KAP6iQwVxY$# zmw|!!f^=41^G4Ar`n9YT#CMIMlXfjF2m;*FqGKi=YSzkUK+>(XDGWHQq!Z^}3*kM4 zP0;w23U?2oI`5Amp*!i+roB!&9v)<0K-Cm1Jyi2V?Y9rHAy4ReXlDs7747L`GOVu$ zl;YGui^GVqAj$Jiu9KvKBZdLr0<$x6S+9>6_qvD6)HIvss8B>J&^H{Vj@ioI4LyGCb|GQS>l^Y&Y^clxuTr9^$EjD<-tM4I(18wMH+SA z;z5U}kHiFF`aq(j&MQ8Dgo=E*Wl{0P2P2Nmp2ADg)kBRzf};HdiBS~4hxJfHa2LQN zPn01@X_U_<%pg%&(%grrFF8PQyr+)R7_@Xw99YCt2W>WiUwY--QD{sOY-rty+`ODm zl>4rr(`fk$2I(B@Xb@B)0}d(BJqKotF6_?k41}yLu-R@Wc+Z7@KsDFpG)QQZoIar2 zsLuzIo$K*I$;NL=&wn>5>bjjQP`5QrTdq)7)kV^sVseKJ!8fD z)Fj?6i$#+~lovxbd+=gFqAbalyn>6++KDWop}THg(XJ6sLq>v;C0R+Qx2>3S2mdq7<>Ft-aPF(NxUEsqga=8`WedWFe;l2<^Y z^ybQ4UnkxF%87h(cM@mzQU#AQf&4j#u;^yE`FcG05=>-&h4J~2y{;fPZ^N9Pa}7c8 z&s{k}_=oc)eF0?&iE~9Dn)h&Ge3@HI;ty1R7{&#Rf#EQ(O$Y&;mpco^uLSNRR}?eoPdXQFsXJ%`aqfBbxJnI zgy&#?iCnTmlV%I$kgLMBZ5ZJfBKK-;ZnY~sO%HOhOIAMRsnDBcMyjq|Q~iBcj!A@b z*rpq$o<~%eT1-$VD*JnGQp5+*Ehj7RY&>Uhm|ex7&L=wtvXI~D40(Hn?o84XMB0;e zhJFbkBTR9c2ADL;oYGDr5S7`vt_Nf@aeqXAh(B8pC<~JWLO-?eAge+zQbA`#H-HS% zyuCE%^8vgS?F59PYF=lhH_BR$L{07riPTfuv1~%*t}VO~#6+C09BFTDWaN}m%_iwh zsXM1y`-z12)|ABLsK=9YSRPm#lXWC2=``hm?o;&5m0Z`h$OM?--sbhgREJQ^ClWq? z8k0@i$VV&4wq& zU8xHE7c5ml=pD;Y73r}pL9!e{~4F3mT~vhGoCB8Ls5fOFsD-s$xTlyd4^;h3HhA zy4Y)?X2}n}DH^F2<`tZA zO{(i?S>&Bkq?-5Ws4?sVZ$6#JYzu!ROAlP?wt7Q6*CKyb^fzb1$ zEmjbh1ihy+w0MY+y9gTtGAm6&*C9Rxw;ePJ2^PtwE*=?r63#e(6G0-%kW6iHvZ*-pqrV}Av!kDogqYi@9*9k^J;$f?LM4lE z$O-I{AzgvI8|adVCp>T#$k4tTu9l%B5AojJJNY3b@C`YM3!b9@H{H-X;;t1J*uq-| zUEp4Qymx(>E!4TaD<=E4FYuwVK<+_05+HZ>kniNJPrp<0{w3^xH{w(XkX!gL?@T_i}H8g?OH2PyZIv5&emyxs%e5vzCFKSC=WY=h|> z;!1JV&3C3?f)3r@u!J3Vz>ETqUxGnr805l%Gry4j8aTU<7d22>hl17}iO2msQ10;n z{(nMmfjCqqd8AMNUUI8OdJ^nbW3IyrXER>$%Wep6x|UWNePzYWm0khX!XSmUGKEe{#{jXv>bg8$ z=I7(lJ<9%8li$z(OYoAZ%kWpoWHu-M^{-{W`IgU&-=s_Cn{U5Ulc@m7YJ96=cEsIaH_JS~J=l#L3f2V|)@;E(5TB4K{2;#)GZ(61}U&%|h9 z+4wsNPLUi5e*{%8hGN*EJ$tc|c9ToiAW9vOKsZ8w&led4FbjXMXgN!5j8dQqp7FYy z8YT%8%Sg?htt=fgq>@61d*}s9sA#P2^!xwzJ%h=Y1pP7TGFFNvowEtIc%u2cqL@mg z!joJ^9A~@A&LS0<%)E)rU11NUrcpdsBPMCLh^f|YHV9xV>~Tq$#I;Mg7MzOfq>Nb??a|J#@>pd6&eaagFY7&_GA}nv4VBq*X$RACKJaG0~ho20S?ed4Q zB|D54d#c=M1cX_ht9shX&N9)bvS2@rqggO9U1Ywkep_u%+Z~?u)!s7MllYd=5`F!D z6Kyx#ycRQS;)0PXn5?9h0RWUJCe46)4>mc?vDw6_4e_w+ny9>TSvFaTJ(daY5pa@g z#~b`oOV<(-P(2Fg{q)X(5Pli zW6_{TC?k3|;2&*SzEAr|3+`*ivmDZYboF5ePG|80*~mg}pN10N*6|n=H+T|y8z*t9 zN6%Y}_3Ey7;hwQ0XWY%}^yM5bBZpi?cFt%v7 zoK~x@`DAJ_6npFV&ZacNLyA z272+>7KttFd#(M9P>#6kJF?X-ovdvq(%y?xv5#H7FKRNUY^oVz8jNeGJzVy3I*jNf zF7XID&S>2ipOplc!5`Ja!)Pvl4rz?iS>$2l&sQ0q7uIl^JDOqAgN`#;3Y+0n%;52I z(M#tqfgU~CKNPny4070xwT}=ulORycGbECLxxbn|q*!3@xgvpW14PXz3JcpzF;Lh# z=E;LG-}IZscGC(aVJ=pWxaBYz!_Bqp^4L4|kt5cW^3HKg0a9s+$y`%^H1nmYS_XkFyEUJAG)}EWDkGT}y*LoEF|DM-_Pbg*hKAp;|U4+|0V0$PSgGwMzz;ndMz@ zx0@XzClnWMJN-g-IU9IUTU@TxgTC0ZF8@3a+dP3Ggua|M! zwBdXE<`J?x;UoSCL|v?TZ$YagGVv@zI-2J1Xq&#R$IwFgQ_YOWGMr!iGCmmVqlpu= z^zxbO26^T*Trf0$=lK_G=433H?XFv* z%Zv)O`@E_78uGW|uIQItwG|6{Bg1j!8ZSD2RBWqn#uI1$XR+Nbb?i=8Hmgz$2oSX- zLh^`&RZaGP(af@~cN^3-L$*R!d!;P4@Vx*ef1K=N?x{YP5Ne`5iZylKG_!~9 z?0BZxreQpt*<=PB^E@?nBg$DbCtg`x^YF6g))~;s^7~nB2-n|?NM*6gMao-ca$fc& z_Y3ei+L|bWbIJzblDvs{3=bsjZ();n7hgJH^jVqgfC5{|JT zH_{fuG;WBY2bUIN9IIk)G<)Cacnzzc2!76`T>74WG!j7enlZ&)T$n(B;l3^}Zpw1d zA+I0$a<^(<)#ZkPep?JYJd|yWFD_1+Y9lsSqRsJt(OJXxUKM{@kN;Lvq4_9l6NPvm z=R3CE^B>1Yzwue&_~>F=F01Qm$uj{TU6eIb(zfGwSp`BP?&cog#RUgq{*d(^{J3F)xnW|{mkKW~PTS3Pr?LLf@f_>JJ)5en@2@@&UGcgq>s3GEA^y@W z#E-Xs<*F+9-k<&RU%Qg`F#i4OGe6DdC+w=QBuu~N|)ZJDLF!AGEai^|+%QBHG zn*a5txL1S=?+=?XM{GnHkJn;Ct&8Eh?KZDjKZ+In&)QV*SH1l7x>(BAm)*VL z<%hPfWO|M9+n>vOF)#OHEk*r#xn?5jMs!bq2EUH}@OsyXE4o7O%Rv#NzcRk8M9=Tq zm0jQa;2|bI2zIz_bt-YDa}M z4V>?|OX&yKrSya2Qu@JhDgD4@#S~eNBYrQ=km7#VJ&Ny^j#w?M65WQ)Juiyo?V3%0 z+Rcj5-geNyaf?7JYq&7@Tv(tbR;*jIf7|-56cYfr0Si8Ye%`drnh#*5Rki`<7lM{& z4R^c<1bQDqq!hHZrZ%KCS`OOF36E@!6@%8Vn!BoN8$NT2;mfqbHaq=d*ted6Y+k|7 zpf;Q~5KOUR(0WvRerFT3vkRa+`HY2sbYy+E&pM1rR=8nO)%e8>q(_=BliJ^BF=# zN0L|Iw&34-x3>6bMOPa8$W6b4m%=#9KvSg9*7duRyZT?2^_W=8D*zPn(Oip}MlOXb zK$urHu6pd79nv}4V6xKb4Yvk$>BvxcSTla5YM+-IhPVEX3{-gT^Az|2o*F;EQ|Je{ zxJcjl3u}JDPXFcmx8%;>-4`T(W>%=0zlmf$eB-w3%kB{aDg1t{q~8j)mghO^9W%&O z3I&G0+nu`$$2JTZfuo{zLNzNe&C_V`-9LLxW44Fi z9T%W#{sGCcj@yafU6=LV7TZWwdw9@Kl%q6AlTXN`8t^H}eZrLQR3q@Yd#Y?!yr%br zu{z{L8FtmSby+l`-c8Y8gg9mD+Tg2RI*?-EtN!h7Q0JqOiu|yDbLe)(MmVu+7>5n2s*HvJ|cnIYjpu&Ktg^pKQYlhk(nAC3GT9KM-|K zcHC}y<#(D4UOTRTT)?&Pm`(;O9IhU+Tv&UcDqhKUV0P-1ZaP?f&gWqZPc-(x8iH~A zXp9?hdIzH`@w>#ij8ja^Ul~a-h1zRST8;E?qqX{jPzY0-OVa!hCr0K6JVsI;ra~qS?~wx@bF7p6ht2EA&9e>vRN%Q@atsxl4rGku@d;l+B1<`(QS>}Ah**l8 zD{d#-ZCS8A{IYye;0dInBaK3X+S5I>X}IkB@#K2)>Y{}pw!A%5ugOqtCH+p}8cWOT zEc?^lFEJy3ACaGC!q-1B$Tl_imt-`FxiZ|uUL9MV-rr_)khEW(O~PXP=f-Z#Fapw) zh@7_6PGMFzWc2>j23l!So%FA|YHr!|#U~GWz$VT(#LvGZ`*`LQ+C1}~pqSbZ$0a@< z@1_b|v~Z<8g2{-TH8Fh?wG|5w6!U8#!Zju>b0bWDn#8fUbYjWr4_d(uK8?Z9?y?wm zUD8~8zL#dQ*d8jN+QwFdY8U(@-;EF(4Vn0R}0-&f0`KKYDK=J1#dRP`2y zbs~^AV@(If-=$0EV%fEIErKL7)-~1mq**dEXcpI`ttFWGsW#`cDp10d@-?Vg$lBAs zGoNFBqsQT)dG?j9rvdhjJi=6tdwBl6CajPqacU7R2&dQo7%m8E(cLfb>19M0e8r?% zBvFFrHz#J@G4{KwH#4~9IbQzJ%?giC3uYPya_2z3pgZ@{NIEyJi%nJE$8uG1tDxoxq?)sq>2*p;eb$!3RnU;W=2iUoPq`SQFZqH;)6U910XM!$ms^+%@3w%?2 zPN}Bezlv6+*yV8pV;8?!l%YYQ1=ph34uVxAqsyFn0!LgUoSMIv)%qr-;>FOFJYp$c z^JUd<>mo)D+cPbB7(O+7!ug~_19RZ$0&1MhOd!aqZWm7&(g8JYEZmt?vyJKv9#+kjE#-b1vg$QI1&wQul1b{dwXM7sd=M^nS?G zk%73JpxnTGUVe0~=0^ELI?f&m*H~|VK5vV<90v3GFUs!hOL0dw&_n;J=tbOZ(KPK~ z$Z9)2Uo>);&Br4nTE3kr24^pQ&&!*lV}q~kSif?G{Y#>+C?e8-r3ol>wPA=2t$(G( zEjFUbm1G7^LWUvy^lp>Sx`CqxX~MMOAr?U1y7Zot!-0FuD+%8>U#*Dg{{jKrJNO z67!Ue4aPiNR+gQETvLqUo|aV%!<|S8ba?flNLsoGr3=Pu8Xz-QSj!P;`Z{Fpqofm? zEXfeDXws$(7j^EfyX%$+_R5JESUOl|$lYm4b0Syjvn#htW4gFW8l9AXTl?g3Wc}pj zTpk-x`IhIxCz(;L-oeKsIO^Gouko@|=l?BBmOI=V1ae8xA=3ge=;uuARZ(8G61`;zS1%Z-c%~9gG zSm_+>53a=+Dp^W@i~)!e`!6`_9nYVK6*Eo`k>c|(LyQ<&u!j#bkQB^A>NyVj-ijyP zKYq2B0jz#@3_D(T4+G2wU#yAk`T< z1JIC8Wsu_@i`#%v!zMzeY;TJDb~hwNpr9Gz77F_a_I+h9^8z?P|1=h1|Ujou8jF5g{hX6dnYp} zYm^;1GLN!;mK$a5u;=8i(3VJeuS&mAYKxwuK}u)IEWsatQNofXJOg35Lf)D~k;_&9o&8ul zTOVdngak$%R`fH-9MBMa9&uk12;dn~ARxpE$ep6)j5KkMRx=f?j}#-)MHyv8+C!BG z3&_j3jz0PPx{r{Uu2(Tg>1>^4tVan;){`v4!Vi&tt#_DGH7%e;6yaG4L;*=+aqje# zeK&l63iUZ!mPEbxM(x+CQ-N!R3F-vM%+esxj$&J`p5)w*Or$7BD=3Pb2Z+B`HJIvE z=>dgV8em%C+?wR+O-)shL`;tGabl=9rT-0ez$Z0J8T{rEM&`#DTN!b4lTqYRo})Pt z%KgX1{|%J~5}Bnoup!B|?3;)AsYX(1%TWw}k~ZuG`F}&Du*u9)3%hB6dD%PVX-Q<# zsmxK30F@%S#=o_87z*>|3*8FmR`yIGl03(!3Gqr@5;0j51WF9wlzf51j0w`$=N}U_ z01}#|1h65=x@=XL`08dVfjNpn68L3~m-ig#6HlPMrU6c53p@V_<8%tMrho{A{A>1q z*#+CmOpT|&a^;w-WDk*1riX;*D~o7GuyIlXi+vsmy$|JBwF%AE8JAFgPujc_DGqm- z0?%>~(xad=M1!`Ep+1jm8b>{y*-_Nn?V*^CK+fSg(maCqloU)d4gTbS`$)tV&V&r< z1(_fZ-|otemA)+Np_uX55J1g6F9c101GwgUPh{i0WyNiQYE!b2vDt&ROoa71h@l#78LO=oS!`T2E;%t>ZXU$yJJ3C&pHEOXi(dN4tFz6 ziS#TkMc}uF0X~T-TK^vBYyZnD^Ae|pJ3O#~Ju8Pj_%ym`VLk4*1HVOlvPA(%TIJT` zVbVr9-P;Sgzi1)JU0?S{x}S zJ`;q%&zSE*ms$CJosV)Y9yJtA>Pi+ntKy>56F1qq)dy}K zk6qw7=j|SJmU0Mx*fo|7L^q?l4N7J8hL9Xv*#L5~kK1s(p zTLSwHq(AezMbof2-3InBu-iad8=qR3V8o@;-{@G>`59L{@Mtazr<=g82zD1p0^)V+ zM7%g1qUICq3XS{m$Dx%mz#W3f7RwraNY(^or299{y`fHR$Lz6A-O#uDjNXBUy(ezs z3?7O1!4olmN<$?X2fTCYPN~&*c!xN49lnQa_Z+>Y2r)?9R~k$bZ)|!PkvG~LWFi|; zh)3l1pN9gxKIQc4Z&qPP{*5sY_INwTf$VN)Azb$+k_Q#Jx#55(cfPP6@@|XQp>-p` z=?d8%!%mR<5FU6Zp4{mG-9^JL(8zk91{1XG65#BAvn}kM0BsMd74hl-MmFORHWKvf zBTX+l)Slf!KfdVLad}t=a9i&IhXINXU_1uR>LKI;7`qC^*|~jUkyCb;w6_5CNQaqW zvpEdy@uzX$so>1tet488B0plqkrd^AfC8hUasCN6^WwM~*~(ktC=1$K5sVjEBsnwC zIE_Vr(8oc9MJyuD45%G%95de!6kI6s(z=Hw)@cs8kf9t>RyXE)%LC^mCb;+h; zUj6%jw5#u5mUq>%JXtQwzW?LU|KYCa*jDcEY!5e_t)3ho$?~(+@ey0&Hrqk|KDONe zKOWoLfA-sUIE)|08gfpOP_-7pZ^~_TbXqij%d)oX!Ed^r#7yBXi!?t)G{m#x(SyYP zRtos+e+iPSrW*bVdBODZuYWE3&9_`Tze#7{H{X7z6k32}HNI658RGX%Su;bS*WX4? z$HGcLiVdqr1A#|{z!zJ!;HCoB?OnJ~4Kgxe$KqggcOsU4Lh=U-cZj2lzpc1?1gu$q zJ?6aKhcqM}@tYgHE+u#|h@La7=fW@RWk{?g^+e?C80NFk!_c4jW*kT3jKWD+=|P-0 z_@X1L2e?m=7Hp0)MA-^6NzFnxUvxOS{(^KE`9+1X1c*!!25gQ~H?J@(bn}IQqf4*) z2Od;Y6Y_$k3BTE4PaYU~$pN6xfOTzuXjnk|P8Av}PyM!RJ@qXRGWBCZ$dsuQ4C8WZ zX;7~9XpTEQ8xkq84?q!n5-G9U&{~EbP(r?=>nVAl_9Jni_9NJE zn)d7spl`B|8$WLnC%{_+**g71EPZqG=}$}8ev;-qK9UwmqRrSzz3(d4RCtMh^mgjB zE{o19eb2VzU8OyoY^N2jCTV`cw@5=AR;ZGJ#Ak>fz^3R2vnl$)+Y|vfnL8t!A$i-Q zB+l)tF2?M+dEhom=Sm7YRxf-Yyg7gn>CFm&aPQE^ocu`26=5t@5* z&u2j&AZ@A|g@qgw{6u7;+oRY>BWcNslv(a~-7}wme*^~PkH&!f5gL%AGN+r4)&R&e8g-}E@AF;5 zujT7+-e`)gh$UP7zy1GzzUg;YLsyoMHtmYP#4UE>=8Z<{E5H2ts8a_$e-SGupvmjs z^-{ZII}tx7V5TN34(U-}HMfuMG!W4NDBZSowY&%A9*!;wo+BNqWya$+#6#%d9Aej( zr^R;Ib!bJCY~Ywbbl3OQU9?)u_KvYS{j#gJ30IC)HQt0r1ill0R$<6qly4de3#i_0 znv4cK#IcUvO6ODAP`(!oc3$vn#Z}*;{&inK{PD)JStY$C_yX3AWgvhGXDO7cZNyrZ zu6OdUDE5#EQp&4xJKV(O<-EXHm0d*VGB~q#iBH@?gh1G@2_n`&#=GtY<|LP>)j8o4 z4KgEblaa;@(gHev*y9S+gb2@P+~p$5q|PTJUuO^?K}PL=To9okThIv<1nsYk>^K}u z!uuFQ(XGp9#f-V33sEsu<^;Gz-W@;>DEcO9L?V3=yLx8rNRu>)(^OfL0F$|K0D03? zPLy~umB+63z(!9zQrd}lPTlBxTWhE?x$KS_wRL2@{I%0qmL zdyQz#xQARZ^;AP-6#EX_Ya^ z*trW`!G;h#unN}k-~<>?9AS;6Ni2^ZXN~nD%w8lNd?kPbhvd;CvJqTBVEBZ99I@6zWo8XsEQr~m=bEvjcoM9h!b5iu7{vF&f#0Yt=zT&PDf zH4DFgA^f8Ke0=n#xNmpEWmlH6*t#ise8l$#GMDhtg|HsanpMe~op688`)m1)M~D<% zDSwEJwBq**d3HB`IBSM-t#a0~fwmlqX3aZ!*)9d^HO|Mv#lUeIzl?Z}-xLw!2RoGe zC-)lVPtHZmpPY-BKZ#f$4Gx6==uhJ%OL5+RZr6O`eYawVe*&Q&Kbg>vpX|^N-7+Wi z14w#?&<~*9*7py^8peZg0p+=sE(u?ecaG01C-^6LwcldTryt9=rlR%ii8&BIFPTd4ZANF6MMIradn*k6s!SW7}~&p2kzFubG&Wwh8m^bl$nmJ;EX~2~ z4581w`)a@qSGq}H7eqHo*a^{%OSKE4{0nr;&~Aus71|Net-gy&*w7z!=J#q9xtoBs`n9aqHz?)jr>6smWj)XD{r=kn( zf~R;!LT?WR-++wqhvptCrC#Z9%q&-BanTO7JJ8;uQ2S zB>{=vgUah4gs0X3QSxp_^~H)Ms+c`sa;8mw^}d!CK9!)$NgYX<=A7glP2I?cNlj)tyOTAy@x*?Q&z*A}Ijl!6=j#(_jLI$dBELGtnmF^S^TqGL zVU;>bnF!E6j`>c1ZcBh>O})1VVZ;zpV34nm2Ue@aTsY-$CPMLTuSWYMOMAHC`qxapmd$#p>mxZ;gW zUPpAKqBl8ya&B^X7Ac*e`6ntt^G|k+wri=8Nu+-wl1NkV;3DO|H|T^8g9|2(k%5DD z$F8038IL)C?tz|hxj zz*q1zl2c+mWaN}t4>>tyz2K(xV$X9BVE)_$m_K)a0?Z|dtoU*x`@HaSR7rB)*BQIU zK=}bMO8L@FgT7qux@x$8FWkr(QHmoHkt14+1)g7Bya1*u1nn`(cF=zv0YY(Mt0r((76z6({*s9x2 zj$Y+G(tAXj1-XI_v4A#`4k>nq`Ypbm#zJEiNgaZAwrXHN!kn3Nl|V_z6>XRV!jk>6 zlHDgTT2bA*bY+X)gAicaoI>|8&y{!pb7~uZ^2O!dl%Jv(EF&Uc`LrcH^+j*MzUujH zg`quxV7RON;%d;=tCTyuvulff891MP*2en_+CeK6tK_%to&yIQwo6?QJ|5%S)t(;h zJ?8!%?H&YPANa}kJO=%z&y)P8&lCKo&lCKo&w-m1_bHL(L_Q|pRTQX!TLFCpYe0bXZ#$87;_mv zCtSt^IK=2NXHm;OP2FrCJ0 z4^uJgTU(kr5@J4`HzDRzdlL{vFmdrr1A1=Rb*ZU4gPXLUlQwBTqk94Tz_W8+KFLga`6Ps0d=vCDwF&wewX%QC3le$7W`m|@SdUhuG*V9(lE+7; z_^i2ZkB=_9if5QRS;9=1)<+$GNb#mERv()!zxlY*72!8skLPeTD1bq{x7480aK4f0<1tU-V=;}PzN)TPXzOs z9jE1eVSJEjVMDdH1%7n~RFR&EaH2re>Ki#^vBA5{pCyJq9K-6uvIP*Vf6vjqnmHuMo~)c(?>ff3C0y`W++Ufz)oNd(9T3 zX^D_9=Y%(6n9FDcL(~qNaXIRNt&nsq$7`yC%}JL((kIKcP5P8!O9nXY6Wz4p*{u-D zyK>oft57_zSF~$xoAy&f+=&VBV!{v(MLPX^saS-Uokw!EYWX04LL8lQazT*K)rAo9 z#HQ?vYePh&OBd~IiFyzMJegCTKIXaN3}B9Kn7_Czb*LLUwhuXp_IoZUJvE7<9*BAL z!^JsQJ4l>`djz_RfvZY~i&zdTeH9RKTVX|ZOa|h@LQ3p5m^%wAvRk>XE%&q6M=;bS z7Ux1YCLLce9EfgzPC3CwZ#>-=RY%MPZ7Be~>xTYR)N84Is+bP}_-l#n9|VuNIyH1; zr;7r&w=3=|Se}Cv1ekc+ITZeAr9;@BOI5>l_ZSq;q1c#6U`#M7CcN_d9{W&Vq-}$C z=dVm&pi`(bYTZTqa_2ecge24tK6@kQ0dlycp9j1ySEn0)eH8GfU02P;zzTW9Mp3tG zp4sk+{_$cr3~h6Kbh2EwyJq;<)#BYm{oA<<`m=Kv^k*k5>jy2bl#*)W`SJ@pgZblp^aFB|GQ*2nQ6feG@oZR-_V(Z@3c@NtC6 z+g;qSPx^L$sQ7YPw>`WQ`t&h419)uC03L%g03oMj_rI2Ep67oQf1>06qFS?cmoN1E zua8^l<(Hk0!2IM-Mza$8QKCP+X&K)-4)0_)wC8298*W7RrvSV_L%(fvU3HtY)mC)N zKfUU@wu15yl1KE#8-$MxxYK&Wn6Upj&AMVE zB;oO?ZMEc=?LUU!**)glh^-LmI;pCVdAw#l4uMG8W>Zn-&Vy2nbmJrvh2lM7ETB z@XCAw&Xtl(# zX!x0Se+SofZ_F!z7^1S{)XTL`9|O-aaDAC*X)VEpiONjY?@~4!T@39u66FqS;AxcG=dKeIK24p z*F{wuT%-WNC+)+3y{oUQ+N)@NHD?ma4eV5QKD)JlXA2~!(ygw)`_Ls5eDLx+xE`TD zy=YhW<}!=(T`}bN=(4yiVZlj%F?3~Nf9`-&<>R@CqIx$TZb3e(4t4j!&$jQMyB#&1m8QsgxJ8KvfS4ASVW8tQxm*e*v#F zX%4r*-1OyN7?ubFl)Q5rYx2xUdm}iHp`%aw%I;2{ynX1}&-^3_d*Lg#Em_`_QO2+t zrQS?qj75ErHD(=2XHlnz8O@}Z<#nMpu%|_{ENkAU;@MrbDo@!Y$e(yC^f4ftD7%=h zxX+9CJ)56`yQCzoN7>;Yj9P2#e_q>t-f89`1ZYAXLd=I#qVoa8$+k4IZu#)C$!|hg z6S?~Y*A1hgF7*P;D(>}&grq$0plxh{AGGaxgai=E5T1*WX9ea=33@?KT9cT~AdbL! zM8J7j^wEQgS7Xh9Os+=)as&gKq0E@U!{=g`Atf9;#1ucYwDh!p+OE)Pf7&~r&<*4& zJ#lD*CEk0%uWE|!{yg3bzJOdY!#&G;&P`$l6|{uWK2dVG;Vu zSK^epN5Y*p`KaMTN`3a}Mt{NX7$!RF1GI7;)0`#-e!Dki(5#e`e&Beic4|DU@f( zI!?KNGI03yMjACqZFqxgCf9h{@7J={KAvr`Fuj`O3BVUQ9=fpW_gP*g1pbQR*R#Yn z@-!x0_#S?%s$+`8FXLsaQPOhVLDf!*Jn@di{zs1m%k0lF_d{lW0a% z;5oKkC{MHPZ^{?DfAG$@RW*3ht)qh=Q49C@8>^(}+68qso)RGRI4MBraXe^g3?ia~ zmc}~%nY&+L2jrmV?`WA5oP?gm);e#;+Ph zPWmIY+%PNe)E_9VHPN9VQ%~#|7I?lw2Rc2b0-YXPAvnO_e^13EebNvd z5=WvT`u=nesO>Sd;G&Ty1~lgRbfLRG9xD(F4^}Z@Sg5~>>cIFJupZn17q<(?Z$cAc zoI)5Cc2JB@hPCl^`*8Ow&fRu2j;0HaHLnZOOtw-NL}GAspOL);7A%GgG~0Mt1jaJ9 zur5L)JS||Xf2zxi`<_3hrJ~087ZKdWt+tlOgT2@-Z_8n<$zNe*CGz=TT}`tGe$!z| zd~JUU;*Fk~c%!E<-pF*29&`k;pAdP3g&L_#{`#9>$E%<*RMGyb%E$)jxvU3mra?8@(|ylK<&PAt;H?f69o4DSElmu=8Gmgs<&NI2`YZ z+aDogJTDMnjA4Sy9b$ZBKY2Cnm1N;+5*Wm8W4m!I47YZ}=C3mERzxs?8sHbf7MFYe zB$DBUBf1E4kw7d)&l(__=$678+i$4alV#3r4Gk`K4Mx?=qA$()6r)c}{9w`J4HjyJ zF`FN~f6k~6)M_(Y+wPi!lt^q*Yxk+O2on^zk50L(956gw0b&dP)4Yr@e2>Z|v;Ng* zwqjKx%YAKf#V@%(QhP0%V*|-GQAhrJJIES!{^lZNoH+ ze^VK;B~v()w8A8F#+l&uI95fw%nF+gL7<{&4~Fq{Hiu(u_X+z&yUPh|4FDkGTn~lr zboRRFiUk&C+H@CsZ6CSIz4zVr4hDVDuBRIJL7Q3uAGG7AMt#taQG*N;9Ubt{F!K!` zZI*fSiFoQ*lcSyuY(rv+Es}bh);OY@zKd@b=LG-apcDfWEWaOc&Rp1PurSbZvCa` zuGmsF-mZgRag+9`YtlY-Oxh=oNh@#RjVPR%M54}T-5>ibKfSmoT4BYYwdR)Me-vow zl;}1WL(z?8s=D>js(INJ%UdN4*?n&{LdwVX?bh#T{08dpr3q+6rQqOSFP z9Q4S+&=Ud}s6=X0Dw z+OZtx!Z+7P;I*WD1G8h8&&sebU{B}8*iEJnz->tE{pUt6pM5TR=*}a325-}5Z=QyK zDAVWdwT;yTF*p!Ng0sDsf0$8vh^5PALB6O%ETH#~v&$YO|5!Kwg^|DA&$nw)j1e|X zeK1H-9_Ff(l4|PnbvmRo!9r-{-55+Wd1fLjGJ+saQ8q)YuI8Isf^ zUY(3RooaWMeR$Rn#q#!Lxy2u~rH<&9^=_rcK(B1Qa`oc=ZSl9ZfBWS$;{c8ZRW&)F zqVnq@dnYKa)t->rymqdQalW#JFeaUK=_)sH5GOT%R(zlyqMa@&1i`67LqNs3aR5l86jw9YW}I^nq1&gzWWmIopaztrtjQLC;` z`t!C;&p*UDP;B|be=YBJo3g8xzfsB3h}OKgFU2y|@MK%_O&Ta?Cu(VQd_BO7fzvZh z6NB{N$1nfU#yzxga9BD)4P6klyyjIr5A}SFqfsYM?lO*uc$?fXcGuzRA(34eoz^Q2=VeoVQIVJyv@9cT>uFNl*3*QzttSa_Tkxu@@4F-lZEC{NGvP`eBs`La zEVtWZQ8ic*f6|H$eTmd^VR_LuNQvJjq5Dw$jjBXM;Si;ETRI{Kj#W1sPmpY8{BraS$Ge**hJzk#y{x_{RZ?7rEJM+Jgj zabG#nq3sN`9u>i&33WG^do$Dnw$b!D3q%T9{nDFk5(VINvAgx-7{{(W|5E^boWNit zBMf7^w_ z5$SE7h_4@t;fBA+UKSl_YC@}>?hBRhGpn^> zeOi=~+ zXvHXZ1S`A@F~;ghXVPsn--#82b__<`Q`pIZBCjtg?A<| zyJLS_ZBNz1^6_w#Eh8y*wcb?Df1SjWcMsjDF1bSjG)2`fH{ck^NALCW@{_^@jAm;r zvX$Nx{abFPPTzw=K4p$jluw>x{6E8V?w#3sWO1%)gQlp+a#g#Ox*VMxV z8FCv6;=>t`sk0~p&|{ka=xtmRJDYKPOtkiX2|Xaoh_R%OS0c%6iDsEhf0#at2AKek z1OJUxGmF)NC3`BJfDvZ;RP~dfXUc^gVZwe&=P*GWD1&$oGMYe@!yi2K*ze`AqYgN6AO!lBcNqiJ2EsOQY#}K_gPXruBjD>$8}vh@%y6VZR}o2rxn_NG zuegC^s=5U(7J_ONe~+=mZ6g?owi!!wo6~|ZvF1!zgWy>EtFHTMv#Xit1d!KVyYX?O zYiJmZ+Ou^dYzZcMQ8eZWMap11{hU0<%W7m5m=^cVa8vSZhaZ@t+$fDQ&CpW6?ZvWd z>zZtA75l9(i!Ir7EHmV`w7GZ{$yeTf3ji%e;La%;sNEj%ZmjZ2WYwl z{W;=G2tJ9x%DZA!?fU;t4+xSC{-2Bn?I1E(oHT1Zl>pxCx@BTYuRd`5xEZRV{=h?u zcetmIXj|1o1_yZc4El#p75)Ti=wXUTHr3cJkZa$lO>SI>H~GiZO-045%IiXHodyn^ z|FPjSkc^9wf8Bb(-QK}Elh|*=FM{%jtMXcOzNuC#nWdBM)o;Y7t70iG88fZf9K_STlDCCd3$un+2yecH>_q0 zapP3H;)~%onxs4Zce~Z!q@5y1)4nSWrLl;_M0l@!st)wZ{$=|~%(U#!k3y5W;?tkU&&!*llNvQm#K)2B2IM=A zPh2Qvf6jyNyGEhA%6llDap7#mEfY>@db1_*o;}$~dgV`5vuZ!}zg69^D{3a0Q=+es z2pTr~-Ie>n;8!Ki%Wa9j{zYZ9>sfDGJk>baM7}jg_~?mNI`djCReB?FkceM6xb+C0 zGLh-F^t>?hG-i;UFpK%fx;}x7=_@jLX|`9Uf6p9-kF7B5XJRryErY!%YPch1KK>qy z2PIf#23y=hPKtdoOc-!8AU%%g!b6L7y*si&fd)+Vyuq#HJXXC!C zf2-wfV(8m{JUw7HS=K|5fs?48fz-AYFMd)k1vp~(Sm4*x{*q^hjKg?}B{H@SO%O9% zBLL+I_DBe2_iSLcIZb%nW9w7SJ5-f7&f6G-u+fgJuRtDKulJa{m%mi!qE7p2(hJ zLd<5o9C|sNJbg{HZ|EtjB=st1aM4gwG#7a%2L0H%;aA8%(IDF^@)E&^~Qdjx?T zd139tA(Dd;>8Ve-9T^ z&@YR+d|fPuHkiglxLIo9N50sWxa>nS^4dFT4lg|3$#mL0-J?9sQZN)kOlotf8jgOB zz9plN1oJ$c)_rD{`oL|tbYtK?zsYBQOxg=NGy0j*XxoV}q}Mf(Y=k(r=)d?-lJ3*8 z7$$jxWYd>yVz_^sZKMfTMG!umV!^40xS^GK{Wd$U{f$@7Kl>d zM&&)+9I)DTlg{jhBK6kp7hZx!)=tyDv3*!@v+Er|e3H^(h-2}bd3TRe<52>RCmRP& zRZ^z?pTM085SVRlg}C9_ssILQ>(l-pKfZO>7ZqcB@+*Gl5e^Unw>?TU> zwqB68_uZ*a1bkD)IHq2JHCc|g_X5Gma=Sem6pohJ?Vyn$7Em6pL_zX`%L6qW{Xixr^kx;D1<24X=T;DY-2&VWLc`JE1r{{60_(-S zqTzPp#EQ6mfB*vs-M`SGf8lz85gtVEP}u@Z-2yT2iGy;AIlu#jvB$rk;WEhcv{5|) zH$K*rf8)gM$vd8Kdve^{)?GdHj*7Xdhq>up=mFoIbqOtc!^K=ni}@^F3{d}+l{!9f zGe-9s@V{aG*z81MI6&%$jLzWY8(4_f4Arz9=~5~V?%cg z3_iS9|L%|9rDxD$cj~Z7*s$X^xtCMR+gQ%g}{ND0?GLucU9o~p4;9k^oa4+h) zxfk`^x)-I0%D5Xff3hL(ew4$ny>=%Whs+FWPBSWl+Pt_WZkR~iY%Q7vwY&^!b}J%- z+N_9Wvdl%y8do__brwDDdf9V$Js$*5B)*e-fkPo_H zdTy`P?vzI-Q22pLpzwobgE$icnLyzgkwD=YYGF`V>*2n@nN1GLAkR~V%_2=QVMSlW zC6{Cuy(#X??y@UOZ5N3TXRG5Q{ZNqjTUd|h3>)_MP%UroKd4RIY1^>rwGep?K2%F? z?OpN*B_$m8e~lOES0<0l?vL+f_;hVdbH4;!{0FlC(KXb5bPTm097B!$=G<|gj)LEG zPj8Fc(ya%->3aHAO{c2!S=UxUL~d>8^H_UZ7x#W;_|;s+*KbnE0s5vj+eg1dw-I6y zLNT_cQGu7$>hy*O_yQyJXJCZ>Y>d#Kfe~t&CmW$qf9EDV*z@xJTm4%pYiuITTD+bsW zr#W|;>c^c~WF<2dbLh*ICQhI4f%q~@&IaI-D>>K}r|ip1&Y~||iz2^r^lpf0u2y z3LOi0MZ4y2Qo6 zlfp56ObEyLAt4;Y)Im;=krJB@f8;b7DY4t&C(C%D-4Z`##tYq+$cZyr=EUk#r_W@$ z-QGWmh6VoEMMF}c{)atuR?IaShG62ZDX-`lui`ti=m3}>sQ{QCQGl@km>-A$m>*DR zma756#Nr|}T*T9Y!L~NT5H=P|pX>JEL+X)1B>?atW|nJ5Ag8Pw}?*wX^~CL zXworFEzh>y-5($QR<*TocwCeNAKb_CEhIIr)Gsxf+|Z+++|Z++oY12mozSBnd9YN` z4W?5ziEv}VMCo9KCb(y4f46i)zf89igr2OdQ1WMg8l!ml-%^av{sg0V+I4#Tj^ONs z$enlPz(d)rZ|A#)CoeJ)JxWv=+ZAz7GZ6anc_X4-{#M)-y@;0kMg(RERK7Vj4+8Q( zi|uyFLjk`Lcj22=$xV4tM?Fx;|6Y|_X8TLG89zW5ad`Z%J1vrLfAnp5&S&+TZx=Qj z2Gi7NhnrF*vYRY%QHIVIT7>ecXWmn*OV4YIyie8|O&bdE?g)-pHaiWWEf2xD=yxg?39eTUAyoa64Qw_pS0^9NK1$uc8N<{%J|H)`h(#gB7%s&f2A=xD9_wavT1X;5Pg*!EI>j zgm!Kjty; z#|S1Te|u!KNcOu;rDd6M@kw^98@fBDQ6(~7ca$JaQ!gMKiXr1XFXCa5J`~%pqFpVk z@@ltMucpaq zN8BF>^Pl^*;vTIi0X~)iax%?*|mS9z`JwumDBn zAKWXbBT0g|%+kfRO$))$Q?eko-RyVeEJm11lf6XmvA2?)>cgz}!vhf@ZdJe)$N+Cj(6)^xeggrgVE(A==aNle;qrYL^#2qGtFLVY0unq z$}{&IbvYr}QcK$+Ne1La20VYKLIu5X^WFP+eDtY`u z`?4J5)4+IJx7L_IspQEtC?G_!Zq2?gtE>9{!>(JG|EIVsWDYFJBMl>1$;4QdgXZPC zmOm0NXSe=hx7~K)DL4~x6|HGtRx)`mR^31g)EVQyif%Ac)Gl}HtBF(N&S9kL_|ep4 z@;Rw%k)_^N5FkLj0?>mOUHhpoe>)liUI9Qrn?Avc4CZ_pd;;92PmJ62iRCus^3Cv@ zs&SR)IJE{~%z`iv46a1SVjt910~5D;J5V8E0rfH|`C~jILazEp&~qa$cnwAHd7KG; zonSr&MKnTJg!BxudBdreIf9sefps?-sGNgy7~(QRLYUP%yxUd5a5WyCf5i+_w#;$` zjns^(T7Ys%noIDwn#@Y{GVQ)}0NoKW7iDZ!-OHIG`deF2Qyo1>({X2kE%X`pAKT?_ zL-_(cr*OjtP+HBu^}<4WQ}qL%s}mXpq~vfd(G``!HQa`oTik9hdx+l!l}cFtol3>H zNi*e$NN~1{aA~@@X)XnAf7kuxzQw_337mitrD5+-s0a-?;)v3aunX9qlIu_>SuzPi zN~CHo`Gl#;ky0X6sr#%9+s?EMCd~^>9eot1EcwR4<*;KeNhc7QBkn9Bqx;|)f;XV& z6>gt`f)5~;C-MNGG(OBG<`79)0!||daZO}y%UDD4pvzr&*NNWse^JVI&PZuD4Y4P| z@@9sV0+N)c1+XQ-qy6t{plD`EmO|6>9L<5{2sD$IV?!Lr8951X%wr^mW5lmE%YFdw zAa^T(LrI_{cLSiVZ^tg=*_}j;eS!s31Zla`~mnGMC;K$F-5^B1)XFOwdfgi464Rk00 zdhP~p-}oK)Cvr&j5xjp^H|kID#4c9N)7;?cU96f14F$6Zf1L4=O*JpbsSk~jcw$E# zV4hnT;eelbcVpMSLmUQ9q<9MH?x^!_ynDhs=b=M+%ItJG!2@@VK-e$n^&Iy8!2Xkt z>@^lCJ}?iL1lNS~L~P>8zqx>w>a_7u3vH?`q!L003_5YQf{%!`2lQ^dc@YF%VDiJD zgN>1Uy)6LSf8X3;BaX1yoxv84Z2;pexW&QxC(KNz|8Qgk=s#$cWBo@urUELu*rbYv za*0VbJv!y@gbEXzAHd zZoGmwtop@p&tsWhw4c>q98OpCOs?y;WA^dp_{eK`f7;e<$0nCeF-VNK1&Q{H7Rc<0 zJWm#l^jOC$`jxT1)IWZ&npOKrAl=rz;@^m;0{>sTvb#sffWk7_*?jI?*?ca-ehdOKpA8e!W!als zuw(@ge^X@Xn5@+MU;?#ZeA1}GQN*HkHQZk-z-Kc;t*<89$$WXus+kGI{yM@{U%A=> zxZtY~_rG?<$^*+kdQf@3P#-G)>O%#*@PLCd6XV9;VK;gPV(q|JQ1{}d{d6))uLlj> zBGBpszcscxYhLnOoNE*L2_yUP8cxrm^hL|@e|LL^MNX^NA1;(Z=d>9MoEBU|)r{cw z1B={#*tA8of<;cNalRtj`V|}q_H0Bz!7DkC@JYsjgjaGPiJXJtZ7iqtSm3mfiK)Z` zedp!60trFM3MeOEw8K!dwNbu0h%?ivzQ5XwEVri`mGv@+HGXMJN197 zf67nX9duFsqkPY8M)t4M6szLl+pOJY;+rd7do^;Abcu9O%mnlH}{=nwQP%1~ye-6y>U5cj`-|q%~bz0bMv3z{Lyf_hYeK%FT z%58`FJT<30BD`on-?Ys*3ssZ)D^{iH*|frq+vM}iV+lZ}@4hSFnDmLc5Z;yRVm}Bc zU0J+iHc4(f(c^@6JcZ*epO$hOt{JE0+?lKz&f7O7pT741&`FA?cHh>!O|u7pe~|$% zPP(zZS#tW-sYX?_Rdw2Lm=~7JI3u&<{4S)@&YZ zR#Sk4rcz|4bSKl0OCT#RpoAcq5lexl{Rv1m+6(RvEruu?C>YgHZuW(-VWhAf_0UyU zJGPErY~xvOwO_>5u&(XHv=`G@{N>^Ea z!-6ko@pr}vUW@?tQ2A>{Ms-!y)o_2(F%chvr3jl`ZW_2bLw?ePw=D)_C`9sgfA!CHS;&iV zx;qc7+wWfX_ZiRfm1lhl;&V;b^Ibi`u3j$7zE@*%0;ZEU7EAed`9!VT7OPd&tS7d< z+Q)|36y3UNCN>sZ>`MlroJx6rQ*5W2=c4V~eehrQJ-4!^TcG-YB+?ihr64AxJH3Zt zA!Z@6ERid573#kRU!xU#Ejk(qJTPrTDeC~OqK zoC-`*>>IZxa3Gx-UE&Mfds}*KrmsDDH8DiH{0PKOSDNN zi%cY|z;IJ;XjX(W)oQu}#9^B)GE8KGv+My(i5Z7akoqvIz7_}Ls_d8iJ+Nkv6(yZT zsWWjnY$%;aRUo`5e?n;}GHFg73X_U62FEIAV&;eFlh2Q2Yx(BYE5$ae-%58sAR=+;+1r#iNwne zb({gMoaEPb8zTMnj7Vj%%0(&?^m&+(#?R!MWxZRK{2Yvj++_GfRZHpm&N|KB+pV^j zFE}(8tSKqvX&ebALEgD{QExO9jQ-gZ_{SNQH44%g6^&)i9UT+XFsV@!V@v?uY&8nN zN@dYxg+jS>e@KlAF)mlFQW=*R+kTk&H^Pr7ZrSP-g_y^if0?-|&dFT;%HSk+(_sdy z;|7Aw(*&z2f$09ZMQ}v37)>JT-v`O?=krFqqPK}^C6f9>Pz=pGE|*A2UAbJdX}J5d{j zUjvu$oRbnnbeb*_h>n-Z(lzn#tW89O9IV+ueKkiDH<0Ry0_RN$KF&Y+2t23Bo4^xX z2}~C_8rbM%|3x1x_G*2qRs$Lr?$x|0DeKFt`jx5~XZA!j<4pFgs>dvpWYzy)3gso9=n^Iu6`Thu}pZ%H9{8? z)n1laqQrZPs61KQZ7D|0CSM2DEXf8?#qW^k1r7xLt`YXT{b$R-1rVfePHA|U=ZYkV zdGMBg#<+{W&zwF~2%NG-M!-p-e@+2XGuZ#6VFm#NshfM4S(r~5 zWG|FUi}0Hce3ly!|9qz(FOlY;IK`=$fJmiFCQy$+BXHISzXo;A8)j zq&GGXP&T)e0M1h+6TtZmk@@YRrQ+i;e@Qw%m;{RFmKH+G6saZ963Dvuu)A6mkv+^O z2T~g0hcTjDqNdwXF`}^ChYu@88-q#mvq3~?oLgcJ{!>I1!QaU;`LN(CKr-*_^n9kk#umZvGm?RqvP!iR1OAMuGitv&s0@+h@Vz|b;v9VJ^Q#0e(f5RX) zasF$NvjC71cFx(ZnQ(kTBZ=pz&AswS-6x#5iw|E?Oxnh~bWPi}IY6S^n|-I|QZZ?d z7Na7NX*gXGJ_T-ZhevGS{&(gGMj=gGH!(dqdtWmfA;|#pr80b zE5$I4JojVOA|CzGb->d<_9y%SAXUf86tM7K1+r_Mt9Pl~r-D>1c#D4FJ|AS&(SV#M zg|wPP9u|sKQ_n|?)#8r~CDrxdram~7(ZcQnxstcQUnIgBXfC6V6}f{KK3Rm8xtMtu znilw*Mp%OpGyl?z*8n_ve}okgc#XFm7U&fSw1I~gd@#vv;6Ixbs9|G?g(>4@UOPM# zHc-KX5Pn)IS`Wntd1i^OfI{$|T%wB6*2wcqbOpSB|0yQA0t$hAmMK;Zg%*lXNUDlL z4L;YDQWb^jJ>5hVqphjKylAz66!0gV5^AC_(dV5)RZuAIQ%^)Gf7&+i>{GlVK~sZ_ zdB^MLss#QVRJan(i@?)R2{mn)^fOVaLg=xm(PYG*jI#Tn9*!a`F6{Xz-(ItJBBI!R zFB$F+yevlWQBm(z#|}5yz-y%%oXYeAp}8+WYG6)gA|Do=FU5HQHE1@$cTj_g9Z&>9 znKc|N5+0!hsKj%af1vopGcmZY!=^rG32;kIh2djpr!au1;4ffy##BO*F<{`Wi}5ym z!~_NKkxTvo`0wN$E(E;w(543-UfT|U|1Ws~8UYXA=JcS0JHi3r;zA_~+)zZAeB z{Bh{TQ_XM7p{th1_LlnTpN{RVH2+|2lYc(8x5qz=r>-xnP5H9rk3woav_2|-2H(NS zZq1k(f4}HD>L++{`Wbj}`k8rg`Wbj}8jzR#>a@+0yqBjXju{aOa!(k@srb!ZQSZ;YauOmz##(_$5GPs$jRY}uFv|%m@**>AE6V$B zf7gd9fF8d1z2btK(W0;?bW0;=_c=lxE?3R496l{;Y$rbMa z3@YaU!!c#SF@-(BVEZhR<>Sc1#g=RCb1HczNNx7N;qS=yJh+NyL%!bC!o_oZ1RO3W zgM5pf*&o*T<0B1B8Rt-N<3?fJI9SzBe^x8K^${cW2Vm9zV66HdaI0QJnqu7p4&+(+ z;@ivjZ>`_&%HdPn-CEy16zfud!19Y(gDIoR5~(Y1dr?gnxO^p^e=mg@Dy$`!jQT`pgVP>&I?Uz%agoj4N0G=9_DrUX z5{8HABv~$lhg$NM=?7qn64s$9MQudCRDZJV#pveA-C$vxr?Czp4RnX|17U8vqNcVb zaG&F-EN0zDyF8RPiqe_~rMck&L# z$x<5r;L|17is4tWPf+05tie>E+-!$Gm-on58Af9YK2%#l8b^bDl1A?9iVcB_p%`{O zgaE!=m&5V~{Fd$BR{f@61?B43vfyW<&Q9d9vlDsj9&$W(4>=wio_yS{3UltGKk`K8 zcjlwQRCclA*p+rG8*#5pe-c3yVqA1;@iF@&*gXAcHcvmo&69+czF{(I^8lM9qm;3! z6Id1+LDSY2jf-Zs!N9!D%8<KoaYoRh2{ADf}7FP2@k z9c+}mE(17?D@P(;FY2PX%0mv4bdlVa=;J$p1`G``zvO+%7S;rU9~RsY%~5+i_?p`WgK3;xIgW;f4sum_HXTrilhFat*fO_ z%X2{r`_i@i$>P(l=x-!SPRXCET3v2`*?wv`i}>G{UBv^LEm}rA*qndL46#f? z>epe|O78KZ)4JlX7?z!#ox!6?8Bt>D7wts+&q-bX+V^u9}nGaAP6xu{gacM2OtqcT5QVd8tVsxhqiTpH6nGs(rs3 zw!1-!(gO9i`dqHmCKB+D4}&#R`9^I|-!i+pyMI$Lw!QkiEKBwIWib>N#a-Dc6B|JI z*ww!l{j2NilIvH=ehOr?vb`wTlvy%XcY|JH3sLcde~dln2P#^JL@mxV)dAalvF)pi z;%V3R{Y5nx%{*()m^E7!wXKn+-uRiQc~Nlp*HDTU?-^PA{7J%QO7wm!dPr?)DPX9r zViB)szKh*ZIgA@Bi?*Bn3=wi>V;dT8?){d*3sezHii^_KQxge;I34sTQePihvYe+_S0Yl3754S-_Ox zE4SLSTO#3lb+Y?h)fLl@7hU_QXV3)0KTC$cEk3{7ZQfs>@0x}cy<)RQXL|189Ocw} z*EZ>u^+>`iLrU@KPD`s?#p{k5j+g(R;;xWJ{u#f=a$PJ-<2^*mAXn=eb`NvHsGwsp zf0l)4*i@lbGye1aa07^ER4~q2_QG$^nI5rK;U8?d1tV@WN5rfx2N>MQXp!;-1Yl~~ z@u};)+$pSHYwLRW{ibXnE%v?xvw~C!|Xy& z86Kt<76_KWF_pPfJQ*i^{YlE&UGxS>f&3+gBE0UX6EZ7mSp& z&6EHBZ}|Ncvq%^aF^$kl;ZlOFpz;BQ_Lw7H_ zvC4b4Slty%HkB>gd%J{*$t*zP6JyXT1x-*TGAQxM>;3ihF%Sf7+|h zl`tyVQu+CwsKbX5_i{8Jn~E8IM6Gw+2)HhG^}wvrPTmq6DzE^$4Un}(*HR|wDuk8X zCkXEgx3_zu8aFD~Jb2o+w^bRbbWwKPwEdmUTej39Ro}I*g+4HKs>z0WEWGa8O-e_) z{$-m|o3Kuhnz(fXDza&>;+EA}e{NX>=UyZXg$P+cIsGT2w8vg+Nr5zKw$PS-nI$jE>z8oZ02kyp|{|BVWO zz&)OYS;=!6MqCX9(Jp)J$a$6)ADv{19&T z?dU#E0x-Ip$F-1KoUd~Of7Z5&?2plNlwPj+sq{%c!Y(cn0f5TWPFN#a;)^*|L8zdE zuU|v<5gw#E4#C^yI~Lf=cs=>?g7Jx@n{XS?&YEEfH<)+P|N<{{2YU}^hF^rbjvRQ0bHsOe;cc0nF{8zi$O@& zSl|bCc`&{2Fv!b=GMo%$6j6f= zEelK5s*A=?{%8d>+It@|X7Vu+Gx-?av~o5E^i8wJ)J?O;Xb2{Xv18^hLL#G#>_teJ zDJI<_RpgPCf03XQf3XRFk)k!p)7~Oe!4d$5KzYC8S=;NXE;}92s($lWievqQ{n7Tq zx5%$-pEcL*@zE(04tG1AbN|!v(d%6!W=H+`_(&dYjK6Jld*a53K5?Qg|9X~msyrhgv)VV88}vg%70 z5v*)%*KWsp?biBEf%A%VtIOiHBw8Uwy47jh^ey*G3ejrsqY8et3zheA44;MYUY7Mx zNW}w@vp<2z*`G}0>`zwYtW>y+&{?CQQ(|XThCJ)z`L5w1;@=vZ%jo>RJ_d82h8Y9G zrdcwZRwu0t8A_+Ro`1NQRShEZUAza|0$$!!^@`0m8Mc}Y&NazP_Vc_fdOSQ1H^aAJ zu9#{yI@3*p;jMH8h|+gLi=w=TZzh|)29593E~_K&&B1%14SB^B)av+2qOwtA#6Ey<|8 zOq)r9gj~hfxY!~LhagBk`il7}3VJ_!RpL}z~df9BV zlZOV$oS;1cGPPG}9_?=04Zim{vFpUYks|GkE047+_*-h&Xt zea?B$$336XB<`d;a}L}GA9yC;5ePxtzoeaZJjc9+u`EyAL6!yl(EB=J!Iqcp^2yvs z)&aPzCVvmWbLOJsge;t?3*r)GNz!pQ?YRH4%sdcpKwNZ6L`CS_VrEl-Vbm^{1$Cnw zdbA#DW40w3kQ_jCH#cdLXQmtHGfyWiA@YQX5J7?At`{dKFMa+F z(({r&E2LM+p;;8 zX@2>IXR8fXX2M~_1v>VD-!x=X36GUGImgjL-ICiy&q27$a})0J9EQ96ev%&PB7`;} z$VCRA>QA1)a~>vGRRxuF44x!b{4VQIHht!CVmKozqu)c`J8cHKn@$*=M+#6?h<^^J zo{qYRf2V@l`Phmba3^pBIY8B;Hu0)C8+^^GsM|)^{a5mev%1E~`T_vmzK}^FL#K+S zx+d>w#5k~qT_?J1+-BB^nmduD6LM9o)@5Q`mKq~UcKfT;6MDqh97^-h&>XU6^|^&C zZX^l#AG`W}_hQFsi(D{@IS3dj3V&w0cBlp()%*KO0XE5!@UU^$&W9RnyC$2HrU`<* zTIcs<=ZI7?LlLB)sc`_UPR|TV@xB%arZZmFcL~fs-4cdFG|Wia7iTYH*e6Q}$KJK} z4j?E#DbH%J)DGsk5*%C7+?XoWiOY_Wb~@3Sg2#xa4fuze{#pcsba7&>!++Gxvf7|X zCyOJDbYO3EfT3Ae&FyKi9Yo%#oR|h+w}z)NVBw}r$xDpW{O5k`W>qG=^ zvF!zp7T>+#7c6X#!|0_qeuvRd?s*@uBHPVtdm`+Qc1_2!TKH}Xx1x6ad)^CG(ehzf z-|U_Ve+E%%w+;9<0yP|0cz?jp5vn4gpib`Rmb=Z{QaG+-->U>%#@?n3xD$be3_&{X zCk@QDobpfje1Eq30-b(81E=55 z#_9JnaQaF3$$meBPM+&eqBid{*$jNdPlm0QiU9RWr0+bk*t*B+rutbMh-s^_*UWMV zSrX1j(4#<2GO=Z!xPk2xnY45Vh!jc-CTpeeW(=;KtJc3j*PT`3PfxHY2U7Q{W+rW7t?u_zrMos0Yk z;>YW{Sc~^^+M!*xwRrMJ|F9~aHP+AfJNHe`r_LScr|vE3r|vE3ryL^JrdMoTx~i-G zMy05f<(jdfI(jCPbQu9+M5(-wshViE2d0$2T2n>K%Y=5_A!k2gBb$WCk0$Rm} z@}gW<&1F|Kz4Y{BVDLINoDa2mu-0x23hWk2Rj@Wzk=;tBOZA(K-|hO6eyjy7vD=7T zCXPz*Pr8<`A1cSZexAvZyj^OE)h_bnWf#j_#@<)WEc-Ll|0P}`B)O@)?;PK*_24t4 z+Yf(&_JcQhrP~tNyq9NJj1y$) z!P1yWxszEt9xV%*D!1cr@0ee^X4`(^*9gFuPG%&n?n>~{By9(PxT-zcH3dv-+Ozqa zStXC|sij0{3xGjmFR6mg7$Az;BLDcBp+^@ z_EYmn((ZERx-4|=eg;6+=^xqbk*RDS@yL(u$O`#Y+Y^sUo%dPXjbid0zwoMz>qFZz zGW&ap0)LZ!sX5!!^u!~g4dfggLMHa zCQCL1G>w6KpPA;8I#n%lNTvO9Giyqg?0+$=_LMvZGKCq3lR8S|elkxXlJKI=KQVOK z$+3e$P$bbFL3?V72QSLO!|8}m+kOfXr7hqkKa_?D^K0tkzLo)(sW>RDdnykKGl|KE zQzD$s{S+yQ&d_1W{Mw|vq4QcHI0<_y2@W)kdxujKg4F%=B#l(>H0(<$nwy z1t>n8L?I>ni7`M4axVGh#`dv#V68N6p=fpuQEh^&tMjSfQ(Y`rK{g*wWo&x(Q<@+> z?!ol@IhXaScjEz`QIDK=R^4eq|)ahTtHH+e(L^~PC^{+s9jUb;ybudQli&8$f1LmwT z2?2RrQO=Vhi9%Qtyi5`V77h5Xpm|Fh?=)JmNXD;2*NEU;`(j+-hL8V`GgS-MkU-5g4s%9#iRzAf^oWg@_zbv03`^N{_1q?1< zQpdj^n*2qXxs(`Dc5^oK(?_kvh}0z;3)KFyUM+#pjLXW}BQl9ML=gMG2yf<7tbQW< zkWl}x{v@Qgkxn8se0$-mCx7{hLO+T4(AA88-=)9AsZQdUxUK?UQ6BHksW0OVI&iCB z-=otP%bnYF2AFfFPJM?r>zq$W)3XNo$nV;zuYoMTPZP5IJ_U5qnTOq48kBo`&tNLN zDxo`k2{qL{E~{qXK3}vR29LVi7p{as3f=RISHvI&@BAgy#9;dO|9_}rtTlEQkgkA1 z@a_c?rC3|!jv!f%wTJfw{Q|p1tNHKQ%P?bgQAevc?Uhc5V+}2DV2pJ~xO+O{_O+N)mA_C#E zbXx4ER9fr^_ODKsR|M=5ka+eRo5B$VxbZVJ%b}{zgzzvz1^pGc%RUrb%yD8iCx9FJ4H@yQ-7u@ama?uO7I%LGYNsC zLnLQLd_pG=%@&C(e9mFiBFP>|KIK`&O^2+*iba~Gk#ZKW2-+h_ZtO+aY)SR;E}{lb zns;*%F@%zwe2cKXl;{py#0;xMztAFPfu;Cd7C}2L&xNr_wCi#<`HMs=FfFH!NRq%` z^wGI=e);h6Wq-+&2^=3?RR3WA{jFM+?aOl6u1cN_u;#7X?zGqzS5;jN_o~LLCQ##I zch##0Jzlrnrr>W4Y>IWs^U@#lF2$Qd+$X@ZPRJijCHNm8aTouo_ALD8Ynd&0ZS^dpX6`^GZ^OeG$}TS$yA1}a%73^){6r&aB$yR!RDz)q|>En(UyT_Y_o2?iTb z=@R@@t%jQFxrUNhl+%8-k%%YXp_usbVn#1^1UTyvSIb+8LuG^tn8Z&Yjiiu}p zh>@ANM0ioL`z&p#9TBtCu_4l}=*xx2eiOxjZ-2jY=Kkw((cT@pFFDP>*sXtWyW4{4 zW|Ngx-CUjIOO}}_h=nN5^VnoF_9Mp1e*FZ78*!u0TGjZ!NU{-aL1iRbiN8mLKV9la zJ8XBC6&{=(dJ-4V1qkp)A2dPtiR2x7TT76MQO908D|BMCTGKhd-tHnRhLW?G`kAuS z34gKwqF#dCG*bJfYO-HXLb#X~10Cj~zl})eCYZMNBnM(KMLA%5lDu4HQRGR_e>j6v zCWR9OM^fnR>}DIO0P+->z?p?WI9DQD0CLhY0Q!#3_znjq$PDFx*kA)U=IC+I=VaXP zp#F|}A7H(Z4?@HCJQ1p3^hbYLa(Loxj@TgJMCIzhZVpbvlGVJ`N^d1X^FvGlRI0wwa7E|c$USUF{%03Xy7FES+(6nr^JXSXHweSYqtUMafZ!%tP2i8NmC((5Y&T*W#+D#!cN)B#eYVYDzq}0 z>Y`;0p}F}gnH;P41kBxFW&vO91;d(UtZ#Nbi(Tld0eg0p8BV)! zzSEN}7?(wH6u6 zm!*qzWye*rR$T+S!@oHQo z*a~*aP+PZMRl)~N#*d&T2YD-Kep&X*uG$Xckuy=OTb~PG%W2&%Z!hkf<$v3vyDdT1 zd8BY`DbAusI>%N{fo^dzzSaKZ7(UX@e!UQBxIgyHFw?2yi=jAe>slnM9+Sp%-f>3P zt@c!|d-HHX{$!@?}{U_cH+8xEdVxWw{C;yMGp@2MQPn-Z2E2 zG^^NzW{H6&l(zHc5e)`ETSyp? zC>6PaTaBP|w`UP@b43*->9=P7e zi?;R=$}9K$1arn?MP93bV?JETz2Hqd=|fdqD7eF(Dz;k#BWGcI@?nK@b(Ui}_x1Ue z>*8165l6o*FKZa1$5&6SlOf>FurE7%M^3M>lPh!^?!+GWXEPx5!1G6-z|oDP(@p4L z2Xq+NQGfeg9x$l(jH?yU`A&2x{uCWJZ?Qjf-eP~|zQz8`eT)5>I2whhfD=>rS)X1i z^iJ8*W4~6-KK@?S^^1}XzM*UH-9mXCRe!XIvw>MfI7q__q$U3xXeG!)nu+gtI}Wi| z7k^ppkK?se>$~iODnJ@>!{8Y>x_xGjZl8gpTdlvzXSYD%GcVu4krA^PfpfxiXaR7~ z8NfhGJl*J&B63LW^>xidssCbi2w)Q3<-9c9@A@rUH>H`~?V5(4k@8(x-S+zNY}T^d ziGT|f6Z9EjJ&#Obsc!3$=gdfnBrfY>vwtmDk2b|;VY`0b*445Sdr$t!p~>lkz`>pa z6A|GTzB^?>Gp-l6{8=xwdmFrWD??AXQ7lHFiHlL>(~w7SY1X3V)*+R9+T!&5t^@&+IMR^JO;qt>`MAP9XQ%iaV|#Uw>TI zxoc`J)*qs7V)qW_# zj%9ZV13@ojqKOdw`|GoYDHQ6^2Y*_mD@*l@)n2Bn=h9u?B7@4Q4nR0dR1zG!O@fBJ zLssC?hRyK%^6JyX{D4}uHA{0O54Nr+rpWlLYOlgF#lm&L_Bg-Aywu0y{(Vxl;&ZfG zT;75*KUfED>-IQ-Fn#5`8tybA-U^=+t)!z75-n#JJO^G`uYtR*s5ii8#eXc1Wgcdz zU*OOtRd6({ZHzKm@3bZf%{{o^(;Um9I8US`#fTFpTd)yQU3)D|=h8wb`56Mj=k!ID zbcy1XLlX3qeH~(v2qn=#I`;By^5_B%dJ5A~AV}p?^CeX6c=8q{ogq_H74^X8?Mza{ z`;L0y&ZYz)l85~l66pjJI)9A`lSS#d#WS}NDZ&(eBoG2|$)w<4N1n&i_FswIo1zEE zF~jm7?SiFwCK{}I{) z3k^yjS#HP~;eP~|$$6WHd944>u$hJX*}5-|x?w6DD+oh$t%g z_ID>lLlusJ8ahpY9j;;bZv}1Wh%PsD!vKN-9Pr~ifE)U zwKOOeLxM!`LOWs(3mCDB(5MTiH4GlX*o%RW2a>olA)$~#C7uvT5OjbE&}KKx z1Qz*mBcK!uIdO|U0Dou@Asn2ZLzR3r6B{TtAl+K8Qs( zfv`cu_lHHo;e2r%SBsFkM}0(#lo3ICXBMHs67hvB;-e|id9X+yc7aX&B0MG&cD{?W zfg9R-E+WG^W#hF-9Q@=yU=f-ZLWbxfGHV1)sYPs3iJ1b6q`~o|MCAX z@7urIx^aYm&tGw)?U|JtS5E9Col(~7FR|UJcl8Rl1d;w zDYC=Q*=#l%X75IG<9HqUY}3@-9;IM0BV4A*r|eMOv8Um54rSH5$qSf$OJ zQ*l{0b58Zve^Ylq=+XnhIQ@kJrKa!SV(m&^&w=nEet$u)8f@VHN2FF=S59cse{Q<% zzp#J$IDb&^rNcHNvhKKxOMo}I8o+;40;55y{*dmnqE#71OpiWZB_g^}8reFpsk3v` z(c~;i_)KqkNmVX{SdOs)8ip_cL7b|^x*x$({Y%FBZAPN(MMEpb22uZ{c!!LGa&Vx-%Yq9I3Y_?g=95z{)j_+LS;Tlq~Z=NSeK>fz{5mseJT$WR{ri zs4Dt(HZ2G1g~rcDp9S3_E100N5VQPa^bKwvcrp4osgBInNj}GA%Q})y;Q`EZ*_>+> z8Gov>@`o+p74LESwL!yD1|`f;=8X5MK2M@mxx}I6 z9j+b&ujc-Hq*cs+?@=*pMzR32(&J`*9xX|>;=HvI72f4soAOvToR$cbN@6ti^-H~j zLjx_Y?DD>h5Y4!tk`Se4gx`t~a*utNe}7yQCt|OXS@0X_KJU`u*-wpI96gGdEqDSp zWY`Fl%6WQlKC#MiG~>6*aa0+eeiv(R7Dck*w8jC|p~&M+Zpna}&2OCnF?PY

    ; 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ⅅ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

    *od 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

    dhr?fBfo#@B1eAnC(544DVxS%ZVw^`@*c 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 delta 453775 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

    >8t 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%0D#f9?y? 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 maxDetachedSessionGuards && len(r.detachedSessionOrder) > 0 { - oldestSessionID := r.detachedSessionOrder[0] - r.detachedSessionOrder = r.detachedSessionOrder[1:] - delete(r.detachedSessions, oldestSessionID) - } -} - -func (r *AutoSessionRouter) clearDetachedSessionLocked(sessionID string) { - delete(r.detachedSessions, sessionID) - filtered := r.detachedSessionOrder[:0] - for _, candidateSessionID := range r.detachedSessionOrder { - if candidateSessionID != sessionID { - filtered = append(filtered, candidateSessionID) - } - } - r.detachedSessionOrder = filtered -} - func intFromAny(value any) (int, bool) { switch typed := value.(type) { case int: diff --git a/go/modcdp/router/AutoSessionRouter_test.go b/go/modcdp/router/AutoSessionRouter_test.go index 1ba7fe2b..63cbe500 100644 --- a/go/modcdp/router/AutoSessionRouter_test.go +++ b/go/modcdp/router/AutoSessionRouter_test.go @@ -14,97 +14,6 @@ import ( "github.com/gobwas/ws/wsutil" ) -func TestAutoSessionRouterRejectsPendingExecutionContextWaitersWhenSessionDetaches(t *testing.T) { - router := NewAutoSessionRouter(func(string, map[string]any, string) (map[string]any, error) { - return map[string]any{}, nil - }, func() int { return 5000 }) - - result := make(chan error, 1) - go func() { - _, err := router.WaitForExecutionContext("detached-session", 5000) - result <- err - }() - waitForString(t, func() string { - router.mu.Lock() - defer router.mu.Unlock() - if len(router.executionContextWaiters["detached-session"]) > 0 { - return "waiting" - } - return "" - }) - router.RecordProtocolEvent("Target.attachedToTarget", map[string]any{ - "sessionId": "detached-session", - "targetInfo": map[string]any{"targetId": "target-1", "type": "page"}, - }, "") - router.RecordProtocolEvent("Target.detachedFromTarget", map[string]any{"sessionId": "detached-session"}, "") - router.RecordProtocolEvent("Runtime.executionContextCreated", map[string]any{"context": map[string]any{"id": 42}}, "detached-session") - - select { - case err := <-result: - if err == nil || !strings.Contains(err.Error(), "Runtime execution context wait cancelled because session detached-session detached") { - t.Fatalf("wait error = %v", err) - } - case <-time.After(time.Second): - t.Fatal("timed out waiting for detach error") - } - if sessionID := router.SessionIDForTarget("target-1"); sessionID != "" { - t.Fatalf("session id after detach = %q", sessionID) - } - if _, ok := router.ExecutionContexts["detached-session"]; ok { - t.Fatal("stale execution context was recorded after detach") - } -} - -func TestAutoSessionRouterBoundsDetachedSessionGuardsAndClearsThemWhenSessionReattaches(t *testing.T) { - router := NewAutoSessionRouter(func(string, map[string]any, string) (map[string]any, error) { - return map[string]any{}, nil - }, func() int { return 5000 }) - - for index := 0; index < 1034; index++ { - router.RecordProtocolEvent("Target.detachedFromTarget", map[string]any{"sessionId": fmt.Sprintf("detached-session-%d", index)}, "") - } - - router.mu.Lock() - detachedCount := len(router.detachedSessions) - detachedOrderCount := len(router.detachedSessionOrder) - router.mu.Unlock() - if detachedCount > maxDetachedSessionGuards { - t.Fatalf("detached session guard count = %d, want <= %d", detachedCount, maxDetachedSessionGuards) - } - if detachedOrderCount > maxDetachedSessionGuards { - t.Fatalf("detached session guard order count = %d, want <= %d", detachedOrderCount, maxDetachedSessionGuards) - } - - recentSessionID := "detached-session-1033" - router.RecordProtocolEvent("Runtime.executionContextCreated", map[string]any{"context": map[string]any{"id": 42}}, recentSessionID) - if _, ok := router.ExecutionContexts[recentSessionID]; ok { - t.Fatal("stale execution context was recorded for detached session") - } - - router.RecordProtocolEvent("Target.attachedToTarget", map[string]any{ - "sessionId": recentSessionID, - "targetInfo": map[string]any{"targetId": "target-reattached", "type": "page"}, - }, "") - router.RecordProtocolEvent("Runtime.executionContextCreated", map[string]any{"context": map[string]any{"id": 43}}, recentSessionID) - - if sessionID := router.SessionIDForTarget("target-reattached"); sessionID != recentSessionID { - t.Fatalf("session id = %q, want %q", sessionID, recentSessionID) - } - if contextID := router.ExecutionContexts[recentSessionID]; contextID != 43 { - t.Fatalf("context id = %d, want 43", contextID) - } - router.mu.Lock() - defer router.mu.Unlock() - if router.detachedSessions[recentSessionID] { - t.Fatal("reattached session was still marked detached") - } - for _, detachedSessionID := range router.detachedSessionOrder { - if detachedSessionID == recentSessionID { - t.Fatal("reattached session stayed in detached session order") - } - } -} - func TestAutoSessionRouterTracksRealTargetSessionsAndExecutionContexts(t *testing.T) { headless := true chrome, err := launcher.NewLocalBrowserLauncher(launcher.LaunchOptions{ @@ -195,10 +104,14 @@ func TestAutoSessionRouterTracksRealTargetSessionsAndExecutionContexts(t *testin }() var targetID string + var pendingTargetID string defer func() { if targetID != "" { _, _ = send("Target.closeTarget", map[string]any{"targetId": targetID}, "") } + if pendingTargetID != "" { + _, _ = send("Target.closeTarget", map[string]any{"targetId": pendingTargetID}, "") + } close(done) }() @@ -213,7 +126,7 @@ func TestAutoSessionRouterTracksRealTargetSessionsAndExecutionContexts(t *testin t.Fatal(err) } targetID, _ = created["targetId"].(string) - sessionID := waitForString(t, func() string { return router.SessionIDForTarget(targetID) }) + sessionID := waitForString(t, func() string { return router.SessionId_from_targetId[targetID] }) contextResult := make(chan int, 1) contextError := make(chan error, 1) go func() { @@ -241,11 +154,54 @@ func TestAutoSessionRouterTracksRealTargetSessionsAndExecutionContexts(t *testin t.Fatal(err) } waitForString(t, func() string { - if router.SessionIDForTarget(targetID) == "" { + if router.SessionId_from_targetId[targetID] == "" { return "detached" } return "" }) + if _, ok := router.Execution_contexts[sessionID]; ok { + t.Fatal("execution context remained after detach") + } + if _, err := send("Target.closeTarget", map[string]any{"targetId": targetID}, ""); err != nil { + t.Fatal(err) + } + targetID = "" + + pendingCreated, err := send("Target.createTarget", map[string]any{"url": "about:blank#modcdp-auto-session-router-pending-context"}, "") + if err != nil { + t.Fatal(err) + } + pendingTargetID, _ = pendingCreated["targetId"].(string) + pendingSessionID := waitForString(t, func() string { return router.SessionId_from_targetId[pendingTargetID] }) + pendingContextError := make(chan error, 1) + go func() { + _, err := router.WaitForExecutionContext(pendingSessionID, 30000) + pendingContextError <- err + }() + if _, err := send("Target.detachFromTarget", map[string]any{"sessionId": pendingSessionID}, ""); err != nil { + t.Fatal(err) + } + select { + case err := <-pendingContextError: + if err == nil || !strings.Contains(err.Error(), "Runtime execution context wait cancelled because session "+pendingSessionID+" detached") { + t.Fatalf("wait error = %v", err) + } + case <-time.After(35 * time.Second): + t.Fatal("timed out waiting for detach error") + } + waitForString(t, func() string { + if router.SessionId_from_targetId[pendingTargetID] == "" { + return "detached" + } + return "" + }) + if _, ok := router.Execution_contexts[pendingSessionID]; ok { + t.Fatal("execution context was recorded for detached pending session") + } + if _, err := send("Target.closeTarget", map[string]any{"targetId": pendingTargetID}, ""); err != nil { + t.Fatal(err) + } + pendingTargetID = "" } func waitForString(t *testing.T, fn func() string) string { diff --git a/go/modcdp/translate/translate.go b/go/modcdp/translate/translate.go index 12bde56d..75506100 100644 --- a/go/modcdp/translate/translate.go +++ b/go/modcdp/translate/translate.go @@ -4,7 +4,6 @@ import ( "encoding/json" "fmt" "strings" - "time" ) const UpstreamEventBindingName = "__ModCDP_event_from_upstream__" @@ -134,31 +133,17 @@ func wrapModCDPAddMiddleware(params map[string]any) map[string]any { )) } -func wrapCustomCommand(method string, params map[string]any, sessionID string) map[string]any { +func wrapCustomCommand(method string, params map[string]any, sessionID any) map[string]any { p, _ := json.Marshal(params) runtimeParams := callFunctionParams(`async function(method, paramsJson, cdpSessionId) { return JSON.stringify(await globalThis.ModCDP.handleCommand(method, JSON.parse(paramsJson), cdpSessionId)); }`) runtimeParams["arguments"] = []map[string]any{{"value": method}, {"value": string(p)}, {"value": sessionID}} return runtimeParams } -func wrapServiceWorkerCommand(method string, params map[string]any, sessionID string, targetSessionID string) []rawStep { +func wrapServiceWorkerCommand(method string, params map[string]any, sessionID string) []rawStep { if params == nil { params = map[string]any{} } - if targetSessionID == "" { - targetSessionID = sessionID - } - if method == "Mod.ping" { - if _, ok := params["sent_at"]; !ok { - next := map[string]any{} - for key, value := range params { - next[key] = value - } - next["sent_at"] = time.Now().UnixMilli() - params = next - } - } - if method == "Mod.addCustomEvent" { return []rawStep{ {Method: "Runtime.callFunctionOn", Params: wrapModCDPAddCustomEvent(params), Unwrap: "runtime"}, @@ -168,15 +153,17 @@ func wrapServiceWorkerCommand(method string, params map[string]any, sessionID st unwrap := "runtime" switch method { case "Mod.evaluate": - runtimeParams = wrapModCDPEvaluate(params, targetSessionID) + runtimeParams = wrapModCDPEvaluate(params, sessionID) case "Mod.addCustomCommand": runtimeParams = wrapModCDPAddCustomCommand(params) case "Mod.addMiddleware": runtimeParams = wrapModCDPAddMiddleware(params) default: - cdpSessionID, _ := params["cdpSessionId"].(string) - if cdpSessionID == "" { - cdpSessionID = targetSessionID + var cdpSessionID any + if paramsSessionID, _ := params["cdpSessionId"].(string); paramsSessionID != "" { + cdpSessionID = paramsSessionID + } else if sessionID != "" { + cdpSessionID = sessionID } runtimeParams = wrapCustomCommand(method, params, cdpSessionID) unwrap = "runtime_json" @@ -184,17 +171,13 @@ func wrapServiceWorkerCommand(method string, params map[string]any, sessionID st return []rawStep{{Method: "Runtime.callFunctionOn", Params: runtimeParams, Unwrap: unwrap}} } -func WrapCommandIfNeeded(method string, params map[string]any, routes map[string]string, sessionID string, targetSessionID ...string) (rawCommand, error) { - targetSession := "" - if len(targetSessionID) > 0 { - targetSession = targetSessionID[0] - } +func WrapCommandIfNeeded(method string, params map[string]any, routes map[string]string, sessionID string) (rawCommand, error) { route := RouteFor(method, routes) if route == "direct_cdp" { - return rawCommand{Route: route, Target: "direct_cdp", Steps: []rawStep{{Method: method, Params: params, SessionID: targetSession}}}, nil + return rawCommand{Route: route, Target: "direct_cdp", Steps: []rawStep{{Method: method, Params: params, SessionID: sessionID}}}, nil } if route == "service_worker" { - return rawCommand{Route: route, Target: "service_worker", Steps: wrapServiceWorkerCommand(method, params, sessionID, targetSession)}, nil + return rawCommand{Route: route, Target: "service_worker", Steps: wrapServiceWorkerCommand(method, params, sessionID)}, nil } return rawCommand{}, fmt.Errorf("unsupported client route %q for %s", route, method) } diff --git a/go/modcdp/translate/translate_test.go b/go/modcdp/translate/translate_test.go index df05a5b9..dc11cb8c 100644 --- a/go/modcdp/translate/translate_test.go +++ b/go/modcdp/translate/translate_test.go @@ -52,6 +52,19 @@ func TestTranslateRoutesWrapsAndUnwrapsModCDPProtocolMessagesDeterministically(t t.Fatalf("configure unwrap = %q", configured.Steps[0].Unwrap) } + ping, err := wrapCommandIfNeeded("Mod.ping", map[string]any{}, DefaultClientRoutes(), "") + if err != nil { + t.Fatal(err) + } + pingArguments := ping.Steps[0].Params["arguments"].([]map[string]any) + var pingPayload map[string]any + if err := json.Unmarshal([]byte(pingArguments[1]["value"].(string)), &pingPayload); err != nil { + t.Fatal(err) + } + if len(pingPayload) != 0 { + t.Fatalf("ping params = %#v", pingPayload) + } + custom, err := wrapCommandIfNeeded( "Custom.echo", map[string]any{"secret": strings.Repeat("x", 100), "nested": map[string]any{"ok": true}}, @@ -83,6 +96,20 @@ func TestTranslateRoutesWrapsAndUnwrapsModCDPProtocolMessagesDeterministically(t t.Fatalf("session argument = %#v", customArguments[2]) } + customWithSession, err := wrapCommandIfNeeded( + "Custom.echo", + map[string]any{"secret": "targeted"}, + DefaultClientRoutes(), + "target-session-1", + ) + if err != nil { + t.Fatal(err) + } + customWithSessionArguments := customWithSession.Steps[0].Params["arguments"].([]map[string]any) + if customWithSessionArguments[2]["value"] != "target-session-1" { + t.Fatalf("target session argument = %#v", customWithSessionArguments[2]) + } + unwrapped, err := unwrapResponseIfNeeded(map[string]any{"result": map[string]any{"type": "object", "value": map[string]any{"ok": true}}}, "runtime") if err != nil { t.Fatal(err) diff --git a/go/modcdp/types/types.go b/go/modcdp/types/types.go index eb446f74..5e65ab7d 100644 --- a/go/modcdp/types/types.go +++ b/go/modcdp/types/types.go @@ -28,14 +28,13 @@ type LaunchOptions struct { } type SendCDP func(method string, params map[string]any, sessionID string) (map[string]any, error) -type SessionIDForTarget func(targetID string) string -type AttachToTarget func(targetID string) string +type EnsureSessionForTarget func(targetID string, timeoutMS int, allowAttach bool) string type WaitForExecutionContext func(sessionID string, timeoutMS int) int type ExtensionInjectorConfig struct { Send SendCDP `json:"-"` - SessionIDForTarget SessionIDForTarget `json:"-"` - AttachToTarget AttachToTarget `json:"-"` + SessionId_from_targetId map[string]string `json:"-"` + EnsureSessionForTarget EnsureSessionForTarget `json:"-"` WaitForExecutionContext WaitForExecutionContext `json:"-"` InjectorExtensionPath string `json:"injector_extension_path,omitempty"` InjectorExtensionID string `json:"injector_extension_id,omitempty"` diff --git a/js/examples/demo.ts b/js/examples/demo.ts index f6763830..a0e54e8b 100644 --- a/js/examples/demo.ts +++ b/js/examples/demo.ts @@ -17,9 +17,9 @@ // reversews and nativemessaging use the fixed extension // defaults: ws://127.0.0.1:29292 and com.modcdp.bridge. // -// Valid CI/local demo combinations exercise the same surface: raw Browser.getVersion, raw -// Target.targetCreated event handling, Mod.evaluate, Custom.* commands, -// Custom.* events, and response middleware. +// Valid CI/local demo combinations exercise the same surface: a native Runtime +// command/event pair, Mod.evaluate, Custom.* commands, Custom.* events, and +// response/event middleware. import path from "node:path"; import { existsSync } from "node:fs"; @@ -28,26 +28,20 @@ import { fileURLToPath } from "node:url"; import { setTimeout as sleep } from "node:timers/promises"; import { createInterface } from "node:readline/promises"; import { spawn } from "node:child_process"; -import { z } from "zod"; import { ModCDPClient } from "../src/client/ModCDPClient.js"; -type TargetCreatedPayload = { - targetInfo?: { targetId?: string } & Record; -}; - const HERE = path.dirname(fileURLToPath(import.meta.url)); const EXTENSION_PATH = [path.resolve(HERE, "..", "..", "extension"), path.resolve(HERE, "..", "..", "dist", "extension")].find((candidate) => existsSync(path.join(candidate, "modcdp/service_worker.js")), ) ?? path.resolve(HERE, "..", "..", "extension"); const DEFAULT_DEMO_EVENT_TIMEOUT_MS = 10_000; +const DEFAULT_DEMO_CDP_SEND_TIMEOUT_MS = 60_000; +const DEFAULT_DEMO_EXECUTION_CONTEXT_TIMEOUT_MS = 60_000; const DEFAULT_REVERSE_TRANSPORT_WAIT_TIMEOUT_MS = 60_000; const DEFAULT_LIVE_CDP_POLL_INTERVAL_MS = 250; const DEFAULT_LIVE_CDP_ACTIVE_PORT_STALE_MS = 1_000; -const DEFAULT_TARGET_EVENT_TIMEOUT_MS = 10_000; -const DEFAULT_PAGE_TARGET_EVENT_TIMEOUT_MS = 10_000; -const DEFAULT_DEMO_EVENT_POLL_INTERVAL_MS = 20; const UPSTREAM_MODES = new Set(["ws", "pipe", "reversews", "nativemessaging", "nats"]); @@ -91,30 +85,20 @@ function parseArgs(argv) { } function serverRoutesFor(mode, upstream_mode) { - const routes = { + void upstream_mode; + return { "Mod.*": "service_worker", "Custom.*": "service_worker", "*.*": mode === "loopback" ? "loopback_cdp" : mode === "debugger" ? "chrome_debugger" : "auto", }; - if (mode === "loopback" || ["reversews", "nativemessaging", "nats"].includes(upstream_mode)) { - routes["Target.setDiscoverTargets"] = "loopback_cdp"; - routes["Target.createTarget"] = "loopback_cdp"; - routes["Target.activateTarget"] = "loopback_cdp"; - } - return routes; } function clientRoutesFor(mode) { - const directNormalEventRoutes = { - "Target.setDiscoverTargets": "direct_cdp", - "Target.createTarget": "direct_cdp", - "Target.activateTarget": "direct_cdp", - }; return { "Mod.*": "service_worker", "Custom.*": "service_worker", + "Runtime.*": "service_worker", "*.*": mode === "direct" ? "direct_cdp" : "service_worker", - ...directNormalEventRoutes, }; } @@ -137,6 +121,7 @@ function clientOptionsFor(mode, upstream_mode, cdp_url, launch_options = {}) { injector_mode: "auto" as const, injector_extension_path: EXTENSION_PATH, injector_service_worker_url_suffixes: ["/modcdp/service_worker.js"], + injector_execution_context_timeout_ms: DEFAULT_DEMO_EXECUTION_CONTEXT_TIMEOUT_MS, }; if (mode === "direct") { return { @@ -145,6 +130,7 @@ function clientOptionsFor(mode, upstream_mode, cdp_url, launch_options = {}) { injector, client: { client_routes: clientRoutesFor(mode), + client_cdp_send_timeout_ms: DEFAULT_DEMO_CDP_SEND_TIMEOUT_MS, }, }; } @@ -154,9 +140,11 @@ function clientOptionsFor(mode, upstream_mode, cdp_url, launch_options = {}) { injector, client: { client_routes: clientRoutesFor(mode), + client_cdp_send_timeout_ms: DEFAULT_DEMO_CDP_SEND_TIMEOUT_MS, }, server: { server_routes: serverRoutesFor(mode, upstream_mode), + server_loopback_execution_context_timeout_ms: DEFAULT_DEMO_EXECUTION_CONTEXT_TIMEOUT_MS, }, }; } @@ -168,12 +156,6 @@ function assertObject(value, label) { return value; } -function isTargetCreatedPayload(value: unknown): value is TargetCreatedPayload { - if (value == null || typeof value !== "object" || Array.isArray(value)) return false; - const targetInfo = (value as Record).targetInfo; - return targetInfo == null || (typeof targetInfo === "object" && !Array.isArray(targetInfo)); -} - async function waitForEvent(cdp, eventName, predicate = (_payload) => true, timeoutMs = DEFAULT_DEMO_EVENT_TIMEOUT_MS) { return await new Promise((resolve, reject) => { const timeout = setTimeout(() => { @@ -257,17 +239,10 @@ async function main() { } const cdp = new ModCDPClient(clientOptionsFor(mode, upstream_mode, cdp_url, launch_options)); - const pageTargetEvents = []; - const targetCreatedEvents: TargetCreatedPayload[] = []; try { await cdp.connect(); console.log("upstream cdp:", cdp.cdp_url); - cdp.on(cdp.Target.targetCreated, (payload) => { - const event = isTargetCreatedPayload(payload) ? payload : {}; - console.log("Target.targetCreated ->", event.targetInfo?.targetId); - targetCreatedEvents.push(event); - }); console.log("connected; ext", cdp.extension_id, "session", cdp.ext_session_id); console.log("connect timing ->", cdp.connect_timing); @@ -281,6 +256,7 @@ async function main() { }, server: { server_routes: serverRoutesFor(mode, upstream_mode), + server_loopback_execution_context_timeout_ms: DEFAULT_DEMO_EXECUTION_CONTEXT_TIMEOUT_MS, }, }), "Mod.configure", @@ -305,36 +281,6 @@ async function main() { return_path_ms: typeof pong.received_at === "number" ? ping_returned_at - pong.received_at : null, }); - // Browser.getVersion is browser-scoped and chrome.debugger is tab-scoped, - // so debugger mode asserts a positive raw CDP Runtime.evaluate instead. - if (mode === "debugger") { - try { - const version = assertObject(await cdp.Browser.getVersion(), "Browser.getVersion"); - if (typeof version.protocolVersion !== "string" || typeof version.product !== "string") { - throw new Error(`unexpected Browser.getVersion result ${JSON.stringify(version)}`); - } - console.log("Browser.getVersion ->", version); - } catch (e) { - console.log("Browser.getVersion -> (debugger route rejected:", e.message.replace(/\n/g, " "), ")"); - } - const runtimeEval = assertObject( - await cdp.Runtime.evaluate({ - expression: "(() => 42)()", - returnByValue: true, - }), - "Runtime.evaluate", - ); - if (runtimeEval.result?.value !== 42) - throw new Error(`unexpected Runtime.evaluate result ${JSON.stringify(runtimeEval)}`); - console.log("Runtime.evaluate ->", runtimeEval); - } else { - const version = assertObject(await cdp.Browser.getVersion(), "Browser.getVersion"); - if (typeof version.protocolVersion !== "string" || typeof version.product !== "string") { - throw new Error(`unexpected Browser.getVersion result ${JSON.stringify(version)}`); - } - console.log("Browser.getVersion ->", version); - } - const modcdpEval = (await cdp.Mod.evaluate({ expression: "({ extension_id: chrome.runtime.id })", })) as { @@ -347,81 +293,11 @@ async function main() { throw new Error(`unexpected Mod.evaluate result ${JSON.stringify(modcdpEval)}`); console.log("Mod.evaluate ->", modcdpEval); - const echoRegistration = assertObject( - await cdp.Mod.addCustomCommand({ - name: "Custom.echo", - expression: `async (params, method) => ({ echoed: params.value, method })`, - }), - "Mod.addCustomCommand Custom.echo", - ); - if (echoRegistration.registered !== true || echoRegistration.name !== "Custom.echo") { - throw new Error(`unexpected Custom.echo registration ${JSON.stringify(echoRegistration)}`); - } - const echoResult = assertObject(await cdp.send("Custom.echo", { value: "custom-command-ok" }), "Custom.echo"); - if (echoResult.echoed !== "custom-command-ok" || echoResult.method !== "Custom.echo") { - throw new Error(`unexpected Custom.echo result ${JSON.stringify(echoResult)}`); - } - console.log("Custom.echo ->", echoResult); - - const tabCommandRegistration = assertObject( - await cdp.Mod.addCustomCommand({ - name: "Custom.TabIdFromTargetId", - params_schema: { - targetId: cdp.types.zod.Target.TargetID, - }, - result_schema: { - tabId: z.number().nullable(), - }, - expression: `async ({ targetId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.id === targetId); - return { tabId: target?.tabId ?? null }; - }`, - }), - "Mod.addCustomCommand Custom.TabIdFromTargetId", - ); - if (tabCommandRegistration.registered !== true) { - throw new Error(`unexpected TabIdFromTargetId registration ${JSON.stringify(tabCommandRegistration)}`); - } - const targetCommandRegistration = assertObject( - await cdp.Mod.addCustomCommand({ - name: "Custom.targetIdFromTabId", - params_schema: { - tabId: z.number(), - }, - result_schema: { - targetId: cdp.types.zod.Target.TargetID.nullable(), - tabId: z.number().optional(), - }, - expression: `async ({ tabId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.type === "page" && target.tabId === tabId); - return { targetId: target?.id ?? null }; - }`, - }), - "Mod.addCustomCommand Custom.targetIdFromTabId", - ); - if (targetCommandRegistration.registered !== true) { - throw new Error(`unexpected targetIdFromTabId registration ${JSON.stringify(targetCommandRegistration)}`); - } const responseMiddlewareRegistration = assertObject( await cdp.Mod.addMiddleware({ - name: "*", + name: "Custom.echo", phase: cdp.RESPONSE, - expression: `async (payload, next) => { - const seen = new WeakSet(); - const visit = async value => { - if (!value || typeof value !== "object" || seen.has(value)) return; - seen.add(value); - if (!Array.isArray(value) && typeof value.targetId === "string" && value.tabId == null) { - const { tabId } = await cdp.send("Custom.TabIdFromTargetId", { targetId: value.targetId }); - if (tabId != null) value.tabId = tabId; - } - for (const child of Array.isArray(value) ? value : Object.values(value)) await visit(child); - }; - await visit(payload); - return next(payload); - }`, + expression: `async (payload, next) => next({ ...payload, responseMiddleware: "ok" })`, }), "Mod.addMiddleware response", ); @@ -431,22 +307,9 @@ async function main() { const eventMiddlewareRegistration = assertObject( await cdp.Mod.addMiddleware({ - name: "*", + name: "Custom.demoEvent", phase: cdp.EVENT, - expression: `async (payload, next) => { - const seen = new WeakSet(); - const visit = async value => { - if (!value || typeof value !== "object" || seen.has(value)) return; - seen.add(value); - if (!Array.isArray(value) && typeof value.targetId === "string" && value.tabId == null) { - const { tabId } = await cdp.send("Custom.TabIdFromTargetId", { targetId: value.targetId }); - if (tabId != null) value.tabId = tabId; - } - for (const child of Array.isArray(value) ? value : Object.values(value)) await visit(child); - }; - await visit(payload); - return next(payload); - }`, + expression: `async (payload, next) => next({ ...payload, eventMiddleware: "ok" })`, }), "Mod.addMiddleware event", ); @@ -454,6 +317,26 @@ async function main() { throw new Error(`unexpected event middleware registration ${JSON.stringify(eventMiddlewareRegistration)}`); } + const echoRegistration = assertObject( + await cdp.Mod.addCustomCommand({ + name: "Custom.echo", + expression: `async (params, method) => ({ echoed: params.value, method })`, + }), + "Mod.addCustomCommand Custom.echo", + ); + if (echoRegistration.registered !== true || echoRegistration.name !== "Custom.echo") { + throw new Error(`unexpected Custom.echo registration ${JSON.stringify(echoRegistration)}`); + } + const echoResult = assertObject(await cdp.send("Custom.echo", { value: "custom-command-ok" }), "Custom.echo"); + if ( + echoResult.echoed !== "custom-command-ok" || + echoResult.method !== "Custom.echo" || + echoResult.responseMiddleware !== "ok" + ) { + throw new Error(`unexpected Custom.echo result ${JSON.stringify(echoResult)}`); + } + console.log("Custom.echo ->", echoResult); + const demoEventRegistration = assertObject( await cdp.Mod.addCustomEvent({ name: "Custom.demoEvent" }), "Mod.addCustomEvent Custom.demoEvent", @@ -461,7 +344,11 @@ async function main() { if (demoEventRegistration.registered !== true || demoEventRegistration.name !== "Custom.demoEvent") { throw new Error(`unexpected Custom.demoEvent registration ${JSON.stringify(demoEventRegistration)}`); } - const demoEventPromise = waitForEvent(cdp, "Custom.demoEvent", (event) => event?.value === "custom-event-ok"); + const demoEventPromise = waitForEvent( + cdp, + "Custom.demoEvent", + (event) => event?.value === "custom-event-ok" && event?.eventMiddleware === "ok", + ); const emitResult = assertObject( await cdp.Mod.evaluate({ expression: `async () => await ModCDP.emit("Custom.demoEvent", { value: "custom-event-ok" })`, @@ -473,95 +360,20 @@ async function main() { const demoEvent = assertObject(await demoEventPromise, "Custom.demoEvent"); console.log("Custom.demoEvent ->", demoEvent); - const PageTargetUpdated = z - .object({ - targetId: cdp.types.zod.Target.TargetID, - tabId: z.number().optional(), - url: z.string().nullable().optional(), - }) - .passthrough() - .meta({ id: "Custom.pageTargetUpdated" }); - const pageTargetEventRegistration = assertObject( - await cdp.Mod.addCustomEvent(PageTargetUpdated), - "Mod.addCustomEvent Custom.pageTargetUpdated", - ); - if (pageTargetEventRegistration.registered !== true) { - throw new Error(`unexpected page target event registration ${JSON.stringify(pageTargetEventRegistration)}`); - } - cdp.on(PageTargetUpdated, (event) => { - console.log("Custom.pageTargetUpdated ->", event); - pageTargetEvents.push(event); - }); - - await cdp.Target.setDiscoverTargets({ discover: true }); - const createdTarget = await cdp.Target.createTarget({ - url: "https://example.com", - background: true, - }); - const targetDeadline = Date.now() + DEFAULT_TARGET_EVENT_TIMEOUT_MS; - while ( - !targetCreatedEvents.some((event) => event?.targetInfo?.targetId === createdTarget.targetId) && - Date.now() < targetDeadline - ) { - await sleep(DEFAULT_DEMO_EVENT_POLL_INTERVAL_MS); - } - if (!targetCreatedEvents.some((event) => event?.targetInfo?.targetId === createdTarget.targetId)) { - throw new Error(`expected Target.targetCreated for ${createdTarget.targetId}`); - } - console.log("normal event matched ->", createdTarget.targetId); - - const tabFromTarget = await cdp.send("Custom.TabIdFromTargetId", { - targetId: createdTarget.targetId, - }); - const tabFromTargetId = - typeof tabFromTarget === "number" - ? tabFromTarget - : tabFromTarget && typeof tabFromTarget === "object" - ? (tabFromTarget as { tabId?: unknown }).tabId - : null; - if (typeof tabFromTargetId !== "number") - throw new Error(`unexpected Custom.TabIdFromTargetId result ${JSON.stringify(tabFromTarget)}`); - console.log("Custom.TabIdFromTargetId ->", tabFromTarget); - - await cdp.Target.activateTarget({ targetId: createdTarget.targetId }); - const pageTargetEmitResult = assertObject( - await cdp.Mod.evaluate({ - params: { targetId: createdTarget.targetId }, - expression: `async ({ targetId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.id === targetId); - if (!target?.id) throw new Error(\`target \${targetId} not found\`); - await cdp.emit("Custom.pageTargetUpdated", { targetId: target.id, url: target.url ?? null }); - return { emitted: true, targetId: target.id }; - }`, + const runtimeEval = assertObject( + await cdp.Runtime.evaluate({ + expression: "(() => 42)()", + returnByValue: true, }), - "Custom.pageTargetUpdated emit", + "Runtime.evaluate", ); - if (pageTargetEmitResult.emitted !== true || pageTargetEmitResult.targetId !== createdTarget.targetId) { - throw new Error(`unexpected Custom.pageTargetUpdated emit result ${JSON.stringify(pageTargetEmitResult)}`); - } - const pageTargetDeadline = Date.now() + DEFAULT_PAGE_TARGET_EVENT_TIMEOUT_MS; - while ( - !pageTargetEvents.some((event) => event.targetId === createdTarget.targetId) && - Date.now() < pageTargetDeadline - ) { - await sleep(DEFAULT_DEMO_EVENT_POLL_INTERVAL_MS); - } - const pageTarget = pageTargetEvents.find((event) => event.targetId === createdTarget.targetId); - if (!pageTarget) throw new Error(`expected Custom.pageTargetUpdated for ${createdTarget.targetId}`); - if (pageTarget.tabId !== tabFromTargetId) - throw new Error(`unexpected Custom.pageTargetUpdated result ${JSON.stringify(pageTarget)}`); - - const targetFromTab = await cdp.send("Custom.targetIdFromTabId", { - tabId: pageTarget.tabId, - }); - if (targetFromTab.targetId !== createdTarget.targetId || targetFromTab.tabId !== pageTarget.tabId) { - throw new Error(`unexpected Custom.targetIdFromTabId/middleware result ${JSON.stringify(targetFromTab)}`); + if (runtimeEval.result?.value !== 42) { + throw new Error(`unexpected Runtime.evaluate result ${JSON.stringify(runtimeEval)}`); } - console.log("Custom.targetIdFromTabId ->", targetFromTab); + console.log("Runtime.evaluate ->", runtimeEval); console.log( - `\nSUCCESS (${mode}/${upstream_mode}): normal command, normal event, custom commands, custom event, and middleware all passed`, + `\nSUCCESS (${mode}/${upstream_mode}): native command, custom commands, custom event, and middleware all passed`, ); // Drop into an interactive prompt when stdin is a TTY. Lets you poke at @@ -582,7 +394,7 @@ async function runRepl(cdp, mode) { console.log("Enter commands as Domain.method({...JSON params...}). Examples:"); console.log(" Browser.getVersion({})"); console.log(' Mod.evaluate({"expression": "chrome.tabs.query({active: true})"})'); - console.log(' Custom.TabIdFromTargetId({"targetId": "..."})'); + console.log(' Runtime.evaluate({"expression": "document.title", "returnByValue": true})'); console.log("Type exit or quit to disconnect (browser keeps running)."); const rl = createInterface({ input: process.stdin, output: process.stdout }); diff --git a/js/src/client/ModCDPClient.ts b/js/src/client/ModCDPClient.ts index 295c188e..c16619c6 100644 --- a/js/src/client/ModCDPClient.ts +++ b/js/src/client/ModCDPClient.ts @@ -15,6 +15,9 @@ import type { z } from "zod"; import { createCdpAliases, type CdpAliases } from "../types/generated/aliases.js"; export type { CdpAliases } from "../types/generated/aliases.js"; import { commands as nativeCommandSchemas, events as nativeEventSchemas } from "../types/generated/zod.js"; +import type { CdpNamedSchema } from "../types/generated/zod/helpers.js"; +import * as Runtime from "../types/generated/zod/Runtime.js"; +import * as Target from "../types/generated/zod/Target.js"; import { CUSTOM_EVENT_BINDING_NAME, DEFAULT_CLIENT_ROUTES, @@ -32,6 +35,7 @@ import { import type { BrowserLauncher, BrowserLaunchOptions, LaunchedBrowser } from "../launcher/BrowserLauncher.js"; import { type ExtensionInjectorConfig, type ExtensionInjector, type SendCDP } from "../injector/ExtensionInjector.js"; import { AutoSessionRouter } from "../router/AutoSessionRouter.js"; +import type { ServerUpstreamEventListener, ServerUpstreamTransport } from "../server/ServerUpstreamTransport.js"; import type { CdpCommandMessage, CdpError, @@ -40,7 +44,6 @@ import type { RuntimeBindingCalledEvent, ModCDPConfigureParams, ModCDPServerOptions, - ModCDPCustomPayload, ModCDPAddCustomCommandParams, ModCDPAddCustomEventObjectParams, ModCDPAddMiddlewareParams, @@ -188,11 +191,11 @@ export type ModCDPClientInstance< } & { on>( eventName: TName, - listener: (event: TEvents[TName]) => void, + listener: (event: TEvents[TName], sessionId: string | null) => void, ): ModCDPClient; once>( eventName: TName, - listener: (event: TEvents[TName]) => void, + listener: (event: TEvents[TName], sessionId: string | null) => void, ): ModCDPClient; }; @@ -402,6 +405,7 @@ export class ModCDPClient extends ModCDPEventEmitter { command_result_unwrap_keys: Map; cdp_aliases_hydrated: boolean; event_wait_cleanups: Set<() => void>; + upstream_event_listeners: Map, Set>; auto_sessions: AutoSessionRouter; heartbeat_timer: ReturnType | null; _injectors: ExtensionInjector[]; @@ -458,12 +462,46 @@ export class ModCDPClient extends ModCDPEventEmitter { this.command_result_unwrap_keys = new Map(); this.cdp_aliases_hydrated = false; this.event_wait_cleanups = new Set(); + this.upstream_event_listeners = new Map(); this.heartbeat_timer = null; - this.auto_sessions = new AutoSessionRouter( - (method, params = {}, session_id = null) => - this._sendMessage(method, params, session_id) as Promise, - () => this.injector.injector_execution_context_timeout_ms, - ); + const raw_upstream_transport: ServerUpstreamTransport = { + getTargets: async () => (await raw_upstream_transport.send(Target.GetTargetsCommand, {})).targetInfos, + resolveTargetId: async (params) => + typeof params.targetId === "string" && params.targetId.length > 0 ? params.targetId : null, + createTarget: async (url) => (await raw_upstream_transport.send(Target.CreateTargetCommand, { url })).targetId, + attachToTarget: async (targetId) => + (await raw_upstream_transport.send(Target.AttachToTargetCommand, { targetId, flatten: true })).sessionId, + detachFromTarget: async (sessionId) => { + await raw_upstream_transport.send(Target.DetachFromTargetCommand, { sessionId }); + }, + send: async (command, params, route = undefined) => { + if (route && route.sessionId == null) + throw new Error(`No CDP session is attached for targetId=${route.targetId}.`); + return command.result.parse( + await this._sendMessage(command.id, command.params.parse(params), route?.sessionId ?? null), + ); + }, + on: (event, listener) => { + const typed_listener: ServerUpstreamEventListener = (payload, targetId, sessionId) => { + listener(event.parse(payload), targetId, sessionId); + }; + const listeners = this.upstream_event_listeners.get(event); + if (listeners) listeners.add(typed_listener); + else this.upstream_event_listeners.set(event, new Set([typed_listener])); + return { + remove: () => { + const current_listeners = this.upstream_event_listeners.get(event); + current_listeners?.delete(typed_listener); + if (current_listeners?.size === 0) this.upstream_event_listeners.delete(event); + }, + }; + }, + }; + this.auto_sessions = new AutoSessionRouter({ + upstream: raw_upstream_transport, + loopback_execution_context_timeout_ms: this.injector.injector_execution_context_timeout_ms, + }); + this.auto_sessions.listen(); this._injectors = []; this._launched = null; @@ -533,12 +571,20 @@ export class ModCDPClient extends ModCDPEventEmitter { const ext_context = this.auto_sessions.waitForExecutionContext(this.ext_session_id, { timeout_ms: this.injector.injector_execution_context_timeout_ms, }); - await this._sendMessage("Runtime.enable", {}, this.ext_session_id); + await this._sendMessage(Runtime.EnableCommand.id, Runtime.EnableCommand.params.parse({}), this.ext_session_id); this.ext_execution_context_id = await ext_context; await Promise.all([ - this._sendMessage("Runtime.addBinding", { name: CUSTOM_EVENT_BINDING_NAME }, this.ext_session_id), + this._sendMessage( + Runtime.AddBindingCommand.id, + Runtime.AddBindingCommand.params.parse({ name: CUSTOM_EVENT_BINDING_NAME }), + this.ext_session_id, + ), this.client.client_mirror_upstream_events - ? this._sendMessage("Runtime.addBinding", { name: UPSTREAM_EVENT_BINDING_NAME }, this.ext_session_id) + ? this._sendMessage( + Runtime.AddBindingCommand.id, + Runtime.AddBindingCommand.params.parse({ name: UPSTREAM_EVENT_BINDING_NAME }), + this.ext_session_id, + ) : Promise.resolve(), ]); if (this.server !== null) { @@ -631,7 +677,7 @@ export class ModCDPClient extends ModCDPEventEmitter { } const command = wrapCommandIfNeeded(method, command_params as ProtocolParams, { routes: this.client.client_routes, - targetCdpSessionId: session_id, + cdpSessionId: session_id, }); const result = await this._sendRaw(command); const completed_at = Date.now(); @@ -904,7 +950,7 @@ export class ModCDPClient extends ModCDPEventEmitter { _serverNeedsLoopbackCdp() { if (!this.server || this.server.server_loopback_cdp_url) return false; - return Object.values(this.server.server_routes ?? {}).includes("loopback_cdp"); + return this.server.server_routes?.["*.*"] === "loopback_cdp"; } _upstreamTransportConfig() { @@ -972,8 +1018,10 @@ export class ModCDPClient extends ModCDPEventEmitter { service_worker_url_suffixes.some((suffix) => suffix.split("/").filter(Boolean).length > 1); return { send, - sessionIdForTarget: (target_id) => this.auto_sessions.sessionIdForTarget(target_id), - attachToTarget: send ? (target_id) => this.auto_sessions.attachToTarget(target_id) : null, + sessionId_from_targetId: this.auto_sessions.sessionId_from_targetId, + ensureSessionForTarget: send + ? (target_id, timeout_ms, allow_attach) => this.ensureSessionForTarget(target_id, timeout_ms, allow_attach) + : null, waitForExecutionContext: (session_id, timeout_ms) => this.auto_sessions.waitForExecutionContext(session_id, { timeout_ms }), injector_extension_path: this.injector.injector_extension_path, @@ -993,6 +1041,19 @@ export class ModCDPClient extends ModCDPEventEmitter { }; } + private async ensureSessionForTarget(target_id: string, timeout_ms = 0, allow_attach = false) { + const session_id = this.auto_sessions.sessionId_from_targetId.get(target_id); + if (session_id) return session_id; + if (allow_attach) return await this.auto_sessions.ensureSessionForTarget(target_id); + const deadline = Date.now() + timeout_ms; + while (Date.now() <= deadline) { + const current_session_id = this.auto_sessions.sessionId_from_targetId.get(target_id); + if (current_session_id) return current_session_id; + await new Promise((resolve) => setTimeout(resolve, this.injector.injector_target_session_poll_interval_ms)); + } + return null; + } + async _runInjectors(send: SendCDP, injectors: ExtensionInjector[] | null = null) { injectors ??= await this._injectorsForConfig(); const errors: string[] = []; @@ -1016,12 +1077,18 @@ export class ModCDPClient extends ModCDPEventEmitter { async _initializeRawCDPTransport() { await Promise.all([ - this._sendMessage("Target.setAutoAttach", { - autoAttach: true, - waitForDebuggerOnStart: false, - flatten: true, - }), - this._sendMessage("Target.setDiscoverTargets", { discover: true }), + this._sendMessage( + Target.SetAutoAttachCommand.id, + Target.SetAutoAttachCommand.params.parse({ + autoAttach: true, + waitForDebuggerOnStart: false, + flatten: true, + }), + ), + this._sendMessage( + Target.SetDiscoverTargetsCommand.id, + Target.SetDiscoverTargetsCommand.params.parse({ discover: true }), + ), ]); } @@ -1054,11 +1121,11 @@ export class ModCDPClient extends ModCDPEventEmitter { on( event_name: TEvent, - listener: (event: ModCDPEventPayload) => void, + listener: (event: ModCDPEventPayload, sessionId: string | null) => void, ): this; on(event_name: string | symbol, listener: (...args: unknown[]) => void): this; - on(event_name: ModCDPEventNameInput, listener: (...args: unknown[]) => void): this; - on(event_name: ModCDPEventNameInput, listener: (...args: unknown[]) => void) { + on(event_name: ModCDPEventNameInput, listener: (...args: any[]) => void): this; + on(event_name: ModCDPEventNameInput, listener: (...args: any[]) => void) { if (typeof event_name !== "string" && typeof event_name !== "symbol") { const name = normalizeModCDPName(event_name); this.event_schemas.set(name, event_name); @@ -1069,11 +1136,11 @@ export class ModCDPClient extends ModCDPEventEmitter { once( event_name: TEvent, - listener: (event: ModCDPEventPayload) => void, + listener: (event: ModCDPEventPayload, sessionId: string | null) => void, ): this; once(event_name: string | symbol, listener: (...args: unknown[]) => void): this; - once(event_name: ModCDPEventNameInput, listener: (...args: unknown[]) => void): this; - once(event_name: ModCDPEventNameInput, listener: (...args: unknown[]) => void) { + once(event_name: ModCDPEventNameInput, listener: (...args: any[]) => void): this; + once(event_name: ModCDPEventNameInput, listener: (...args: any[]) => void) { if (typeof event_name !== "string" && typeof event_name !== "symbol") { const name = normalizeModCDPName(event_name); this.event_schemas.set(name, event_name); @@ -1084,11 +1151,11 @@ export class ModCDPClient extends ModCDPEventEmitter { off( event_name: TEvent, - listener: (event: ModCDPEventPayload) => void, + listener: (event: ModCDPEventPayload, sessionId: string | null) => void, ): this; off(event_name: string | symbol, listener: (...args: unknown[]) => void): this; - off(event_name: ModCDPEventNameInput, listener: (...args: unknown[]) => void): this; - off(event_name: ModCDPEventNameInput, listener: (...args: unknown[]) => void) { + off(event_name: ModCDPEventNameInput, listener: (...args: any[]) => void): this; + off(event_name: ModCDPEventNameInput, listener: (...args: any[]) => void) { if (typeof event_name !== "string" && typeof event_name !== "symbol") { return super.off(normalizeModCDPName(event_name), listener); } @@ -1158,7 +1225,9 @@ export class ModCDPClient extends ModCDPEventEmitter { let unwrap = null; for (const step of command.steps) { const step_params = - step.method === "Runtime.callFunctionOn" && step.params && !Object.hasOwn(step.params, "executionContextId") + step.method === Runtime.CallFunctionOnCommand.id && + step.params && + !Object.hasOwn(step.params, "executionContextId") ? { ...step.params, executionContextId: @@ -1254,43 +1323,30 @@ export class ModCDPClient extends ModCDPEventEmitter { return; } const event = CdpEventMessageSchema.parse(msg); + const eventParams = (event.params || {}) as ProtocolPayload; + for (const [upstream_event, listeners] of this.upstream_event_listeners) { + if (upstream_event.id !== event.method) continue; + for (const listener of listeners) listener(eventParams, null, event.sessionId || null); + } if (event.sessionId === this.ext_session_id) { - if (event.method === "Runtime.executionContextCreated") { - this.auto_sessions.recordProtocolEvent(event.method, event.params || {}, event.sessionId || null); - } - if (event.method !== "Runtime.bindingCalled") return; + if (event.method !== this.Runtime.bindingCalled.id) return; const u = unwrapEventIfNeeded( event.method, - (event.params || {}) as RuntimeBindingCalledEvent, + eventParams as RuntimeBindingCalledEvent, event.sessionId || null, this.ext_session_id, ); if (u) { const payload = this._parseEventPayload(u.event, u.data); - this.auto_sessions.recordProtocolEvent(u.event, payload as ProtocolPayload, u.sessionId); this.emit(u.event, payload, u.sessionId); } return; } if (event.method) { - const data = event.params || {}; - const payload = this._parseEventPayload(event.method, data); - this.auto_sessions.recordProtocolEvent(event.method, payload as ProtocolPayload, event.sessionId || null); + const payload = this._parseEventPayload(event.method, eventParams); this.emit(event.method, payload, event.sessionId || null); } } - - get auto_target_sessions() { - return this.auto_sessions.target_sessions; - } - - get auto_session_targets() { - return this.auto_sessions.session_targets; - } - - get runtime_execution_contexts() { - return this.auto_sessions.execution_contexts; - } } export interface ModCDPClient extends CdpAliases {} diff --git a/js/src/injector/BorrowedExtensionInjector.ts b/js/src/injector/BorrowedExtensionInjector.ts index 48f5cca3..ea594bc6 100644 --- a/js/src/injector/BorrowedExtensionInjector.ts +++ b/js/src/injector/BorrowedExtensionInjector.ts @@ -54,7 +54,7 @@ export class BorrowedExtensionInjector extends ExtensionInjector { } private async bootstrapTarget(target: TargetInfo): Promise { - const session_id = await this.ensureSessionIdForTarget( + const session_id = await this.ensureSessionForTarget( target.targetId, this.options.injector_service_worker_probe_timeout_ms, true, diff --git a/js/src/injector/ExtensionInjector.ts b/js/src/injector/ExtensionInjector.ts index 5acf3920..b365b5c5 100644 --- a/js/src/injector/ExtensionInjector.ts +++ b/js/src/injector/ExtensionInjector.ts @@ -24,8 +24,12 @@ export type TargetInfo = { targetId: string; type?: string; url?: string }; export type ExtensionInjectorConfig = { send?: SendCDP | null; - sessionIdForTarget?: ((target_id: string) => string | null | undefined) | null; - attachToTarget?: ((target_id: string) => Promise) | null; + sessionId_from_targetId?: Map | null; + ensureSessionForTarget?: ( + target_id: string, + timeout_ms: number, + allow_attach: boolean, + ) => Promise; waitForExecutionContext?: ((session_id: string, timeout_ms: number) => Promise) | null; injector_extension_path?: string | null; injector_extension_id?: string | null; @@ -147,8 +151,8 @@ export class ExtensionInjector { constructor(options: ExtensionInjectorConfig = {}) { this.options = { send: null, - sessionIdForTarget: null, - attachToTarget: null, + sessionId_from_targetId: null, + ensureSessionForTarget: null, waitForExecutionContext: null, injector_extension_path: null, injector_extension_id: null, @@ -234,24 +238,10 @@ export class ExtensionInjector { }); } - protected async sessionIdForTarget(target_id: string, timeout_ms = 0) { - const deadline = Date.now() + timeout_ms; - while (true) { - const session_id = this.options.sessionIdForTarget?.(target_id); - if (typeof session_id === "string" && session_id.length > 0) return session_id; - if (Date.now() >= deadline) return null; - await delay(this.options.injector_target_session_poll_interval_ms ?? DEFAULT_TARGET_SESSION_POLL_INTERVAL_MS); - } - } - - protected async ensureSessionIdForTarget(target_id: string, timeout_ms = 0, allow_attach = false) { - const session_id = this.options.sessionIdForTarget?.(target_id); + protected async ensureSessionForTarget(target_id: string, timeout_ms = 0, allow_attach = false) { + const session_id = this.options.sessionId_from_targetId?.get(target_id); if (typeof session_id === "string" && session_id.length > 0) return session_id; - if (allow_attach) { - const attached_session_id = await this.options.attachToTarget?.(target_id); - if (typeof attached_session_id === "string" && attached_session_id.length > 0) return attached_session_id; - } - return await this.sessionIdForTarget(target_id, timeout_ms); + return (await this.options.ensureSessionForTarget?.(target_id, timeout_ms, allow_attach)) ?? null; } protected async targetInfos() { @@ -264,7 +254,7 @@ export class ExtensionInjector { { allow_attach = false }: { allow_attach?: boolean } = {}, ): Promise { if (this.unusable_target_ids.has(target.targetId)) return null; - const session_id = await this.ensureSessionIdForTarget(target.targetId, session_timeout_ms, allow_attach); + const session_id = await this.ensureSessionForTarget(target.targetId, session_timeout_ms, allow_attach); if (session_id == null) return null; await this.sendWithTimeout("Runtime.enable", {}, session_id); const probe = RuntimeCommands["Runtime.evaluate"].result.parse( diff --git a/js/src/proxy/proxy.ts b/js/src/proxy/proxy.ts index 46186c75..c7d86ced 100644 --- a/js/src/proxy/proxy.ts +++ b/js/src/proxy/proxy.ts @@ -728,7 +728,7 @@ async function handleConnection( ext_execution_context_id: cdp.ext_execution_context_id, hidden_session_ids: new Set(), // sessions we attached for ourselves hidden_target_ids: new Set(), // SW target the client must never see - target_session_ids: cdp.auto_target_sessions, + target_session_ids: cdp.auto_sessions.sessionId_from_targetId, client_session_ids: new Set(), // session ids the client has attached forward_mirrored_upstream_events: forward_mirrored_upstream_events, bootstrapped: false, diff --git a/js/src/router/AutoSessionRouter.ts b/js/src/router/AutoSessionRouter.ts index 1315b2ce..4e9fd573 100644 --- a/js/src/router/AutoSessionRouter.ts +++ b/js/src/router/AutoSessionRouter.ts @@ -1,124 +1,273 @@ -import type { ProtocolParams, ProtocolResult } from "../types/modcdp.js"; +import type { cdp } from "../types/generated/cdp.js"; +import { commands as nativeCommandSchemas } from "../types/generated/zod.js"; +import type { CdpCommandSchema } from "../types/generated/zod/helpers.js"; +import * as Runtime from "../types/generated/zod/Runtime.js"; +import * as Target from "../types/generated/zod/Target.js"; +import type { ServerUpstreamTransport, TargetRoute } from "../server/ServerUpstreamTransport.js"; +import { + CdpDebuggeeCommandParamsSchema, + type CdpDebuggeeCommandParams, + type ProtocolParams, + type ProtocolResult, +} from "../types/modcdp.js"; -type SendCDP = (method: string, params?: ProtocolParams, session_id?: string | null) => Promise; +type TargetInfo = cdp.types.ts.Target.TargetInfo; +type RecordedTarget = Partial & { + targetId: cdp.types.ts.Target.TargetID; + type: string; + sessionId?: cdp.types.ts.Target.SessionID | null; +}; type ExecutionContextWaiter = { - resolve: (context_id: number) => void; + resolve: (context_id: cdp.types.ts.Runtime.ExecutionContextId) => void; reject: (error: Error) => void; timeout: ReturnType; }; -const max_detached_session_guards = 1024; +const native_commands_by_id: ReadonlyMap = new Map( + Object.values(nativeCommandSchemas).map((command) => [command.id, command]), +); +/** + * Owns ModCDP's browser graph and target/session/context routing policy. + * + * AutoSessionRouter records Target/Page/Runtime events, maintains the current + * target-to-session graph, and hydrates target routes on demand. It does not + * know how commands are physically delivered. Loopback WebSocket request ids, + * chrome.debugger debuggee selection, native event source normalization, and + * upstream setup all live behind the ServerUpstreamTransport interface. + * + * State machine: + * 1. Target records arrive from Target.getTargets or target-info events. + * 2. ensureRouteForTarget attaches a target and records either a native session id + * or a sessionless attached target supplied by the upstream. + * 3. Runtime events add or invalidate execution context records. + * 4. Target detach and target destroy events remove only the state affected by + * the browser event. + */ export class AutoSessionRouter { - readonly target_sessions = new Map(); - readonly session_targets = new Map>(); - readonly execution_contexts = new Map(); + // TargetID -> native flattened Target.SessionID. Updated by ensureRouteForTarget + // and Target.attachedToTarget events; read by routing and injectors. + readonly sessionId_from_targetId = new Map(); + + // Native flattened Target.SessionID -> TargetID. Updated with + // sessionId_from_targetId; read when events arrive with only a session id. + readonly targetId_from_sessionId = new Map(); + + // TargetID -> latest target metadata plus router-owned session metadata. + // Updated from target discovery/events; read by target selection. + readonly targets = new Map(); + + // SessionID -> first Runtime execution context id observed for that session. + // Updated by Runtime.executionContextCreated; read by ModCDPClient injectors. + readonly execution_contexts = new Map(); + + // Context waiters keyed by native session id. Added by waitForExecutionContext + // and resolved/rejected by recordExecutionContext and invalidation methods. private readonly execution_context_waiters = new Map>(); - private readonly detached_sessions = new Map(); - constructor( - private readonly send: SendCDP, - private readonly defaultExecutionContextTimeoutMs: () => number, - ) {} + // Semantic upstream selected by the owner. The router calls methods on this + // object but never mutates transport-owned private state. + private readonly upstream: ServerUpstreamTransport; + + // Timeout in milliseconds for Runtime.executionContextCreated waits. Set once + // by the owner when constructing the router; read when installing a new + // execution-context waiter. + private readonly loopback_execution_context_timeout_ms: number; - sessionIdForTarget(target_id: string) { - return this.target_sessions.get(target_id) ?? null; + constructor({ + upstream, + loopback_execution_context_timeout_ms, + }: { + upstream: ServerUpstreamTransport; + loopback_execution_context_timeout_ms: number; + }) { + this.upstream = upstream; + this.loopback_execution_context_timeout_ms = loopback_execution_context_timeout_ms; } - async attachToTarget(target_id: string) { - const existing_session_id = this.sessionIdForTarget(target_id); - if (existing_session_id != null) return existing_session_id; - const result = await this.send("Target.attachToTarget", { - targetId: target_id, - flatten: true, - }); - const session_id = result && typeof result === "object" ? (result as Record).sessionId : null; - return typeof session_id === "string" && session_id.length > 0 ? session_id : null; + /** Route a CDP command using router-owned target/session policy. */ + async send( + method: string, + params: ProtocolParams = {}, + requestedSessionId: cdp.types.ts.Target.SessionID | null = null, + ): Promise { + const command = native_commands_by_id.get(method); + if (!command) throw new Error(`AutoSessionRouter cannot route unknown CDP command ${method}.`); + const commandParams = command.params.parse(params); + const domain = command.id.split(".")[0] ?? ""; + if (domain === "Browser" || domain === "Target" || domain === "SystemInfo") + return await this.upstream.send(command, commandParams); + if (requestedSessionId != null) { + const targetId = this.targetId_from_sessionId.get(requestedSessionId); + if (!targetId) throw new Error(`No target is recorded for sessionId=${requestedSessionId}.`); + return await this.upstream.send(command, commandParams, { targetId, sessionId: requestedSessionId }); + } + const route = await this.ensureRouteForTarget( + await this.resolveTargetId(CdpDebuggeeCommandParamsSchema.parse(params)), + ); + return await this.upstream.send(command, commandParams, route); + } + + /** Ensure a target has a real native flattened CDP session id. */ + async ensureSessionForTarget(targetId: cdp.types.ts.Target.TargetID): Promise { + const route = await this.ensureRouteForTarget(targetId); + if (route.sessionId == null) throw new Error(`Upstream attached targetId=${targetId} without a CDP session id.`); + return route.sessionId; } - recordProtocolEvent(method: string, data: unknown, session_id: string | null) { - const event_data = - data && typeof data === "object" && !Array.isArray(data) ? (data as Record) : {}; - if (method === "Target.attachedToTarget") { - const attached_session_id = typeof event_data.sessionId === "string" ? event_data.sessionId : session_id; - const target_info = - event_data.targetInfo && typeof event_data.targetInfo === "object" - ? (event_data.targetInfo as Record) - : null; - const target_id = typeof target_info?.targetId === "string" ? target_info.targetId : null; - if (attached_session_id && target_id && target_info) { - this.detached_sessions.delete(attached_session_id); - this.target_sessions.set(target_id, attached_session_id); - this.session_targets.set(attached_session_id, target_info); - } - } else if (method === "Runtime.executionContextCreated") { - const context = event_data.context && typeof event_data.context === "object" ? event_data.context : null; - const context_id = context && "id" in context && typeof context.id === "number" ? context.id : null; - if (session_id && context_id != null) this.recordExecutionContext(session_id, context_id); - } else if (method === "Target.detachedFromTarget") { - const detached_session_id = typeof event_data.sessionId === "string" ? event_data.sessionId : session_id; - if (detached_session_id) this.forgetSession(detached_session_id); + /** Ensure a target is addressable by the selected upstream. */ + async ensureRouteForTarget(targetId: cdp.types.ts.Target.TargetID | null): Promise { + targetId ??= await this.resolveTargetId(CdpDebuggeeCommandParamsSchema.parse({})); + const sessionId = targetId ? this.sessionId_from_targetId.get(targetId) : null; + if (targetId && sessionId != null) return { targetId, sessionId }; + const target = targetId ? this.targets.get(targetId) : null; + if (targetId && target?.sessionId === null) return { targetId, sessionId: null }; + targetId ??= await this.upstream.createTarget("about:blank#modcdp"); + const attachedSessionId = await this.upstream.attachToTarget(targetId); + if (attachedSessionId == null) { + this.recordTargetSessionlessAttachment(targetId); + return { targetId, sessionId: null }; } + this.recordTargetSession(targetId, attachedSessionId, this.targets.get(targetId)); + return { targetId, sessionId: attachedSessionId }; } - waitForExecutionContext(session_id: string | null, { timeout_ms }: { timeout_ms?: number } = {}) { - const effective_timeout_ms = timeout_ms ?? this.defaultExecutionContextTimeoutMs(); - if (!session_id) return Promise.reject(new Error("Cannot wait for a Runtime execution context without a session.")); - const existing = this.execution_contexts.get(session_id); + /** Subscribe this router to the selected upstream's normalized CDP events. */ + listen(): { remove: () => void } { + const subscriptions = [ + this.upstream.on(Target.AttachedToTargetEvent, (event) => + this.recordTargetSession(event.targetInfo.targetId, event.sessionId, event.targetInfo), + ), + this.upstream.on(Target.DetachedFromTargetEvent, (event) => this.forgetSession(event.sessionId)), + this.upstream.on(Target.TargetInfoChangedEvent, (event) => this.recordTarget(event.targetInfo)), + this.upstream.on(Target.TargetDestroyedEvent, (event) => this.forgetTarget(event.targetId)), + this.upstream.on(Runtime.ExecutionContextCreatedEvent, (event, targetId, sessionId) => { + this.recordExecutionContext(targetId, sessionId, event.context); + }), + this.upstream.on(Runtime.ExecutionContextDestroyedEvent, (event, _targetId, sessionId) => { + if (sessionId) this.forgetExecutionContextById(sessionId, event.executionContextId); + }), + this.upstream.on(Runtime.ExecutionContextsClearedEvent, (_event, _targetId, sessionId) => { + if (sessionId) this.forgetExecutionContextsForRoute(sessionId); + }), + ]; + return { remove: () => subscriptions.forEach((subscription) => subscription.remove()) }; + } + + /** Wait for the first execution context associated with a real session id. */ + waitForExecutionContext(sessionId: string | null, { timeout_ms }: { timeout_ms?: number } = {}): Promise { + const effective_timeout_ms = timeout_ms ?? this.loopback_execution_context_timeout_ms; + if (!sessionId) return Promise.reject(new Error("Cannot wait for a Runtime execution context without a session.")); + const existing = this.execution_contexts.get(sessionId); if (existing != null) return Promise.resolve(existing); return new Promise((resolve, reject) => { const waiter: ExecutionContextWaiter = { resolve, reject, timeout: setTimeout(() => { - const waiters = this.execution_context_waiters.get(session_id); + const waiters = this.execution_context_waiters.get(sessionId); waiters?.delete(waiter); - if (waiters?.size === 0) this.execution_context_waiters.delete(session_id); - reject(new Error(`Timed out waiting for Runtime.executionContextCreated for session ${session_id}.`)); + if (waiters?.size === 0) this.execution_context_waiters.delete(sessionId); + reject(new Error(`Timed out waiting for Runtime.executionContextCreated for session ${sessionId}.`)); }, effective_timeout_ms), }; - const waiters = this.execution_context_waiters.get(session_id); + const waiters = this.execution_context_waiters.get(sessionId); if (waiters) waiters.add(waiter); - else this.execution_context_waiters.set(session_id, new Set([waiter])); + else this.execution_context_waiters.set(sessionId, new Set([waiter])); }); } - private recordExecutionContext(session_id: string, context_id: number) { - if (this.detached_sessions.has(session_id)) return; - this.execution_contexts.set(session_id, context_id); - const waiters = this.execution_context_waiters.get(session_id); + private async resolveTargetId(params: CdpDebuggeeCommandParams): Promise { + const explicitTargetId = await this.upstream.resolveTargetId(params); + if (explicitTargetId) return explicitTargetId; + const targetInfos = await this.upstream.getTargets(); + for (const targetInfo of targetInfos) this.recordTarget(targetInfo); + return ( + targetInfos.find((target) => target.type === "page" && !target.url.startsWith("devtools://"))?.targetId ?? null + ); + } + + private recordTarget(targetInfo: TargetInfo): void { + const sessionId = this.sessionId_from_targetId.get(targetInfo.targetId); + const existing = this.targets.get(targetInfo.targetId); + const target: RecordedTarget = { + ...targetInfo, + targetId: targetInfo.targetId, + type: targetInfo.type, + }; + if (sessionId !== undefined) target.sessionId = sessionId; + else if (existing?.sessionId === null) target.sessionId = null; + this.targets.set(targetInfo.targetId, target); + } + + private recordTargetSession( + targetId: cdp.types.ts.Target.TargetID, + sessionId: cdp.types.ts.Target.SessionID, + targetInfo: TargetInfo | RecordedTarget | null | undefined, + ): void { + this.sessionId_from_targetId.set(targetId, sessionId); + this.targetId_from_sessionId.set(sessionId, targetId); + const target = targetInfo + ? { ...targetInfo, targetId, type: targetInfo.type, sessionId } + : { targetId, type: this.targets.get(targetId)?.type ?? "page", sessionId }; + this.targets.set(targetId, target); + } + + private recordTargetSessionlessAttachment(targetId: cdp.types.ts.Target.TargetID): void { + const existing = this.targets.get(targetId); + this.targets.set( + targetId, + existing ? { ...existing, sessionId: null } : { targetId, type: "page", sessionId: null }, + ); + } + + private recordExecutionContext( + eventTargetId: cdp.types.ts.Target.TargetID | null, + sessionId: cdp.types.ts.Target.SessionID | null, + context: cdp.types.ts.Runtime.ExecutionContextDescription, + ): void { + const targetId = eventTargetId ?? (sessionId ? (this.targetId_from_sessionId.get(sessionId) ?? null) : null); + if (!targetId) return; + if (sessionId && !this.execution_contexts.has(sessionId)) this.execution_contexts.set(sessionId, context.id); + const waiters = sessionId ? this.execution_context_waiters.get(sessionId) : null; if (!waiters) return; - this.execution_context_waiters.delete(session_id); - for (const waiter of waiters) { + for (const waiter of [...waiters]) { + waiters.delete(waiter); clearTimeout(waiter.timeout); - waiter.resolve(context_id); + waiter.resolve(context.id); } + if (waiters.size === 0 && sessionId) this.execution_context_waiters.delete(sessionId); + } + + private forgetTarget(targetId: cdp.types.ts.Target.TargetID): void { + const sessionId = this.sessionId_from_targetId.get(targetId); + if (sessionId) this.forgetSession(sessionId); + this.targets.delete(targetId); } - private forgetSession(session_id: string) { - const target_info = this.session_targets.get(session_id); - const target_id = typeof target_info?.targetId === "string" ? target_info.targetId : null; - if (target_id) this.target_sessions.delete(target_id); - this.session_targets.delete(session_id); - this.execution_contexts.delete(session_id); - this.markDetachedSession(session_id); - const waiters = this.execution_context_waiters.get(session_id); + private forgetSession(sessionId: cdp.types.ts.Target.SessionID): void { + const targetId = this.targetId_from_sessionId.get(sessionId); + if (targetId) this.sessionId_from_targetId.delete(targetId); + this.targetId_from_sessionId.delete(sessionId); + this.forgetExecutionContextsForRoute(sessionId); + const waiters = this.execution_context_waiters.get(sessionId); if (!waiters) return; - this.execution_context_waiters.delete(session_id); - const error = new Error(`Runtime execution context wait cancelled because session ${session_id} detached.`); + this.execution_context_waiters.delete(sessionId); + const error = new Error(`Runtime execution context wait cancelled because session ${sessionId} detached.`); for (const waiter of waiters) { clearTimeout(waiter.timeout); waiter.reject(error); } } - private markDetachedSession(session_id: string) { - this.detached_sessions.delete(session_id); - this.detached_sessions.set(session_id, true); - while (this.detached_sessions.size > max_detached_session_guards) { - const oldest_session_id = this.detached_sessions.keys().next().value; - if (!oldest_session_id) break; - this.detached_sessions.delete(oldest_session_id); - } + private forgetExecutionContextById( + routeKey: string, + executionContextId: cdp.types.ts.Runtime.ExecutionContextId, + ): void { + if (this.execution_contexts.get(routeKey) === executionContextId) this.execution_contexts.delete(routeKey); + } + + private forgetExecutionContextsForRoute(routeKey: string): void { + this.execution_contexts.delete(routeKey); } } diff --git a/js/src/server/ChromeDebuggerTransport.ts b/js/src/server/ChromeDebuggerTransport.ts new file mode 100644 index 00000000..ffefdf96 --- /dev/null +++ b/js/src/server/ChromeDebuggerTransport.ts @@ -0,0 +1,256 @@ +import type { z } from "zod"; +import type { cdp } from "../types/generated/cdp.js"; +import type { CdpCommandSchema, CdpNamedSchema } from "../types/generated/zod/helpers.js"; +import * as Target from "../types/generated/zod/Target.js"; +import type { CdpDebuggeeCommandParams, ProtocolPayload, ProtocolResult } from "../types/modcdp.js"; +import type { ServerUpstreamEventListener, ServerUpstreamTransport, TargetRoute } from "./ServerUpstreamTransport.js"; + +const target_auto_attach_params = { + autoAttach: true, + waitForDebuggerOnStart: false, + flatten: true, +} satisfies cdp.types.ts.Target.SetAutoAttachParams; + +/** + * Owns server upstream traffic sent through chrome.debugger. + * + * This class owns chrome.debugger debuggee selection, attach lifecycle, + * chrome.debugger event normalization, and target/session bookkeeping needed by + * debugger routing. It does not choose ModCDP routes, manage custom command registries, run + * middleware, publish ModCDP events, or own loopback WebSocket state. + * + * Lifecycle: + * 1. The server constructs the transport with an extension service-worker + * global scope. + * 2. `getTargets()` reads chrome.debugger targets and refreshes tab-to-target + * facts. + * 3. `attachToTarget()` attaches the debuggee for the requested target and + * enables flattened auto-attach. + * 4. chrome.debugger events update debugger-local session maps and dispatch to + * typed `on(event, listener)` subscriptions. + */ +export class ChromeDebuggerTransport implements ServerUpstreamTransport { + // JSON(debuggee) values attached in this service worker. Updated by + // attachDebuggee/onDetach; read before attach to avoid duplicate native + // chrome.debugger.attach calls. + private readonly attached_debuggees = new Set(); + + // Normalized CDP event listeners registered by AutoSessionRouter and the + // server event publisher. Updated by on; read from installEventListener. + private readonly event_listeners = new Map, Set>(); + + // Native Target.SessionID -> TargetID from debugger Target.attachedToTarget + // events. Updated by installEventListener; read when sending a command that + // already carries a child session id. + private readonly targetId_from_sessionId = new Map(); + + // chrome.tabs tab id -> CDP TargetID. Refreshed by getTargets and + // Target.attachedToTarget events; read by resolveTargetId/createTarget. + private readonly targetId_from_tabId = new Map(); + + // TargetID -> chrome.debugger.Debuggee selected for that target. Updated by + // attachToTarget; read by send so subsequent commands use the same native + // debuggee shape. + private readonly debuggee_from_targetId = new Map(); + + // True once chrome.debugger.onEvent/onDetach listeners are installed in this + // service worker. Updated by installEventListener; read by getTargets. + private event_listener_installed = false; + + /** Register a typed listener for one native CDP event schema. */ + on>( + event: Event, + listener: ( + payload: z.output, + targetId: cdp.types.ts.Target.TargetID | null, + sessionId: cdp.types.ts.Target.SessionID | null, + ) => void, + ) { + const typed_listener: ServerUpstreamEventListener = (payload, targetId, sessionId) => { + listener(event.parse(payload), targetId, sessionId); + }; + const listeners = this.event_listeners.get(event); + if (listeners) listeners.add(typed_listener); + else this.event_listeners.set(event, new Set([typed_listener])); + return { + remove: () => { + const current_listeners = this.event_listeners.get(event); + current_listeners?.delete(typed_listener); + if (current_listeners?.size === 0) this.event_listeners.delete(event); + }, + }; + } + + /** Return current browser targets through chrome.debugger target discovery. */ + async getTargets() { + const chrome_api = globalThis.chrome; + this.installEventListener(); + if (!chrome_api?.debugger?.getTargets) throw new Error("chrome.debugger is unavailable."); + const targetInfos = (await chrome_api.debugger.getTargets()).map((target) => { + if (typeof target.tabId === "number") this.targetId_from_tabId.set(target.tabId, target.id); + return { + targetId: target.id, + type: target.type, + title: target.title, + url: target.url, + attached: target.attached, + canAccessOpener: false, + ...(typeof target.tabId === "number" ? { tabId: target.tabId } : {}), + }; + }); + return Target.GetTargetsResult.parse({ targetInfos }).targetInfos; + } + + /** Resolve a target id from target id, debuggee target id, or chrome tab id. */ + async resolveTargetId(params: CdpDebuggeeCommandParams) { + if (typeof params.targetId === "string" && params.targetId.length > 0) return params.targetId; + if (params.debuggee?.targetId) return params.debuggee.targetId; + if (typeof params.tabId === "number") { + await this.getTargets(); + return this.targetId_from_tabId.get(params.tabId) ?? null; + } + return null; + } + + /** Create a new foreground tab and return the corresponding CDP target id. */ + async createTarget(url: string) { + const tab = await globalThis.chrome.tabs.create({ url, active: true }); + if (!tab.id) throw new Error(`chrome_debugger could not create a tab for ${url}.`); + await this.getTargets(); + const targetId = this.targetId_from_tabId.get(tab.id); + if (!targetId) throw new Error(`chrome_debugger could not resolve target for created tab ${tab.id}.`); + return targetId; + } + + /** Attach chrome.debugger to a target; debugger transport has no native flattened session id for the parent. */ + async attachToTarget(targetId: cdp.types.ts.Target.TargetID) { + const debuggee = await this.debuggeeForTarget(targetId); + await this.attachDebuggee(debuggee); + this.debuggee_from_targetId.set(targetId, debuggee); + return null; + } + + /** Forget a debugger child-session mapping after detach. */ + async detachFromTarget(sessionId: cdp.types.ts.Target.SessionID) { + this.targetId_from_sessionId.delete(sessionId); + } + + /** Send one typed CDP command through chrome.debugger, optionally scoped to a target route. */ + async send< + Params extends z.ZodType>, + Result extends z.ZodType>, + Name extends string, + >( + command: CdpCommandSchema, + params?: z.input, + route: TargetRoute | undefined = undefined, + ): Promise> { + if (command.id === Target.GetTargetsCommand.id) + return command.result.parse({ targetInfos: await this.getTargets() }); + if (!route) { + const debuggee = await this.defaultDebuggee(); + await this.attachDebuggee(debuggee); + return command.result.parse(await this.sendToDebugger(debuggee, command.id, command.params.parse(params))); + } + const routedTargetId = route.sessionId + ? (this.targetId_from_sessionId.get(route.sessionId) ?? route.targetId) + : route.targetId; + const debuggee = this.debuggee_from_targetId.get(routedTargetId) ?? (await this.debuggeeForTarget(routedTargetId)); + await this.attachDebuggee(debuggee); + return command.result.parse(await this.sendToDebugger(debuggee, command.id, command.params.parse(params))); + } + + private async debuggeeForTarget(targetId: cdp.types.ts.Target.TargetID) { + const targets = await this.getTargets(); + const target = targets.find((candidate) => candidate.targetId === targetId); + if (!target) throw new Error(`chrome_debugger could not resolve targetId=${targetId}.`); + const tabId = typeof target.tabId === "number" ? target.tabId : null; + return tabId == null ? { targetId } : { tabId }; + } + + private async defaultDebuggee() { + const targetId = + (await this.resolveTargetId({})) ?? (await this.getTargets()).find((target) => target.type === "page")?.targetId; + if (!targetId) return await this.debuggeeForTarget(await this.createTarget("about:blank#modcdp")); + return await this.debuggeeForTarget(targetId); + } + + private async attachDebuggee(debuggee: chrome.debugger.Debuggee) { + const key = JSON.stringify(debuggee); + if (this.attached_debuggees.has(key)) return; + const chrome_api = globalThis.chrome; + await new Promise((resolve, reject) => + chrome_api.debugger.attach(debuggee, "1.3", () => { + const error = chrome_api.runtime.lastError; + if (!error || error.message?.includes("Another debugger is already attached")) resolve(); + else reject(new Error(error.message)); + }), + ); + await new Promise((resolve, reject) => + chrome_api.debugger.sendCommand( + debuggee, + Target.SetAutoAttachCommand.id, + Target.SetAutoAttachCommand.params.parse(target_auto_attach_params), + () => { + const error = chrome_api.runtime.lastError; + if (error) reject(new Error(error.message)); + else resolve(); + }, + ), + ); + this.attached_debuggees.add(key); + } + + private installEventListener() { + const chrome_api = globalThis.chrome; + if (this.event_listener_installed || !chrome_api?.debugger?.onEvent?.addListener) return; + chrome_api.debugger.onEvent.addListener((source, method, params) => { + const payload = (params ?? {}) as ProtocolPayload; + const sourceTargetId = + source.targetId ?? + (typeof source.tabId === "number" ? (this.targetId_from_tabId.get(source.tabId) ?? null) : null); + const cdpSessionId = source.sessionId ?? null; + if (method === Target.AttachedToTargetEvent.id) { + const attached = Target.AttachedToTargetEvent.parse(payload); + if (typeof source.tabId === "number") this.targetId_from_tabId.set(source.tabId, attached.targetInfo.targetId); + this.targetId_from_sessionId.set(attached.sessionId, attached.targetInfo.targetId); + } else if (method === Target.DetachedFromTargetEvent.id) { + const detached = Target.DetachedFromTargetEvent.parse(payload); + this.targetId_from_sessionId.delete(detached.sessionId); + } + for (const [event, listeners] of this.event_listeners) { + if (event.id !== method) continue; + for (const listener of listeners) listener(payload, sourceTargetId, cdpSessionId); + } + }); + chrome_api.debugger.onDetach?.addListener?.((source) => { + this.attached_debuggees.delete(JSON.stringify(this.compactDebuggee(source))); + }); + this.event_listener_installed = true; + } + + private compactDebuggee(input: { + [Key in keyof chrome.debugger.Debuggee]?: chrome.debugger.Debuggee[Key] | null; + }): chrome.debugger.Debuggee { + return { + ...(typeof input.tabId === "number" ? { tabId: input.tabId } : {}), + ...(typeof input.targetId === "string" ? { targetId: input.targetId } : {}), + ...(typeof input.extensionId === "string" ? { extensionId: input.extensionId } : {}), + }; + } + + private sendToDebugger( + debuggee: chrome.debugger.Debuggee, + method: string, + params: Record = {}, + ): Promise { + const chrome_api = globalThis.chrome; + return new Promise((resolve, reject) => + chrome_api.debugger.sendCommand(debuggee, method, params, (result) => { + const error = chrome_api.runtime.lastError; + if (error) reject(new Error(error.message)); + else resolve(result as ProtocolResult); + }), + ); + } +} diff --git a/js/src/server/LoopbackCdpTransport.ts b/js/src/server/LoopbackCdpTransport.ts new file mode 100644 index 00000000..3a45c06f --- /dev/null +++ b/js/src/server/LoopbackCdpTransport.ts @@ -0,0 +1,467 @@ +import type { z } from "zod"; +import type { cdp } from "../types/generated/cdp.js"; +import type { CdpCommandSchema, CdpNamedSchema } from "../types/generated/zod/helpers.js"; +import * as Runtime from "../types/generated/zod/Runtime.js"; +import * as Target from "../types/generated/zod/Target.js"; +import { + CdpEventMessageSchema, + CdpResponseMessageSchema, + type CdpDebuggeeCommandParams, + type ProtocolParams, + type ProtocolPayload, + type ProtocolResult, +} from "../types/modcdp.js"; +import type { ServerUpstreamEventListener, ServerUpstreamTransport, TargetRoute } from "./ServerUpstreamTransport.js"; + +type LoopbackCdpTransportOptions = { + loopback_cdp_url: string | null; + cdp_send_timeout_ms: number; + loopback_execution_context_timeout_ms: number; + ws_connect_error_settle_timeout_ms: number; +}; + +const target_auto_attach_params = { + autoAttach: true, + waitForDebuggerOnStart: false, + flatten: true, +} satisfies cdp.types.ts.Target.SetAutoAttachParams; + +/** + * Owns server upstream traffic sent through a loopback CDP WebSocket. + * + * This class owns loopback socket lifecycle, request id tracking, pending + * request rejection, loopback event listener dispatch, loopback execution + * context waits used by discovery, and loopback endpoint verification. It does + * not choose ModCDP routes, manage custom command registries, run middleware, + * publish Stagehand/ModCDP events, or interpret browser-specific semantics + * beyond the narrow discovery probe needed to verify the current service worker. + * + * Lifecycle: + * 1. The server constructs the transport with current config values. + * 2. `getTargets()` or `send()` opens the loopback WebSocket and initializes + * target auto-attach/discovery once per socket. + * 3. CDP socket event messages are normalized and dispatched to typed + * `on(event, listener)` subscriptions. + * 4. Socket error/close clears loopback execution-context facts and rejects + * pending CDP requests owned by this transport. + */ +export class LoopbackCdpTransport implements ServerUpstreamTransport { + // Monotonic WebSocket request id for loopback CDP messages. Written only by + // sendToLoopback; read only when matching WebSocket responses. + private next_loopback_id = 1; + + // CDP endpoint URL -> open WebSocket. Written by loopbackWS; read by + // loopbackWS and initializeLoopbackCDP so one socket is reused per endpoint. + private readonly loopback_sockets = new Map(); + + // CDP endpoint URL -> in-flight socket open promise. Written by loopbackWS; + // read by loopbackWS to coalesce concurrent connection attempts. + private readonly loopback_socket_promises = new Map>(); + + // Native Target.SessionID -> first Runtime execution context id observed + // during loopback discovery. Updated by Runtime.executionContextCreated; + // read by waitForLoopbackExecutionContext. + private readonly loopback_session_contexts = new Map(); + + // Native Target.SessionID -> waiters for the first Runtime execution context + // on that session. Written/read by waitForLoopbackExecutionContext and + // resolved by Runtime.executionContextCreated. + private readonly loopback_context_waiters = new Map void>>(); + + // Sockets that have received Target.setAutoAttach and Target.setDiscoverTargets. + // Written/read by initializeLoopbackCDP. + private readonly initialized_loopback_sockets = new WeakSet(); + + // Loopback CDP request id -> pending promise callbacks. Written by + // sendToLoopback; resolved/rejected by WebSocket response/error/close. + private readonly loopback_pending = new Map< + number, + { resolve: (value: ProtocolResult) => void; reject: (error: Error) => void } + >(); + + // Typed upstream event schema -> subscribers. Written by on; read by + // emitLoopbackUpstreamEvent from the WebSocket message handler. + private readonly event_listeners = new Map, Set>(); + + // Current loopback CDP endpoint owned by this transport instance. Written by + // discoverLoopbackCDP while probing; read by all loopback CDP sends. + private loopback_cdp_url: string | null; + + // Request timeout for loopback CDP sends. Set at construction from server + // config; read by sendToLoopback. + private readonly cdp_send_timeout_ms: number; + + // Runtime.executionContextCreated wait timeout for discovery. Set at + // construction from server config; read by waitForLoopbackExecutionContext. + private readonly loopback_execution_context_timeout_ms: number; + + // Delay used to let websocket close details arrive after an error event. Set + // at construction from server config; read by loopbackWS. + private readonly ws_connect_error_settle_timeout_ms: number; + + constructor(options: LoopbackCdpTransportOptions) { + this.loopback_cdp_url = options.loopback_cdp_url; + this.cdp_send_timeout_ms = options.cdp_send_timeout_ms; + this.loopback_execution_context_timeout_ms = options.loopback_execution_context_timeout_ms; + this.ws_connect_error_settle_timeout_ms = options.ws_connect_error_settle_timeout_ms; + this.on(Runtime.ExecutionContextCreatedEvent, (event, _targetId, sessionId) => { + if (sessionId == null) return; + this.loopback_session_contexts.set(sessionId, event.context.id); + const waiters = this.loopback_context_waiters.get(sessionId); + if (!waiters) return; + this.loopback_context_waiters.delete(sessionId); + for (const resolve of waiters) resolve(event.context.id); + }); + } + + /** Resolve an HTTP DevTools endpoint to a WebSocket endpoint, or return an existing WebSocket URL. */ + static async resolveEndpoint(endpoint: string | null) { + if (!endpoint || /^wss?:\/\//i.test(endpoint)) return endpoint; + if (!/^https?:\/\//i.test(endpoint)) { + throw new Error(`loopback_cdp_url must be a ws://, wss://, http://, or https:// CDP endpoint, got ${endpoint}.`); + } + const { webSocketDebuggerUrl } = await fetch(`${endpoint}/json/version`).then((r) => r.json()); + if (!webSocketDebuggerUrl) throw new Error(`loopback_cdp_url HTTP discovery returned no webSocketDebuggerUrl.`); + return webSocketDebuggerUrl; + } + + /** Register a typed listener for one native CDP event schema. */ + on>( + event: Event, + listener: ( + payload: z.output, + targetId: cdp.types.ts.Target.TargetID | null, + sessionId: cdp.types.ts.Target.SessionID | null, + ) => void, + ) { + const typed_listener: ServerUpstreamEventListener = (payload, targetId, sessionId) => { + listener(event.parse(payload), targetId, sessionId); + }; + const listeners = this.event_listeners.get(event); + if (listeners) listeners.add(typed_listener); + else this.event_listeners.set(event, new Set([typed_listener])); + return { + remove: () => { + const current_listeners = this.event_listeners.get(event); + current_listeners?.delete(typed_listener); + if (current_listeners?.size === 0) this.event_listeners.delete(event); + }, + }; + } + + /** Return current browser targets through the loopback CDP endpoint. */ + async getTargets() { + if (!this.loopback_cdp_url) throw new Error(`No loopback_cdp_url configured for Target.getTargets.`); + await this.initializeLoopbackCDP(); + return (await this.send(Target.GetTargetsCommand, {})).targetInfos; + } + + /** Resolve a target id from CDP debuggee-shaped params when possible. */ + async resolveTargetId(params: CdpDebuggeeCommandParams) { + const resolved_debuggee = params.debuggee ?? this.compactDebuggee(params); + if (resolved_debuggee.targetId) return resolved_debuggee.targetId; + const chrome_api = globalThis.chrome; + let resolved_tab_url: string | null = null; + if (resolved_debuggee.tabId && chrome_api?.tabs?.get) { + const tab = await chrome_api.tabs.get(resolved_debuggee.tabId).catch((): null => null); + resolved_tab_url = tab?.url || tab?.pendingUrl || null; + } + if (!resolved_tab_url) return null; + const targetInfos = await this.getTargets(); + return targetInfos.find((target) => target.type === "page" && target.url === resolved_tab_url)?.targetId ?? null; + } + + /** Create a new page target through loopback CDP. */ + async createTarget(url: string) { + return (await this.send(Target.CreateTargetCommand, { url })).targetId; + } + + /** Attach to a target through flattened loopback CDP and return the native session id. */ + async attachToTarget(targetId: cdp.types.ts.Target.TargetID) { + return (await this.send(Target.AttachToTargetCommand, { targetId, flatten: true })).sessionId; + } + + /** Detach a native loopback CDP session. */ + async detachFromTarget(sessionId: cdp.types.ts.Target.SessionID) { + await this.send(Target.DetachFromTargetCommand, { sessionId }); + } + + /** Send one typed CDP command through loopback CDP, optionally scoped to a target route. */ + async send< + Params extends z.ZodType>, + Result extends z.ZodType>, + Name extends string, + >( + command: CdpCommandSchema, + params?: z.input, + route: TargetRoute | undefined = undefined, + ): Promise> { + await this.initializeLoopbackCDP(); + if (!route) return command.result.parse(await this.sendToLoopback(command.id, command.params.parse(params))); + if (route.sessionId == null) + throw new Error(`loopback_cdp route for ${command.id} has no session for targetId=${route.targetId}.`); + await this.sendToLoopback( + Target.SetAutoAttachCommand.id, + Target.SetAutoAttachCommand.params.parse(target_auto_attach_params), + route.sessionId, + ); + return command.result.parse(await this.sendToLoopback(command.id, command.params.parse(params), route.sessionId)); + } + + /** Verify a local loopback CDP endpoint points at this ModCDP service worker. */ + async discoverLoopbackCDP({ + browserToken, + serviceWorkerUrl, + }: { + browserToken: string | null; + serviceWorkerUrl: string; + }): Promise<{ loopback_cdp_url: string | null; verified: boolean; version?: unknown }> { + if (!browserToken) return { loopback_cdp_url: null as null, verified: false }; + + const url = "http://127.0.0.1:9222"; + const previous_loopback_url = this.loopback_cdp_url; + const fail = (version?: unknown) => { + this.loopback_cdp_url = previous_loopback_url ?? null; + return { + loopback_cdp_url: null as null, + verified: false, + ...(version ? { version } : {}), + }; + }; + try { + const version = await fetch(`${url}/json/version`).then((response) => response.ok && response.json()); + if (!version?.webSocketDebuggerUrl) return fail(); + + this.loopback_cdp_url = version.webSocketDebuggerUrl; + const { targetInfos } = Target.GetTargetsCommand.result.parse( + await this.sendToLoopback(Target.GetTargetsCommand.id, Target.GetTargetsCommand.params.parse({})), + ); + const worker = targetInfos.find((target) => target.type === "service_worker" && target.url === serviceWorkerUrl); + if (!worker) return fail(version); + + const { sessionId } = Target.AttachToTargetCommand.result.parse( + await this.sendToLoopback( + Target.AttachToTargetCommand.id, + Target.AttachToTargetCommand.params.parse({ + targetId: worker.targetId, + flatten: true, + }), + ), + ); + const execution_context_ready = this.waitForLoopbackExecutionContext(sessionId); + await this.sendToLoopback(Runtime.EnableCommand.id, Runtime.EnableCommand.params.parse({}), sessionId); + const executionContextId = await execution_context_ready; + const result = Runtime.CallFunctionOnCommand.result.parse( + await this.sendToLoopback( + Runtime.CallFunctionOnCommand.id, + Runtime.CallFunctionOnCommand.params.parse({ + functionDeclaration: `function() { return globalThis.ModCDP?.browser_token === ${JSON.stringify(browserToken)}; }`, + executionContextId, + returnByValue: true, + }), + sessionId, + ), + ); + if (result.result?.value !== true) return fail(version); + + await this.initializeLoopbackCDP(); + return { + loopback_cdp_url: this.loopback_cdp_url, + verified: true, + version, + }; + } catch { + return fail(); + } + } + + private compactDebuggee(input: { + [Key in keyof chrome.debugger.Debuggee]?: chrome.debugger.Debuggee[Key] | null; + }): chrome.debugger.Debuggee { + return { + ...(typeof input.tabId === "number" ? { tabId: input.tabId } : {}), + ...(typeof input.targetId === "string" ? { targetId: input.targetId } : {}), + ...(typeof input.extensionId === "string" ? { extensionId: input.extensionId } : {}), + }; + } + + private emitLoopbackUpstreamEvent( + method: string, + payload: ProtocolPayload, + sessionId: cdp.types.ts.Target.SessionID | null, + ) { + for (const [event, listeners] of this.event_listeners) { + if (event.id !== method) continue; + for (const listener of listeners) listener(payload, null, sessionId); + } + } + + private async loopbackWS(endpoint: string): Promise { + const existing = this.loopback_sockets.get(endpoint); + if (existing?.readyState === WebSocket.OPEN) return existing; + const pending = this.loopback_socket_promises.get(endpoint); + if (pending) return pending; + + const next_socket = this.openCDPSocket(endpoint).then((ws) => { + this.loopback_sockets.set(endpoint, ws); + this.loopback_socket_promises.delete(endpoint); + ws.addEventListener("message", (event) => { + const msg = JSON.parse(event.data); + if (!("id" in msg)) { + const cdp_event = CdpEventMessageSchema.parse(msg); + this.emitLoopbackUpstreamEvent( + cdp_event.method, + (cdp_event.params ?? {}) as ProtocolPayload, + cdp_event.sessionId ?? null, + ); + return; + } + const response = CdpResponseMessageSchema.parse(msg); + const pending = this.loopback_pending.get(response.id); + if (!pending) return; + this.loopback_pending.delete(response.id); + if (response.error) pending.reject(new Error(response.error.message)); + else pending.resolve((response.result ?? {}) as ProtocolResult); + }); + ws.addEventListener("error", () => { + if (this.loopback_sockets.get(endpoint) === ws) this.loopback_sockets.delete(endpoint); + this.loopback_session_contexts.clear(); + this.rejectLoopbackPending(new Error(`CDP socket error ${endpoint}`)); + }); + ws.addEventListener("close", (event) => { + if (this.loopback_sockets.get(endpoint) === ws) this.loopback_sockets.delete(endpoint); + this.loopback_session_contexts.clear(); + this.rejectLoopbackPending( + new Error( + `CDP socket closed ${endpoint} close.code=${event.code} close.reason=${event.reason || ""} close.wasClean=${ + event.wasClean + }`, + ), + ); + }); + return ws; + }); + this.loopback_socket_promises.set(endpoint, next_socket); + return next_socket; + } + + private async openCDPSocket(endpoint: string): Promise { + if (!/^wss?:\/\//i.test(endpoint)) { + throw new Error(`loopback_cdp_url must be a ws:// or wss:// CDP websocket URL, got ${endpoint}.`); + } + return new Promise((resolve, reject) => { + const w = new WebSocket(endpoint); + let settled = false; + let error_event: Event | null = null; + const describe = (prefix: string, closeEvent?: CloseEvent) => { + const parts = [`${prefix} ${endpoint}`, `readyState=${w.readyState}`]; + if (error_event) parts.push(`error.type=${error_event.type}`); + if (closeEvent) { + parts.push(`close.code=${closeEvent.code}`); + parts.push(`close.reason=${closeEvent.reason || ""}`); + parts.push(`close.wasClean=${closeEvent.wasClean}`); + } + return parts.join(" "); + }; + const fail = (error: Error) => { + if (settled) return; + settled = true; + reject(error); + }; + w.addEventListener( + "open", + () => { + if (settled) return; + settled = true; + resolve(w); + }, + { once: true }, + ); + w.addEventListener( + "error", + (event) => { + error_event = event; + setTimeout(() => fail(new Error(describe("CDP socket error"))), this.ws_connect_error_settle_timeout_ms); + }, + { once: true }, + ); + w.addEventListener("close", (event) => fail(new Error(describe("CDP socket closed", event))), { once: true }); + }); + } + + private async sendToLoopback(method: string, params: ProtocolParams = {}, sessionId: string | null = null) { + const endpoint = this.loopback_cdp_url; + if (!endpoint) throw new Error(`No loopback_cdp_url configured for ${method}.`); + const ws = await this.loopbackWS(endpoint); + const id = this.next_loopback_id++; + const message: { + id: number; + method: string; + params: ProtocolParams; + sessionId?: string; + } = { + id, + method, + params, + }; + if (sessionId) message.sessionId = sessionId; + ws.send(JSON.stringify(message)); + return new Promise((resolve, reject) => { + const timeout = setTimeout(() => { + if (!this.loopback_pending.delete(id)) return; + reject(new Error(`${method} timed out after ${this.cdp_send_timeout_ms}ms`)); + }, this.cdp_send_timeout_ms); + this.loopback_pending.set(id, { + resolve: (value) => { + clearTimeout(timeout); + resolve(value); + }, + reject: (error) => { + clearTimeout(timeout); + reject(error); + }, + }); + }); + } + + private async initializeLoopbackCDP() { + const endpoint = this.loopback_cdp_url; + if (!endpoint) return; + const ws = await this.loopbackWS(endpoint); + if (this.initialized_loopback_sockets.has(ws)) return; + await this.sendToLoopback( + Target.SetAutoAttachCommand.id, + Target.SetAutoAttachCommand.params.parse(target_auto_attach_params), + ); + await this.sendToLoopback( + Target.SetDiscoverTargetsCommand.id, + Target.SetDiscoverTargetsCommand.params.parse({ discover: true }), + ); + this.initialized_loopback_sockets.add(ws); + } + + private waitForLoopbackExecutionContext(sessionId: string, timeout_ms = this.loopback_execution_context_timeout_ms) { + const existing = this.loopback_session_contexts.get(sessionId); + if (existing != null) return Promise.resolve(existing); + return new Promise((resolve, reject) => { + const timeout = setTimeout(() => { + const waiters = this.loopback_context_waiters.get(sessionId); + waiters?.delete(complete); + if (waiters?.size === 0) this.loopback_context_waiters.delete(sessionId); + reject(new Error(`Timed out waiting for Runtime.executionContextCreated for session ${sessionId}.`)); + }, timeout_ms); + const complete = (contextId: number) => { + clearTimeout(timeout); + resolve(contextId); + }; + const waiters = this.loopback_context_waiters.get(sessionId); + if (waiters) waiters.add(complete); + else this.loopback_context_waiters.set(sessionId, new Set([complete])); + }); + } + + private rejectLoopbackPending(error: Error) { + for (const pending of this.loopback_pending.values()) pending.reject(error); + this.loopback_pending.clear(); + } +} diff --git a/js/src/server/ModCDPServer.ts b/js/src/server/ModCDPServer.ts index 28de0f79..fbd25b70 100644 --- a/js/src/server/ModCDPServer.ts +++ b/js/src/server/ModCDPServer.ts @@ -6,13 +6,23 @@ // same server implementation into an already-running extension service worker // when Chrome refuses Extensions.loadUnpacked. -import type { cdp } from "../types/generated/cdp.js"; import { commands as nativeCommandSchemas, events as nativeEventSchemas } from "../types/generated/zod.js"; -import { normalizeModCDPPayloadSchema } from "../types/modcdp.js"; +import * as Browser from "../types/generated/zod/Browser.js"; +import * as Runtime from "../types/generated/zod/Runtime.js"; +import { ProtocolPayloadSchema, normalizeModCDPPayloadSchema } from "../types/modcdp.js"; +import { AutoSessionRouter } from "../router/AutoSessionRouter.js"; +import { ChromeDebuggerTransport } from "./ChromeDebuggerTransport.js"; +import { LoopbackCdpTransport } from "./LoopbackCdpTransport.js"; +import { NativeHostDownstreamTransport } from "./NativeHostDownstreamTransport.js"; +import { NATSDownstreamTransport } from "./NATSDownstreamTransport.js"; +import { ReverseWSDownstreamTransport } from "./ReverseWSDownstreamTransport.js"; +import type { + ServerDownstreamTransport, + ServerDownstreamTransportName, + ServerDownstreamTransportStatus, +} from "./ServerDownstreamTransport.js"; import type { - CdpCommandMessage, CdpEventMessage, - CdpDebuggeeCommandParams, ModCDPConfigureParams, ModCDPCustomCommandRegistration, ModCDPCustomEventRegistration, @@ -27,12 +37,16 @@ import type { export const DEFAULT_CDP_SEND_TIMEOUT_MS = 10_000; export const DEFAULT_LOOPBACK_EXECUTION_CONTEXT_TIMEOUT_MS = 10_000; export const DEFAULT_WS_CONNECT_ERROR_SETTLE_TIMEOUT_MS = 250; -export const DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; -export const DEFAULT_NATIVE_BRIDGE_HOST_NAME = "com.modcdp.bridge"; -export const DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; -export const DEFAULT_NATS_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; -export const DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX = "modcdp.default"; export const DEFAULT_DOWNSTREAM_CLIENT_TIMEOUT_MS = 1_000; +export { + DEFAULT_NATIVE_BRIDGE_HOST_NAME, + DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS, +} from "./NativeHostDownstreamTransport.js"; +export { + DEFAULT_NATS_BRIDGE_RECONNECT_INTERVAL_MS, + DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX, +} from "./NATSDownstreamTransport.js"; +export { DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS } from "./ReverseWSDownstreamTransport.js"; type MiddlewarePhase = "request" | "response" | "event"; type ProtocolCommandSchema = { @@ -42,25 +56,71 @@ type ProtocolCommandSchema = { type ProtocolEventSchema = { parse(value: unknown): ProtocolPayload; }; +type SelectedServerUpstreamTransportName = "loopback_cdp" | "chrome_debugger"; +export type ModCDPSessionHandle = { + sessionId: string | null; + readonly types: (typeof import("../types/generated/zod.js"))["types"] | null; + readonly commands: (typeof import("../types/generated/zod.js"))["commands"] | null; + readonly events: (typeof import("../types/generated/zod.js"))["events"] | null; + readonly upstream: AutoSessionRouter; + send(method: string, params?: ProtocolParams): Promise; + emit(eventName: string, payload?: ProtocolPayload): Promise; +}; +export type ModCDPServerInstance = { + __ModCDPServerVersion: number; + routes: ModCDPRoutes; + loopback_cdp_url: string | null; + browser_token: string | null; + upstream: LoopbackCdpTransport | ChromeDebuggerTransport | null; + upstream_name: SelectedServerUpstreamTransportName | null; + router: AutoSessionRouter | null; + cdp_send_timeout_ms: number; + loopback_execution_context_timeout_ms: number; + ws_connect_error_settle_timeout_ms: number; + downstream_client_timeout_ms: number; + close_browser_on_downstream_disconnect: boolean; + types: (typeof import("../types/generated/zod.js"))["types"] | null; + commands: (typeof import("../types/generated/zod.js"))["commands"] | null; + events: (typeof import("../types/generated/zod.js"))["events"] | null; + startDownstreamTransports(): Record; + stopDownstreamTransports(reason?: string): Record; + downstreamTransports(): Record; + ensureOffscreenKeepAlive(): Promise; + loadTypes(): Promise; + configure(params?: ModCDPConfigureParams): Promise; + addCustomCommand(registration: ModCDPCustomCommandRegistration): ProtocolResult; + addCustomEvent(registration: ModCDPCustomEventRegistration): ProtocolResult; + addEventListener(listener: (event: string, data: ProtocolPayload, cdpSessionId: string | null) => void): { + remove: () => boolean; + }; + addMiddleware(registration: ModCDPMiddlewareRegistration): ProtocolResult; + runMiddleware( + phase: MiddlewarePhase, + name: string, + payload: ProtocolPayload, + context?: ProtocolPayload, + ): Promise; + handleCommand(method: string, params?: ProtocolParams, cdpSessionId?: string | null): Promise; + attachToSession(cdpSessionId?: string | null): ModCDPSessionHandle; + emit(eventName: string, payload?: ProtocolPayload, cdpSessionId?: string | null): Promise; + discoverLoopbackCDP(): Promise<{ + loopback_cdp_url: string | null; + verified: boolean; + version?: unknown; + }>; +}; type ModCDPGlobalScope = typeof globalThis & Record & { - ModCDP?: { - __ModCDPServerVersion?: number; - addCustomEvent?: unknown; - handleCommand?: unknown; - }; + ModCDP?: ModCDPServerInstance; }; -export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis as ModCDPGlobalScope) { +export function installModCDPServer( + globalScope: ModCDPGlobalScope = globalThis as ModCDPGlobalScope, +): ModCDPServerInstance { const MODCDP_SERVER_VERSION = 2; const DEFAULT_CDP_SEND_TIMEOUT_MS = 10_000; const DEFAULT_LOOPBACK_EXECUTION_CONTEXT_TIMEOUT_MS = 10_000; const DEFAULT_WS_CONNECT_ERROR_SETTLE_TIMEOUT_MS = 250; - const DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; - const DEFAULT_NATIVE_BRIDGE_HOST_NAME = "com.modcdp.bridge"; - const DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; - const DEFAULT_NATS_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; - const DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX = "modcdp.default"; if ( globalScope.ModCDP?.__ModCDPServerVersion === MODCDP_SERVER_VERSION && globalScope.ModCDP?.handleCommand && @@ -80,15 +140,14 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis cdpSessionId?: string | null; }) => JSON.stringify({ event, data, cdpSessionId }); - const commandHandlers = new Map(); - const eventBindings = new Map(); - const eventListeners = new Set<(event: string, data: ProtocolPayload, cdpSessionId: string | null) => void>(); + const command_handlers = new Map(); + const event_bindings = new Map(); + const event_listeners = new Set<(event: string, data: ProtocolPayload, cdpSessionId: string | null) => void>(); const middlewares: Record = { request: [], response: [], event: [], }; - const attachedDebuggees = new Set(); let runtime_types_promise: Promise | null = null; let downstream_client_registered = false; let downstream_client_lease: { @@ -119,7 +178,8 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis const expired = clearDownstreamClientLease(); if (!expired) return; if (ModCDPServer.close_browser_on_downstream_disconnect !== true) return; - void ModCDPServer.sendLoopback("Browser.close", {}, null).catch(() => {}); + if (!ModCDPServer.upstream) setupServerUpstreamTransport(); + void ModCDPServer.upstream?.send(Browser.CloseCommand, {}).catch(() => {}); }, timeout_ms); downstream_client_lease = { cdpSessionId, @@ -158,142 +218,77 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis event: { name: eventName, payload }, }); if (payload === undefined) return { event: eventName, emitted: false, reason: "middleware_dropped" }; - const event = registryMatch(eventBindings, eventName); + const event = registryMatch(event_bindings, eventName); payload = eventPayloadSchema(eventName, event)?.parse(payload) ?? payload; - for (const listener of eventListeners) { + for (const listener of event_listeners) { try { listener(eventName, payload, cdpSessionId); } catch (error) { console.error("[ModCDPServer] event listener failed", error); } } - let emittedThroughReverseBridge = false; - if (reverseBridgeSocket?.readyState === WebSocket.OPEN) { - const message: CdpEventMessage = { - method: eventName, - params: (payload ?? {}) as CdpEventMessage["params"], - }; - if (cdpSessionId) message.sessionId = cdpSessionId; - reverseBridgeSocket.send(JSON.stringify(message)); - emittedThroughReverseBridge = true; - } - let emittedThroughNativeBridge = false; - if (nativeBridgePort) { - const message: CdpEventMessage = { - method: eventName, - params: (payload ?? {}) as CdpEventMessage["params"], - }; - if (cdpSessionId) message.sessionId = cdpSessionId; - nativeBridgePort.postMessage(message); - emittedThroughNativeBridge = true; - } - let emittedThroughNatsBridge = false; - if (nats_bridge_socket?.readyState === WebSocket.OPEN) { - const message: CdpEventMessage = { - method: eventName, - params: (payload ?? {}) as CdpEventMessage["params"], - }; - if (cdpSessionId) message.sessionId = cdpSessionId; - publishNats(`${nats_bridge_subject_prefix}.browser_to_client`, { - type: "modcdp.nats.message", - message, - }); - emittedThroughNatsBridge = true; - } - - const isCustomEvent = registryMatch(eventBindings, eventName) != null; - let emittedThroughBinding = false; - if (isCustomEvent) { - const customBinding = globalScope[CUSTOM_EVENT_BINDING_NAME]; - if (typeof customBinding === "function") { - customBinding( + const message: CdpEventMessage = { + method: eventName, + params: (payload ?? {}) as CdpEventMessage["params"], + }; + if (cdpSessionId) message.sessionId = cdpSessionId; + const emitted_through_downstream = [...downstream_transports.values()].some((transport) => transport.emit(message)); + + const is_custom_event = registryMatch(event_bindings, eventName) != null; + let emitted_through_binding = false; + if (is_custom_event) { + const custom_binding = globalScope[CUSTOM_EVENT_BINDING_NAME]; + if (typeof custom_binding === "function") { + custom_binding( encodeBindingPayload({ event: eventName, data: payload, cdpSessionId, }), ); - emittedThroughBinding = true; + emitted_through_binding = true; } } else { - const mirrorBinding = globalScope[UPSTREAM_EVENT_BINDING_NAME]; - if (typeof mirrorBinding === "function") { - mirrorBinding( + const mirror_binding = globalScope[UPSTREAM_EVENT_BINDING_NAME]; + if (typeof mirror_binding === "function") { + mirror_binding( encodeBindingPayload({ event: eventName, data: payload, cdpSessionId, }), ); - emittedThroughBinding = true; + emitted_through_binding = true; } } - return emittedThroughBinding || - emittedThroughReverseBridge || - emittedThroughNativeBridge || - emittedThroughNatsBridge + return emitted_through_binding || emitted_through_downstream ? { event: eventName, emitted: true } : { event: eventName, emitted: false, reason: "binding_not_installed" }; } - const targetAutoAttachParams = { - autoAttach: true, - waitForDebuggerOnStart: false, - flatten: true, - } satisfies cdp.types.ts.Target.SetAutoAttachParams; - - const defaultRoutes = { + const default_routes = { "Mod.*": "service_worker", "Custom.*": "service_worker", "*.*": "auto", } satisfies ModCDPRoutes; - - const browserLevelDomains = new Set(["Browser", "Target", "SystemInfo"]); - - let nextLoopbackId = 1; - const loopbackSockets = new Map(); - const loopbackSocketPromises = new Map>(); - const loopbackTargetSessions = new Map(); - const loopbackSessionTargets = new Map(); - const loopbackSessionContexts = new Map(); - const loopbackContextWaiters = new Map void>>(); - const initializedLoopbackSockets = new WeakSet(); - const loopbackPending = new Map< - number, - { resolve: (value: ProtocolResult) => void; reject: (error: Error) => void } - >(); - let reverseBridgeSocket: WebSocket | null = null; - let reverseBridgeUrl: string | null = null; - let reverseBridgeReconnectIntervalMs = DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS; - let reverseBridgeReconnectTimer: ReturnType | null = null; - let nativeBridgePort: chrome.runtime.Port | null = null; - let nativeBridgeHostName: string | null = null; - let nativeBridgeReconnectIntervalMs = DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS; - let nativeBridgeReconnectTimer: ReturnType | null = null; - let nats_bridge_socket: WebSocket | null = null; - let nats_bridge_url: string | null = null; - let nats_bridge_subject_prefix = DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX; - let nats_bridge_reconnect_interval_ms = DEFAULT_NATS_BRIDGE_RECONNECT_INTERVAL_MS; - let nats_bridge_reconnect_timer: ReturnType | null = null; - let nats_bridge_buffer = ""; - let selfDebuggee: chrome.debugger.Debuggee | null = null; - const offscreenKeepAlivePortName = "ModCDPOffscreenKeepAlive"; - const offscreenKeepAlivePath = "offscreen/keepalive.html"; - let creatingOffscreenKeepAlive: Promise | null = null; - let offscreenKeepAlivePort: chrome.runtime.Port | null = null; + let downstream_transports: Map; + const offscreen_keep_alive_port_name = "ModCDPOffscreenKeepAlive"; + const offscreen_keep_alive_path = "offscreen/keepalive.html"; + let creating_offscreen_keep_alive: Promise | null = null; + let offscreen_keep_alive_port: chrome.runtime.Port | null = null; function registryMatch(registry: Map, name: string): T | null { const exact = registry.get(name); if (exact) return exact; let match: T | null = null; - let matchPrefixLength = -1; + let match_prefix_length = -1; for (const [pattern, value] of registry) { if (!pattern.endsWith(".*")) continue; const prefix = pattern.slice(0, -1); - if (!name.startsWith(prefix) || prefix.length <= matchPrefixLength) continue; + if (!name.startsWith(prefix) || prefix.length <= match_prefix_length) continue; match = value; - matchPrefixLength = prefix.length; + match_prefix_length = prefix.length; } return match; } @@ -335,442 +330,9 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis return error instanceof Error ? error.message : String(error); } - function compactDebuggee(input: { - [Key in keyof chrome.debugger.Debuggee]?: chrome.debugger.Debuggee[Key] | null; - }): chrome.debugger.Debuggee { - return { - ...(typeof input.tabId === "number" ? { tabId: input.tabId } : {}), - ...(typeof input.targetId === "string" ? { targetId: input.targetId } : {}), - ...(typeof input.extensionId === "string" ? { extensionId: input.extensionId } : {}), - }; - } - - async function resolveCDPEndpoint(endpoint: string | null) { - if (!endpoint || /^wss?:\/\//i.test(endpoint)) return endpoint; - if (!/^https?:\/\//i.test(endpoint)) { - throw new Error(`loopback_cdp_url must be a ws://, wss://, http://, or https:// CDP endpoint, got ${endpoint}.`); - } - const { webSocketDebuggerUrl } = await fetch(`${endpoint}/json/version`).then((r) => r.json()); - if (!webSocketDebuggerUrl) throw new Error(`loopback_cdp_url HTTP discovery returned no webSocketDebuggerUrl.`); - return webSocketDebuggerUrl; - } - - async function openCDPSocket(endpoint: string): Promise { - if (!/^wss?:\/\//i.test(endpoint)) { - throw new Error(`loopback_cdp_url must be a ws:// or wss:// CDP websocket URL, got ${endpoint}.`); - } - return new Promise((resolve, reject) => { - const w = new WebSocket(endpoint); - let settled = false; - let errorEvent: Event | null = null; - const describe = (prefix: string, closeEvent?: CloseEvent) => { - const parts = [`${prefix} ${endpoint}`, `readyState=${w.readyState}`]; - if (errorEvent) parts.push(`error.type=${errorEvent.type}`); - if (closeEvent) { - parts.push(`close.code=${closeEvent.code}`); - parts.push(`close.reason=${closeEvent.reason || ""}`); - parts.push(`close.wasClean=${closeEvent.wasClean}`); - } - return parts.join(" "); - }; - const fail = (error: Error) => { - if (settled) return; - settled = true; - reject(error); - }; - w.addEventListener( - "open", - () => { - if (settled) return; - settled = true; - resolve(w); - }, - { once: true }, - ); - w.addEventListener( - "error", - (event) => { - errorEvent = event; - setTimeout( - () => fail(new Error(describe("CDP socket error"))), - ModCDPServer.ws_connect_error_settle_timeout_ms, - ); - }, - { once: true }, - ); - w.addEventListener("close", (event) => fail(new Error(describe("CDP socket closed", event))), { once: true }); - }); - } - - function startOffscreenKeepAlive() { - void ensureOffscreenKeepAlive().catch(() => {}); - } - - function rejectLoopbackPending(error: Error) { - for (const pending of loopbackPending.values()) pending.reject(error); - loopbackPending.clear(); - } - - function scheduleReverseBridgeReconnect(delayMs: number) { - if (!reverseBridgeUrl) return; - if (reverseBridgeReconnectTimer) return; - reverseBridgeReconnectTimer = setTimeout(() => { - reverseBridgeReconnectTimer = null; - void connectReverseBridge(reverseBridgeUrl).catch(() => {}); - }, delayMs); - } - - function stopReverseBridge(reason = "stopped") { - const upstream_reversews_url = reverseBridgeUrl; - reverseBridgeUrl = null; - if (reverseBridgeReconnectTimer) { - clearTimeout(reverseBridgeReconnectTimer); - reverseBridgeReconnectTimer = null; - } - const socket = reverseBridgeSocket; - reverseBridgeSocket = null; - if (socket?.readyState === WebSocket.OPEN || socket?.readyState === WebSocket.CONNECTING) { - socket.close(1000, reason); - } - return { upstream_reversews_url, stopped: true, reason }; - } - - function scheduleNativeBridgeReconnect(delayMs: number) { - if (!nativeBridgeHostName) return; - if (nativeBridgeReconnectTimer) return; - nativeBridgeReconnectTimer = setTimeout(() => { - nativeBridgeReconnectTimer = null; - connectNativeBridge(nativeBridgeHostName); - }, delayMs); - } - - function scheduleNatsBridgeReconnect(delayMs: number) { - if (!nats_bridge_url) return; - if (nats_bridge_reconnect_timer) return; - nats_bridge_reconnect_timer = setTimeout(() => { - nats_bridge_reconnect_timer = null; - void connectNatsBridge(nats_bridge_url).catch(() => {}); - }, delayMs); - } - - async function handleReverseBridgeMessage(ws: WebSocket, data: unknown) { - let message: CdpCommandMessage; - try { - const parsed = JSON.parse(typeof data === "string" ? data : String(data)); - if (typeof parsed?.id !== "number" || typeof parsed?.method !== "string") return; - message = parsed as CdpCommandMessage; - } catch { - return; - } - - try { - const result = await ModCDPServer.handleCommand(message.method, message.params ?? {}, message.sessionId ?? null); - ws.send(JSON.stringify({ id: message.id, result })); - } catch (error) { - ws.send( - JSON.stringify({ - id: message.id, - error: { - code: -32000, - message: errorMessage(error), - }, - }), - ); - } - } - - async function handleNativeBridgeMessage(port: chrome.runtime.Port, data: unknown) { - let message: CdpCommandMessage; - try { - if ( - typeof (data as CdpCommandMessage)?.id !== "number" || - typeof (data as CdpCommandMessage)?.method !== "string" - ) - return; - message = data as CdpCommandMessage; - } catch { - return; - } - - try { - const result = await ModCDPServer.handleCommand(message.method, message.params ?? {}, message.sessionId ?? null); - port.postMessage({ id: message.id, result }); - } catch (error) { - port.postMessage({ - id: message.id, - error: { - code: -32000, - message: errorMessage(error), - }, - }); - } - } - - async function handleNatsBridgePayload(payload: string) { - let parsed: unknown; - try { - parsed = JSON.parse(payload); - } catch { - return; - } - const record = parsed && typeof parsed === "object" ? (parsed as Record) : null; - if (record?.type === "modcdp.nats.hello") { - publishNats(`${nats_bridge_subject_prefix}.browser_to_client`, { - type: "modcdp.nats.hello", - role: "extension-service-worker", - version: 1, - extension_id: globalScope.chrome?.runtime?.id ?? null, - }); - return; - } - const candidate = record?.type === "modcdp.nats.message" ? record.message : parsed; - if ( - !candidate || - typeof candidate !== "object" || - typeof (candidate as CdpCommandMessage).id !== "number" || - typeof (candidate as CdpCommandMessage).method !== "string" - ) - return; - const message = candidate as CdpCommandMessage; - try { - const result = await ModCDPServer.handleCommand(message.method, message.params ?? {}, message.sessionId ?? null); - publishNats(`${nats_bridge_subject_prefix}.browser_to_client`, { - type: "modcdp.nats.message", - message: { id: message.id, result }, - }); - } catch (error) { - publishNats(`${nats_bridge_subject_prefix}.browser_to_client`, { - type: "modcdp.nats.message", - message: { - id: message.id, - error: { - code: -32000, - message: errorMessage(error), - }, - }, - }); - } - } - - async function connectReverseBridge(endpoint: string) { - if ( - reverseBridgeSocket?.readyState === WebSocket.OPEN || - reverseBridgeSocket?.readyState === WebSocket.CONNECTING - ) { - return { - upstream_reversews_url: endpoint, - connected: reverseBridgeSocket.readyState === WebSocket.OPEN, - }; - } - - const ws = new WebSocket(endpoint); - reverseBridgeSocket = ws; - ws.addEventListener("open", () => { - startOffscreenKeepAlive(); - ws.send( - JSON.stringify({ - type: "modcdp.reverse.hello", - role: "extension-service-worker", - version: 1, - extension_id: globalScope.chrome?.runtime?.id ?? null, - }), - ); - }); - ws.addEventListener("message", (event) => { - void handleReverseBridgeMessage(ws, event.data); - }); - ws.addEventListener("error", () => { - if (reverseBridgeSocket === ws) reverseBridgeSocket = null; - scheduleReverseBridgeReconnect(reverseBridgeReconnectIntervalMs); - }); - ws.addEventListener("close", () => { - if (reverseBridgeSocket === ws) reverseBridgeSocket = null; - scheduleReverseBridgeReconnect(reverseBridgeReconnectIntervalMs); - }); - return { upstream_reversews_url: endpoint, connected: false }; - } - - function connectNativeBridge(hostName: string) { - const chromeApi = globalScope.chrome; - if (!chromeApi?.runtime?.connectNative) { - scheduleNativeBridgeReconnect(nativeBridgeReconnectIntervalMs); - return { - upstream_nativemessaging_host_name: hostName, - connected: false, - reason: "native_messaging_unavailable", - }; - } - if (nativeBridgePort) return { upstream_nativemessaging_host_name: hostName, connected: true }; - try { - ModCDPServer.native_bridge_attempts += 1; - ModCDPServer.native_bridge_last_error = null; - const port = chromeApi.runtime.connectNative(hostName); - nativeBridgePort = port; - ModCDPServer.native_bridge_connected = true; - startOffscreenKeepAlive(); - port.postMessage({ - type: "modcdp.native.hello", - role: "extension-service-worker", - version: 1, - extension_id: globalScope.chrome?.runtime?.id ?? null, - }); - port.onMessage.addListener((message) => { - void handleNativeBridgeMessage(port, message); - }); - port.onDisconnect.addListener(() => { - if (nativeBridgePort === port) nativeBridgePort = null; - ModCDPServer.native_bridge_connected = false; - ModCDPServer.native_bridge_last_error = - chromeApi.runtime.lastError?.message ?? "Native messaging port disconnected."; - scheduleNativeBridgeReconnect(nativeBridgeReconnectIntervalMs); - }); - return { upstream_nativemessaging_host_name: hostName, connected: true }; - } catch (error) { - nativeBridgePort = null; - ModCDPServer.native_bridge_connected = false; - ModCDPServer.native_bridge_last_error = errorMessage(error); - scheduleNativeBridgeReconnect(nativeBridgeReconnectIntervalMs); - return { - upstream_nativemessaging_host_name: hostName, - connected: false, - reason: errorMessage(error), - }; - } - } - - async function connectNatsBridge(endpoint: string) { - if (!/^wss?:\/\//i.test(endpoint)) { - throw new Error(`nats bridge endpoint must be a ws:// or wss:// URL for extension transport, got ${endpoint}.`); - } - if (nats_bridge_socket?.readyState === WebSocket.OPEN || nats_bridge_socket?.readyState === WebSocket.CONNECTING) { - return { - upstream_nats_url: endpoint, - upstream_nats_subject_prefix: nats_bridge_subject_prefix, - connected: nats_bridge_socket.readyState === WebSocket.OPEN, - }; - } - const ws = new WebSocket(endpoint); - nats_bridge_socket = ws; - nats_bridge_buffer = ""; - ws.addEventListener("open", () => { - startOffscreenKeepAlive(); - writeNats(`CONNECT ${JSON.stringify(natsConnectOptions())}\r\nPING\r\n`); - writeNats(`SUB ${nats_bridge_subject_prefix}.client_to_browser 1\r\n`); - publishNats(`${nats_bridge_subject_prefix}.browser_to_client`, { - type: "modcdp.nats.hello", - role: "extension-service-worker", - version: 1, - extension_id: globalScope.chrome?.runtime?.id ?? null, - }); - }); - ws.addEventListener("message", (event) => { - void readNatsWebSocketData(event.data); - }); - ws.addEventListener("error", () => { - if (nats_bridge_socket === ws) nats_bridge_socket = null; - scheduleNatsBridgeReconnect(nats_bridge_reconnect_interval_ms); - }); - ws.addEventListener("close", () => { - if (nats_bridge_socket === ws) nats_bridge_socket = null; - scheduleNatsBridgeReconnect(nats_bridge_reconnect_interval_ms); - }); - return { - upstream_nats_url: endpoint, - upstream_nats_subject_prefix: nats_bridge_subject_prefix, - connected: false, - }; - } - - function writeNats(data: string) { - if (nats_bridge_socket?.readyState === WebSocket.OPEN) nats_bridge_socket.send(data); - } - - function publishNats(subject: string, message: unknown) { - const body = JSON.stringify(message); - writeNats(`PUB ${subject} ${new TextEncoder().encode(body).byteLength}\r\n${body}\r\n`); - } - - async function readNatsWebSocketData(data: unknown) { - if (typeof data === "string") nats_bridge_buffer += data; - else if (data instanceof ArrayBuffer) nats_bridge_buffer += new TextDecoder().decode(data); - else if (ArrayBuffer.isView(data)) nats_bridge_buffer += new TextDecoder().decode(data); - else if (typeof Blob !== "undefined" && data instanceof Blob) nats_bridge_buffer += await data.text(); - else return; - nats_bridge_buffer = consumeNatsProtocol(nats_bridge_buffer); - } - - function consumeNatsProtocol(buffer: string) { - for (;;) { - const lineEnd = buffer.indexOf("\r\n"); - if (lineEnd < 0) return buffer; - const line = buffer.slice(0, lineEnd); - const upper = line.toUpperCase(); - if (upper.startsWith("MSG ")) { - const parts = line.split(/\s+/); - const size = Number(parts[parts.length - 1]); - const payloadStart = lineEnd + 2; - const payloadEnd = payloadStart + size; - if (!Number.isInteger(size) || buffer.length < payloadEnd + 2) return buffer; - const payload = buffer.slice(payloadStart, payloadEnd); - buffer = buffer.slice(payloadEnd + 2); - void handleNatsBridgePayload(payload); - continue; - } - buffer = buffer.slice(lineEnd + 2); - if (upper === "PING") writeNats("PONG\r\n"); - } - } - - function natsConnectOptions() { - return { - verbose: false, - pedantic: false, - lang: "modcdp-extension", - version: "1", - protocol: 1, - }; - } - - function debuggerSendCommand( - debuggee: chrome.debugger.Debuggee, - method: string, - params: Record = {}, - ): Promise { - const chromeApi = globalScope.chrome; - return new Promise((resolve, reject) => - chromeApi.debugger.sendCommand(debuggee, method, params, (result) => { - const error = chromeApi.runtime.lastError; - if (error) reject(new Error(error.message)); - else resolve(result as ProtocolResult); - }), - ); - } - - async function getSelfDebuggee(): Promise { - if (selfDebuggee) return selfDebuggee; - const chromeApi = globalScope.chrome; - if (!chromeApi?.debugger?.getTargets || !chromeApi?.debugger?.attach) { - throw new Error("chrome.debugger is unavailable for reverse expression evaluation."); - } - const serviceWorkerUrl = currentServiceWorkerUrl(); - const targets = await chromeApi.debugger.getTargets(); - const target = targets.find((candidate) => candidate.url === serviceWorkerUrl); - if (!target?.id) throw new Error(`Could not find ModCDP service worker debugger target ${serviceWorkerUrl}.`); - const debuggee = { targetId: target.id }; - await new Promise((resolve, reject) => - chromeApi.debugger.attach(debuggee, "1.3", () => { - const error = chromeApi.runtime.lastError; - if (!error || error.message?.includes("Another debugger is already attached")) resolve(); - else reject(new Error(error.message)); - }), - ); - selfDebuggee = debuggee; - return debuggee; - } - function currentServiceWorkerUrl() { - const chromeApi = globalScope.chrome; - const manifest = chromeApi?.runtime?.getManifest?.(); + const chrome_api = globalScope.chrome; + const manifest = chrome_api?.runtime?.getManifest?.(); const service_worker = manifest && typeof manifest === "object" && "background" in manifest ? (manifest.background as { service_worker?: unknown } | undefined)?.service_worker @@ -779,19 +341,102 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis typeof service_worker === "string" && service_worker.length > 0 ? service_worker.replace(/^\//, "") : "modcdp/service_worker.js"; - return chromeApi.runtime.getURL(service_worker_path); + return chrome_api.runtime.getURL(service_worker_path); + } + + let active_server_upstream_subscription: { remove: () => void } | null = null; + + function setupServerUpstreamTransport(): LoopbackCdpTransport | ChromeDebuggerTransport; + function setupServerUpstreamTransport(name: "loopback_cdp"): LoopbackCdpTransport; + function setupServerUpstreamTransport(name: "chrome_debugger"): ChromeDebuggerTransport; + function setupServerUpstreamTransport( + name?: SelectedServerUpstreamTransportName, + ): LoopbackCdpTransport | ChromeDebuggerTransport; + function setupServerUpstreamTransport( + name?: SelectedServerUpstreamTransportName, + ): LoopbackCdpTransport | ChromeDebuggerTransport { + const selected_name = + name ?? ModCDPServer.upstream_name ?? (ModCDPServer.loopback_cdp_url ? "loopback_cdp" : "chrome_debugger"); + if (ModCDPServer.upstream_name === selected_name && ModCDPServer.upstream && ModCDPServer.router) { + return ModCDPServer.upstream; + } + active_server_upstream_subscription?.remove(); + const transport = + selected_name === "loopback_cdp" + ? new LoopbackCdpTransport({ + loopback_cdp_url: ModCDPServer.loopback_cdp_url, + cdp_send_timeout_ms: ModCDPServer.cdp_send_timeout_ms, + loopback_execution_context_timeout_ms: ModCDPServer.loopback_execution_context_timeout_ms, + ws_connect_error_settle_timeout_ms: ModCDPServer.ws_connect_error_settle_timeout_ms, + }) + : new ChromeDebuggerTransport(); + ModCDPServer.upstream_name = selected_name; + ModCDPServer.upstream = transport; + if (!ModCDPServer.upstream) throw new Error("ModCDP server upstream transport is not initialized."); + ModCDPServer.router = new AutoSessionRouter({ + upstream: ModCDPServer.upstream, + loopback_execution_context_timeout_ms: ModCDPServer.loopback_execution_context_timeout_ms, + }); + const auto_router_subscription = ModCDPServer.router.listen(); + const publish_subscriptions = Object.values(nativeEventSchemas).map((event) => + transport.on(event, (payload, _targetId, cdpSessionId) => { + void publishEvent(event.id, ProtocolPayloadSchema.parse(payload), cdpSessionId).catch((error) => + console.error("[ModCDPServer] upstream event listener failed", error), + ); + }), + ); + active_server_upstream_subscription = { + remove: () => { + auto_router_subscription?.remove(); + for (const subscription of publish_subscriptions) subscription.remove(); + }, + }; + return transport; } - async function evaluateInSelf(expression: string): Promise { - const debuggee = await getSelfDebuggee(); - const result = (await debuggerSendCommand(debuggee, "Runtime.evaluate", { - expression, - awaitPromise: true, - returnByValue: true, - })) as cdp.types.ts.Runtime.EvaluateResult; + async function evaluateInServiceWorker(expression: string): Promise { + if (!ModCDPServer.upstream) setupServerUpstreamTransport(); + if (!ModCDPServer.upstream) throw new Error("ModCDP server upstream transport is not initialized."); + if (!ModCDPServer.router) throw new Error("ModCDP autorouter is not initialized."); + + const service_worker_url = currentServiceWorkerUrl(); + const service_worker_target = (await ModCDPServer.upstream.getTargets()).find( + (target) => target.url === service_worker_url, + ); + if (!service_worker_target) { + throw new Error(`Could not find ModCDP service worker target ${service_worker_url}.`); + } + const route = await ModCDPServer.router.ensureRouteForTarget(service_worker_target.targetId); + + /* + * MV3 extension service workers cannot opt into arbitrary string eval with + * content_security_policy; Chrome rejects `eval`/`new Function` in extension + * service-worker JavaScript even when the manifest tries to loosen CSP. The + * user-facing Mod.evaluate/custom-command/middleware APIs intentionally take + * JavaScript source strings, so direct in-process execution is not viable. + * + * The workaround is to execute the source as a DevTools Protocol operation + * against this same service-worker target. CDP Runtime.evaluate runs in the + * browser's inspector/evaluation path instead of through service-worker JS + * string eval, so it can evaluate the supplied expression while still seeing + * `globalThis.ModCDP`, `chrome`, and the service-worker global scope. This + * must go through the currently configured server upstream transport + * (`loopback_cdp` or `chrome_debugger`) via the generic upstream interface; + * downstream transports and ModCDPServer must not hardcode either physical + * upstream implementation here. + */ + const result = await ModCDPServer.upstream.send( + Runtime.EvaluateCommand, + { + expression, + awaitPromise: true, + returnByValue: true, + }, + route, + ); if (result.exceptionDetails) { - const ex = result.exceptionDetails; - throw new Error(ex.exception?.description || ex.text || "Runtime evaluation failed"); + const exception = result.exceptionDetails; + throw new Error(exception.exception?.description || exception.text || "Runtime evaluation failed"); } return (result.result?.value ?? {}) as ProtocolResult; } @@ -807,7 +452,7 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis cdpSessionId?: string | null; method?: string | null; }): Promise { - return evaluateInSelf(` + return evaluateInServiceWorker(` (async () => { const params = ${JSON.stringify(params ?? {})}; const method = ${JSON.stringify(method)}; @@ -820,223 +465,45 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis `); } - async function loopbackWS(endpoint: string): Promise { - const existing = loopbackSockets.get(endpoint); - if (existing?.readyState === WebSocket.OPEN) return existing; - const pending = loopbackSocketPromises.get(endpoint); - if (pending) return pending; - - const nextSocket = openCDPSocket(endpoint).then((ws) => { - loopbackSockets.set(endpoint, ws); - loopbackSocketPromises.delete(endpoint); - ws.addEventListener("message", (event) => { - const msg = JSON.parse(event.data); - const id = typeof msg.id === "number" ? msg.id : null; - if (id == null) { - const method = typeof msg.method === "string" ? msg.method : null; - if (!method) return; - const payload = - msg.params && typeof msg.params === "object" && !Array.isArray(msg.params) - ? (msg.params as ProtocolPayload) - : {}; - const cdpSessionId = typeof msg.sessionId === "string" ? msg.sessionId : null; - const payloadRecord = payload as Record; - const targetInfo = - payloadRecord.targetInfo && - typeof payloadRecord.targetInfo === "object" && - !Array.isArray(payloadRecord.targetInfo) - ? (payloadRecord.targetInfo as Record) - : null; - const attachedSessionId = typeof payloadRecord.sessionId === "string" ? payloadRecord.sessionId : null; - const attachedTargetId = typeof targetInfo?.targetId === "string" ? targetInfo.targetId : null; - if (method === "Target.attachedToTarget" && attachedSessionId != null && attachedTargetId != null) { - loopbackTargetSessions.set(attachedTargetId, attachedSessionId); - loopbackSessionTargets.set(attachedSessionId, attachedTargetId); - } else if (method === "Target.detachedFromTarget") { - const detachedSessionId = - typeof payloadRecord.sessionId === "string" ? payloadRecord.sessionId : cdpSessionId; - const detachedTargetId = - typeof payloadRecord.targetId === "string" - ? payloadRecord.targetId - : detachedSessionId == null - ? null - : (loopbackSessionTargets.get(detachedSessionId) ?? null); - if (detachedTargetId != null) loopbackTargetSessions.delete(detachedTargetId); - if (detachedSessionId != null) loopbackSessionTargets.delete(detachedSessionId); - if (detachedSessionId != null) loopbackSessionContexts.delete(detachedSessionId); - } else if (method === "Runtime.executionContextCreated" && cdpSessionId != null) { - const context = payloadRecord.context; - const contextId = - context && typeof context === "object" && "id" in context && typeof context.id === "number" - ? context.id - : null; - if (contextId != null) { - loopbackSessionContexts.set(cdpSessionId, contextId); - const waiters = loopbackContextWaiters.get(cdpSessionId); - if (waiters) { - loopbackContextWaiters.delete(cdpSessionId); - for (const resolve of waiters) resolve(contextId); - } - } - } - void (async () => { - if ( - method === "Target.attachedToTarget" && - attachedSessionId != null && - (targetInfo?.type === "page" || targetInfo?.type === "iframe") - ) { - await ModCDPServer.handleCommand("Page.enable", {}, attachedSessionId).catch((error) => - console.error("[ModCDPServer] Page.enable failed for attached target", error), - ); - await ModCDPServer.handleCommand( - "Page.setLifecycleEventsEnabled", - { enabled: true }, - attachedSessionId, - ).catch((error) => - console.error("[ModCDPServer] Page.setLifecycleEventsEnabled failed for attached target", error), - ); - } - await publishEvent(method, payload, cdpSessionId); - })().catch((error) => console.error("[ModCDPServer] loopback event listener failed", error)); - return; - } - const pending = loopbackPending.get(id); - if (!pending) return; - loopbackPending.delete(id); - if (msg.error) pending.reject(new Error(msg.error.message)); - else pending.resolve(msg.result || {}); - }); - ws.addEventListener("error", () => { - if (loopbackSockets.get(endpoint) === ws) loopbackSockets.delete(endpoint); - loopbackTargetSessions.clear(); - loopbackSessionTargets.clear(); - loopbackSessionContexts.clear(); - rejectLoopbackPending(new Error(`CDP socket error ${endpoint}`)); - }); - ws.addEventListener("close", (event) => { - if (loopbackSockets.get(endpoint) === ws) loopbackSockets.delete(endpoint); - loopbackTargetSessions.clear(); - loopbackSessionTargets.clear(); - loopbackSessionContexts.clear(); - rejectLoopbackPending( - new Error( - `CDP socket closed ${endpoint} close.code=${event.code} close.reason=${event.reason || ""} close.wasClean=${ - event.wasClean - }`, - ), - ); - }); - return ws; - }); - loopbackSocketPromises.set(endpoint, nextSocket); - return nextSocket; - } - - async function callLoopbackWS(method: string, params: ProtocolParams = {}, sessionId: string | null = null) { - if (!ModCDPServer.loopback_cdp_url) throw new Error(`No loopback_cdp_url configured for ${method}.`); - const ws = await loopbackWS(ModCDPServer.loopback_cdp_url); - const id = nextLoopbackId++; - const message: { - id: number; - method: string; - params: ProtocolParams; - sessionId?: string; - } = { - id, - method, - params, - }; - if (sessionId) message.sessionId = sessionId; - ws.send(JSON.stringify(message)); - return new Promise((resolve, reject) => { - const timeout = setTimeout(() => { - if (!loopbackPending.delete(id)) return; - reject(new Error(`${method} timed out after ${ModCDPServer.cdp_send_timeout_ms}ms`)); - }, ModCDPServer.cdp_send_timeout_ms); - loopbackPending.set(id, { - resolve: (value) => { - clearTimeout(timeout); - resolve(value); - }, - reject: (error) => { - clearTimeout(timeout); - reject(error); - }, - }); - }); - } - - async function initializeLoopbackCDP() { - if (!ModCDPServer.loopback_cdp_url) return; - const ws = await loopbackWS(ModCDPServer.loopback_cdp_url); - if (initializedLoopbackSockets.has(ws)) return; - await callLoopbackWS("Target.setAutoAttach", targetAutoAttachParams); - await callLoopbackWS("Target.setDiscoverTargets", { discover: true }); - initializedLoopbackSockets.add(ws); - } - - function waitForLoopbackExecutionContext( - sessionId: string, - timeoutMs = ModCDPServer.loopback_execution_context_timeout_ms, - ) { - const existing = loopbackSessionContexts.get(sessionId); - if (existing != null) return Promise.resolve(existing); - return new Promise((resolve, reject) => { - const timeout = setTimeout(() => { - const waiters = loopbackContextWaiters.get(sessionId); - waiters?.delete(complete); - if (waiters?.size === 0) loopbackContextWaiters.delete(sessionId); - reject(new Error(`Timed out waiting for Runtime.executionContextCreated for session ${sessionId}.`)); - }, timeoutMs); - const complete = (contextId: number) => { - clearTimeout(timeout); - resolve(contextId); - }; - const waiters = loopbackContextWaiters.get(sessionId); - if (waiters) waiters.add(complete); - else loopbackContextWaiters.set(sessionId, new Set([complete])); - }); - } - async function ensureOffscreenKeepAlive() { - const chromeApi = globalScope.chrome; - const offscreen = chromeApi?.offscreen; - if (!offscreen || !chromeApi?.runtime?.getURL) return { started: false, reason: "offscreen_unavailable" }; + const chrome_api = globalScope.chrome; + const offscreen = chrome_api?.offscreen; + if (!offscreen || !chrome_api?.runtime?.getURL) return { started: false, reason: "offscreen_unavailable" }; - const offscreenUrl = chromeApi.runtime.getURL(offscreenKeepAlivePath); + const offscreen_url = chrome_api.runtime.getURL(offscreen_keep_alive_path); try { - const existingContexts = chromeApi.runtime.getContexts - ? await chromeApi.runtime.getContexts({ + const existing_contexts = chrome_api.runtime.getContexts + ? await chrome_api.runtime.getContexts({ contextTypes: ["OFFSCREEN_DOCUMENT"], - documentUrls: [offscreenUrl], + documentUrls: [offscreen_url], }) : []; - if (existingContexts.length > 0) return { started: true, existing: true }; + if (existing_contexts.length > 0) return { started: true, existing: true }; - creatingOffscreenKeepAlive ??= offscreen + creating_offscreen_keep_alive ??= offscreen .createDocument({ - url: offscreenKeepAlivePath, + url: offscreen_keep_alive_path, reasons: ["BLOBS"], justification: "Keep ModCDP service worker active while CDP clients route commands through it.", }) .finally(() => { - creatingOffscreenKeepAlive = null; + creating_offscreen_keep_alive = null; }); - await creatingOffscreenKeepAlive; + await creating_offscreen_keep_alive; return { started: true }; } catch (error) { return { started: false, reason: errorMessage(error) }; } } - const ModCDPServer = { + const ModCDPServer: ModCDPServerInstance = { __ModCDPServerVersion: MODCDP_SERVER_VERSION, - routes: { ...defaultRoutes }, + routes: { ...default_routes }, loopback_cdp_url: null as string | null, browser_token: null as string | null, - native_bridge_attempts: 0, - native_bridge_last_error: null as string | null, - native_bridge_connected: false, + upstream: null as LoopbackCdpTransport | ChromeDebuggerTransport | null, + upstream_name: null as SelectedServerUpstreamTransportName | null, + router: null as AutoSessionRouter | null, cdp_send_timeout_ms: DEFAULT_CDP_SEND_TIMEOUT_MS, loopback_execution_context_timeout_ms: DEFAULT_LOOPBACK_EXECUTION_CONTEXT_TIMEOUT_MS, ws_connect_error_settle_timeout_ms: DEFAULT_WS_CONNECT_ERROR_SETTLE_TIMEOUT_MS, @@ -1045,66 +512,26 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis types: null as (typeof import("../types/generated/zod.js"))["types"] | null, commands: null as (typeof import("../types/generated/zod.js"))["commands"] | null, events: null as (typeof import("../types/generated/zod.js"))["events"] | null, - startOffscreenKeepAlive, - startReverseBridge( - endpoint: string, - { - reconnect_interval_ms = DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS, - }: { - reconnect_interval_ms?: number; - } = {}, - ) { - if (!/^wss?:\/\//i.test(endpoint)) { - throw new Error(`reverse proxy endpoint must be a ws:// or wss:// URL, got ${endpoint}.`); + startDownstreamTransports() { + const results: Record = {}; + for (const [name, transport] of downstream_transports) { + const result = transport.startDefault(); + if (result != null) results[name] = result; } - reverseBridgeUrl = endpoint; - reverseBridgeReconnectIntervalMs = reconnect_interval_ms; - void connectReverseBridge(endpoint).catch(() => { - scheduleReverseBridgeReconnect(reverseBridgeReconnectIntervalMs); - }); - return { - upstream_reversews_url: endpoint, - reconnect_interval_ms, - connecting: true, - }; + return results; }, - stopReverseBridge, - startNativeBridge( - hostName = DEFAULT_NATIVE_BRIDGE_HOST_NAME, - { - reconnect_interval_ms = DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS, - }: { - reconnect_interval_ms?: number; - } = {}, - ) { - nativeBridgeHostName = hostName; - nativeBridgeReconnectIntervalMs = reconnect_interval_ms; - return connectNativeBridge(hostName); + stopDownstreamTransports(reason = "stopped") { + const results: Record = {}; + for (const [name, transport] of downstream_transports) { + const result = transport.stop(reason); + if (result != null) results[name] = result; + } + return results; }, - startNatsBridge( - endpoint: string, - { - upstream_nats_subject_prefix = DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX, - reconnect_interval_ms = DEFAULT_NATS_BRIDGE_RECONNECT_INTERVAL_MS, - }: { - upstream_nats_subject_prefix?: string; - reconnect_interval_ms?: number; - } = {}, - ) { - if (!upstream_nats_subject_prefix || /[\s*>]/.test(upstream_nats_subject_prefix)) - throw new Error(`Invalid NATS subject prefix ${upstream_nats_subject_prefix}`); - nats_bridge_url = endpoint; - nats_bridge_subject_prefix = upstream_nats_subject_prefix; - nats_bridge_reconnect_interval_ms = reconnect_interval_ms; - void connectNatsBridge(endpoint).catch(() => { - scheduleNatsBridgeReconnect(nats_bridge_reconnect_interval_ms); - }); - return { - upstream_nats_url: endpoint, - upstream_nats_subject_prefix, - reconnect_interval_ms, - connecting: true, - }; + downstreamTransports() { + const status: Record = {}; + for (const [name, transport] of downstream_transports) status[name] = transport.status(); + return status; }, ensureOffscreenKeepAlive, @@ -1119,7 +546,6 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis }, async configure(params: ModCDPConfigureParams = {}) { - const upstream = params.upstream ?? {}; const server = params.server ?? {}; const { server_loopback_cdp_url = this.loopback_cdp_url, @@ -1132,27 +558,30 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis server_close_browser_on_downstream_disconnect = this.close_browser_on_downstream_disconnect, } = server; const { custom_commands = [], custom_events = [], custom_middlewares = [] } = params; - this.loopback_cdp_url = await resolveCDPEndpoint(server_loopback_cdp_url); + this.loopback_cdp_url = await LoopbackCdpTransport.resolveEndpoint(server_loopback_cdp_url); this.browser_token = server_browser_token; this.cdp_send_timeout_ms = server_cdp_send_timeout_ms; this.loopback_execution_context_timeout_ms = server_loopback_execution_context_timeout_ms; this.ws_connect_error_settle_timeout_ms = server_ws_connect_error_settle_timeout_ms; this.downstream_client_timeout_ms = server_downstream_client_timeout_ms; this.close_browser_on_downstream_disconnect = server_close_browser_on_downstream_disconnect; - if (upstream.upstream_mode === "nats" && upstream.upstream_nats_url) { - this.startNatsBridge(upstream.upstream_nats_url, { - upstream_nats_subject_prefix: upstream.upstream_nats_subject_prefix ?? DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX, - }); - } - if (server_routes) this.routes = { ...defaultRoutes, ...server_routes }; + for (const transport of downstream_transports.values()) transport.configure(params); + if (server_routes) this.routes = { ...default_routes, ...server_routes }; else { - this.routes = { ...defaultRoutes }; + this.routes = { ...default_routes }; await this.discoverLoopbackCDP(); } + const default_server_route = server_routes?.["*.*"]; + setupServerUpstreamTransport( + default_server_route === "loopback_cdp" || default_server_route === "chrome_debugger" + ? default_server_route + : this.loopback_cdp_url + ? "loopback_cdp" + : "chrome_debugger", + ); for (const command of custom_commands) this.addCustomCommand(command as ModCDPCustomCommandRegistration); for (const event of custom_events) this.addCustomEvent(event as ModCDPCustomEventRegistration); for (const middleware of custom_middlewares) this.addMiddleware(middleware as ModCDPMiddlewareRegistration); - await initializeLoopbackCDP(); return { loopback_cdp_url: this.loopback_cdp_url, routes: this.routes }; }, @@ -1176,7 +605,7 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis }; } if (typeof handler !== "function") throw new Error(`Custom command ${name} was registered without a handler.`); - commandHandlers.set(name, { + command_handlers.set(name, { name, handler, params_schema: normalizeModCDPPayloadSchema(params_schema), @@ -1189,7 +618,7 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis addCustomEvent({ name, event_schema = null }: ModCDPCustomEventRegistration) { name = normalizeModCDPName(name); if (!/^[^.]+\.[^.]+$/.test(name)) throw new Error("name must be in Domain.event form."); - eventBindings.set(name, { + event_bindings.set(name, { name, event_schema: normalizeModCDPPayloadSchema(event_schema), }); @@ -1197,8 +626,8 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis }, addEventListener(listener: (event: string, data: ProtocolPayload, cdpSessionId: string | null) => void) { - eventListeners.add(listener); - return { remove: () => eventListeners.delete(listener) }; + event_listeners.add(listener); + return { remove: () => event_listeners.delete(listener) }; }, addMiddleware({ name = "*", phase, expression = null, handler }: ModCDPMiddlewareRegistration) { @@ -1210,7 +639,7 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis handler = async (payload: ProtocolPayload, next: unknown, context: ProtocolPayload = {}) => { const context_object = context && typeof context === "object" ? (context as Record) : {}; const cdpSessionId = typeof context_object.cdpSessionId === "string" ? context_object.cdpSessionId : null; - const result = (await evaluateInSelf(` + const result = (await evaluateInServiceWorker(` (async () => { const payload = ${JSON.stringify(payload ?? {})}; const context = ${JSON.stringify(context ?? {})}; @@ -1218,16 +647,16 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis const ModCDP = globalThis.ModCDP; const chrome = globalThis.chrome; const next = async (nextValue = payload) => ({ __ModCDP_middleware_next__: true, value: nextValue }); - const handler = (${expression}); - return await handler(payload, next, context); + const middleware = (${expression}); + return await middleware(payload, next, context); })() `)) as Record; if (result?.__ModCDP_middleware_next__ === true && typeof next === "function") { - const nextResult = await next(result.value); - const { __ModCDP_middleware_next__, value, ...overrides } = result; - if (Object.keys(overrides).length === 0) return nextResult; - return nextResult != null && typeof nextResult === "object" && !Array.isArray(nextResult) - ? { ...(nextResult as Record), ...overrides } + const next_result = await next(result.value); + const { __ModCDP_middleware_next__, value: _value, ...overrides } = result; + if (Object.keys(overrides).length === 0) return next_result; + return next_result != null && typeof next_result === "object" && !Array.isArray(next_result) + ? { ...(next_result as Record), ...overrides } : overrides; } return result; @@ -1247,11 +676,11 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis const dispatch = async (index: number, value: ProtocolPayload): Promise => { const middleware = matching[index]; if (!middleware) return value; - let nextCalled = false; + let next_called = false; const next = async (nextValue = value) => { - if (nextCalled) + if (next_called) throw new Error(`Middleware ${middleware.name}:${middleware.phase} called next() more than once.`); - nextCalled = true; + next_called = true; return dispatch(index + 1, nextValue); }; const ctx = context && typeof context === "object" ? context : {}; @@ -1264,11 +693,11 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis if (method === "Mod.configure") registerDownstreamClient(); touchDownstreamClientLease(cdpSessionId); const request = { method, params, cdpSessionId }; - const middlewareParams = await this.runMiddleware("request", method, params, { cdpSessionId, request }); - if (middlewareParams == null) throw new Error(`Request middleware for ${method} returned no params.`); - params = middlewareParams as ProtocolParams; + const middleware_params = await this.runMiddleware("request", method, params, { cdpSessionId, request }); + if (middleware_params == null) throw new Error(`Request middleware for ${method} returned no params.`); + params = middleware_params as ProtocolParams; - const command = registryMatch(commandHandlers, method); + const command = registryMatch(command_handlers, method); params = commandParamsSchema(method, command)?.parse(params) ?? params; let result; if (command) { @@ -1281,7 +710,7 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis return commandResultSchema(method, command)?.parse(result) ?? result; } - let upstream = "chrome_debugger"; + let upstream = "auto"; for (const [pattern, route] of Object.entries(this.routes || {}) as [string, string][]) { if (pattern === "*.*") { upstream = route; @@ -1297,19 +726,13 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis } } - if (upstream === "auto") { - if (this.loopback_cdp_url) { - try { - result = await this.sendLoopback(method, params, cdpSessionId); - } catch { - result = await this.sendChromeDebugger(method, params); - } - } else { - result = await this.sendChromeDebugger(method, params); - } - } else if (upstream === "loopback_cdp") result = await this.sendLoopback(method, params, cdpSessionId); - else if (upstream === "chrome_debugger") result = await this.sendChromeDebugger(method, params); - else throw new Error(`No ModCDP command registered for ${method}.`); + if (upstream === "service_worker") throw new Error(`No service-worker command registered for ${method}.`); + if (upstream !== "auto" && upstream !== "loopback_cdp" && upstream !== "chrome_debugger") + throw new Error(`No service-worker command registered for ${method}.`); + if (!ModCDPServer.upstream) setupServerUpstreamTransport(); + if (!ModCDPServer.upstream) throw new Error(`No ModCDP server upstream transport registered for ${method}.`); + if (!ModCDPServer.router) throw new Error("ModCDP autorouter is not initialized."); + result = await ModCDPServer.router.send(method, params, cdpSessionId); result = await this.runMiddleware("response", method, result, { cdpSessionId, @@ -1331,13 +754,18 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis get events() { return ModCDPServer.events; }, + get upstream() { + if (!ModCDPServer.router) setupServerUpstreamTransport(); + if (!ModCDPServer.router) throw new Error("ModCDP autorouter is not initialized."); + return ModCDPServer.router; + }, send: (method: string, params: ProtocolParams = {}) => this.handleCommand(method, params, cdpSessionId), emit: (eventName: string, payload: ProtocolPayload = {}) => this.emit(eventName, payload, cdpSessionId), }; }, async emit(eventName: string, payload: ProtocolPayload = {}, cdpSessionId: string | null = null) { - const event = registryMatch(eventBindings, eventName); + const event = registryMatch(event_bindings, eventName); if (!event) return { event: eventName, @@ -1345,12 +773,10 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis reason: "event_not_registered", }; payload = eventPayloadSchema(eventName, event)?.parse(payload) ?? payload; - const customBinding = globalScope[CUSTOM_EVENT_BINDING_NAME]; + const custom_binding = globalScope[CUSTOM_EVENT_BINDING_NAME]; if ( - typeof customBinding !== "function" && - reverseBridgeSocket?.readyState !== WebSocket.OPEN && - !nativeBridgePort && - nats_bridge_socket?.readyState !== WebSocket.OPEN + typeof custom_binding !== "function" && + ![...downstream_transports.values()].some((transport) => transport.status().connected) ) return { event: eventName, @@ -1365,203 +791,42 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis verified: boolean; version?: unknown; }> { - if (!this.browser_token) return { loopback_cdp_url: null as null, verified: false }; - - const url = "http://127.0.0.1:9222"; - const previousLoopbackUrl = this.loopback_cdp_url; - const fail = (version?: unknown) => { - this.loopback_cdp_url = previousLoopbackUrl ?? null; - return { - loopback_cdp_url: null as null, - verified: false, - ...(version ? { version } : {}), - }; - }; - try { - const version = await fetch(`${url}/json/version`).then((response) => response.ok && response.json()); - if (!version?.webSocketDebuggerUrl) return fail(); - - this.loopback_cdp_url = version.webSocketDebuggerUrl; - const { targetInfos } = (await callLoopbackWS("Target.getTargets")) as cdp.types.ts.Target.GetTargetsResult; - const serviceWorkerUrl = currentServiceWorkerUrl(); - const worker = targetInfos.find( - (target) => target.type === "service_worker" && target.url === serviceWorkerUrl, - ); - if (!worker) return fail(version); - - const { sessionId } = (await callLoopbackWS("Target.attachToTarget", { - targetId: worker.targetId, - flatten: true, - })) as cdp.types.ts.Target.AttachToTargetResult; - loopbackTargetSessions.set(worker.targetId, sessionId); - loopbackSessionTargets.set(sessionId, worker.targetId); - const contextIdPromise = waitForLoopbackExecutionContext(sessionId); - await callLoopbackWS("Runtime.enable", {}, sessionId); - const executionContextId = await contextIdPromise; - const result = (await callLoopbackWS( - "Runtime.callFunctionOn", - { - functionDeclaration: `function() { return globalThis.ModCDP?.browser_token === ${JSON.stringify(this.browser_token)}; }`, - executionContextId, - returnByValue: true, - }, - sessionId, - )) as cdp.types.ts.Runtime.EvaluateResult; - if (result.result?.value !== true) return fail(version); - - await initializeLoopbackCDP(); - return { - loopback_cdp_url: this.loopback_cdp_url, - verified: true, - version, - }; - } catch { - return fail(); - } - }, - - async sendLoopback(method: string, params: ProtocolParams = {}, cdpSessionId: string | null = null) { - if (!this.loopback_cdp_url) throw new Error(`No loopback_cdp_url configured for ${method}.`); - - await initializeLoopbackCDP(); - - const domain = method.split(".")[0] ?? ""; - if (browserLevelDomains.has(domain)) return await callLoopbackWS(method, params); - if (cdpSessionId) return await callLoopbackWS(method, params, cdpSessionId); - - const { - debuggee = null, - tabId = null, - targetId = null, - extensionId = null, - ...commandParams - } = params as CdpDebuggeeCommandParams; - const resolvedDebuggee = debuggee ?? compactDebuggee({ tabId, targetId, extensionId }); - - const chromeApi = globalScope.chrome; - let resolvedTargetId = resolvedDebuggee.targetId || null; - if (!resolvedTargetId) { - let resolvedTabId = resolvedDebuggee.tabId || null; - let resolvedTabUrl: string | null = null; - if (!resolvedTabId) { - const [tab] = chromeApi.tabs?.query - ? await chromeApi.tabs.query({ - active: true, - lastFocusedWindow: true, - }) - : []; - resolvedTabId = tab?.id || null; - resolvedTabUrl = tab?.url || tab?.pendingUrl || null; - } else if (chromeApi.tabs?.get) { - const tab = await chromeApi.tabs.get(resolvedTabId).catch((): null => null); - resolvedTabUrl = tab?.url || tab?.pendingUrl || null; - } - if (resolvedTabId && chromeApi.debugger?.getTargets) { - const targets = await chromeApi.debugger.getTargets(); - resolvedTargetId = - targets.find((target) => target.tabId === resolvedTabId && target.type === "page")?.id || null; - } - if (!resolvedTargetId) { - const { targetInfos } = (await callLoopbackWS("Target.getTargets")) as cdp.types.ts.Target.GetTargetsResult; - const pageTargets = targetInfos.filter((target) => target.type === "page"); - resolvedTargetId = - pageTargets.find((target) => resolvedTabUrl && target.url === resolvedTabUrl)?.targetId || - pageTargets[0]?.targetId || - null; - } - if (!resolvedTargetId) { - const created = (await callLoopbackWS("Target.createTarget", { - url: "about:blank#modcdp", - })) as cdp.types.ts.Target.CreateTargetResult; - resolvedTargetId = created.targetId || null; - } - } - if (!resolvedTargetId) throw new Error(`loopback_cdp route for ${method} could not resolve a page target.`); - - const existingSessionId = loopbackTargetSessions.get(resolvedTargetId); - if (existingSessionId) return await callLoopbackWS(method, commandParams, existingSessionId); - - const attached = (await callLoopbackWS("Target.attachToTarget", { - targetId: resolvedTargetId, - flatten: true, - })) as cdp.types.ts.Target.AttachToTargetResult; - const sessionId = attached.sessionId; - loopbackTargetSessions.set(resolvedTargetId, sessionId); - loopbackSessionTargets.set(sessionId, resolvedTargetId); - await callLoopbackWS("Target.setAutoAttach", targetAutoAttachParams, sessionId).catch(() => {}); - return await callLoopbackWS(method, commandParams, sessionId); - }, - - async sendChromeDebugger(method: string, params: ProtocolParams = {}) { - const chromeApi = globalScope.chrome; - if (!chromeApi?.debugger?.sendCommand) throw new Error("chrome.debugger is unavailable."); - - const { - debuggee = null, - tabId = null, - targetId = null, - extensionId = null, - ...commandParams - } = params as CdpDebuggeeCommandParams; - const resolvedDebuggee = debuggee ?? compactDebuggee({ tabId, targetId, extensionId }); - if (Object.keys(resolvedDebuggee).length === 0) { - let tab: chrome.tabs.Tab | undefined; - [tab] = await chromeApi.tabs.query({ - active: true, - lastFocusedWindow: true, - }); - if (!tab?.id) [tab] = await chromeApi.tabs.query({}); - if (!tab?.id) { - try { - tab = await chromeApi.tabs.create({ - url: "https://example.com/#modcdp", - active: true, - }); - } catch { - const win = await chromeApi.windows.create({ - url: "https://example.com/#modcdp", - focused: true, - }); - tab = win?.tabs?.[0]; - } - } - if (!tab?.id) throw new Error(`chrome_debugger route for ${method} could not find an active tab.`); - resolvedDebuggee.tabId = tab.id; - } - - const key = JSON.stringify(resolvedDebuggee); - if (!attachedDebuggees.has(key)) { - try { - await new Promise((resolve, reject) => - chromeApi.debugger.attach(resolvedDebuggee, "1.3", () => { - const error = chromeApi.runtime.lastError; - if (error) reject(new Error(error.message)); - else resolve(); - }), - ); - } catch (error) { - if (!errorMessage(error).includes("Another debugger is already attached")) throw error; - } - await new Promise((resolve, reject) => - chromeApi.debugger.sendCommand(resolvedDebuggee, "Target.setAutoAttach", targetAutoAttachParams, () => { - const error = chromeApi.runtime.lastError; - if (error) reject(new Error(error.message)); - else resolve(); - }), - ); - attachedDebuggees.add(key); - } - - return new Promise((resolve, reject) => - chromeApi.debugger.sendCommand(resolvedDebuggee, method, commandParams, (result) => { - const error = chromeApi.runtime.lastError; - if (error) reject(new Error(error.message)); - else resolve(result as ProtocolResult); - }), - ); + const transport = new LoopbackCdpTransport({ + loopback_cdp_url: ModCDPServer.loopback_cdp_url, + cdp_send_timeout_ms: ModCDPServer.cdp_send_timeout_ms, + loopback_execution_context_timeout_ms: ModCDPServer.loopback_execution_context_timeout_ms, + ws_connect_error_settle_timeout_ms: ModCDPServer.ws_connect_error_settle_timeout_ms, + }); + const result = await transport.discoverLoopbackCDP({ + browserToken: this.browser_token, + serviceWorkerUrl: currentServiceWorkerUrl(), + }); + this.loopback_cdp_url = result.loopback_cdp_url; + return result; }, }; + downstream_transports = new Map(); + for (const transport of [ + new ReverseWSDownstreamTransport({ + ensureOffscreenKeepAlive, + handleCommand: (message) => + ModCDPServer.handleCommand(message.method, message.params ?? {}, message.sessionId ?? null), + }), + new NativeHostDownstreamTransport({ + ensureOffscreenKeepAlive, + handleCommand: (message) => + ModCDPServer.handleCommand(message.method, message.params ?? {}, message.sessionId ?? null), + }), + new NATSDownstreamTransport({ + ensureOffscreenKeepAlive, + handleCommand: (message) => + ModCDPServer.handleCommand(message.method, message.params ?? {}, message.sessionId ?? null), + }), + ]) { + downstream_transports.set(transport.name, transport); + } + globalScope.ModCDP = ModCDPServer; ModCDPServer.addCustomEvent({ @@ -1620,27 +885,27 @@ export function installModCDPServer(globalScope: ModCDPGlobalScope = globalThis handler: async (params: ProtocolParams = {}) => ModCDPServer.addMiddleware(params as ModCDPMiddlewareRegistration), }); - const chromeApi = globalScope.chrome; + const chrome_api = globalScope.chrome; try { - chromeApi?.runtime?.onStartup?.addListener(startOffscreenKeepAlive); + chrome_api?.runtime?.onStartup?.addListener(ensureOffscreenKeepAlive); } catch {} try { - chromeApi?.runtime?.onInstalled?.addListener(startOffscreenKeepAlive); + chrome_api?.runtime?.onInstalled?.addListener(ensureOffscreenKeepAlive); } catch {} try { - chromeApi?.tabs?.onCreated?.addListener(startOffscreenKeepAlive); + chrome_api?.tabs?.onCreated?.addListener(ensureOffscreenKeepAlive); } catch {} try { - chromeApi?.runtime?.onConnect?.addListener((port) => { - if (port.name !== offscreenKeepAlivePortName) return; - offscreenKeepAlivePort = port; + chrome_api?.runtime?.onConnect?.addListener((port) => { + if (port.name !== offscreen_keep_alive_port_name) return; + offscreen_keep_alive_port = port; port.onMessage.addListener(() => {}); port.onDisconnect.addListener(() => { - if (offscreenKeepAlivePort === port) offscreenKeepAlivePort = null; + if (offscreen_keep_alive_port === port) offscreen_keep_alive_port = null; }); }); } catch {} - startOffscreenKeepAlive(); + void ensureOffscreenKeepAlive(); return ModCDPServer; } diff --git a/js/src/server/NATSDownstreamTransport.ts b/js/src/server/NATSDownstreamTransport.ts new file mode 100644 index 00000000..421666db --- /dev/null +++ b/js/src/server/NATSDownstreamTransport.ts @@ -0,0 +1,309 @@ +import { + CdpCommandMessageSchema, + type CdpCommandMessage, + type CdpEventMessage, + type ModCDPConfigureParams, +} from "../types/modcdp.js"; +import type { ServerDownstreamTransport } from "./ServerDownstreamTransport.js"; + +export const DEFAULT_NATS_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; +export const DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX = "modcdp.default"; + +/** + * Owns the NATS-over-WebSocket downstream connection from the extension service + * worker to a ModCDP client/proxy. + * + * This class owns only NATS-specific lifecycle: WebSocket connection, reconnect + * scheduling, NATS CONNECT/SUB/PUB framing, protocol buffering, hello messages, + * command-message decoding, CDP response publishing, and event-message + * publishing. It does not own ModCDP command registration, routing, middleware, + * upstream target/session state, native messaging, or reversews handling. + * + * Lifecycle: + * 1. `start()` records the endpoint/subject/reconnect interval and opens one + * WebSocket if none is already open or connecting. + * 2. `open` sends NATS CONNECT/PING/SUB frames and publishes a browser hello. + * 3. `message` appends decoded bytes to the protocol buffer and consumes + * complete NATS frames. + * 4. `MSG` payloads are decoded as ModCDP command envelopes and delegated + * through the injected `handleCommand` callback. + * 5. `error`/`close` drops the socket and schedules reconnect while an endpoint + * is still configured. + */ +export class NATSDownstreamTransport implements ServerDownstreamTransport { + readonly name = "nats"; + + // Server-owned command executor. Read by NATS payload handling; this class + // never interprets routes, custom commands, or middleware itself. + private readonly handleCommand: (message: CdpCommandMessage) => Promise; + + // Server-owned keepalive hook. Called after the NATS WebSocket opens. + private readonly ensureOffscreenKeepAlive: () => unknown; + + // Configured NATS WebSocket URL. Set by start and read by reconnect handling. + private endpoint: string | null = null; + + // Configured NATS subject prefix. Set by start and read by SUB/PUB handling. + private subject_prefix = DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX; + + // Reconnect interval currently configured for the endpoint. Set by start and + // read by error/close handlers. + private reconnect_interval_ms = DEFAULT_NATS_BRIDGE_RECONNECT_INTERVAL_MS; + + // Active NATS WebSocket. Set by connect, cleared by error/close, read by + // start/write/emit. + private socket: WebSocket | null = null; + + // Pending reconnect timer. Set by scheduleReconnect and cleared when it fires. + private reconnect_timer: ReturnType | null = null; + + // Unconsumed NATS protocol bytes decoded as text. Appended by readWebSocketData + // and replaced by consumeProtocol. + private buffer = ""; + + constructor({ + handleCommand, + ensureOffscreenKeepAlive, + }: { + handleCommand: (message: CdpCommandMessage) => Promise; + ensureOffscreenKeepAlive: () => unknown; + }) { + this.handleCommand = handleCommand; + this.ensureOffscreenKeepAlive = ensureOffscreenKeepAlive; + } + + /** True when the NATS WebSocket is open and can publish CDP event messages. */ + get connected() { + return this.socket?.readyState === WebSocket.OPEN; + } + + /** Configure and start the NATS downstream connection. */ + start( + endpoint: string, + { + upstream_nats_subject_prefix = DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX, + reconnect_interval_ms = DEFAULT_NATS_BRIDGE_RECONNECT_INTERVAL_MS, + }: { + upstream_nats_subject_prefix?: string; + reconnect_interval_ms?: number; + } = {}, + ) { + if (!upstream_nats_subject_prefix || /[\s*>]/.test(upstream_nats_subject_prefix)) + throw new Error(`Invalid NATS subject prefix ${upstream_nats_subject_prefix}`); + this.endpoint = endpoint; + this.subject_prefix = upstream_nats_subject_prefix; + this.reconnect_interval_ms = reconnect_interval_ms; + void this.connect(endpoint).catch(() => { + this.scheduleReconnect(this.reconnect_interval_ms); + }); + return { + upstream_nats_url: endpoint, + upstream_nats_subject_prefix, + reconnect_interval_ms, + connecting: true, + }; + } + + /** NATS has no built-in extension default; it starts only from Mod.configure. */ + startDefault() { + return null; + } + + /** Start NATS when the downstream client configured the NATS transport. */ + configure(params: ModCDPConfigureParams) { + const upstream = params.upstream ?? {}; + if (upstream.upstream_mode !== "nats" || !upstream.upstream_nats_url) return null; + return this.start(upstream.upstream_nats_url, { + upstream_nats_subject_prefix: upstream.upstream_nats_subject_prefix ?? DEFAULT_NATS_BRIDGE_SUBJECT_PREFIX, + }); + } + + /** Stop reconnecting and close the active NATS socket. */ + stop(reason = "stopped") { + const upstream_nats_url = this.endpoint; + const upstream_nats_subject_prefix = this.subject_prefix; + this.endpoint = null; + if (this.reconnect_timer) { + clearTimeout(this.reconnect_timer); + this.reconnect_timer = null; + } + const socket = this.socket; + this.socket = null; + if (socket?.readyState === WebSocket.OPEN || socket?.readyState === WebSocket.CONNECTING) { + socket.close(1000, reason); + } + return { upstream_nats_url, upstream_nats_subject_prefix, stopped: true, reason }; + } + + /** Publish one CDP event message to the NATS browser-to-client subject. */ + emit(message: CdpEventMessage) { + if (this.socket?.readyState !== WebSocket.OPEN) return false; + this.publish(`${this.subject_prefix}.browser_to_client`, { + type: "modcdp.nats.message", + message, + }); + return true; + } + + /** Return generic status without exposing NATS lifecycle to ModCDPServer. */ + status() { + return { + connected: this.connected, + config: this.endpoint + ? { + upstream_nats_url: this.endpoint, + upstream_nats_subject_prefix: this.subject_prefix, + reconnect_interval_ms: this.reconnect_interval_ms, + } + : {}, + }; + } + + private scheduleReconnect(delay_ms: number) { + if (!this.endpoint) return; + if (this.reconnect_timer) return; + this.reconnect_timer = setTimeout(() => { + this.reconnect_timer = null; + if (!this.endpoint) return; + void this.connect(this.endpoint).catch(() => {}); + }, delay_ms); + } + + private async connect(endpoint: string) { + if (!/^wss?:\/\//i.test(endpoint)) { + throw new Error( + `NATS downstream endpoint must be a ws:// or wss:// URL for extension transport, got ${endpoint}.`, + ); + } + if (this.socket?.readyState === WebSocket.OPEN || this.socket?.readyState === WebSocket.CONNECTING) { + return { + upstream_nats_url: endpoint, + upstream_nats_subject_prefix: this.subject_prefix, + connected: this.socket.readyState === WebSocket.OPEN, + }; + } + const ws = new WebSocket(endpoint); + this.socket = ws; + this.buffer = ""; + ws.addEventListener("open", () => { + void this.ensureOffscreenKeepAlive(); + this.write(`CONNECT ${JSON.stringify(this.connectOptions())}\r\nPING\r\n`); + this.write(`SUB ${this.subject_prefix}.client_to_browser 1\r\n`); + this.publish(`${this.subject_prefix}.browser_to_client`, { + type: "modcdp.nats.hello", + role: "extension-service-worker", + version: 1, + extension_id: globalThis.chrome?.runtime?.id ?? null, + }); + }); + ws.addEventListener("message", (event) => { + void this.readWebSocketData(event.data); + }); + ws.addEventListener("error", () => { + if (this.socket === ws) this.socket = null; + this.scheduleReconnect(this.reconnect_interval_ms); + }); + ws.addEventListener("close", () => { + if (this.socket === ws) this.socket = null; + this.scheduleReconnect(this.reconnect_interval_ms); + }); + return { + upstream_nats_url: endpoint, + upstream_nats_subject_prefix: this.subject_prefix, + connected: false, + }; + } + + private write(data: string) { + if (this.socket?.readyState === WebSocket.OPEN) this.socket.send(data); + } + + private publish(subject: string, message: unknown) { + const body = JSON.stringify(message); + this.write(`PUB ${subject} ${new TextEncoder().encode(body).byteLength}\r\n${body}\r\n`); + } + + private async readWebSocketData(data: unknown) { + if (typeof data === "string") this.buffer += data; + else if (data instanceof ArrayBuffer) this.buffer += new TextDecoder().decode(data); + else if (ArrayBuffer.isView(data)) this.buffer += new TextDecoder().decode(data); + else if (typeof Blob !== "undefined" && data instanceof Blob) this.buffer += await data.text(); + else return; + this.buffer = this.consumeProtocol(this.buffer); + } + + private consumeProtocol(buffer: string) { + for (;;) { + const line_end = buffer.indexOf("\r\n"); + if (line_end < 0) return buffer; + const line = buffer.slice(0, line_end); + const upper = line.toUpperCase(); + if (upper.startsWith("MSG ")) { + const parts = line.split(/\s+/); + const size = Number(parts[parts.length - 1]); + const payload_start = line_end + 2; + const payload_end = payload_start + size; + if (!Number.isInteger(size) || buffer.length < payload_end + 2) return buffer; + const payload = buffer.slice(payload_start, payload_end); + buffer = buffer.slice(payload_end + 2); + void this.handlePayload(payload); + continue; + } + buffer = buffer.slice(line_end + 2); + if (upper === "PING") this.write("PONG\r\n"); + } + } + + private async handlePayload(payload: string) { + let parsed: unknown; + try { + parsed = JSON.parse(payload); + } catch { + return; + } + const record = parsed && typeof parsed === "object" ? (parsed as { type?: unknown; message?: unknown }) : null; + if (record?.type === "modcdp.nats.hello") { + this.publish(`${this.subject_prefix}.browser_to_client`, { + type: "modcdp.nats.hello", + role: "extension-service-worker", + version: 1, + extension_id: globalThis.chrome?.runtime?.id ?? null, + }); + return; + } + let message: CdpCommandMessage; + try { + message = CdpCommandMessageSchema.parse(record?.type === "modcdp.nats.message" ? record.message : parsed); + } catch { + return; + } + try { + const result = await this.handleCommand(message); + this.publish(`${this.subject_prefix}.browser_to_client`, { + type: "modcdp.nats.message", + message: { id: message.id, result }, + }); + } catch (error) { + this.publish(`${this.subject_prefix}.browser_to_client`, { + type: "modcdp.nats.message", + message: { + id: message.id, + error: { + code: -32000, + message: error instanceof Error ? error.message : String(error), + }, + }, + }); + } + } + + private connectOptions() { + return { + verbose: false, + pedantic: false, + lang: "modcdp-extension", + version: "1", + protocol: 1, + }; + } +} diff --git a/js/src/server/NativeHostDownstreamTransport.ts b/js/src/server/NativeHostDownstreamTransport.ts new file mode 100644 index 00000000..2b7d4f35 --- /dev/null +++ b/js/src/server/NativeHostDownstreamTransport.ts @@ -0,0 +1,213 @@ +import { + CdpCommandMessageSchema, + type CdpCommandMessage, + type CdpEventMessage, + type ModCDPConfigureParams, +} from "../types/modcdp.js"; +import type { ServerDownstreamTransport } from "./ServerDownstreamTransport.js"; + +export const DEFAULT_NATIVE_BRIDGE_HOST_NAME = "com.modcdp.bridge"; +export const DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; + +/** + * Owns the native messaging downstream connection from the extension service + * worker to a native ModCDP host. + * + * This class owns only native-host lifecycle: chrome.runtime.connectNative, + * reconnect scheduling, port status, hello messages, command-message decoding, + * CDP response posting, and event-message forwarding. It does not own ModCDP + * command registration, routing, middleware, upstream target/session state, + * reversews, or NATS protocol handling. + * + * Lifecycle: + * 1. `start()` records the desired native host/reconnect interval and opens one + * native port if no port is currently connected. + * 2. Successful connection posts the native hello and marks the transport + * connected. + * 3. `onMessage` parses client CDP commands and delegates execution through + * the injected `handleCommand` callback. + * 4. `onDisconnect` clears the active port, stores the browser-provided error, + * and schedules reconnect while a host is still configured. + */ +export class NativeHostDownstreamTransport implements ServerDownstreamTransport { + readonly name = "native"; + + // Server-owned command executor. Read by port message handling; this class + // never interprets routes, custom commands, or middleware itself. + private readonly handleCommand: (message: CdpCommandMessage) => Promise; + + // Server-owned keepalive hook. Called after the native port connects. + private readonly ensureOffscreenKeepAlive: () => unknown; + + // Configured native host name. Set by start, read by reconnect scheduling. + private host_name: string | null = null; + + // Reconnect interval currently configured for the native host. Set by start + // and read by disconnect/error handling. + private reconnect_interval_ms = DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS; + + // Active native messaging port. Set by connect, cleared by disconnect/error, + // read by start and emit. + private port: chrome.runtime.Port | null = null; + + // Pending reconnect timer. Set by scheduleReconnect and cleared when it fires. + private reconnect_timer: ReturnType | null = null; + + // Number of native connection attempts. Incremented by connect, read by the + // server status surface. + attempts = 0; + + // Last native messaging error. Updated by connect/disconnect, read by the + // server status surface. + last_error: string | null = null; + + constructor({ + handleCommand, + ensureOffscreenKeepAlive, + }: { + handleCommand: (message: CdpCommandMessage) => Promise; + ensureOffscreenKeepAlive: () => unknown; + }) { + this.handleCommand = handleCommand; + this.ensureOffscreenKeepAlive = ensureOffscreenKeepAlive; + } + + /** True when the native messaging port is connected and can receive events. */ + get connected() { + return this.port != null; + } + + /** Configure and start the native-host downstream connection. */ + start( + hostName = DEFAULT_NATIVE_BRIDGE_HOST_NAME, + { + reconnect_interval_ms = DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS, + }: { + reconnect_interval_ms?: number; + } = {}, + ) { + this.host_name = hostName; + this.reconnect_interval_ms = reconnect_interval_ms; + return this.connect(hostName); + } + + /** Start the default native host configured into the shipped extension. */ + startDefault() { + return this.start(DEFAULT_NATIVE_BRIDGE_HOST_NAME, { + reconnect_interval_ms: DEFAULT_NATIVE_BRIDGE_RECONNECT_INTERVAL_MS, + }); + } + + /** Native host default lifecycle is not configured by Mod.configure. */ + configure(_params: ModCDPConfigureParams) { + return null; + } + + /** Stop reconnecting and disconnect the active native messaging port. */ + stop(reason = "stopped") { + const upstream_nativemessaging_host_name = this.host_name; + this.host_name = null; + if (this.reconnect_timer) { + clearTimeout(this.reconnect_timer); + this.reconnect_timer = null; + } + const port = this.port; + this.port = null; + try { + port?.disconnect(); + } catch {} + return { upstream_nativemessaging_host_name, stopped: true, reason }; + } + + /** Emit one CDP event message to the connected native host. */ + emit(message: CdpEventMessage) { + if (!this.port) return false; + this.port.postMessage(message); + return true; + } + + /** Return generic status without exposing native-host lifecycle to ModCDPServer. */ + status() { + return { + connected: this.connected, + attempts: this.attempts, + last_error: this.last_error, + config: this.host_name ? { upstream_nativemessaging_host_name: this.host_name } : {}, + }; + } + + private scheduleReconnect(delay_ms: number) { + if (!this.host_name) return; + if (this.reconnect_timer) return; + this.reconnect_timer = setTimeout(() => { + this.reconnect_timer = null; + if (this.host_name) this.connect(this.host_name); + }, delay_ms); + } + + private connect(hostName: string) { + const chrome_api = globalThis.chrome; + if (!chrome_api?.runtime?.connectNative) { + this.scheduleReconnect(this.reconnect_interval_ms); + return { + upstream_nativemessaging_host_name: hostName, + connected: false, + reason: "native_messaging_unavailable", + }; + } + if (this.port) return { upstream_nativemessaging_host_name: hostName, connected: true }; + try { + this.attempts += 1; + this.last_error = null; + const port = chrome_api.runtime.connectNative(hostName); + this.port = port; + void this.ensureOffscreenKeepAlive(); + port.postMessage({ + type: "modcdp.native.hello", + role: "extension-service-worker", + version: 1, + extension_id: globalThis.chrome?.runtime?.id ?? null, + }); + port.onMessage.addListener((message) => { + void this.handleMessage(port, message); + }); + port.onDisconnect.addListener(() => { + if (this.port === port) this.port = null; + this.last_error = chrome_api.runtime.lastError?.message ?? "Native messaging port disconnected."; + this.scheduleReconnect(this.reconnect_interval_ms); + }); + return { upstream_nativemessaging_host_name: hostName, connected: true }; + } catch (error) { + this.port = null; + this.last_error = error instanceof Error ? error.message : String(error); + this.scheduleReconnect(this.reconnect_interval_ms); + return { + upstream_nativemessaging_host_name: hostName, + connected: false, + reason: this.last_error, + }; + } + } + + private async handleMessage(port: chrome.runtime.Port, data: unknown) { + let message: CdpCommandMessage; + try { + message = CdpCommandMessageSchema.parse(data); + } catch { + return; + } + + try { + const result = await this.handleCommand(message); + port.postMessage({ id: message.id, result }); + } catch (error) { + port.postMessage({ + id: message.id, + error: { + code: -32000, + message: error instanceof Error ? error.message : String(error), + }, + }); + } + } +} diff --git a/js/src/server/ReverseWSDownstreamTransport.ts b/js/src/server/ReverseWSDownstreamTransport.ts new file mode 100644 index 00000000..470df94b --- /dev/null +++ b/js/src/server/ReverseWSDownstreamTransport.ts @@ -0,0 +1,210 @@ +import { + CdpCommandMessageSchema, + type CdpCommandMessage, + type CdpEventMessage, + type ModCDPConfigureParams, +} from "../types/modcdp.js"; +import type { ServerDownstreamTransport } from "./ServerDownstreamTransport.js"; + +export const DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS = 2_000; + +/** + * Owns the reverse WebSocket downstream connection from the extension service + * worker back to a waiting ModCDP client/proxy. + * + * This class owns only reversews-specific lifecycle: socket creation, + * reconnect scheduling, hello messages, command-message decoding, CDP response + * writing, event-message forwarding, and stop semantics. It does not own + * ModCDP command registration, routing, middleware, upstream target/session + * state, native messaging, or NATS protocol handling. + * + * Lifecycle: + * 1. `start()` records the desired endpoint/reconnect interval and opens one + * WebSocket if none is already open or connecting. + * 2. `open` sends the reverse hello and asks the server to keep the extension + * service worker alive. + * 3. `message` parses client CDP commands and delegates execution through the + * injected `handleCommand` callback. + * 4. `error`/`close` drops the active socket reference and schedules reconnect + * while an endpoint is still configured. + * 5. `stop()` clears the endpoint and reconnect timer, then closes the socket. + */ +export class ReverseWSDownstreamTransport implements ServerDownstreamTransport { + readonly name = "reversews"; + + // Server-owned command executor. Read by message handling; this class never + // interprets routes, custom commands, or middleware itself. + private readonly handleCommand: (message: CdpCommandMessage) => Promise; + + // Server-owned keepalive hook. Called after the reverse socket opens. + private readonly ensureOffscreenKeepAlive: () => unknown; + + // Configured reversews endpoint. Set by start, cleared by stop, read by + // reconnect scheduling. + private endpoint: string | null = null; + + // Reconnect interval currently configured for the endpoint. Set by start and + // read by error/close handlers. + private reconnect_interval_ms = DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS; + + // Active reversews socket. Set by connect, cleared by error/close/stop, read + // by start and emit. + private socket: WebSocket | null = null; + + // Pending reconnect timer. Set by scheduleReconnect, cleared by stop or when + // the timer fires. + private reconnect_timer: ReturnType | null = null; + + constructor({ + handleCommand, + ensureOffscreenKeepAlive, + }: { + handleCommand: (message: CdpCommandMessage) => Promise; + ensureOffscreenKeepAlive: () => unknown; + }) { + this.handleCommand = handleCommand; + this.ensureOffscreenKeepAlive = ensureOffscreenKeepAlive; + } + + /** True when the reversews socket is currently open and can receive events. */ + get connected() { + return this.socket?.readyState === WebSocket.OPEN; + } + + /** Configure and start the reversews downstream connection. */ + start( + endpoint: string, + { + reconnect_interval_ms = DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS, + }: { + reconnect_interval_ms?: number; + } = {}, + ) { + if (!/^wss?:\/\//i.test(endpoint)) { + throw new Error(`reverse proxy endpoint must be a ws:// or wss:// URL, got ${endpoint}.`); + } + this.endpoint = endpoint; + this.reconnect_interval_ms = reconnect_interval_ms; + void this.connect(endpoint).catch(() => { + this.scheduleReconnect(this.reconnect_interval_ms); + }); + return { + upstream_reversews_url: endpoint, + reconnect_interval_ms, + connecting: true, + }; + } + + /** Start the default reversews listener configured into the shipped extension. */ + startDefault() { + return this.start("ws://127.0.0.1:29292", { reconnect_interval_ms: DEFAULT_REVERSE_BRIDGE_RECONNECT_INTERVAL_MS }); + } + + /** Keep reversews alive only for reversews clients; other clients use their own downstream. */ + configure(params: ModCDPConfigureParams) { + if (params.upstream?.upstream_mode === "reversews") return null; + return this.stop("non-reverse downstream connected"); + } + + /** Stop reconnecting and close the active reversews socket. */ + stop(reason = "stopped") { + const upstream_reversews_url = this.endpoint; + this.endpoint = null; + if (this.reconnect_timer) { + clearTimeout(this.reconnect_timer); + this.reconnect_timer = null; + } + const socket = this.socket; + this.socket = null; + if (socket?.readyState === WebSocket.OPEN || socket?.readyState === WebSocket.CONNECTING) { + socket.close(1000, reason); + } + return { upstream_reversews_url, stopped: true, reason }; + } + + /** Emit one CDP event message to the connected reversews client. */ + emit(message: CdpEventMessage) { + if (this.socket?.readyState !== WebSocket.OPEN) return false; + this.socket.send(JSON.stringify(message)); + return true; + } + + /** Return generic status without exposing reversews-specific state to ModCDPServer. */ + status() { + return { + connected: this.connected, + config: this.endpoint + ? { upstream_reversews_url: this.endpoint, reconnect_interval_ms: this.reconnect_interval_ms } + : {}, + }; + } + + private scheduleReconnect(delay_ms: number) { + if (!this.endpoint) return; + if (this.reconnect_timer) return; + this.reconnect_timer = setTimeout(() => { + this.reconnect_timer = null; + if (!this.endpoint) return; + void this.connect(this.endpoint).catch(() => {}); + }, delay_ms); + } + + private async connect(endpoint: string) { + if (this.socket?.readyState === WebSocket.OPEN || this.socket?.readyState === WebSocket.CONNECTING) { + return { + upstream_reversews_url: endpoint, + connected: this.socket.readyState === WebSocket.OPEN, + }; + } + + const ws = new WebSocket(endpoint); + this.socket = ws; + ws.addEventListener("open", () => { + void this.ensureOffscreenKeepAlive(); + ws.send( + JSON.stringify({ + type: "modcdp.reverse.hello", + role: "extension-service-worker", + version: 1, + extension_id: globalThis.chrome?.runtime?.id ?? null, + }), + ); + }); + ws.addEventListener("message", (event) => { + void this.handleMessage(ws, event.data); + }); + ws.addEventListener("error", () => { + if (this.socket === ws) this.socket = null; + this.scheduleReconnect(this.reconnect_interval_ms); + }); + ws.addEventListener("close", () => { + if (this.socket === ws) this.socket = null; + this.scheduleReconnect(this.reconnect_interval_ms); + }); + return { upstream_reversews_url: endpoint, connected: false }; + } + + private async handleMessage(ws: WebSocket, data: unknown) { + let message: CdpCommandMessage; + try { + message = CdpCommandMessageSchema.parse(JSON.parse(typeof data === "string" ? data : String(data))); + } catch { + return; + } + + try { + const result = await this.handleCommand(message); + ws.send(JSON.stringify({ id: message.id, result })); + } catch (error) { + ws.send( + JSON.stringify({ + id: message.id, + error: { + code: -32000, + message: error instanceof Error ? error.message : String(error), + }, + }), + ); + } + } +} diff --git a/js/src/server/ServerDownstreamTransport.ts b/js/src/server/ServerDownstreamTransport.ts new file mode 100644 index 00000000..d23b2c65 --- /dev/null +++ b/js/src/server/ServerDownstreamTransport.ts @@ -0,0 +1,45 @@ +import type { CdpEventMessage, ModCDPConfigureParams, ProtocolPayload } from "../types/modcdp.js"; + +export type ServerDownstreamTransportName = string; + +export type ServerDownstreamTransportStatus = { + connected: boolean; + last_error?: string | null; + attempts?: number; + config?: ProtocolPayload; +}; + +/** + * Generic server-side downstream transport contract. + * + * From ModCDPServer's point of view, downstream means the SDK/client-facing + * connection and upstream means the browser-target-facing connection. A + * downstream transport accepts CDP-shaped commands from a client, delegates + * execution to ModCDPServer, and sends CDP-shaped events/responses back to that + * same client path. + * + * Concrete implementations own all protocol-specific lifecycle and state for + * reverse WebSocket, native messaging, NATS, or any future downstream. + * ModCDPServer only calls these generic lifecycle methods, emits events, and + * reads generic status; it does not branch on downstream protocol names after + * construction. + */ +export type ServerDownstreamTransport = { + // Stable implementation name used only as the status-map key. + readonly name: ServerDownstreamTransportName; + + /** Start the transport's built-in extension-side default, when it has one. */ + startDefault(): ProtocolPayload | null; + + /** Apply a Mod.configure payload and perform any matching lifecycle update. */ + configure(params: ModCDPConfigureParams): ProtocolPayload | null; + + /** Stop accepting or reconnecting downstream clients for this transport. */ + stop(reason?: string): ProtocolPayload | null; + + /** Emit one CDP event to this downstream, returning whether it was sent. */ + emit(message: CdpEventMessage): boolean; + + /** Return protocol-agnostic status for UI/debug surfaces. */ + status(): ServerDownstreamTransportStatus; +}; diff --git a/js/src/server/ServerUpstreamTransport.ts b/js/src/server/ServerUpstreamTransport.ts new file mode 100644 index 00000000..d9b3ba9e --- /dev/null +++ b/js/src/server/ServerUpstreamTransport.ts @@ -0,0 +1,40 @@ +import type { z } from "zod"; +import type { cdp } from "../types/generated/cdp.js"; +import type { CdpCommandSchema, CdpNamedSchema } from "../types/generated/zod/helpers.js"; +import type { CdpDebuggeeCommandParams, ProtocolPayload } from "../types/modcdp.js"; + +export type TargetRoute = { + targetId: cdp.types.ts.Target.TargetID; + sessionId?: cdp.types.ts.Target.SessionID | null; +}; + +export type ServerUpstreamEventListener = ( + payload: ProtocolPayload, + targetId: cdp.types.ts.Target.TargetID | null, + sessionId: cdp.types.ts.Target.SessionID | null, +) => void; + +export type ServerUpstreamTransport = { + getTargets(): Promise; + resolveTargetId(params: CdpDebuggeeCommandParams): Promise; + createTarget(url: string): Promise; + attachToTarget(targetId: cdp.types.ts.Target.TargetID): Promise; + detachFromTarget(sessionId: cdp.types.ts.Target.SessionID): Promise; + send< + Params extends z.ZodType>, + Result extends z.ZodType>, + Name extends string, + >( + command: CdpCommandSchema, + params?: z.input, + route?: TargetRoute, + ): Promise>; + on>( + event: Event, + listener: ( + payload: z.output, + targetId: cdp.types.ts.Target.TargetID | null, + sessionId: cdp.types.ts.Target.SessionID | null, + ) => void, + ): { remove: () => void }; +}; diff --git a/js/src/translate/translate.ts b/js/src/translate/translate.ts index da94e2a7..0d05c0df 100644 --- a/js/src/translate/translate.ts +++ b/js/src/translate/translate.ts @@ -10,7 +10,6 @@ import type { ModCDPBindingPayload, ModCDPCustomPayload, ModCDPEvaluateParams, - ModCDPPingParams, ModCDPRoutes, ProtocolParams, ProtocolResult, @@ -29,7 +28,7 @@ export const DEFAULT_CLIENT_ROUTES = { "*.*": "service_worker", } satisfies ModCDPRoutes; -type TranslateOptions = { routes?: ModCDPRoutes; cdpSessionId?: string | null; targetCdpSessionId?: string | null }; +type TranslateOptions = { routes?: ModCDPRoutes; cdpSessionId?: string | null }; function normalizeModCDPName( value: @@ -184,10 +183,6 @@ export function wrapCustomCommand( } function wrapServiceWorkerCommand(method: string, params: ProtocolParams = {}, cdpSessionId: string | null = null) { - if (method === "Mod.ping" && !Object.prototype.hasOwnProperty.call(params, "sent_at")) { - params = { ...(params as ModCDPPingParams), sent_at: Date.now() }; - } - if (method === "Mod.addCustomEvent") { const eventParams = params as { name: any }; const eventName = normalizeModCDPName(eventParams.name); @@ -233,7 +228,7 @@ function wrapServiceWorkerCommand(method: string, params: ProtocolParams = {}, c export function wrapCommandIfNeeded( method: string, params: ProtocolParams = {}, - { routes = DEFAULT_CLIENT_ROUTES, cdpSessionId = null, targetCdpSessionId = null }: TranslateOptions = {}, + { routes = DEFAULT_CLIENT_ROUTES, cdpSessionId = null }: TranslateOptions = {}, ): TranslatedCommand { params = params ?? {}; const route = routeFor(method, routes); @@ -241,7 +236,7 @@ export function wrapCommandIfNeeded( return { route, target: "direct_cdp", - steps: [{ method, params, ...(targetCdpSessionId ? { sessionId: targetCdpSessionId } : {}) }], + steps: [{ method, params, ...(cdpSessionId ? { sessionId: cdpSessionId } : {}) }], }; } if (route === "service_worker") { diff --git a/js/src/types/codegen.ts b/js/src/types/codegen.ts index b2150249..5060f398 100755 --- a/js/src/types/codegen.ts +++ b/js/src/types/codegen.ts @@ -297,6 +297,7 @@ const zod_helper = [ `import type { z } from "zod";`, ``, `export type CdpNamedSchema = T & { readonly id: string; readonly name: string; readonly kind: string; meta(): { id: string; name: string; kind: string } };`, + `export type CdpCommandSchema> = z.ZodType>, Result extends z.ZodType> = z.ZodType>, Name extends string = string> = { readonly id: Name; readonly name: Name; readonly kind: "command"; readonly params: Params; readonly result: Result; meta(): { id: Name; name: Name; kind: "command" } };`, `export const withCdpMeta = (schema: T, id: string, kind: string, extra = {}): CdpNamedSchema => {`, ` const meta = { id, name: id, kind, ...extra };`, ` const named = schema.meta(meta);`, @@ -307,6 +308,17 @@ const zod_helper = [ ` });`, ` return named as CdpNamedSchema;`, `};`, + `export const withCdpCommand = >, Result extends z.ZodType>>(id: Name, params: Params, result: Result): CdpCommandSchema => {`, + ` const meta = { id, name: id, kind: "command" as const };`, + ` return {`, + ` id,`, + ` name: id,`, + ` kind: "command",`, + ` params,`, + ` result,`, + ` meta: () => meta,`, + ` };`, + `};`, ``, ]; fs.writeFileSync(path.join(zod_dir, "helpers.ts"), zod_helper.join("\n")); @@ -321,7 +333,7 @@ for (const d of domains) { `// Generated by types/codegen.ts from devtools-protocol@${meta.version}. Do not edit by hand.`, `// @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references.`, `import { z } from "zod";`, - `import { withCdpMeta } from "./helpers.js";`, + `import { withCdpCommand, withCdpMeta } from "./helpers.js";`, ]; for (const ref of [...refs].sort()) domain_zod.push(`import * as ${domain_file(ref)} from "./${domain_file(ref)}.js";`); @@ -343,6 +355,9 @@ for (const d of domains) { domain_zod.push( `export const ${local_name(result(x.name))} = withCdpMeta(${zobj(x.returns || [], d.domain)}, ${JSON.stringify(`${commandName}.result`)}, "commandResult", { method: ${JSON.stringify(commandName)} });`, ); + domain_zod.push( + `export const ${local_name(`${title(x.name)}Command`)} = withCdpCommand(${JSON.stringify(commandName)}, ${local_name(params(x.name))}, ${local_name(result(x.name))});`, + ); } for (const x of d.events || []) domain_zod.push( @@ -359,9 +374,7 @@ for (const d of domains) { for (const x of d.events || []) domain_zod.push(` ${word(event(x.name))}: ${local_name(event(x.name))},`); domain_zod.push(`} as const;`, `export const commands = {`); for (const x of d.commands || []) - domain_zod.push( - ` ${JSON.stringify(`${d.domain}.${x.name}`)}: { params: ${local_name(params(x.name))}, result: ${local_name(result(x.name))} },`, - ); + domain_zod.push(` ${JSON.stringify(`${d.domain}.${x.name}`)}: ${local_name(`${title(x.name)}Command`)},`); domain_zod.push(`} as const;`, `export const events = {`); for (const x of d.events || []) domain_zod.push(` ${JSON.stringify(`${d.domain}.${x.name}`)}: ${local_name(event(x.name))},`); diff --git a/js/src/types/generated/aliases.ts b/js/src/types/generated/aliases.ts index fe5a7271..24eedada 100644 --- a/js/src/types/generated/aliases.ts +++ b/js/src/types/generated/aliases.ts @@ -13,9 +13,6 @@ export type CdpAliasHooks = { onCustomCommand?: (name: string, params_schema?: z.ZodType | null, result_schema?: z.ZodType | null) => void; onCustomEvent?: (name: string, event_schema?: z.ZodType | null) => void; }; -type ModSchemaInfer = T extends z.ZodType ? TValue : T extends Record ? z.infer> : unknown; -type IsUnion = T extends unknown ? ([U] extends [T] ? false : true) : never; -type UnwrapSingleObject = T extends Record ? IsUnion extends true ? T : T[keyof T] : T; export type ModCustomCommandOptions = { params_schema?: TParamsSchema | null; result_schema?: TResultSchema | null; @@ -1047,15 +1044,9 @@ export type CdpAliases = { }; Mod: { evaluate(params: cdp.types.ts.Mod.EvaluateParams): Promise; - addCustomCommand( - name: TName, - options?: ModCustomCommandOptions, - ): Promise; + addCustomCommand(name: TName, options?: ModCustomCommandOptions): Promise; addCustomCommand(params: cdp.types.ts.Mod.AddCustomCommandParams): Promise; - addCustomEvent( - name: TName, - options?: { event_schema?: TEventSchema | null }, - ): Promise; + addCustomEvent(name: TName, options?: { event_schema?: TEventSchema | null }): Promise; addCustomEvent(params: cdp.types.ts.Mod.AddCustomEventParams): Promise; addMiddleware(params: cdp.types.ts.Mod.AddMiddlewareParams): Promise; configure(params: cdp.types.ts.Mod.ConfigureParams): Promise; @@ -2103,14 +2094,7 @@ export function createCdpAliases(send: CdpAliasSend, hooks: CdpAliasHooks = {}): return Mod.EvaluateResponse.parse(await send("Mod.evaluate", parsed)); }, addCustomCommand: async (params_or_name?: unknown, options: Record = {}) => { - const input = typeof params_or_name === "string" - ? { - name: params_or_name, - expression: options.expression ?? null, - params_schema: options.params_schema ?? null, - result_schema: options.result_schema ?? null, - } - : params_or_name; + const input = typeof params_or_name === "string" ? { name: params_or_name, expression: options.expression ?? null, params_schema: options.params_schema ?? null, result_schema: options.result_schema ?? null } : params_or_name; const parsed = Mod.AddCustomCommandParams.parse(input ?? {}); const name = normalizeModCDPName(parsed.name); const params_schema = normalizeModCDPPayloadSchema(parsed.params_schema); @@ -2120,9 +2104,7 @@ export function createCdpAliases(send: CdpAliasSend, hooks: CdpAliasHooks = {}): return response; }, addCustomEvent: async (params_or_name?: unknown, options: Record = {}) => { - const input = typeof params_or_name === "string" - ? { name: params_or_name, event_schema: options.event_schema ?? null } - : params_or_name; + const input = typeof params_or_name === "string" ? { name: params_or_name, event_schema: options.event_schema ?? null } : params_or_name; const parsed = Mod.AddCustomEventParams.parse(input ?? {}); const directSchema = Mod.ZodType.safeParse(parsed); if (directSchema.success) { diff --git a/js/src/types/generated/cdp.ts b/js/src/types/generated/cdp.ts index 5b536abb..57305b51 100644 --- a/js/src/types/generated/cdp.ts +++ b/js/src/types/generated/cdp.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. import { zod, commands, events, types as runtimeTypes } from "./zod.js"; import type { z } from "zod"; -import type { ModCDPRoutes, ModCDPCustomPayload, ModCDPNamedValue, ModCDPName, ModCDPZodType, ModCDPPayloadShape, ModCDPPayloadSchemaSpec, ModCDPEvaluateParams, ModCDPAddCustomCommandParams, ModCDPAddCustomEventObjectParams, ModCDPAddCustomEventParams, ModCDPAddMiddlewareParams, ModCDPConfigureParams, ModCDPPingParams, ModCDPPongEvent, ModCDPPingLatency, ModCDPCommandParams, ModCDPCommandResult, ModCDPEvaluateResponse, ModCDPAddCustomCommandResponse, ModCDPAddCustomEventResponse, ModCDPAddMiddlewareResponse, ModCDPConfigureResponse, ModCDPPingResponse, ModCDPBindingPayload, ModCDPCustomCommandRegistration, ModCDPCustomEventRegistration, ModCDPMiddlewareRegistration } from "../modcdp.js"; +import type { ModCDPRoutes, ModCDPCustomPayload, ModCDPNamedValue, ModCDPName, ModCDPZodType, ModCDPPayloadShape, ModCDPPayloadSchemaSpec, ModCDPEvaluateParams, ModCDPAddCustomCommandParams, ModCDPAddCustomEventObjectParams, ModCDPAddCustomEventParams, ModCDPAddMiddlewareParams, ModCDPLauncherOptions, ModCDPUpstreamOptions, ModCDPClientOptions, ModCDPServerOptions, ModCDPConfigureParams, ModCDPPingParams, ModCDPPongEvent, ModCDPPingLatency, ModCDPCommandParams, ModCDPCommandResult, ModCDPEvaluateResponse, ModCDPAddCustomCommandResponse, ModCDPAddCustomEventResponse, ModCDPAddMiddlewareResponse, ModCDPConfigureResponse, ModCDPPingResponse, ModCDPBindingPayload, ModCDPCustomCommandRegistration, ModCDPCustomEventRegistration, ModCDPMiddlewareRegistration } from "../modcdp.js"; export const REQUEST = "request" as const; export const RESPONSE = "response" as const; @@ -35,6 +35,10 @@ export namespace cdp { export type AddCustomEventObjectParams = ModCDPAddCustomEventObjectParams; export type AddCustomEventParams = ModCDPAddCustomEventParams; export type AddMiddlewareParams = ModCDPAddMiddlewareParams; + export type LauncherOptions = ModCDPLauncherOptions; + export type UpstreamOptions = ModCDPUpstreamOptions; + export type ClientOptions = ModCDPClientOptions; + export type ServerOptions = ModCDPServerOptions; export type ConfigureParams = ModCDPConfigureParams; export type PingParams = ModCDPPingParams; export type PongEvent = ModCDPPongEvent; diff --git a/js/src/types/generated/zod/Accessibility.ts b/js/src/types/generated/zod/Accessibility.ts index 37f3806b..9a92d903 100644 --- a/js/src/types/generated/zod/Accessibility.ts +++ b/js/src/types/generated/zod/Accessibility.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Page from "./Page.js"; import * as Runtime from "./Runtime.js"; @@ -18,20 +18,28 @@ export const AXPropertyName = withCdpMeta(z.enum(["actions", "busy", "disabled", export const AXNode = withCdpMeta(z.object({ "nodeId": z.lazy(() => AXNodeId), "ignored": z.boolean(), "ignoredReasons": z.array(z.lazy(() => AXProperty)).optional(), "role": z.lazy(() => AXValue).optional(), "chromeRole": z.lazy(() => AXValue).optional(), "name": z.lazy(() => AXValue).optional(), "description": z.lazy(() => AXValue).optional(), "value": z.lazy(() => AXValue).optional(), "properties": z.array(z.lazy(() => AXProperty)).optional(), "parentId": z.lazy(() => AXNodeId).optional(), "childIds": z.array(z.lazy(() => AXNodeId)).optional(), "backendDOMNodeId": z.lazy(() => DOM.BackendNodeId).optional(), "frameId": z.lazy(() => Page.FrameId).optional() }).passthrough(), "Accessibility.AXNode", "type"); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Accessibility.disable.params", "commandParams", { method: "Accessibility.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Accessibility.disable.result", "commandResult", { method: "Accessibility.disable" }); +export const DisableCommand = withCdpCommand("Accessibility.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Accessibility.enable.params", "commandParams", { method: "Accessibility.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Accessibility.enable.result", "commandResult", { method: "Accessibility.enable" }); +export const EnableCommand = withCdpCommand("Accessibility.enable", EnableParams, EnableResult); export const GetPartialAXTreeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId).optional(), "backendNodeId": z.lazy(() => DOM.BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional(), "fetchRelatives": z.boolean().optional() }).passthrough(), "Accessibility.getPartialAXTree.params", "commandParams", { method: "Accessibility.getPartialAXTree" }); export const GetPartialAXTreeResult = withCdpMeta(z.object({ "nodes": z.array(z.lazy(() => AXNode)) }).passthrough(), "Accessibility.getPartialAXTree.result", "commandResult", { method: "Accessibility.getPartialAXTree" }); +export const GetPartialAXTreeCommand = withCdpCommand("Accessibility.getPartialAXTree", GetPartialAXTreeParams, GetPartialAXTreeResult); export const GetFullAXTreeParams = withCdpMeta(z.object({ "depth": z.number().int().optional(), "frameId": z.lazy(() => Page.FrameId).optional() }).passthrough(), "Accessibility.getFullAXTree.params", "commandParams", { method: "Accessibility.getFullAXTree" }); export const GetFullAXTreeResult = withCdpMeta(z.object({ "nodes": z.array(z.lazy(() => AXNode)) }).passthrough(), "Accessibility.getFullAXTree.result", "commandResult", { method: "Accessibility.getFullAXTree" }); +export const GetFullAXTreeCommand = withCdpCommand("Accessibility.getFullAXTree", GetFullAXTreeParams, GetFullAXTreeResult); export const GetRootAXNodeParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId).optional() }).passthrough(), "Accessibility.getRootAXNode.params", "commandParams", { method: "Accessibility.getRootAXNode" }); export const GetRootAXNodeResult = withCdpMeta(z.object({ "node": z.lazy(() => AXNode) }).passthrough(), "Accessibility.getRootAXNode.result", "commandResult", { method: "Accessibility.getRootAXNode" }); +export const GetRootAXNodeCommand = withCdpCommand("Accessibility.getRootAXNode", GetRootAXNodeParams, GetRootAXNodeResult); export const GetAXNodeAndAncestorsParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId).optional(), "backendNodeId": z.lazy(() => DOM.BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional() }).passthrough(), "Accessibility.getAXNodeAndAncestors.params", "commandParams", { method: "Accessibility.getAXNodeAndAncestors" }); export const GetAXNodeAndAncestorsResult = withCdpMeta(z.object({ "nodes": z.array(z.lazy(() => AXNode)) }).passthrough(), "Accessibility.getAXNodeAndAncestors.result", "commandResult", { method: "Accessibility.getAXNodeAndAncestors" }); +export const GetAXNodeAndAncestorsCommand = withCdpCommand("Accessibility.getAXNodeAndAncestors", GetAXNodeAndAncestorsParams, GetAXNodeAndAncestorsResult); export const GetChildAXNodesParams = withCdpMeta(z.object({ "id": z.lazy(() => AXNodeId), "frameId": z.lazy(() => Page.FrameId).optional() }).passthrough(), "Accessibility.getChildAXNodes.params", "commandParams", { method: "Accessibility.getChildAXNodes" }); export const GetChildAXNodesResult = withCdpMeta(z.object({ "nodes": z.array(z.lazy(() => AXNode)) }).passthrough(), "Accessibility.getChildAXNodes.result", "commandResult", { method: "Accessibility.getChildAXNodes" }); +export const GetChildAXNodesCommand = withCdpCommand("Accessibility.getChildAXNodes", GetChildAXNodesParams, GetChildAXNodesResult); export const QueryAXTreeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId).optional(), "backendNodeId": z.lazy(() => DOM.BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional(), "accessibleName": z.string().optional(), "role": z.string().optional() }).passthrough(), "Accessibility.queryAXTree.params", "commandParams", { method: "Accessibility.queryAXTree" }); export const QueryAXTreeResult = withCdpMeta(z.object({ "nodes": z.array(z.lazy(() => AXNode)) }).passthrough(), "Accessibility.queryAXTree.result", "commandResult", { method: "Accessibility.queryAXTree" }); +export const QueryAXTreeCommand = withCdpCommand("Accessibility.queryAXTree", QueryAXTreeParams, QueryAXTreeResult); export const LoadCompleteEvent = withCdpMeta(z.object({ "root": z.lazy(() => AXNode) }).passthrough(), "Accessibility.loadComplete", "event", { phase: "event" }); export const NodesUpdatedEvent = withCdpMeta(z.object({ "nodes": z.array(z.lazy(() => AXNode)) }).passthrough(), "Accessibility.nodesUpdated", "event", { phase: "event" }); @@ -66,14 +74,14 @@ export const zod = { NodesUpdatedEvent: NodesUpdatedEvent, } as const; export const commands = { - "Accessibility.disable": { params: DisableParams, result: DisableResult }, - "Accessibility.enable": { params: EnableParams, result: EnableResult }, - "Accessibility.getPartialAXTree": { params: GetPartialAXTreeParams, result: GetPartialAXTreeResult }, - "Accessibility.getFullAXTree": { params: GetFullAXTreeParams, result: GetFullAXTreeResult }, - "Accessibility.getRootAXNode": { params: GetRootAXNodeParams, result: GetRootAXNodeResult }, - "Accessibility.getAXNodeAndAncestors": { params: GetAXNodeAndAncestorsParams, result: GetAXNodeAndAncestorsResult }, - "Accessibility.getChildAXNodes": { params: GetChildAXNodesParams, result: GetChildAXNodesResult }, - "Accessibility.queryAXTree": { params: QueryAXTreeParams, result: QueryAXTreeResult }, + "Accessibility.disable": DisableCommand, + "Accessibility.enable": EnableCommand, + "Accessibility.getPartialAXTree": GetPartialAXTreeCommand, + "Accessibility.getFullAXTree": GetFullAXTreeCommand, + "Accessibility.getRootAXNode": GetRootAXNodeCommand, + "Accessibility.getAXNodeAndAncestors": GetAXNodeAndAncestorsCommand, + "Accessibility.getChildAXNodes": GetChildAXNodesCommand, + "Accessibility.queryAXTree": QueryAXTreeCommand, } as const; export const events = { "Accessibility.loadComplete": LoadCompleteEvent, diff --git a/js/src/types/generated/zod/Animation.ts b/js/src/types/generated/zod/Animation.ts index b1726d75..e3af7a3b 100644 --- a/js/src/types/generated/zod/Animation.ts +++ b/js/src/types/generated/zod/Animation.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Runtime from "./Runtime.js"; @@ -12,24 +12,34 @@ export const KeyframesRule = withCdpMeta(z.object({ "name": z.string().optional( export const KeyframeStyle = withCdpMeta(z.object({ "offset": z.string(), "easing": z.string() }).passthrough(), "Animation.KeyframeStyle", "type"); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Animation.disable.params", "commandParams", { method: "Animation.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Animation.disable.result", "commandResult", { method: "Animation.disable" }); +export const DisableCommand = withCdpCommand("Animation.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Animation.enable.params", "commandParams", { method: "Animation.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Animation.enable.result", "commandResult", { method: "Animation.enable" }); +export const EnableCommand = withCdpCommand("Animation.enable", EnableParams, EnableResult); export const GetCurrentTimeParams = withCdpMeta(z.object({ "id": z.string() }).passthrough(), "Animation.getCurrentTime.params", "commandParams", { method: "Animation.getCurrentTime" }); export const GetCurrentTimeResult = withCdpMeta(z.object({ "currentTime": z.number() }).passthrough(), "Animation.getCurrentTime.result", "commandResult", { method: "Animation.getCurrentTime" }); +export const GetCurrentTimeCommand = withCdpCommand("Animation.getCurrentTime", GetCurrentTimeParams, GetCurrentTimeResult); export const GetPlaybackRateParams = withCdpMeta(z.object({ }).passthrough(), "Animation.getPlaybackRate.params", "commandParams", { method: "Animation.getPlaybackRate" }); export const GetPlaybackRateResult = withCdpMeta(z.object({ "playbackRate": z.number() }).passthrough(), "Animation.getPlaybackRate.result", "commandResult", { method: "Animation.getPlaybackRate" }); +export const GetPlaybackRateCommand = withCdpCommand("Animation.getPlaybackRate", GetPlaybackRateParams, GetPlaybackRateResult); export const ReleaseAnimationsParams = withCdpMeta(z.object({ "animations": z.array(z.string()) }).passthrough(), "Animation.releaseAnimations.params", "commandParams", { method: "Animation.releaseAnimations" }); export const ReleaseAnimationsResult = withCdpMeta(z.object({ }).passthrough(), "Animation.releaseAnimations.result", "commandResult", { method: "Animation.releaseAnimations" }); +export const ReleaseAnimationsCommand = withCdpCommand("Animation.releaseAnimations", ReleaseAnimationsParams, ReleaseAnimationsResult); export const ResolveAnimationParams = withCdpMeta(z.object({ "animationId": z.string() }).passthrough(), "Animation.resolveAnimation.params", "commandParams", { method: "Animation.resolveAnimation" }); export const ResolveAnimationResult = withCdpMeta(z.object({ "remoteObject": z.lazy(() => Runtime.RemoteObject) }).passthrough(), "Animation.resolveAnimation.result", "commandResult", { method: "Animation.resolveAnimation" }); +export const ResolveAnimationCommand = withCdpCommand("Animation.resolveAnimation", ResolveAnimationParams, ResolveAnimationResult); export const SeekAnimationsParams = withCdpMeta(z.object({ "animations": z.array(z.string()), "currentTime": z.number() }).passthrough(), "Animation.seekAnimations.params", "commandParams", { method: "Animation.seekAnimations" }); export const SeekAnimationsResult = withCdpMeta(z.object({ }).passthrough(), "Animation.seekAnimations.result", "commandResult", { method: "Animation.seekAnimations" }); +export const SeekAnimationsCommand = withCdpCommand("Animation.seekAnimations", SeekAnimationsParams, SeekAnimationsResult); export const SetPausedParams = withCdpMeta(z.object({ "animations": z.array(z.string()), "paused": z.boolean() }).passthrough(), "Animation.setPaused.params", "commandParams", { method: "Animation.setPaused" }); export const SetPausedResult = withCdpMeta(z.object({ }).passthrough(), "Animation.setPaused.result", "commandResult", { method: "Animation.setPaused" }); +export const SetPausedCommand = withCdpCommand("Animation.setPaused", SetPausedParams, SetPausedResult); export const SetPlaybackRateParams = withCdpMeta(z.object({ "playbackRate": z.number() }).passthrough(), "Animation.setPlaybackRate.params", "commandParams", { method: "Animation.setPlaybackRate" }); export const SetPlaybackRateResult = withCdpMeta(z.object({ }).passthrough(), "Animation.setPlaybackRate.result", "commandResult", { method: "Animation.setPlaybackRate" }); +export const SetPlaybackRateCommand = withCdpCommand("Animation.setPlaybackRate", SetPlaybackRateParams, SetPlaybackRateResult); export const SetTimingParams = withCdpMeta(z.object({ "animationId": z.string(), "duration": z.number(), "delay": z.number() }).passthrough(), "Animation.setTiming.params", "commandParams", { method: "Animation.setTiming" }); export const SetTimingResult = withCdpMeta(z.object({ }).passthrough(), "Animation.setTiming.result", "commandResult", { method: "Animation.setTiming" }); +export const SetTimingCommand = withCdpCommand("Animation.setTiming", SetTimingParams, SetTimingResult); export const AnimationCanceledEvent = withCdpMeta(z.object({ "id": z.string() }).passthrough(), "Animation.animationCanceled", "event", { phase: "event" }); export const AnimationCreatedEvent = withCdpMeta(z.object({ "id": z.string() }).passthrough(), "Animation.animationCreated", "event", { phase: "event" }); export const AnimationStartedEvent = withCdpMeta(z.object({ "animation": z.lazy(() => Animation) }).passthrough(), "Animation.animationStarted", "event", { phase: "event" }); @@ -67,16 +77,16 @@ export const zod = { AnimationUpdatedEvent: AnimationUpdatedEvent, } as const; export const commands = { - "Animation.disable": { params: DisableParams, result: DisableResult }, - "Animation.enable": { params: EnableParams, result: EnableResult }, - "Animation.getCurrentTime": { params: GetCurrentTimeParams, result: GetCurrentTimeResult }, - "Animation.getPlaybackRate": { params: GetPlaybackRateParams, result: GetPlaybackRateResult }, - "Animation.releaseAnimations": { params: ReleaseAnimationsParams, result: ReleaseAnimationsResult }, - "Animation.resolveAnimation": { params: ResolveAnimationParams, result: ResolveAnimationResult }, - "Animation.seekAnimations": { params: SeekAnimationsParams, result: SeekAnimationsResult }, - "Animation.setPaused": { params: SetPausedParams, result: SetPausedResult }, - "Animation.setPlaybackRate": { params: SetPlaybackRateParams, result: SetPlaybackRateResult }, - "Animation.setTiming": { params: SetTimingParams, result: SetTimingResult }, + "Animation.disable": DisableCommand, + "Animation.enable": EnableCommand, + "Animation.getCurrentTime": GetCurrentTimeCommand, + "Animation.getPlaybackRate": GetPlaybackRateCommand, + "Animation.releaseAnimations": ReleaseAnimationsCommand, + "Animation.resolveAnimation": ResolveAnimationCommand, + "Animation.seekAnimations": SeekAnimationsCommand, + "Animation.setPaused": SetPausedCommand, + "Animation.setPlaybackRate": SetPlaybackRateCommand, + "Animation.setTiming": SetTimingCommand, } as const; export const events = { "Animation.animationCanceled": AnimationCanceledEvent, diff --git a/js/src/types/generated/zod/Audits.ts b/js/src/types/generated/zod/Audits.ts index 7e41056d..df57a821 100644 --- a/js/src/types/generated/zod/Audits.ts +++ b/js/src/types/generated/zod/Audits.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Network from "./Network.js"; import * as Page from "./Page.js"; @@ -75,12 +75,16 @@ export const IssueId = withCdpMeta(z.string(), "Audits.IssueId", "type"); export const InspectorIssue = withCdpMeta(z.object({ "code": z.lazy(() => InspectorIssueCode), "details": z.lazy(() => InspectorIssueDetails), "issueId": z.lazy(() => IssueId).optional() }).passthrough(), "Audits.InspectorIssue", "type"); export const GetEncodedResponseParams = withCdpMeta(z.object({ "requestId": z.lazy(() => Network.RequestId), "encoding": z.enum(["webp", "jpeg", "png"]), "quality": z.number().optional(), "sizeOnly": z.boolean().optional() }).passthrough(), "Audits.getEncodedResponse.params", "commandParams", { method: "Audits.getEncodedResponse" }); export const GetEncodedResponseResult = withCdpMeta(z.object({ "body": z.string().optional(), "originalSize": z.number().int(), "encodedSize": z.number().int() }).passthrough(), "Audits.getEncodedResponse.result", "commandResult", { method: "Audits.getEncodedResponse" }); +export const GetEncodedResponseCommand = withCdpCommand("Audits.getEncodedResponse", GetEncodedResponseParams, GetEncodedResponseResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Audits.disable.params", "commandParams", { method: "Audits.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Audits.disable.result", "commandResult", { method: "Audits.disable" }); +export const DisableCommand = withCdpCommand("Audits.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Audits.enable.params", "commandParams", { method: "Audits.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Audits.enable.result", "commandResult", { method: "Audits.enable" }); +export const EnableCommand = withCdpCommand("Audits.enable", EnableParams, EnableResult); export const CheckFormsIssuesParams = withCdpMeta(z.object({ }).passthrough(), "Audits.checkFormsIssues.params", "commandParams", { method: "Audits.checkFormsIssues" }); export const CheckFormsIssuesResult = withCdpMeta(z.object({ "formIssues": z.array(z.lazy(() => GenericIssueDetails)) }).passthrough(), "Audits.checkFormsIssues.result", "commandResult", { method: "Audits.checkFormsIssues" }); +export const CheckFormsIssuesCommand = withCdpCommand("Audits.checkFormsIssues", CheckFormsIssuesParams, CheckFormsIssuesResult); export const IssueAddedEvent = withCdpMeta(z.object({ "issue": z.lazy(() => InspectorIssue) }).passthrough(), "Audits.issueAdded", "event", { phase: "event" }); export const zod = { @@ -161,10 +165,10 @@ export const zod = { IssueAddedEvent: IssueAddedEvent, } as const; export const commands = { - "Audits.getEncodedResponse": { params: GetEncodedResponseParams, result: GetEncodedResponseResult }, - "Audits.disable": { params: DisableParams, result: DisableResult }, - "Audits.enable": { params: EnableParams, result: EnableResult }, - "Audits.checkFormsIssues": { params: CheckFormsIssuesParams, result: CheckFormsIssuesResult }, + "Audits.getEncodedResponse": GetEncodedResponseCommand, + "Audits.disable": DisableCommand, + "Audits.enable": EnableCommand, + "Audits.checkFormsIssues": CheckFormsIssuesCommand, } as const; export const events = { "Audits.issueAdded": IssueAddedEvent, diff --git a/js/src/types/generated/zod/Autofill.ts b/js/src/types/generated/zod/Autofill.ts index 63d0d893..5de650ed 100644 --- a/js/src/types/generated/zod/Autofill.ts +++ b/js/src/types/generated/zod/Autofill.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Page from "./Page.js"; @@ -14,12 +14,16 @@ export const FillingStrategy = withCdpMeta(z.enum(["autocompleteAttribute", "aut export const FilledField = withCdpMeta(z.object({ "htmlType": z.string(), "id": z.string(), "name": z.string(), "value": z.string(), "autofillType": z.string(), "fillingStrategy": z.lazy(() => FillingStrategy), "frameId": z.lazy(() => Page.FrameId), "fieldId": z.lazy(() => DOM.BackendNodeId) }).passthrough(), "Autofill.FilledField", "type"); export const TriggerParams = withCdpMeta(z.object({ "fieldId": z.lazy(() => DOM.BackendNodeId), "frameId": z.lazy(() => Page.FrameId).optional(), "card": z.lazy(() => CreditCard).optional(), "address": z.lazy(() => Address).optional() }).passthrough(), "Autofill.trigger.params", "commandParams", { method: "Autofill.trigger" }); export const TriggerResult = withCdpMeta(z.object({ }).passthrough(), "Autofill.trigger.result", "commandResult", { method: "Autofill.trigger" }); +export const TriggerCommand = withCdpCommand("Autofill.trigger", TriggerParams, TriggerResult); export const SetAddressesParams = withCdpMeta(z.object({ "addresses": z.array(z.lazy(() => Address)) }).passthrough(), "Autofill.setAddresses.params", "commandParams", { method: "Autofill.setAddresses" }); export const SetAddressesResult = withCdpMeta(z.object({ }).passthrough(), "Autofill.setAddresses.result", "commandResult", { method: "Autofill.setAddresses" }); +export const SetAddressesCommand = withCdpCommand("Autofill.setAddresses", SetAddressesParams, SetAddressesResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Autofill.disable.params", "commandParams", { method: "Autofill.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Autofill.disable.result", "commandResult", { method: "Autofill.disable" }); +export const DisableCommand = withCdpCommand("Autofill.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Autofill.enable.params", "commandParams", { method: "Autofill.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Autofill.enable.result", "commandResult", { method: "Autofill.enable" }); +export const EnableCommand = withCdpCommand("Autofill.enable", EnableParams, EnableResult); export const AddressFormFilledEvent = withCdpMeta(z.object({ "filledFields": z.array(z.lazy(() => FilledField)), "addressUi": z.lazy(() => AddressUI) }).passthrough(), "Autofill.addressFormFilled", "event", { phase: "event" }); export const zod = { @@ -41,10 +45,10 @@ export const zod = { AddressFormFilledEvent: AddressFormFilledEvent, } as const; export const commands = { - "Autofill.trigger": { params: TriggerParams, result: TriggerResult }, - "Autofill.setAddresses": { params: SetAddressesParams, result: SetAddressesResult }, - "Autofill.disable": { params: DisableParams, result: DisableResult }, - "Autofill.enable": { params: EnableParams, result: EnableResult }, + "Autofill.trigger": TriggerCommand, + "Autofill.setAddresses": SetAddressesCommand, + "Autofill.disable": DisableCommand, + "Autofill.enable": EnableCommand, } as const; export const events = { "Autofill.addressFormFilled": AddressFormFilledEvent, diff --git a/js/src/types/generated/zod/BackgroundService.ts b/js/src/types/generated/zod/BackgroundService.ts index 1991f650..34659f4e 100644 --- a/js/src/types/generated/zod/BackgroundService.ts +++ b/js/src/types/generated/zod/BackgroundService.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Network from "./Network.js"; import * as ServiceWorker from "./ServiceWorker.js"; @@ -10,12 +10,16 @@ export const EventMetadata = withCdpMeta(z.object({ "key": z.string(), "value": export const BackgroundServiceEvent = withCdpMeta(z.object({ "timestamp": z.lazy(() => Network.TimeSinceEpoch), "origin": z.string(), "serviceWorkerRegistrationId": z.lazy(() => ServiceWorker.RegistrationID), "service": z.lazy(() => ServiceName), "eventName": z.string(), "instanceId": z.string(), "eventMetadata": z.array(z.lazy(() => EventMetadata)), "storageKey": z.string() }).passthrough(), "BackgroundService.BackgroundServiceEvent", "type"); export const StartObservingParams = withCdpMeta(z.object({ "service": z.lazy(() => ServiceName) }).passthrough(), "BackgroundService.startObserving.params", "commandParams", { method: "BackgroundService.startObserving" }); export const StartObservingResult = withCdpMeta(z.object({ }).passthrough(), "BackgroundService.startObserving.result", "commandResult", { method: "BackgroundService.startObserving" }); +export const StartObservingCommand = withCdpCommand("BackgroundService.startObserving", StartObservingParams, StartObservingResult); export const StopObservingParams = withCdpMeta(z.object({ "service": z.lazy(() => ServiceName) }).passthrough(), "BackgroundService.stopObserving.params", "commandParams", { method: "BackgroundService.stopObserving" }); export const StopObservingResult = withCdpMeta(z.object({ }).passthrough(), "BackgroundService.stopObserving.result", "commandResult", { method: "BackgroundService.stopObserving" }); +export const StopObservingCommand = withCdpCommand("BackgroundService.stopObserving", StopObservingParams, StopObservingResult); export const SetRecordingParams = withCdpMeta(z.object({ "shouldRecord": z.boolean(), "service": z.lazy(() => ServiceName) }).passthrough(), "BackgroundService.setRecording.params", "commandParams", { method: "BackgroundService.setRecording" }); export const SetRecordingResult = withCdpMeta(z.object({ }).passthrough(), "BackgroundService.setRecording.result", "commandResult", { method: "BackgroundService.setRecording" }); +export const SetRecordingCommand = withCdpCommand("BackgroundService.setRecording", SetRecordingParams, SetRecordingResult); export const ClearEventsParams = withCdpMeta(z.object({ "service": z.lazy(() => ServiceName) }).passthrough(), "BackgroundService.clearEvents.params", "commandParams", { method: "BackgroundService.clearEvents" }); export const ClearEventsResult = withCdpMeta(z.object({ }).passthrough(), "BackgroundService.clearEvents.result", "commandResult", { method: "BackgroundService.clearEvents" }); +export const ClearEventsCommand = withCdpCommand("BackgroundService.clearEvents", ClearEventsParams, ClearEventsResult); export const RecordingStateChangedEvent = withCdpMeta(z.object({ "isRecording": z.boolean(), "service": z.lazy(() => ServiceName) }).passthrough(), "BackgroundService.recordingStateChanged", "event", { phase: "event" }); export const BackgroundServiceEventReceivedEvent = withCdpMeta(z.object({ "backgroundServiceEvent": z.lazy(() => BackgroundServiceEvent) }).passthrough(), "BackgroundService.backgroundServiceEventReceived", "event", { phase: "event" }); @@ -35,10 +39,10 @@ export const zod = { BackgroundServiceEventReceivedEvent: BackgroundServiceEventReceivedEvent, } as const; export const commands = { - "BackgroundService.startObserving": { params: StartObservingParams, result: StartObservingResult }, - "BackgroundService.stopObserving": { params: StopObservingParams, result: StopObservingResult }, - "BackgroundService.setRecording": { params: SetRecordingParams, result: SetRecordingResult }, - "BackgroundService.clearEvents": { params: ClearEventsParams, result: ClearEventsResult }, + "BackgroundService.startObserving": StartObservingCommand, + "BackgroundService.stopObserving": StopObservingCommand, + "BackgroundService.setRecording": SetRecordingCommand, + "BackgroundService.clearEvents": ClearEventsCommand, } as const; export const events = { "BackgroundService.recordingStateChanged": RecordingStateChangedEvent, diff --git a/js/src/types/generated/zod/BluetoothEmulation.ts b/js/src/types/generated/zod/BluetoothEmulation.ts index 53c06249..55fda5ac 100644 --- a/js/src/types/generated/zod/BluetoothEmulation.ts +++ b/js/src/types/generated/zod/BluetoothEmulation.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const CentralState = withCdpMeta(z.enum(["absent", "powered-off", "powered-on"]), "BluetoothEmulation.CentralState", "type"); export const GATTOperationType = withCdpMeta(z.enum(["connection", "discovery"]), "BluetoothEmulation.GATTOperationType", "type"); @@ -14,34 +14,49 @@ export const ScanEntry = withCdpMeta(z.object({ "deviceAddress": z.string(), "rs export const CharacteristicProperties = withCdpMeta(z.object({ "broadcast": z.boolean().optional(), "read": z.boolean().optional(), "writeWithoutResponse": z.boolean().optional(), "write": z.boolean().optional(), "notify": z.boolean().optional(), "indicate": z.boolean().optional(), "authenticatedSignedWrites": z.boolean().optional(), "extendedProperties": z.boolean().optional() }).passthrough(), "BluetoothEmulation.CharacteristicProperties", "type"); export const EnableParams = withCdpMeta(z.object({ "state": z.lazy(() => CentralState), "leSupported": z.boolean() }).passthrough(), "BluetoothEmulation.enable.params", "commandParams", { method: "BluetoothEmulation.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.enable.result", "commandResult", { method: "BluetoothEmulation.enable" }); +export const EnableCommand = withCdpCommand("BluetoothEmulation.enable", EnableParams, EnableResult); export const SetSimulatedCentralStateParams = withCdpMeta(z.object({ "state": z.lazy(() => CentralState) }).passthrough(), "BluetoothEmulation.setSimulatedCentralState.params", "commandParams", { method: "BluetoothEmulation.setSimulatedCentralState" }); export const SetSimulatedCentralStateResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.setSimulatedCentralState.result", "commandResult", { method: "BluetoothEmulation.setSimulatedCentralState" }); +export const SetSimulatedCentralStateCommand = withCdpCommand("BluetoothEmulation.setSimulatedCentralState", SetSimulatedCentralStateParams, SetSimulatedCentralStateResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.disable.params", "commandParams", { method: "BluetoothEmulation.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.disable.result", "commandResult", { method: "BluetoothEmulation.disable" }); +export const DisableCommand = withCdpCommand("BluetoothEmulation.disable", DisableParams, DisableResult); export const SimulatePreconnectedPeripheralParams = withCdpMeta(z.object({ "address": z.string(), "name": z.string(), "manufacturerData": z.array(z.lazy(() => ManufacturerData)), "knownServiceUuids": z.array(z.string()) }).passthrough(), "BluetoothEmulation.simulatePreconnectedPeripheral.params", "commandParams", { method: "BluetoothEmulation.simulatePreconnectedPeripheral" }); export const SimulatePreconnectedPeripheralResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.simulatePreconnectedPeripheral.result", "commandResult", { method: "BluetoothEmulation.simulatePreconnectedPeripheral" }); +export const SimulatePreconnectedPeripheralCommand = withCdpCommand("BluetoothEmulation.simulatePreconnectedPeripheral", SimulatePreconnectedPeripheralParams, SimulatePreconnectedPeripheralResult); export const SimulateAdvertisementParams = withCdpMeta(z.object({ "entry": z.lazy(() => ScanEntry) }).passthrough(), "BluetoothEmulation.simulateAdvertisement.params", "commandParams", { method: "BluetoothEmulation.simulateAdvertisement" }); export const SimulateAdvertisementResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.simulateAdvertisement.result", "commandResult", { method: "BluetoothEmulation.simulateAdvertisement" }); +export const SimulateAdvertisementCommand = withCdpCommand("BluetoothEmulation.simulateAdvertisement", SimulateAdvertisementParams, SimulateAdvertisementResult); export const SimulateGATTOperationResponseParams = withCdpMeta(z.object({ "address": z.string(), "type": z.lazy(() => GATTOperationType), "code": z.number().int() }).passthrough(), "BluetoothEmulation.simulateGATTOperationResponse.params", "commandParams", { method: "BluetoothEmulation.simulateGATTOperationResponse" }); export const SimulateGATTOperationResponseResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.simulateGATTOperationResponse.result", "commandResult", { method: "BluetoothEmulation.simulateGATTOperationResponse" }); +export const SimulateGATTOperationResponseCommand = withCdpCommand("BluetoothEmulation.simulateGATTOperationResponse", SimulateGATTOperationResponseParams, SimulateGATTOperationResponseResult); export const SimulateCharacteristicOperationResponseParams = withCdpMeta(z.object({ "characteristicId": z.string(), "type": z.lazy(() => CharacteristicOperationType), "code": z.number().int(), "data": z.string().optional() }).passthrough(), "BluetoothEmulation.simulateCharacteristicOperationResponse.params", "commandParams", { method: "BluetoothEmulation.simulateCharacteristicOperationResponse" }); export const SimulateCharacteristicOperationResponseResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.simulateCharacteristicOperationResponse.result", "commandResult", { method: "BluetoothEmulation.simulateCharacteristicOperationResponse" }); +export const SimulateCharacteristicOperationResponseCommand = withCdpCommand("BluetoothEmulation.simulateCharacteristicOperationResponse", SimulateCharacteristicOperationResponseParams, SimulateCharacteristicOperationResponseResult); export const SimulateDescriptorOperationResponseParams = withCdpMeta(z.object({ "descriptorId": z.string(), "type": z.lazy(() => DescriptorOperationType), "code": z.number().int(), "data": z.string().optional() }).passthrough(), "BluetoothEmulation.simulateDescriptorOperationResponse.params", "commandParams", { method: "BluetoothEmulation.simulateDescriptorOperationResponse" }); export const SimulateDescriptorOperationResponseResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.simulateDescriptorOperationResponse.result", "commandResult", { method: "BluetoothEmulation.simulateDescriptorOperationResponse" }); +export const SimulateDescriptorOperationResponseCommand = withCdpCommand("BluetoothEmulation.simulateDescriptorOperationResponse", SimulateDescriptorOperationResponseParams, SimulateDescriptorOperationResponseResult); export const AddServiceParams = withCdpMeta(z.object({ "address": z.string(), "serviceUuid": z.string() }).passthrough(), "BluetoothEmulation.addService.params", "commandParams", { method: "BluetoothEmulation.addService" }); export const AddServiceResult = withCdpMeta(z.object({ "serviceId": z.string() }).passthrough(), "BluetoothEmulation.addService.result", "commandResult", { method: "BluetoothEmulation.addService" }); +export const AddServiceCommand = withCdpCommand("BluetoothEmulation.addService", AddServiceParams, AddServiceResult); export const RemoveServiceParams = withCdpMeta(z.object({ "serviceId": z.string() }).passthrough(), "BluetoothEmulation.removeService.params", "commandParams", { method: "BluetoothEmulation.removeService" }); export const RemoveServiceResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.removeService.result", "commandResult", { method: "BluetoothEmulation.removeService" }); +export const RemoveServiceCommand = withCdpCommand("BluetoothEmulation.removeService", RemoveServiceParams, RemoveServiceResult); export const AddCharacteristicParams = withCdpMeta(z.object({ "serviceId": z.string(), "characteristicUuid": z.string(), "properties": z.lazy(() => CharacteristicProperties) }).passthrough(), "BluetoothEmulation.addCharacteristic.params", "commandParams", { method: "BluetoothEmulation.addCharacteristic" }); export const AddCharacteristicResult = withCdpMeta(z.object({ "characteristicId": z.string() }).passthrough(), "BluetoothEmulation.addCharacteristic.result", "commandResult", { method: "BluetoothEmulation.addCharacteristic" }); +export const AddCharacteristicCommand = withCdpCommand("BluetoothEmulation.addCharacteristic", AddCharacteristicParams, AddCharacteristicResult); export const RemoveCharacteristicParams = withCdpMeta(z.object({ "characteristicId": z.string() }).passthrough(), "BluetoothEmulation.removeCharacteristic.params", "commandParams", { method: "BluetoothEmulation.removeCharacteristic" }); export const RemoveCharacteristicResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.removeCharacteristic.result", "commandResult", { method: "BluetoothEmulation.removeCharacteristic" }); +export const RemoveCharacteristicCommand = withCdpCommand("BluetoothEmulation.removeCharacteristic", RemoveCharacteristicParams, RemoveCharacteristicResult); export const AddDescriptorParams = withCdpMeta(z.object({ "characteristicId": z.string(), "descriptorUuid": z.string() }).passthrough(), "BluetoothEmulation.addDescriptor.params", "commandParams", { method: "BluetoothEmulation.addDescriptor" }); export const AddDescriptorResult = withCdpMeta(z.object({ "descriptorId": z.string() }).passthrough(), "BluetoothEmulation.addDescriptor.result", "commandResult", { method: "BluetoothEmulation.addDescriptor" }); +export const AddDescriptorCommand = withCdpCommand("BluetoothEmulation.addDescriptor", AddDescriptorParams, AddDescriptorResult); export const RemoveDescriptorParams = withCdpMeta(z.object({ "descriptorId": z.string() }).passthrough(), "BluetoothEmulation.removeDescriptor.params", "commandParams", { method: "BluetoothEmulation.removeDescriptor" }); export const RemoveDescriptorResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.removeDescriptor.result", "commandResult", { method: "BluetoothEmulation.removeDescriptor" }); +export const RemoveDescriptorCommand = withCdpCommand("BluetoothEmulation.removeDescriptor", RemoveDescriptorParams, RemoveDescriptorResult); export const SimulateGATTDisconnectionParams = withCdpMeta(z.object({ "address": z.string() }).passthrough(), "BluetoothEmulation.simulateGATTDisconnection.params", "commandParams", { method: "BluetoothEmulation.simulateGATTDisconnection" }); export const SimulateGATTDisconnectionResult = withCdpMeta(z.object({ }).passthrough(), "BluetoothEmulation.simulateGATTDisconnection.result", "commandResult", { method: "BluetoothEmulation.simulateGATTDisconnection" }); +export const SimulateGATTDisconnectionCommand = withCdpCommand("BluetoothEmulation.simulateGATTDisconnection", SimulateGATTDisconnectionParams, SimulateGATTDisconnectionResult); export const GattOperationReceivedEvent = withCdpMeta(z.object({ "address": z.string(), "type": z.lazy(() => GATTOperationType) }).passthrough(), "BluetoothEmulation.gattOperationReceived", "event", { phase: "event" }); export const CharacteristicOperationReceivedEvent = withCdpMeta(z.object({ "characteristicId": z.string(), "type": z.lazy(() => CharacteristicOperationType), "data": z.string().optional(), "writeType": z.lazy(() => CharacteristicWriteType).optional() }).passthrough(), "BluetoothEmulation.characteristicOperationReceived", "event", { phase: "event" }); export const DescriptorOperationReceivedEvent = withCdpMeta(z.object({ "descriptorId": z.string(), "type": z.lazy(() => DescriptorOperationType), "data": z.string().optional() }).passthrough(), "BluetoothEmulation.descriptorOperationReceived", "event", { phase: "event" }); @@ -91,21 +106,21 @@ export const zod = { DescriptorOperationReceivedEvent: DescriptorOperationReceivedEvent, } as const; export const commands = { - "BluetoothEmulation.enable": { params: EnableParams, result: EnableResult }, - "BluetoothEmulation.setSimulatedCentralState": { params: SetSimulatedCentralStateParams, result: SetSimulatedCentralStateResult }, - "BluetoothEmulation.disable": { params: DisableParams, result: DisableResult }, - "BluetoothEmulation.simulatePreconnectedPeripheral": { params: SimulatePreconnectedPeripheralParams, result: SimulatePreconnectedPeripheralResult }, - "BluetoothEmulation.simulateAdvertisement": { params: SimulateAdvertisementParams, result: SimulateAdvertisementResult }, - "BluetoothEmulation.simulateGATTOperationResponse": { params: SimulateGATTOperationResponseParams, result: SimulateGATTOperationResponseResult }, - "BluetoothEmulation.simulateCharacteristicOperationResponse": { params: SimulateCharacteristicOperationResponseParams, result: SimulateCharacteristicOperationResponseResult }, - "BluetoothEmulation.simulateDescriptorOperationResponse": { params: SimulateDescriptorOperationResponseParams, result: SimulateDescriptorOperationResponseResult }, - "BluetoothEmulation.addService": { params: AddServiceParams, result: AddServiceResult }, - "BluetoothEmulation.removeService": { params: RemoveServiceParams, result: RemoveServiceResult }, - "BluetoothEmulation.addCharacteristic": { params: AddCharacteristicParams, result: AddCharacteristicResult }, - "BluetoothEmulation.removeCharacteristic": { params: RemoveCharacteristicParams, result: RemoveCharacteristicResult }, - "BluetoothEmulation.addDescriptor": { params: AddDescriptorParams, result: AddDescriptorResult }, - "BluetoothEmulation.removeDescriptor": { params: RemoveDescriptorParams, result: RemoveDescriptorResult }, - "BluetoothEmulation.simulateGATTDisconnection": { params: SimulateGATTDisconnectionParams, result: SimulateGATTDisconnectionResult }, + "BluetoothEmulation.enable": EnableCommand, + "BluetoothEmulation.setSimulatedCentralState": SetSimulatedCentralStateCommand, + "BluetoothEmulation.disable": DisableCommand, + "BluetoothEmulation.simulatePreconnectedPeripheral": SimulatePreconnectedPeripheralCommand, + "BluetoothEmulation.simulateAdvertisement": SimulateAdvertisementCommand, + "BluetoothEmulation.simulateGATTOperationResponse": SimulateGATTOperationResponseCommand, + "BluetoothEmulation.simulateCharacteristicOperationResponse": SimulateCharacteristicOperationResponseCommand, + "BluetoothEmulation.simulateDescriptorOperationResponse": SimulateDescriptorOperationResponseCommand, + "BluetoothEmulation.addService": AddServiceCommand, + "BluetoothEmulation.removeService": RemoveServiceCommand, + "BluetoothEmulation.addCharacteristic": AddCharacteristicCommand, + "BluetoothEmulation.removeCharacteristic": RemoveCharacteristicCommand, + "BluetoothEmulation.addDescriptor": AddDescriptorCommand, + "BluetoothEmulation.removeDescriptor": RemoveDescriptorCommand, + "BluetoothEmulation.simulateGATTDisconnection": SimulateGATTDisconnectionCommand, } as const; export const events = { "BluetoothEmulation.gattOperationReceived": GattOperationReceivedEvent, diff --git a/js/src/types/generated/zod/Browser.ts b/js/src/types/generated/zod/Browser.ts index 026a2d73..126339ca 100644 --- a/js/src/types/generated/zod/Browser.ts +++ b/js/src/types/generated/zod/Browser.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Page from "./Page.js"; import * as Target from "./Target.js"; @@ -18,44 +18,64 @@ export const Histogram = withCdpMeta(z.object({ "name": z.string(), "sum": z.num export const PrivacySandboxAPI = withCdpMeta(z.enum(["BiddingAndAuctionServices", "TrustedKeyValue"]), "Browser.PrivacySandboxAPI", "type"); export const SetPermissionParams = withCdpMeta(z.object({ "permission": z.lazy(() => PermissionDescriptor), "setting": z.lazy(() => PermissionSetting), "origin": z.string().optional(), "embeddedOrigin": z.string().optional(), "browserContextId": z.lazy(() => BrowserContextID).optional() }).passthrough(), "Browser.setPermission.params", "commandParams", { method: "Browser.setPermission" }); export const SetPermissionResult = withCdpMeta(z.object({ }).passthrough(), "Browser.setPermission.result", "commandResult", { method: "Browser.setPermission" }); +export const SetPermissionCommand = withCdpCommand("Browser.setPermission", SetPermissionParams, SetPermissionResult); export const GrantPermissionsParams = withCdpMeta(z.object({ "permissions": z.array(z.lazy(() => PermissionType)), "origin": z.string().optional(), "browserContextId": z.lazy(() => BrowserContextID).optional() }).passthrough(), "Browser.grantPermissions.params", "commandParams", { method: "Browser.grantPermissions" }); export const GrantPermissionsResult = withCdpMeta(z.object({ }).passthrough(), "Browser.grantPermissions.result", "commandResult", { method: "Browser.grantPermissions" }); +export const GrantPermissionsCommand = withCdpCommand("Browser.grantPermissions", GrantPermissionsParams, GrantPermissionsResult); export const ResetPermissionsParams = withCdpMeta(z.object({ "browserContextId": z.lazy(() => BrowserContextID).optional() }).passthrough(), "Browser.resetPermissions.params", "commandParams", { method: "Browser.resetPermissions" }); export const ResetPermissionsResult = withCdpMeta(z.object({ }).passthrough(), "Browser.resetPermissions.result", "commandResult", { method: "Browser.resetPermissions" }); +export const ResetPermissionsCommand = withCdpCommand("Browser.resetPermissions", ResetPermissionsParams, ResetPermissionsResult); export const SetDownloadBehaviorParams = withCdpMeta(z.object({ "behavior": z.enum(["deny", "allow", "allowAndName", "default"]), "browserContextId": z.lazy(() => BrowserContextID).optional(), "downloadPath": z.string().optional(), "eventsEnabled": z.boolean().optional() }).passthrough(), "Browser.setDownloadBehavior.params", "commandParams", { method: "Browser.setDownloadBehavior" }); export const SetDownloadBehaviorResult = withCdpMeta(z.object({ }).passthrough(), "Browser.setDownloadBehavior.result", "commandResult", { method: "Browser.setDownloadBehavior" }); +export const SetDownloadBehaviorCommand = withCdpCommand("Browser.setDownloadBehavior", SetDownloadBehaviorParams, SetDownloadBehaviorResult); export const CancelDownloadParams = withCdpMeta(z.object({ "guid": z.string(), "browserContextId": z.lazy(() => BrowserContextID).optional() }).passthrough(), "Browser.cancelDownload.params", "commandParams", { method: "Browser.cancelDownload" }); export const CancelDownloadResult = withCdpMeta(z.object({ }).passthrough(), "Browser.cancelDownload.result", "commandResult", { method: "Browser.cancelDownload" }); +export const CancelDownloadCommand = withCdpCommand("Browser.cancelDownload", CancelDownloadParams, CancelDownloadResult); export const CloseParams = withCdpMeta(z.object({ }).passthrough(), "Browser.close.params", "commandParams", { method: "Browser.close" }); export const CloseResult = withCdpMeta(z.object({ }).passthrough(), "Browser.close.result", "commandResult", { method: "Browser.close" }); +export const CloseCommand = withCdpCommand("Browser.close", CloseParams, CloseResult); export const CrashParams = withCdpMeta(z.object({ }).passthrough(), "Browser.crash.params", "commandParams", { method: "Browser.crash" }); export const CrashResult = withCdpMeta(z.object({ }).passthrough(), "Browser.crash.result", "commandResult", { method: "Browser.crash" }); +export const CrashCommand = withCdpCommand("Browser.crash", CrashParams, CrashResult); export const CrashGpuProcessParams = withCdpMeta(z.object({ }).passthrough(), "Browser.crashGpuProcess.params", "commandParams", { method: "Browser.crashGpuProcess" }); export const CrashGpuProcessResult = withCdpMeta(z.object({ }).passthrough(), "Browser.crashGpuProcess.result", "commandResult", { method: "Browser.crashGpuProcess" }); +export const CrashGpuProcessCommand = withCdpCommand("Browser.crashGpuProcess", CrashGpuProcessParams, CrashGpuProcessResult); export const GetVersionParams = withCdpMeta(z.object({ }).passthrough(), "Browser.getVersion.params", "commandParams", { method: "Browser.getVersion" }); export const GetVersionResult = withCdpMeta(z.object({ "protocolVersion": z.string(), "product": z.string(), "revision": z.string(), "userAgent": z.string(), "jsVersion": z.string() }).passthrough(), "Browser.getVersion.result", "commandResult", { method: "Browser.getVersion" }); +export const GetVersionCommand = withCdpCommand("Browser.getVersion", GetVersionParams, GetVersionResult); export const GetBrowserCommandLineParams = withCdpMeta(z.object({ }).passthrough(), "Browser.getBrowserCommandLine.params", "commandParams", { method: "Browser.getBrowserCommandLine" }); export const GetBrowserCommandLineResult = withCdpMeta(z.object({ "arguments": z.array(z.string()) }).passthrough(), "Browser.getBrowserCommandLine.result", "commandResult", { method: "Browser.getBrowserCommandLine" }); +export const GetBrowserCommandLineCommand = withCdpCommand("Browser.getBrowserCommandLine", GetBrowserCommandLineParams, GetBrowserCommandLineResult); export const GetHistogramsParams = withCdpMeta(z.object({ "query": z.string().optional(), "delta": z.boolean().optional() }).passthrough(), "Browser.getHistograms.params", "commandParams", { method: "Browser.getHistograms" }); export const GetHistogramsResult = withCdpMeta(z.object({ "histograms": z.array(z.lazy(() => Histogram)) }).passthrough(), "Browser.getHistograms.result", "commandResult", { method: "Browser.getHistograms" }); +export const GetHistogramsCommand = withCdpCommand("Browser.getHistograms", GetHistogramsParams, GetHistogramsResult); export const GetHistogramParams = withCdpMeta(z.object({ "name": z.string(), "delta": z.boolean().optional() }).passthrough(), "Browser.getHistogram.params", "commandParams", { method: "Browser.getHistogram" }); export const GetHistogramResult = withCdpMeta(z.object({ "histogram": z.lazy(() => Histogram) }).passthrough(), "Browser.getHistogram.result", "commandResult", { method: "Browser.getHistogram" }); +export const GetHistogramCommand = withCdpCommand("Browser.getHistogram", GetHistogramParams, GetHistogramResult); export const GetWindowBoundsParams = withCdpMeta(z.object({ "windowId": z.lazy(() => WindowID) }).passthrough(), "Browser.getWindowBounds.params", "commandParams", { method: "Browser.getWindowBounds" }); export const GetWindowBoundsResult = withCdpMeta(z.object({ "bounds": z.lazy(() => Bounds) }).passthrough(), "Browser.getWindowBounds.result", "commandResult", { method: "Browser.getWindowBounds" }); +export const GetWindowBoundsCommand = withCdpCommand("Browser.getWindowBounds", GetWindowBoundsParams, GetWindowBoundsResult); export const GetWindowForTargetParams = withCdpMeta(z.object({ "targetId": z.lazy(() => Target.TargetID).optional() }).passthrough(), "Browser.getWindowForTarget.params", "commandParams", { method: "Browser.getWindowForTarget" }); export const GetWindowForTargetResult = withCdpMeta(z.object({ "windowId": z.lazy(() => WindowID), "bounds": z.lazy(() => Bounds) }).passthrough(), "Browser.getWindowForTarget.result", "commandResult", { method: "Browser.getWindowForTarget" }); +export const GetWindowForTargetCommand = withCdpCommand("Browser.getWindowForTarget", GetWindowForTargetParams, GetWindowForTargetResult); export const SetWindowBoundsParams = withCdpMeta(z.object({ "windowId": z.lazy(() => WindowID), "bounds": z.lazy(() => Bounds) }).passthrough(), "Browser.setWindowBounds.params", "commandParams", { method: "Browser.setWindowBounds" }); export const SetWindowBoundsResult = withCdpMeta(z.object({ }).passthrough(), "Browser.setWindowBounds.result", "commandResult", { method: "Browser.setWindowBounds" }); +export const SetWindowBoundsCommand = withCdpCommand("Browser.setWindowBounds", SetWindowBoundsParams, SetWindowBoundsResult); export const SetContentsSizeParams = withCdpMeta(z.object({ "windowId": z.lazy(() => WindowID), "width": z.number().int().optional(), "height": z.number().int().optional() }).passthrough(), "Browser.setContentsSize.params", "commandParams", { method: "Browser.setContentsSize" }); export const SetContentsSizeResult = withCdpMeta(z.object({ }).passthrough(), "Browser.setContentsSize.result", "commandResult", { method: "Browser.setContentsSize" }); +export const SetContentsSizeCommand = withCdpCommand("Browser.setContentsSize", SetContentsSizeParams, SetContentsSizeResult); export const SetDockTileParams = withCdpMeta(z.object({ "badgeLabel": z.string().optional(), "image": z.string().optional() }).passthrough(), "Browser.setDockTile.params", "commandParams", { method: "Browser.setDockTile" }); export const SetDockTileResult = withCdpMeta(z.object({ }).passthrough(), "Browser.setDockTile.result", "commandResult", { method: "Browser.setDockTile" }); +export const SetDockTileCommand = withCdpCommand("Browser.setDockTile", SetDockTileParams, SetDockTileResult); export const ExecuteBrowserCommandParams = withCdpMeta(z.object({ "commandId": z.lazy(() => BrowserCommandId) }).passthrough(), "Browser.executeBrowserCommand.params", "commandParams", { method: "Browser.executeBrowserCommand" }); export const ExecuteBrowserCommandResult = withCdpMeta(z.object({ }).passthrough(), "Browser.executeBrowserCommand.result", "commandResult", { method: "Browser.executeBrowserCommand" }); +export const ExecuteBrowserCommandCommand = withCdpCommand("Browser.executeBrowserCommand", ExecuteBrowserCommandParams, ExecuteBrowserCommandResult); export const AddPrivacySandboxEnrollmentOverrideParams = withCdpMeta(z.object({ "url": z.string() }).passthrough(), "Browser.addPrivacySandboxEnrollmentOverride.params", "commandParams", { method: "Browser.addPrivacySandboxEnrollmentOverride" }); export const AddPrivacySandboxEnrollmentOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Browser.addPrivacySandboxEnrollmentOverride.result", "commandResult", { method: "Browser.addPrivacySandboxEnrollmentOverride" }); +export const AddPrivacySandboxEnrollmentOverrideCommand = withCdpCommand("Browser.addPrivacySandboxEnrollmentOverride", AddPrivacySandboxEnrollmentOverrideParams, AddPrivacySandboxEnrollmentOverrideResult); export const AddPrivacySandboxCoordinatorKeyConfigParams = withCdpMeta(z.object({ "api": z.lazy(() => PrivacySandboxAPI), "coordinatorOrigin": z.string(), "keyConfig": z.string(), "browserContextId": z.lazy(() => BrowserContextID).optional() }).passthrough(), "Browser.addPrivacySandboxCoordinatorKeyConfig.params", "commandParams", { method: "Browser.addPrivacySandboxCoordinatorKeyConfig" }); export const AddPrivacySandboxCoordinatorKeyConfigResult = withCdpMeta(z.object({ }).passthrough(), "Browser.addPrivacySandboxCoordinatorKeyConfig.result", "commandResult", { method: "Browser.addPrivacySandboxCoordinatorKeyConfig" }); +export const AddPrivacySandboxCoordinatorKeyConfigCommand = withCdpCommand("Browser.addPrivacySandboxCoordinatorKeyConfig", AddPrivacySandboxCoordinatorKeyConfigParams, AddPrivacySandboxCoordinatorKeyConfigResult); export const DownloadWillBeginEvent = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId), "guid": z.string(), "url": z.string(), "suggestedFilename": z.string() }).passthrough(), "Browser.downloadWillBegin", "event", { phase: "event" }); export const DownloadProgressEvent = withCdpMeta(z.object({ "guid": z.string(), "totalBytes": z.number(), "receivedBytes": z.number(), "state": z.enum(["inProgress", "completed", "canceled"]), "filePath": z.string().optional() }).passthrough(), "Browser.downloadProgress", "event", { phase: "event" }); @@ -115,26 +135,26 @@ export const zod = { DownloadProgressEvent: DownloadProgressEvent, } as const; export const commands = { - "Browser.setPermission": { params: SetPermissionParams, result: SetPermissionResult }, - "Browser.grantPermissions": { params: GrantPermissionsParams, result: GrantPermissionsResult }, - "Browser.resetPermissions": { params: ResetPermissionsParams, result: ResetPermissionsResult }, - "Browser.setDownloadBehavior": { params: SetDownloadBehaviorParams, result: SetDownloadBehaviorResult }, - "Browser.cancelDownload": { params: CancelDownloadParams, result: CancelDownloadResult }, - "Browser.close": { params: CloseParams, result: CloseResult }, - "Browser.crash": { params: CrashParams, result: CrashResult }, - "Browser.crashGpuProcess": { params: CrashGpuProcessParams, result: CrashGpuProcessResult }, - "Browser.getVersion": { params: GetVersionParams, result: GetVersionResult }, - "Browser.getBrowserCommandLine": { params: GetBrowserCommandLineParams, result: GetBrowserCommandLineResult }, - "Browser.getHistograms": { params: GetHistogramsParams, result: GetHistogramsResult }, - "Browser.getHistogram": { params: GetHistogramParams, result: GetHistogramResult }, - "Browser.getWindowBounds": { params: GetWindowBoundsParams, result: GetWindowBoundsResult }, - "Browser.getWindowForTarget": { params: GetWindowForTargetParams, result: GetWindowForTargetResult }, - "Browser.setWindowBounds": { params: SetWindowBoundsParams, result: SetWindowBoundsResult }, - "Browser.setContentsSize": { params: SetContentsSizeParams, result: SetContentsSizeResult }, - "Browser.setDockTile": { params: SetDockTileParams, result: SetDockTileResult }, - "Browser.executeBrowserCommand": { params: ExecuteBrowserCommandParams, result: ExecuteBrowserCommandResult }, - "Browser.addPrivacySandboxEnrollmentOverride": { params: AddPrivacySandboxEnrollmentOverrideParams, result: AddPrivacySandboxEnrollmentOverrideResult }, - "Browser.addPrivacySandboxCoordinatorKeyConfig": { params: AddPrivacySandboxCoordinatorKeyConfigParams, result: AddPrivacySandboxCoordinatorKeyConfigResult }, + "Browser.setPermission": SetPermissionCommand, + "Browser.grantPermissions": GrantPermissionsCommand, + "Browser.resetPermissions": ResetPermissionsCommand, + "Browser.setDownloadBehavior": SetDownloadBehaviorCommand, + "Browser.cancelDownload": CancelDownloadCommand, + "Browser.close": CloseCommand, + "Browser.crash": CrashCommand, + "Browser.crashGpuProcess": CrashGpuProcessCommand, + "Browser.getVersion": GetVersionCommand, + "Browser.getBrowserCommandLine": GetBrowserCommandLineCommand, + "Browser.getHistograms": GetHistogramsCommand, + "Browser.getHistogram": GetHistogramCommand, + "Browser.getWindowBounds": GetWindowBoundsCommand, + "Browser.getWindowForTarget": GetWindowForTargetCommand, + "Browser.setWindowBounds": SetWindowBoundsCommand, + "Browser.setContentsSize": SetContentsSizeCommand, + "Browser.setDockTile": SetDockTileCommand, + "Browser.executeBrowserCommand": ExecuteBrowserCommandCommand, + "Browser.addPrivacySandboxEnrollmentOverride": AddPrivacySandboxEnrollmentOverrideCommand, + "Browser.addPrivacySandboxCoordinatorKeyConfig": AddPrivacySandboxCoordinatorKeyConfigCommand, } as const; export const events = { "Browser.downloadWillBegin": DownloadWillBeginEvent, diff --git a/js/src/types/generated/zod/CSS.ts b/js/src/types/generated/zod/CSS.ts index 0b99333c..dd64dd69 100644 --- a/js/src/types/generated/zod/CSS.ts +++ b/js/src/types/generated/zod/CSS.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Page from "./Page.js"; @@ -52,80 +52,118 @@ export const CSSKeyframeRule = withCdpMeta(z.object({ "styleSheetId": z.lazy(() export const StyleDeclarationEdit = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "text": z.string() }).passthrough(), "CSS.StyleDeclarationEdit", "type"); export const AddRuleParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "ruleText": z.string(), "location": z.lazy(() => SourceRange), "nodeForPropertySyntaxValidation": z.lazy(() => DOM.NodeId).optional() }).passthrough(), "CSS.addRule.params", "commandParams", { method: "CSS.addRule" }); export const AddRuleResult = withCdpMeta(z.object({ "rule": z.lazy(() => CSSRule) }).passthrough(), "CSS.addRule.result", "commandResult", { method: "CSS.addRule" }); +export const AddRuleCommand = withCdpCommand("CSS.addRule", AddRuleParams, AddRuleResult); export const CollectClassNamesParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId) }).passthrough(), "CSS.collectClassNames.params", "commandParams", { method: "CSS.collectClassNames" }); export const CollectClassNamesResult = withCdpMeta(z.object({ "classNames": z.array(z.string()) }).passthrough(), "CSS.collectClassNames.result", "commandResult", { method: "CSS.collectClassNames" }); +export const CollectClassNamesCommand = withCdpCommand("CSS.collectClassNames", CollectClassNamesParams, CollectClassNamesResult); export const CreateStyleSheetParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId), "force": z.boolean().optional() }).passthrough(), "CSS.createStyleSheet.params", "commandParams", { method: "CSS.createStyleSheet" }); export const CreateStyleSheetResult = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId) }).passthrough(), "CSS.createStyleSheet.result", "commandResult", { method: "CSS.createStyleSheet" }); +export const CreateStyleSheetCommand = withCdpCommand("CSS.createStyleSheet", CreateStyleSheetParams, CreateStyleSheetResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "CSS.disable.params", "commandParams", { method: "CSS.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "CSS.disable.result", "commandResult", { method: "CSS.disable" }); +export const DisableCommand = withCdpCommand("CSS.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "CSS.enable.params", "commandParams", { method: "CSS.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "CSS.enable.result", "commandResult", { method: "CSS.enable" }); +export const EnableCommand = withCdpCommand("CSS.enable", EnableParams, EnableResult); export const ForcePseudoStateParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId), "forcedPseudoClasses": z.array(z.string()) }).passthrough(), "CSS.forcePseudoState.params", "commandParams", { method: "CSS.forcePseudoState" }); export const ForcePseudoStateResult = withCdpMeta(z.object({ }).passthrough(), "CSS.forcePseudoState.result", "commandResult", { method: "CSS.forcePseudoState" }); +export const ForcePseudoStateCommand = withCdpCommand("CSS.forcePseudoState", ForcePseudoStateParams, ForcePseudoStateResult); export const ForceStartingStyleParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId), "forced": z.boolean() }).passthrough(), "CSS.forceStartingStyle.params", "commandParams", { method: "CSS.forceStartingStyle" }); export const ForceStartingStyleResult = withCdpMeta(z.object({ }).passthrough(), "CSS.forceStartingStyle.result", "commandResult", { method: "CSS.forceStartingStyle" }); +export const ForceStartingStyleCommand = withCdpCommand("CSS.forceStartingStyle", ForceStartingStyleParams, ForceStartingStyleResult); export const GetBackgroundColorsParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "CSS.getBackgroundColors.params", "commandParams", { method: "CSS.getBackgroundColors" }); export const GetBackgroundColorsResult = withCdpMeta(z.object({ "backgroundColors": z.array(z.string()).optional(), "computedFontSize": z.string().optional(), "computedFontWeight": z.string().optional() }).passthrough(), "CSS.getBackgroundColors.result", "commandResult", { method: "CSS.getBackgroundColors" }); +export const GetBackgroundColorsCommand = withCdpCommand("CSS.getBackgroundColors", GetBackgroundColorsParams, GetBackgroundColorsResult); export const GetComputedStyleForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "CSS.getComputedStyleForNode.params", "commandParams", { method: "CSS.getComputedStyleForNode" }); export const GetComputedStyleForNodeResult = withCdpMeta(z.object({ "computedStyle": z.array(z.lazy(() => CSSComputedStyleProperty)), "extraFields": z.lazy(() => ComputedStyleExtraFields) }).passthrough(), "CSS.getComputedStyleForNode.result", "commandResult", { method: "CSS.getComputedStyleForNode" }); +export const GetComputedStyleForNodeCommand = withCdpCommand("CSS.getComputedStyleForNode", GetComputedStyleForNodeParams, GetComputedStyleForNodeResult); export const ResolveValuesParams = withCdpMeta(z.object({ "values": z.array(z.string()), "nodeId": z.lazy(() => DOM.NodeId), "propertyName": z.string().optional(), "pseudoType": z.lazy(() => DOM.PseudoType).optional(), "pseudoIdentifier": z.string().optional() }).passthrough(), "CSS.resolveValues.params", "commandParams", { method: "CSS.resolveValues" }); export const ResolveValuesResult = withCdpMeta(z.object({ "results": z.array(z.string()) }).passthrough(), "CSS.resolveValues.result", "commandResult", { method: "CSS.resolveValues" }); +export const ResolveValuesCommand = withCdpCommand("CSS.resolveValues", ResolveValuesParams, ResolveValuesResult); export const GetLonghandPropertiesParams = withCdpMeta(z.object({ "shorthandName": z.string(), "value": z.string() }).passthrough(), "CSS.getLonghandProperties.params", "commandParams", { method: "CSS.getLonghandProperties" }); export const GetLonghandPropertiesResult = withCdpMeta(z.object({ "longhandProperties": z.array(z.lazy(() => CSSProperty)) }).passthrough(), "CSS.getLonghandProperties.result", "commandResult", { method: "CSS.getLonghandProperties" }); +export const GetLonghandPropertiesCommand = withCdpCommand("CSS.getLonghandProperties", GetLonghandPropertiesParams, GetLonghandPropertiesResult); export const GetInlineStylesForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "CSS.getInlineStylesForNode.params", "commandParams", { method: "CSS.getInlineStylesForNode" }); export const GetInlineStylesForNodeResult = withCdpMeta(z.object({ "inlineStyle": z.lazy(() => CSSStyle).optional(), "attributesStyle": z.lazy(() => CSSStyle).optional() }).passthrough(), "CSS.getInlineStylesForNode.result", "commandResult", { method: "CSS.getInlineStylesForNode" }); +export const GetInlineStylesForNodeCommand = withCdpCommand("CSS.getInlineStylesForNode", GetInlineStylesForNodeParams, GetInlineStylesForNodeResult); export const GetAnimatedStylesForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "CSS.getAnimatedStylesForNode.params", "commandParams", { method: "CSS.getAnimatedStylesForNode" }); export const GetAnimatedStylesForNodeResult = withCdpMeta(z.object({ "animationStyles": z.array(z.lazy(() => CSSAnimationStyle)).optional(), "transitionsStyle": z.lazy(() => CSSStyle).optional(), "inherited": z.array(z.lazy(() => InheritedAnimatedStyleEntry)).optional() }).passthrough(), "CSS.getAnimatedStylesForNode.result", "commandResult", { method: "CSS.getAnimatedStylesForNode" }); +export const GetAnimatedStylesForNodeCommand = withCdpCommand("CSS.getAnimatedStylesForNode", GetAnimatedStylesForNodeParams, GetAnimatedStylesForNodeResult); export const GetMatchedStylesForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "CSS.getMatchedStylesForNode.params", "commandParams", { method: "CSS.getMatchedStylesForNode" }); export const GetMatchedStylesForNodeResult = withCdpMeta(z.object({ "inlineStyle": z.lazy(() => CSSStyle).optional(), "attributesStyle": z.lazy(() => CSSStyle).optional(), "matchedCSSRules": z.array(z.lazy(() => RuleMatch)).optional(), "pseudoElements": z.array(z.lazy(() => PseudoElementMatches)).optional(), "inherited": z.array(z.lazy(() => InheritedStyleEntry)).optional(), "inheritedPseudoElements": z.array(z.lazy(() => InheritedPseudoElementMatches)).optional(), "cssKeyframesRules": z.array(z.lazy(() => CSSKeyframesRule)).optional(), "cssPositionTryRules": z.array(z.lazy(() => CSSPositionTryRule)).optional(), "activePositionFallbackIndex": z.number().int().optional(), "cssPropertyRules": z.array(z.lazy(() => CSSPropertyRule)).optional(), "cssPropertyRegistrations": z.array(z.lazy(() => CSSPropertyRegistration)).optional(), "cssAtRules": z.array(z.lazy(() => CSSAtRule)).optional(), "parentLayoutNodeId": z.lazy(() => DOM.NodeId).optional(), "cssFunctionRules": z.array(z.lazy(() => CSSFunctionRule)).optional() }).passthrough(), "CSS.getMatchedStylesForNode.result", "commandResult", { method: "CSS.getMatchedStylesForNode" }); +export const GetMatchedStylesForNodeCommand = withCdpCommand("CSS.getMatchedStylesForNode", GetMatchedStylesForNodeParams, GetMatchedStylesForNodeResult); export const GetEnvironmentVariablesParams = withCdpMeta(z.object({ }).passthrough(), "CSS.getEnvironmentVariables.params", "commandParams", { method: "CSS.getEnvironmentVariables" }); export const GetEnvironmentVariablesResult = withCdpMeta(z.object({ "environmentVariables": z.record(z.string(), z.unknown()) }).passthrough(), "CSS.getEnvironmentVariables.result", "commandResult", { method: "CSS.getEnvironmentVariables" }); +export const GetEnvironmentVariablesCommand = withCdpCommand("CSS.getEnvironmentVariables", GetEnvironmentVariablesParams, GetEnvironmentVariablesResult); export const GetMediaQueriesParams = withCdpMeta(z.object({ }).passthrough(), "CSS.getMediaQueries.params", "commandParams", { method: "CSS.getMediaQueries" }); export const GetMediaQueriesResult = withCdpMeta(z.object({ "medias": z.array(z.lazy(() => CSSMedia)) }).passthrough(), "CSS.getMediaQueries.result", "commandResult", { method: "CSS.getMediaQueries" }); +export const GetMediaQueriesCommand = withCdpCommand("CSS.getMediaQueries", GetMediaQueriesParams, GetMediaQueriesResult); export const GetPlatformFontsForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "CSS.getPlatformFontsForNode.params", "commandParams", { method: "CSS.getPlatformFontsForNode" }); export const GetPlatformFontsForNodeResult = withCdpMeta(z.object({ "fonts": z.array(z.lazy(() => PlatformFontUsage)) }).passthrough(), "CSS.getPlatformFontsForNode.result", "commandResult", { method: "CSS.getPlatformFontsForNode" }); +export const GetPlatformFontsForNodeCommand = withCdpCommand("CSS.getPlatformFontsForNode", GetPlatformFontsForNodeParams, GetPlatformFontsForNodeResult); export const GetStyleSheetTextParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId) }).passthrough(), "CSS.getStyleSheetText.params", "commandParams", { method: "CSS.getStyleSheetText" }); export const GetStyleSheetTextResult = withCdpMeta(z.object({ "text": z.string() }).passthrough(), "CSS.getStyleSheetText.result", "commandResult", { method: "CSS.getStyleSheetText" }); +export const GetStyleSheetTextCommand = withCdpCommand("CSS.getStyleSheetText", GetStyleSheetTextParams, GetStyleSheetTextResult); export const GetLayersForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "CSS.getLayersForNode.params", "commandParams", { method: "CSS.getLayersForNode" }); export const GetLayersForNodeResult = withCdpMeta(z.object({ "rootLayer": z.lazy(() => CSSLayerData) }).passthrough(), "CSS.getLayersForNode.result", "commandResult", { method: "CSS.getLayersForNode" }); +export const GetLayersForNodeCommand = withCdpCommand("CSS.getLayersForNode", GetLayersForNodeParams, GetLayersForNodeResult); export const GetLocationForSelectorParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "selectorText": z.string() }).passthrough(), "CSS.getLocationForSelector.params", "commandParams", { method: "CSS.getLocationForSelector" }); export const GetLocationForSelectorResult = withCdpMeta(z.object({ "ranges": z.array(z.lazy(() => SourceRange)) }).passthrough(), "CSS.getLocationForSelector.result", "commandResult", { method: "CSS.getLocationForSelector" }); +export const GetLocationForSelectorCommand = withCdpCommand("CSS.getLocationForSelector", GetLocationForSelectorParams, GetLocationForSelectorResult); export const TrackComputedStyleUpdatesForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId).optional() }).passthrough(), "CSS.trackComputedStyleUpdatesForNode.params", "commandParams", { method: "CSS.trackComputedStyleUpdatesForNode" }); export const TrackComputedStyleUpdatesForNodeResult = withCdpMeta(z.object({ }).passthrough(), "CSS.trackComputedStyleUpdatesForNode.result", "commandResult", { method: "CSS.trackComputedStyleUpdatesForNode" }); +export const TrackComputedStyleUpdatesForNodeCommand = withCdpCommand("CSS.trackComputedStyleUpdatesForNode", TrackComputedStyleUpdatesForNodeParams, TrackComputedStyleUpdatesForNodeResult); export const TrackComputedStyleUpdatesParams = withCdpMeta(z.object({ "propertiesToTrack": z.array(z.lazy(() => CSSComputedStyleProperty)) }).passthrough(), "CSS.trackComputedStyleUpdates.params", "commandParams", { method: "CSS.trackComputedStyleUpdates" }); export const TrackComputedStyleUpdatesResult = withCdpMeta(z.object({ }).passthrough(), "CSS.trackComputedStyleUpdates.result", "commandResult", { method: "CSS.trackComputedStyleUpdates" }); +export const TrackComputedStyleUpdatesCommand = withCdpCommand("CSS.trackComputedStyleUpdates", TrackComputedStyleUpdatesParams, TrackComputedStyleUpdatesResult); export const TakeComputedStyleUpdatesParams = withCdpMeta(z.object({ }).passthrough(), "CSS.takeComputedStyleUpdates.params", "commandParams", { method: "CSS.takeComputedStyleUpdates" }); export const TakeComputedStyleUpdatesResult = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => DOM.NodeId)) }).passthrough(), "CSS.takeComputedStyleUpdates.result", "commandResult", { method: "CSS.takeComputedStyleUpdates" }); +export const TakeComputedStyleUpdatesCommand = withCdpCommand("CSS.takeComputedStyleUpdates", TakeComputedStyleUpdatesParams, TakeComputedStyleUpdatesResult); export const SetEffectivePropertyValueForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId), "propertyName": z.string(), "value": z.string() }).passthrough(), "CSS.setEffectivePropertyValueForNode.params", "commandParams", { method: "CSS.setEffectivePropertyValueForNode" }); export const SetEffectivePropertyValueForNodeResult = withCdpMeta(z.object({ }).passthrough(), "CSS.setEffectivePropertyValueForNode.result", "commandResult", { method: "CSS.setEffectivePropertyValueForNode" }); +export const SetEffectivePropertyValueForNodeCommand = withCdpCommand("CSS.setEffectivePropertyValueForNode", SetEffectivePropertyValueForNodeParams, SetEffectivePropertyValueForNodeResult); export const SetPropertyRulePropertyNameParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "propertyName": z.string() }).passthrough(), "CSS.setPropertyRulePropertyName.params", "commandParams", { method: "CSS.setPropertyRulePropertyName" }); export const SetPropertyRulePropertyNameResult = withCdpMeta(z.object({ "propertyName": z.lazy(() => Value) }).passthrough(), "CSS.setPropertyRulePropertyName.result", "commandResult", { method: "CSS.setPropertyRulePropertyName" }); +export const SetPropertyRulePropertyNameCommand = withCdpCommand("CSS.setPropertyRulePropertyName", SetPropertyRulePropertyNameParams, SetPropertyRulePropertyNameResult); export const SetKeyframeKeyParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "keyText": z.string() }).passthrough(), "CSS.setKeyframeKey.params", "commandParams", { method: "CSS.setKeyframeKey" }); export const SetKeyframeKeyResult = withCdpMeta(z.object({ "keyText": z.lazy(() => Value) }).passthrough(), "CSS.setKeyframeKey.result", "commandResult", { method: "CSS.setKeyframeKey" }); +export const SetKeyframeKeyCommand = withCdpCommand("CSS.setKeyframeKey", SetKeyframeKeyParams, SetKeyframeKeyResult); export const SetMediaTextParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "text": z.string() }).passthrough(), "CSS.setMediaText.params", "commandParams", { method: "CSS.setMediaText" }); export const SetMediaTextResult = withCdpMeta(z.object({ "media": z.lazy(() => CSSMedia) }).passthrough(), "CSS.setMediaText.result", "commandResult", { method: "CSS.setMediaText" }); +export const SetMediaTextCommand = withCdpCommand("CSS.setMediaText", SetMediaTextParams, SetMediaTextResult); export const SetContainerQueryTextParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "text": z.string() }).passthrough(), "CSS.setContainerQueryText.params", "commandParams", { method: "CSS.setContainerQueryText" }); export const SetContainerQueryTextResult = withCdpMeta(z.object({ "containerQuery": z.lazy(() => CSSContainerQuery) }).passthrough(), "CSS.setContainerQueryText.result", "commandResult", { method: "CSS.setContainerQueryText" }); +export const SetContainerQueryTextCommand = withCdpCommand("CSS.setContainerQueryText", SetContainerQueryTextParams, SetContainerQueryTextResult); export const SetSupportsTextParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "text": z.string() }).passthrough(), "CSS.setSupportsText.params", "commandParams", { method: "CSS.setSupportsText" }); export const SetSupportsTextResult = withCdpMeta(z.object({ "supports": z.lazy(() => CSSSupports) }).passthrough(), "CSS.setSupportsText.result", "commandResult", { method: "CSS.setSupportsText" }); +export const SetSupportsTextCommand = withCdpCommand("CSS.setSupportsText", SetSupportsTextParams, SetSupportsTextResult); export const SetNavigationTextParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "text": z.string() }).passthrough(), "CSS.setNavigationText.params", "commandParams", { method: "CSS.setNavigationText" }); export const SetNavigationTextResult = withCdpMeta(z.object({ "navigation": z.lazy(() => CSSNavigation) }).passthrough(), "CSS.setNavigationText.result", "commandResult", { method: "CSS.setNavigationText" }); +export const SetNavigationTextCommand = withCdpCommand("CSS.setNavigationText", SetNavigationTextParams, SetNavigationTextResult); export const SetScopeTextParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "text": z.string() }).passthrough(), "CSS.setScopeText.params", "commandParams", { method: "CSS.setScopeText" }); export const SetScopeTextResult = withCdpMeta(z.object({ "scope": z.lazy(() => CSSScope) }).passthrough(), "CSS.setScopeText.result", "commandResult", { method: "CSS.setScopeText" }); +export const SetScopeTextCommand = withCdpCommand("CSS.setScopeText", SetScopeTextParams, SetScopeTextResult); export const SetRuleSelectorParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "range": z.lazy(() => SourceRange), "selector": z.string() }).passthrough(), "CSS.setRuleSelector.params", "commandParams", { method: "CSS.setRuleSelector" }); export const SetRuleSelectorResult = withCdpMeta(z.object({ "selectorList": z.lazy(() => SelectorList) }).passthrough(), "CSS.setRuleSelector.result", "commandResult", { method: "CSS.setRuleSelector" }); +export const SetRuleSelectorCommand = withCdpCommand("CSS.setRuleSelector", SetRuleSelectorParams, SetRuleSelectorResult); export const SetStyleSheetTextParams = withCdpMeta(z.object({ "styleSheetId": z.lazy(() => DOM.StyleSheetId), "text": z.string() }).passthrough(), "CSS.setStyleSheetText.params", "commandParams", { method: "CSS.setStyleSheetText" }); export const SetStyleSheetTextResult = withCdpMeta(z.object({ "sourceMapURL": z.string().optional() }).passthrough(), "CSS.setStyleSheetText.result", "commandResult", { method: "CSS.setStyleSheetText" }); +export const SetStyleSheetTextCommand = withCdpCommand("CSS.setStyleSheetText", SetStyleSheetTextParams, SetStyleSheetTextResult); export const SetStyleTextsParams = withCdpMeta(z.object({ "edits": z.array(z.lazy(() => StyleDeclarationEdit)), "nodeForPropertySyntaxValidation": z.lazy(() => DOM.NodeId).optional() }).passthrough(), "CSS.setStyleTexts.params", "commandParams", { method: "CSS.setStyleTexts" }); export const SetStyleTextsResult = withCdpMeta(z.object({ "styles": z.array(z.lazy(() => CSSStyle)) }).passthrough(), "CSS.setStyleTexts.result", "commandResult", { method: "CSS.setStyleTexts" }); +export const SetStyleTextsCommand = withCdpCommand("CSS.setStyleTexts", SetStyleTextsParams, SetStyleTextsResult); export const StartRuleUsageTrackingParams = withCdpMeta(z.object({ }).passthrough(), "CSS.startRuleUsageTracking.params", "commandParams", { method: "CSS.startRuleUsageTracking" }); export const StartRuleUsageTrackingResult = withCdpMeta(z.object({ }).passthrough(), "CSS.startRuleUsageTracking.result", "commandResult", { method: "CSS.startRuleUsageTracking" }); +export const StartRuleUsageTrackingCommand = withCdpCommand("CSS.startRuleUsageTracking", StartRuleUsageTrackingParams, StartRuleUsageTrackingResult); export const StopRuleUsageTrackingParams = withCdpMeta(z.object({ }).passthrough(), "CSS.stopRuleUsageTracking.params", "commandParams", { method: "CSS.stopRuleUsageTracking" }); export const StopRuleUsageTrackingResult = withCdpMeta(z.object({ "ruleUsage": z.array(z.lazy(() => RuleUsage)) }).passthrough(), "CSS.stopRuleUsageTracking.result", "commandResult", { method: "CSS.stopRuleUsageTracking" }); +export const StopRuleUsageTrackingCommand = withCdpCommand("CSS.stopRuleUsageTracking", StopRuleUsageTrackingParams, StopRuleUsageTrackingResult); export const TakeCoverageDeltaParams = withCdpMeta(z.object({ }).passthrough(), "CSS.takeCoverageDelta.params", "commandParams", { method: "CSS.takeCoverageDelta" }); export const TakeCoverageDeltaResult = withCdpMeta(z.object({ "coverage": z.array(z.lazy(() => RuleUsage)), "timestamp": z.number() }).passthrough(), "CSS.takeCoverageDelta.result", "commandResult", { method: "CSS.takeCoverageDelta" }); +export const TakeCoverageDeltaCommand = withCdpCommand("CSS.takeCoverageDelta", TakeCoverageDeltaParams, TakeCoverageDeltaResult); export const SetLocalFontsEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "CSS.setLocalFontsEnabled.params", "commandParams", { method: "CSS.setLocalFontsEnabled" }); export const SetLocalFontsEnabledResult = withCdpMeta(z.object({ }).passthrough(), "CSS.setLocalFontsEnabled.result", "commandResult", { method: "CSS.setLocalFontsEnabled" }); +export const SetLocalFontsEnabledCommand = withCdpCommand("CSS.setLocalFontsEnabled", SetLocalFontsEnabledParams, SetLocalFontsEnabledResult); export const FontsUpdatedEvent = withCdpMeta(z.object({ "font": z.lazy(() => FontFace).optional() }).passthrough(), "CSS.fontsUpdated", "event", { phase: "event" }); export const MediaQueryResultChangedEvent = withCdpMeta(z.object({ }).passthrough(), "CSS.mediaQueryResultChanged", "event", { phase: "event" }); export const StyleSheetAddedEvent = withCdpMeta(z.object({ "header": z.lazy(() => CSSStyleSheetHeader) }).passthrough(), "CSS.styleSheetAdded", "event", { phase: "event" }); @@ -263,44 +301,44 @@ export const zod = { ComputedStyleUpdatedEvent: ComputedStyleUpdatedEvent, } as const; export const commands = { - "CSS.addRule": { params: AddRuleParams, result: AddRuleResult }, - "CSS.collectClassNames": { params: CollectClassNamesParams, result: CollectClassNamesResult }, - "CSS.createStyleSheet": { params: CreateStyleSheetParams, result: CreateStyleSheetResult }, - "CSS.disable": { params: DisableParams, result: DisableResult }, - "CSS.enable": { params: EnableParams, result: EnableResult }, - "CSS.forcePseudoState": { params: ForcePseudoStateParams, result: ForcePseudoStateResult }, - "CSS.forceStartingStyle": { params: ForceStartingStyleParams, result: ForceStartingStyleResult }, - "CSS.getBackgroundColors": { params: GetBackgroundColorsParams, result: GetBackgroundColorsResult }, - "CSS.getComputedStyleForNode": { params: GetComputedStyleForNodeParams, result: GetComputedStyleForNodeResult }, - "CSS.resolveValues": { params: ResolveValuesParams, result: ResolveValuesResult }, - "CSS.getLonghandProperties": { params: GetLonghandPropertiesParams, result: GetLonghandPropertiesResult }, - "CSS.getInlineStylesForNode": { params: GetInlineStylesForNodeParams, result: GetInlineStylesForNodeResult }, - "CSS.getAnimatedStylesForNode": { params: GetAnimatedStylesForNodeParams, result: GetAnimatedStylesForNodeResult }, - "CSS.getMatchedStylesForNode": { params: GetMatchedStylesForNodeParams, result: GetMatchedStylesForNodeResult }, - "CSS.getEnvironmentVariables": { params: GetEnvironmentVariablesParams, result: GetEnvironmentVariablesResult }, - "CSS.getMediaQueries": { params: GetMediaQueriesParams, result: GetMediaQueriesResult }, - "CSS.getPlatformFontsForNode": { params: GetPlatformFontsForNodeParams, result: GetPlatformFontsForNodeResult }, - "CSS.getStyleSheetText": { params: GetStyleSheetTextParams, result: GetStyleSheetTextResult }, - "CSS.getLayersForNode": { params: GetLayersForNodeParams, result: GetLayersForNodeResult }, - "CSS.getLocationForSelector": { params: GetLocationForSelectorParams, result: GetLocationForSelectorResult }, - "CSS.trackComputedStyleUpdatesForNode": { params: TrackComputedStyleUpdatesForNodeParams, result: TrackComputedStyleUpdatesForNodeResult }, - "CSS.trackComputedStyleUpdates": { params: TrackComputedStyleUpdatesParams, result: TrackComputedStyleUpdatesResult }, - "CSS.takeComputedStyleUpdates": { params: TakeComputedStyleUpdatesParams, result: TakeComputedStyleUpdatesResult }, - "CSS.setEffectivePropertyValueForNode": { params: SetEffectivePropertyValueForNodeParams, result: SetEffectivePropertyValueForNodeResult }, - "CSS.setPropertyRulePropertyName": { params: SetPropertyRulePropertyNameParams, result: SetPropertyRulePropertyNameResult }, - "CSS.setKeyframeKey": { params: SetKeyframeKeyParams, result: SetKeyframeKeyResult }, - "CSS.setMediaText": { params: SetMediaTextParams, result: SetMediaTextResult }, - "CSS.setContainerQueryText": { params: SetContainerQueryTextParams, result: SetContainerQueryTextResult }, - "CSS.setSupportsText": { params: SetSupportsTextParams, result: SetSupportsTextResult }, - "CSS.setNavigationText": { params: SetNavigationTextParams, result: SetNavigationTextResult }, - "CSS.setScopeText": { params: SetScopeTextParams, result: SetScopeTextResult }, - "CSS.setRuleSelector": { params: SetRuleSelectorParams, result: SetRuleSelectorResult }, - "CSS.setStyleSheetText": { params: SetStyleSheetTextParams, result: SetStyleSheetTextResult }, - "CSS.setStyleTexts": { params: SetStyleTextsParams, result: SetStyleTextsResult }, - "CSS.startRuleUsageTracking": { params: StartRuleUsageTrackingParams, result: StartRuleUsageTrackingResult }, - "CSS.stopRuleUsageTracking": { params: StopRuleUsageTrackingParams, result: StopRuleUsageTrackingResult }, - "CSS.takeCoverageDelta": { params: TakeCoverageDeltaParams, result: TakeCoverageDeltaResult }, - "CSS.setLocalFontsEnabled": { params: SetLocalFontsEnabledParams, result: SetLocalFontsEnabledResult }, + "CSS.addRule": AddRuleCommand, + "CSS.collectClassNames": CollectClassNamesCommand, + "CSS.createStyleSheet": CreateStyleSheetCommand, + "CSS.disable": DisableCommand, + "CSS.enable": EnableCommand, + "CSS.forcePseudoState": ForcePseudoStateCommand, + "CSS.forceStartingStyle": ForceStartingStyleCommand, + "CSS.getBackgroundColors": GetBackgroundColorsCommand, + "CSS.getComputedStyleForNode": GetComputedStyleForNodeCommand, + "CSS.resolveValues": ResolveValuesCommand, + "CSS.getLonghandProperties": GetLonghandPropertiesCommand, + "CSS.getInlineStylesForNode": GetInlineStylesForNodeCommand, + "CSS.getAnimatedStylesForNode": GetAnimatedStylesForNodeCommand, + "CSS.getMatchedStylesForNode": GetMatchedStylesForNodeCommand, + "CSS.getEnvironmentVariables": GetEnvironmentVariablesCommand, + "CSS.getMediaQueries": GetMediaQueriesCommand, + "CSS.getPlatformFontsForNode": GetPlatformFontsForNodeCommand, + "CSS.getStyleSheetText": GetStyleSheetTextCommand, + "CSS.getLayersForNode": GetLayersForNodeCommand, + "CSS.getLocationForSelector": GetLocationForSelectorCommand, + "CSS.trackComputedStyleUpdatesForNode": TrackComputedStyleUpdatesForNodeCommand, + "CSS.trackComputedStyleUpdates": TrackComputedStyleUpdatesCommand, + "CSS.takeComputedStyleUpdates": TakeComputedStyleUpdatesCommand, + "CSS.setEffectivePropertyValueForNode": SetEffectivePropertyValueForNodeCommand, + "CSS.setPropertyRulePropertyName": SetPropertyRulePropertyNameCommand, + "CSS.setKeyframeKey": SetKeyframeKeyCommand, + "CSS.setMediaText": SetMediaTextCommand, + "CSS.setContainerQueryText": SetContainerQueryTextCommand, + "CSS.setSupportsText": SetSupportsTextCommand, + "CSS.setNavigationText": SetNavigationTextCommand, + "CSS.setScopeText": SetScopeTextCommand, + "CSS.setRuleSelector": SetRuleSelectorCommand, + "CSS.setStyleSheetText": SetStyleSheetTextCommand, + "CSS.setStyleTexts": SetStyleTextsCommand, + "CSS.startRuleUsageTracking": StartRuleUsageTrackingCommand, + "CSS.stopRuleUsageTracking": StopRuleUsageTrackingCommand, + "CSS.takeCoverageDelta": TakeCoverageDeltaCommand, + "CSS.setLocalFontsEnabled": SetLocalFontsEnabledCommand, } as const; export const events = { "CSS.fontsUpdated": FontsUpdatedEvent, diff --git a/js/src/types/generated/zod/CacheStorage.ts b/js/src/types/generated/zod/CacheStorage.ts index 817a252e..ea4fef1b 100644 --- a/js/src/types/generated/zod/CacheStorage.ts +++ b/js/src/types/generated/zod/CacheStorage.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Storage from "./Storage.js"; export const CacheId = withCdpMeta(z.string(), "CacheStorage.CacheId", "type"); @@ -12,14 +12,19 @@ export const Header = withCdpMeta(z.object({ "name": z.string(), "value": z.stri export const CachedResponse = withCdpMeta(z.object({ "body": z.string() }).passthrough(), "CacheStorage.CachedResponse", "type"); export const DeleteCacheParams = withCdpMeta(z.object({ "cacheId": z.lazy(() => CacheId) }).passthrough(), "CacheStorage.deleteCache.params", "commandParams", { method: "CacheStorage.deleteCache" }); export const DeleteCacheResult = withCdpMeta(z.object({ }).passthrough(), "CacheStorage.deleteCache.result", "commandResult", { method: "CacheStorage.deleteCache" }); +export const DeleteCacheCommand = withCdpCommand("CacheStorage.deleteCache", DeleteCacheParams, DeleteCacheResult); export const DeleteEntryParams = withCdpMeta(z.object({ "cacheId": z.lazy(() => CacheId), "request": z.string() }).passthrough(), "CacheStorage.deleteEntry.params", "commandParams", { method: "CacheStorage.deleteEntry" }); export const DeleteEntryResult = withCdpMeta(z.object({ }).passthrough(), "CacheStorage.deleteEntry.result", "commandResult", { method: "CacheStorage.deleteEntry" }); +export const DeleteEntryCommand = withCdpCommand("CacheStorage.deleteEntry", DeleteEntryParams, DeleteEntryResult); export const RequestCacheNamesParams = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.string().optional(), "storageBucket": z.lazy(() => Storage.StorageBucket).optional() }).passthrough().refine((value) => [value.securityOrigin, value.storageKey, value.storageBucket].filter((item) => item !== undefined).length === 1, { message: "Exactly one of securityOrigin, storageKey, or storageBucket must be provided." }), "CacheStorage.requestCacheNames.params", "commandParams", { method: "CacheStorage.requestCacheNames" }); export const RequestCacheNamesResult = withCdpMeta(z.object({ "caches": z.array(z.lazy(() => Cache)) }).passthrough(), "CacheStorage.requestCacheNames.result", "commandResult", { method: "CacheStorage.requestCacheNames" }); +export const RequestCacheNamesCommand = withCdpCommand("CacheStorage.requestCacheNames", RequestCacheNamesParams, RequestCacheNamesResult); export const RequestCachedResponseParams = withCdpMeta(z.object({ "cacheId": z.lazy(() => CacheId), "requestURL": z.string(), "requestHeaders": z.array(z.lazy(() => Header)) }).passthrough(), "CacheStorage.requestCachedResponse.params", "commandParams", { method: "CacheStorage.requestCachedResponse" }); export const RequestCachedResponseResult = withCdpMeta(z.object({ "response": z.lazy(() => CachedResponse) }).passthrough(), "CacheStorage.requestCachedResponse.result", "commandResult", { method: "CacheStorage.requestCachedResponse" }); +export const RequestCachedResponseCommand = withCdpCommand("CacheStorage.requestCachedResponse", RequestCachedResponseParams, RequestCachedResponseResult); export const RequestEntriesParams = withCdpMeta(z.object({ "cacheId": z.lazy(() => CacheId), "skipCount": z.number().int().optional(), "pageSize": z.number().int().optional(), "pathFilter": z.string().optional() }).passthrough(), "CacheStorage.requestEntries.params", "commandParams", { method: "CacheStorage.requestEntries" }); export const RequestEntriesResult = withCdpMeta(z.object({ "cacheDataEntries": z.array(z.lazy(() => DataEntry)), "returnCount": z.number() }).passthrough(), "CacheStorage.requestEntries.result", "commandResult", { method: "CacheStorage.requestEntries" }); +export const RequestEntriesCommand = withCdpCommand("CacheStorage.requestEntries", RequestEntriesParams, RequestEntriesResult); export const zod = { CacheId: CacheId, @@ -40,11 +45,11 @@ export const zod = { RequestEntriesResult: RequestEntriesResult, } as const; export const commands = { - "CacheStorage.deleteCache": { params: DeleteCacheParams, result: DeleteCacheResult }, - "CacheStorage.deleteEntry": { params: DeleteEntryParams, result: DeleteEntryResult }, - "CacheStorage.requestCacheNames": { params: RequestCacheNamesParams, result: RequestCacheNamesResult }, - "CacheStorage.requestCachedResponse": { params: RequestCachedResponseParams, result: RequestCachedResponseResult }, - "CacheStorage.requestEntries": { params: RequestEntriesParams, result: RequestEntriesResult }, + "CacheStorage.deleteCache": DeleteCacheCommand, + "CacheStorage.deleteEntry": DeleteEntryCommand, + "CacheStorage.requestCacheNames": RequestCacheNamesCommand, + "CacheStorage.requestCachedResponse": RequestCachedResponseCommand, + "CacheStorage.requestEntries": RequestEntriesCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/Cast.ts b/js/src/types/generated/zod/Cast.ts index e9f25ddf..49c54afc 100644 --- a/js/src/types/generated/zod/Cast.ts +++ b/js/src/types/generated/zod/Cast.ts @@ -1,21 +1,27 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const Sink = withCdpMeta(z.object({ "name": z.string(), "id": z.string(), "session": z.string().optional() }).passthrough(), "Cast.Sink", "type"); export const EnableParams = withCdpMeta(z.object({ "presentationUrl": z.string().optional() }).passthrough(), "Cast.enable.params", "commandParams", { method: "Cast.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Cast.enable.result", "commandResult", { method: "Cast.enable" }); +export const EnableCommand = withCdpCommand("Cast.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Cast.disable.params", "commandParams", { method: "Cast.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Cast.disable.result", "commandResult", { method: "Cast.disable" }); +export const DisableCommand = withCdpCommand("Cast.disable", DisableParams, DisableResult); export const SetSinkToUseParams = withCdpMeta(z.object({ "sinkName": z.string() }).passthrough(), "Cast.setSinkToUse.params", "commandParams", { method: "Cast.setSinkToUse" }); export const SetSinkToUseResult = withCdpMeta(z.object({ }).passthrough(), "Cast.setSinkToUse.result", "commandResult", { method: "Cast.setSinkToUse" }); +export const SetSinkToUseCommand = withCdpCommand("Cast.setSinkToUse", SetSinkToUseParams, SetSinkToUseResult); export const StartDesktopMirroringParams = withCdpMeta(z.object({ "sinkName": z.string() }).passthrough(), "Cast.startDesktopMirroring.params", "commandParams", { method: "Cast.startDesktopMirroring" }); export const StartDesktopMirroringResult = withCdpMeta(z.object({ }).passthrough(), "Cast.startDesktopMirroring.result", "commandResult", { method: "Cast.startDesktopMirroring" }); +export const StartDesktopMirroringCommand = withCdpCommand("Cast.startDesktopMirroring", StartDesktopMirroringParams, StartDesktopMirroringResult); export const StartTabMirroringParams = withCdpMeta(z.object({ "sinkName": z.string() }).passthrough(), "Cast.startTabMirroring.params", "commandParams", { method: "Cast.startTabMirroring" }); export const StartTabMirroringResult = withCdpMeta(z.object({ }).passthrough(), "Cast.startTabMirroring.result", "commandResult", { method: "Cast.startTabMirroring" }); +export const StartTabMirroringCommand = withCdpCommand("Cast.startTabMirroring", StartTabMirroringParams, StartTabMirroringResult); export const StopCastingParams = withCdpMeta(z.object({ "sinkName": z.string() }).passthrough(), "Cast.stopCasting.params", "commandParams", { method: "Cast.stopCasting" }); export const StopCastingResult = withCdpMeta(z.object({ }).passthrough(), "Cast.stopCasting.result", "commandResult", { method: "Cast.stopCasting" }); +export const StopCastingCommand = withCdpCommand("Cast.stopCasting", StopCastingParams, StopCastingResult); export const SinksUpdatedEvent = withCdpMeta(z.object({ "sinks": z.array(z.lazy(() => Sink)) }).passthrough(), "Cast.sinksUpdated", "event", { phase: "event" }); export const IssueUpdatedEvent = withCdpMeta(z.object({ "issueMessage": z.string() }).passthrough(), "Cast.issueUpdated", "event", { phase: "event" }); @@ -37,12 +43,12 @@ export const zod = { IssueUpdatedEvent: IssueUpdatedEvent, } as const; export const commands = { - "Cast.enable": { params: EnableParams, result: EnableResult }, - "Cast.disable": { params: DisableParams, result: DisableResult }, - "Cast.setSinkToUse": { params: SetSinkToUseParams, result: SetSinkToUseResult }, - "Cast.startDesktopMirroring": { params: StartDesktopMirroringParams, result: StartDesktopMirroringResult }, - "Cast.startTabMirroring": { params: StartTabMirroringParams, result: StartTabMirroringResult }, - "Cast.stopCasting": { params: StopCastingParams, result: StopCastingResult }, + "Cast.enable": EnableCommand, + "Cast.disable": DisableCommand, + "Cast.setSinkToUse": SetSinkToUseCommand, + "Cast.startDesktopMirroring": StartDesktopMirroringCommand, + "Cast.startTabMirroring": StartTabMirroringCommand, + "Cast.stopCasting": StopCastingCommand, } as const; export const events = { "Cast.sinksUpdated": SinksUpdatedEvent, diff --git a/js/src/types/generated/zod/Console.ts b/js/src/types/generated/zod/Console.ts index d9579424..723be277 100644 --- a/js/src/types/generated/zod/Console.ts +++ b/js/src/types/generated/zod/Console.ts @@ -1,15 +1,18 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const ConsoleMessage = withCdpMeta(z.object({ "source": z.enum(["xml", "javascript", "network", "console-api", "storage", "appcache", "rendering", "security", "other", "deprecation", "worker"]), "level": z.enum(["log", "warning", "error", "debug", "info"]), "text": z.string(), "url": z.string().optional(), "line": z.number().int().optional(), "column": z.number().int().optional() }).passthrough(), "Console.ConsoleMessage", "type"); export const ClearMessagesParams = withCdpMeta(z.object({ }).passthrough(), "Console.clearMessages.params", "commandParams", { method: "Console.clearMessages" }); export const ClearMessagesResult = withCdpMeta(z.object({ }).passthrough(), "Console.clearMessages.result", "commandResult", { method: "Console.clearMessages" }); +export const ClearMessagesCommand = withCdpCommand("Console.clearMessages", ClearMessagesParams, ClearMessagesResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Console.disable.params", "commandParams", { method: "Console.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Console.disable.result", "commandResult", { method: "Console.disable" }); +export const DisableCommand = withCdpCommand("Console.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Console.enable.params", "commandParams", { method: "Console.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Console.enable.result", "commandResult", { method: "Console.enable" }); +export const EnableCommand = withCdpCommand("Console.enable", EnableParams, EnableResult); export const MessageAddedEvent = withCdpMeta(z.object({ "message": z.lazy(() => ConsoleMessage) }).passthrough(), "Console.messageAdded", "event", { phase: "event" }); export const zod = { @@ -23,9 +26,9 @@ export const zod = { MessageAddedEvent: MessageAddedEvent, } as const; export const commands = { - "Console.clearMessages": { params: ClearMessagesParams, result: ClearMessagesResult }, - "Console.disable": { params: DisableParams, result: DisableResult }, - "Console.enable": { params: EnableParams, result: EnableResult }, + "Console.clearMessages": ClearMessagesCommand, + "Console.disable": DisableCommand, + "Console.enable": EnableCommand, } as const; export const events = { "Console.messageAdded": MessageAddedEvent, diff --git a/js/src/types/generated/zod/CrashReportContext.ts b/js/src/types/generated/zod/CrashReportContext.ts index 75dc0138..965715f8 100644 --- a/js/src/types/generated/zod/CrashReportContext.ts +++ b/js/src/types/generated/zod/CrashReportContext.ts @@ -1,12 +1,13 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Page from "./Page.js"; export const CrashReportContextEntry = withCdpMeta(z.object({ "key": z.string(), "value": z.string(), "frameId": z.lazy(() => Page.FrameId) }).passthrough(), "CrashReportContext.CrashReportContextEntry", "type"); export const GetEntriesParams = withCdpMeta(z.object({ }).passthrough(), "CrashReportContext.getEntries.params", "commandParams", { method: "CrashReportContext.getEntries" }); export const GetEntriesResult = withCdpMeta(z.object({ "entries": z.array(z.lazy(() => CrashReportContextEntry)) }).passthrough(), "CrashReportContext.getEntries.result", "commandResult", { method: "CrashReportContext.getEntries" }); +export const GetEntriesCommand = withCdpCommand("CrashReportContext.getEntries", GetEntriesParams, GetEntriesResult); export const zod = { CrashReportContextEntry: CrashReportContextEntry, @@ -14,7 +15,7 @@ export const zod = { GetEntriesResult: GetEntriesResult, } as const; export const commands = { - "CrashReportContext.getEntries": { params: GetEntriesParams, result: GetEntriesResult }, + "CrashReportContext.getEntries": GetEntriesCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/DOM.ts b/js/src/types/generated/zod/DOM.ts index 0058ad51..72f2db8d 100644 --- a/js/src/types/generated/zod/DOM.ts +++ b/js/src/types/generated/zod/DOM.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Network from "./Network.js"; import * as Page from "./Page.js"; import * as Runtime from "./Runtime.js"; @@ -26,110 +26,163 @@ export const Rect = withCdpMeta(z.object({ "x": z.number(), "y": z.number(), "wi export const CSSComputedStyleProperty = withCdpMeta(z.object({ "name": z.string(), "value": z.string() }).passthrough(), "DOM.CSSComputedStyleProperty", "type"); export const CollectClassNamesFromSubtreeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.collectClassNamesFromSubtree.params", "commandParams", { method: "DOM.collectClassNamesFromSubtree" }); export const CollectClassNamesFromSubtreeResult = withCdpMeta(z.object({ "classNames": z.array(z.string()) }).passthrough(), "DOM.collectClassNamesFromSubtree.result", "commandResult", { method: "DOM.collectClassNamesFromSubtree" }); +export const CollectClassNamesFromSubtreeCommand = withCdpCommand("DOM.collectClassNamesFromSubtree", CollectClassNamesFromSubtreeParams, CollectClassNamesFromSubtreeResult); export const CopyToParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "targetNodeId": z.lazy(() => NodeId), "insertBeforeNodeId": z.lazy(() => NodeId).optional() }).passthrough(), "DOM.copyTo.params", "commandParams", { method: "DOM.copyTo" }); export const CopyToResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.copyTo.result", "commandResult", { method: "DOM.copyTo" }); +export const CopyToCommand = withCdpCommand("DOM.copyTo", CopyToParams, CopyToResult); export const DescribeNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId).optional(), "backendNodeId": z.lazy(() => BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional(), "depth": z.number().int().optional(), "pierce": z.boolean().optional() }).passthrough(), "DOM.describeNode.params", "commandParams", { method: "DOM.describeNode" }); export const DescribeNodeResult = withCdpMeta(z.object({ "node": z.lazy(() => Node) }).passthrough(), "DOM.describeNode.result", "commandResult", { method: "DOM.describeNode" }); +export const DescribeNodeCommand = withCdpCommand("DOM.describeNode", DescribeNodeParams, DescribeNodeResult); export const ScrollIntoViewIfNeededParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId).optional(), "backendNodeId": z.lazy(() => BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional(), "rect": z.lazy(() => Rect).optional() }).passthrough(), "DOM.scrollIntoViewIfNeeded.params", "commandParams", { method: "DOM.scrollIntoViewIfNeeded" }); export const ScrollIntoViewIfNeededResult = withCdpMeta(z.object({ }).passthrough(), "DOM.scrollIntoViewIfNeeded.result", "commandResult", { method: "DOM.scrollIntoViewIfNeeded" }); +export const ScrollIntoViewIfNeededCommand = withCdpCommand("DOM.scrollIntoViewIfNeeded", ScrollIntoViewIfNeededParams, ScrollIntoViewIfNeededResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "DOM.disable.params", "commandParams", { method: "DOM.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "DOM.disable.result", "commandResult", { method: "DOM.disable" }); +export const DisableCommand = withCdpCommand("DOM.disable", DisableParams, DisableResult); export const DiscardSearchResultsParams = withCdpMeta(z.object({ "searchId": z.string() }).passthrough(), "DOM.discardSearchResults.params", "commandParams", { method: "DOM.discardSearchResults" }); export const DiscardSearchResultsResult = withCdpMeta(z.object({ }).passthrough(), "DOM.discardSearchResults.result", "commandResult", { method: "DOM.discardSearchResults" }); +export const DiscardSearchResultsCommand = withCdpCommand("DOM.discardSearchResults", DiscardSearchResultsParams, DiscardSearchResultsResult); export const EnableParams = withCdpMeta(z.object({ "includeWhitespace": z.enum(["none", "all"]).optional() }).passthrough(), "DOM.enable.params", "commandParams", { method: "DOM.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "DOM.enable.result", "commandResult", { method: "DOM.enable" }); +export const EnableCommand = withCdpCommand("DOM.enable", EnableParams, EnableResult); export const FocusParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId).optional(), "backendNodeId": z.lazy(() => BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional() }).passthrough(), "DOM.focus.params", "commandParams", { method: "DOM.focus" }); export const FocusResult = withCdpMeta(z.object({ }).passthrough(), "DOM.focus.result", "commandResult", { method: "DOM.focus" }); +export const FocusCommand = withCdpCommand("DOM.focus", FocusParams, FocusResult); export const GetAttributesParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.getAttributes.params", "commandParams", { method: "DOM.getAttributes" }); export const GetAttributesResult = withCdpMeta(z.object({ "attributes": z.array(z.string()) }).passthrough(), "DOM.getAttributes.result", "commandResult", { method: "DOM.getAttributes" }); +export const GetAttributesCommand = withCdpCommand("DOM.getAttributes", GetAttributesParams, GetAttributesResult); export const GetBoxModelParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId).optional(), "backendNodeId": z.lazy(() => BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional() }).passthrough(), "DOM.getBoxModel.params", "commandParams", { method: "DOM.getBoxModel" }); export const GetBoxModelResult = withCdpMeta(z.object({ "model": z.lazy(() => BoxModel) }).passthrough(), "DOM.getBoxModel.result", "commandResult", { method: "DOM.getBoxModel" }); +export const GetBoxModelCommand = withCdpCommand("DOM.getBoxModel", GetBoxModelParams, GetBoxModelResult); export const GetContentQuadsParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId).optional(), "backendNodeId": z.lazy(() => BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional() }).passthrough(), "DOM.getContentQuads.params", "commandParams", { method: "DOM.getContentQuads" }); export const GetContentQuadsResult = withCdpMeta(z.object({ "quads": z.array(z.lazy(() => Quad)) }).passthrough(), "DOM.getContentQuads.result", "commandResult", { method: "DOM.getContentQuads" }); +export const GetContentQuadsCommand = withCdpCommand("DOM.getContentQuads", GetContentQuadsParams, GetContentQuadsResult); export const GetDocumentParams = withCdpMeta(z.object({ "depth": z.number().int().optional(), "pierce": z.boolean().optional() }).passthrough(), "DOM.getDocument.params", "commandParams", { method: "DOM.getDocument" }); export const GetDocumentResult = withCdpMeta(z.object({ "root": z.lazy(() => Node) }).passthrough(), "DOM.getDocument.result", "commandResult", { method: "DOM.getDocument" }); +export const GetDocumentCommand = withCdpCommand("DOM.getDocument", GetDocumentParams, GetDocumentResult); export const GetFlattenedDocumentParams = withCdpMeta(z.object({ "depth": z.number().int().optional(), "pierce": z.boolean().optional() }).passthrough(), "DOM.getFlattenedDocument.params", "commandParams", { method: "DOM.getFlattenedDocument" }); export const GetFlattenedDocumentResult = withCdpMeta(z.object({ "nodes": z.array(z.lazy(() => Node)) }).passthrough(), "DOM.getFlattenedDocument.result", "commandResult", { method: "DOM.getFlattenedDocument" }); +export const GetFlattenedDocumentCommand = withCdpCommand("DOM.getFlattenedDocument", GetFlattenedDocumentParams, GetFlattenedDocumentResult); export const GetNodesForSubtreeByStyleParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "computedStyles": z.array(z.lazy(() => CSSComputedStyleProperty)), "pierce": z.boolean().optional() }).passthrough(), "DOM.getNodesForSubtreeByStyle.params", "commandParams", { method: "DOM.getNodesForSubtreeByStyle" }); export const GetNodesForSubtreeByStyleResult = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => NodeId)) }).passthrough(), "DOM.getNodesForSubtreeByStyle.result", "commandResult", { method: "DOM.getNodesForSubtreeByStyle" }); +export const GetNodesForSubtreeByStyleCommand = withCdpCommand("DOM.getNodesForSubtreeByStyle", GetNodesForSubtreeByStyleParams, GetNodesForSubtreeByStyleResult); export const GetNodeForLocationParams = withCdpMeta(z.object({ "x": z.number().int(), "y": z.number().int(), "includeUserAgentShadowDOM": z.boolean().optional(), "ignorePointerEventsNone": z.boolean().optional() }).passthrough(), "DOM.getNodeForLocation.params", "commandParams", { method: "DOM.getNodeForLocation" }); export const GetNodeForLocationResult = withCdpMeta(z.object({ "backendNodeId": z.lazy(() => BackendNodeId), "frameId": z.lazy(() => Page.FrameId), "nodeId": z.lazy(() => NodeId).optional() }).passthrough(), "DOM.getNodeForLocation.result", "commandResult", { method: "DOM.getNodeForLocation" }); +export const GetNodeForLocationCommand = withCdpCommand("DOM.getNodeForLocation", GetNodeForLocationParams, GetNodeForLocationResult); export const GetOuterHTMLParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId).optional(), "backendNodeId": z.lazy(() => BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional(), "includeShadowDOM": z.boolean().optional() }).passthrough(), "DOM.getOuterHTML.params", "commandParams", { method: "DOM.getOuterHTML" }); export const GetOuterHTMLResult = withCdpMeta(z.object({ "outerHTML": z.string() }).passthrough(), "DOM.getOuterHTML.result", "commandResult", { method: "DOM.getOuterHTML" }); +export const GetOuterHTMLCommand = withCdpCommand("DOM.getOuterHTML", GetOuterHTMLParams, GetOuterHTMLResult); export const GetRelayoutBoundaryParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.getRelayoutBoundary.params", "commandParams", { method: "DOM.getRelayoutBoundary" }); export const GetRelayoutBoundaryResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.getRelayoutBoundary.result", "commandResult", { method: "DOM.getRelayoutBoundary" }); +export const GetRelayoutBoundaryCommand = withCdpCommand("DOM.getRelayoutBoundary", GetRelayoutBoundaryParams, GetRelayoutBoundaryResult); export const GetSearchResultsParams = withCdpMeta(z.object({ "searchId": z.string(), "fromIndex": z.number().int(), "toIndex": z.number().int() }).passthrough(), "DOM.getSearchResults.params", "commandParams", { method: "DOM.getSearchResults" }); export const GetSearchResultsResult = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => NodeId)) }).passthrough(), "DOM.getSearchResults.result", "commandResult", { method: "DOM.getSearchResults" }); +export const GetSearchResultsCommand = withCdpCommand("DOM.getSearchResults", GetSearchResultsParams, GetSearchResultsResult); export const HideHighlightParams = withCdpMeta(z.object({ }).passthrough(), "DOM.hideHighlight.params", "commandParams", { method: "DOM.hideHighlight" }); export const HideHighlightResult = withCdpMeta(z.object({ }).passthrough(), "DOM.hideHighlight.result", "commandResult", { method: "DOM.hideHighlight" }); +export const HideHighlightCommand = withCdpCommand("DOM.hideHighlight", HideHighlightParams, HideHighlightResult); export const HighlightNodeParams = withCdpMeta(z.object({ }).passthrough(), "DOM.highlightNode.params", "commandParams", { method: "DOM.highlightNode" }); export const HighlightNodeResult = withCdpMeta(z.object({ }).passthrough(), "DOM.highlightNode.result", "commandResult", { method: "DOM.highlightNode" }); +export const HighlightNodeCommand = withCdpCommand("DOM.highlightNode", HighlightNodeParams, HighlightNodeResult); export const HighlightRectParams = withCdpMeta(z.object({ }).passthrough(), "DOM.highlightRect.params", "commandParams", { method: "DOM.highlightRect" }); export const HighlightRectResult = withCdpMeta(z.object({ }).passthrough(), "DOM.highlightRect.result", "commandResult", { method: "DOM.highlightRect" }); +export const HighlightRectCommand = withCdpCommand("DOM.highlightRect", HighlightRectParams, HighlightRectResult); export const MarkUndoableStateParams = withCdpMeta(z.object({ }).passthrough(), "DOM.markUndoableState.params", "commandParams", { method: "DOM.markUndoableState" }); export const MarkUndoableStateResult = withCdpMeta(z.object({ }).passthrough(), "DOM.markUndoableState.result", "commandResult", { method: "DOM.markUndoableState" }); +export const MarkUndoableStateCommand = withCdpCommand("DOM.markUndoableState", MarkUndoableStateParams, MarkUndoableStateResult); export const MoveToParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "targetNodeId": z.lazy(() => NodeId), "insertBeforeNodeId": z.lazy(() => NodeId).optional() }).passthrough(), "DOM.moveTo.params", "commandParams", { method: "DOM.moveTo" }); export const MoveToResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.moveTo.result", "commandResult", { method: "DOM.moveTo" }); +export const MoveToCommand = withCdpCommand("DOM.moveTo", MoveToParams, MoveToResult); export const PerformSearchParams = withCdpMeta(z.object({ "query": z.string(), "includeUserAgentShadowDOM": z.boolean().optional() }).passthrough(), "DOM.performSearch.params", "commandParams", { method: "DOM.performSearch" }); export const PerformSearchResult = withCdpMeta(z.object({ "searchId": z.string(), "resultCount": z.number().int() }).passthrough(), "DOM.performSearch.result", "commandResult", { method: "DOM.performSearch" }); +export const PerformSearchCommand = withCdpCommand("DOM.performSearch", PerformSearchParams, PerformSearchResult); export const PushNodeByPathToFrontendParams = withCdpMeta(z.object({ "path": z.string() }).passthrough(), "DOM.pushNodeByPathToFrontend.params", "commandParams", { method: "DOM.pushNodeByPathToFrontend" }); export const PushNodeByPathToFrontendResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.pushNodeByPathToFrontend.result", "commandResult", { method: "DOM.pushNodeByPathToFrontend" }); +export const PushNodeByPathToFrontendCommand = withCdpCommand("DOM.pushNodeByPathToFrontend", PushNodeByPathToFrontendParams, PushNodeByPathToFrontendResult); export const PushNodesByBackendIdsToFrontendParams = withCdpMeta(z.object({ "backendNodeIds": z.array(z.lazy(() => BackendNodeId)) }).passthrough(), "DOM.pushNodesByBackendIdsToFrontend.params", "commandParams", { method: "DOM.pushNodesByBackendIdsToFrontend" }); export const PushNodesByBackendIdsToFrontendResult = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => NodeId)) }).passthrough(), "DOM.pushNodesByBackendIdsToFrontend.result", "commandResult", { method: "DOM.pushNodesByBackendIdsToFrontend" }); +export const PushNodesByBackendIdsToFrontendCommand = withCdpCommand("DOM.pushNodesByBackendIdsToFrontend", PushNodesByBackendIdsToFrontendParams, PushNodesByBackendIdsToFrontendResult); export const QuerySelectorParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "selector": z.string() }).passthrough(), "DOM.querySelector.params", "commandParams", { method: "DOM.querySelector" }); export const QuerySelectorResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.querySelector.result", "commandResult", { method: "DOM.querySelector" }); +export const QuerySelectorCommand = withCdpCommand("DOM.querySelector", QuerySelectorParams, QuerySelectorResult); export const QuerySelectorAllParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "selector": z.string() }).passthrough(), "DOM.querySelectorAll.params", "commandParams", { method: "DOM.querySelectorAll" }); export const QuerySelectorAllResult = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => NodeId)) }).passthrough(), "DOM.querySelectorAll.result", "commandResult", { method: "DOM.querySelectorAll" }); +export const QuerySelectorAllCommand = withCdpCommand("DOM.querySelectorAll", QuerySelectorAllParams, QuerySelectorAllResult); export const GetTopLayerElementsParams = withCdpMeta(z.object({ }).passthrough(), "DOM.getTopLayerElements.params", "commandParams", { method: "DOM.getTopLayerElements" }); export const GetTopLayerElementsResult = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => NodeId)) }).passthrough(), "DOM.getTopLayerElements.result", "commandResult", { method: "DOM.getTopLayerElements" }); +export const GetTopLayerElementsCommand = withCdpCommand("DOM.getTopLayerElements", GetTopLayerElementsParams, GetTopLayerElementsResult); export const GetElementByRelationParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "relation": z.enum(["PopoverTarget", "InterestTarget", "CommandFor"]) }).passthrough(), "DOM.getElementByRelation.params", "commandParams", { method: "DOM.getElementByRelation" }); export const GetElementByRelationResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.getElementByRelation.result", "commandResult", { method: "DOM.getElementByRelation" }); +export const GetElementByRelationCommand = withCdpCommand("DOM.getElementByRelation", GetElementByRelationParams, GetElementByRelationResult); export const RedoParams = withCdpMeta(z.object({ }).passthrough(), "DOM.redo.params", "commandParams", { method: "DOM.redo" }); export const RedoResult = withCdpMeta(z.object({ }).passthrough(), "DOM.redo.result", "commandResult", { method: "DOM.redo" }); +export const RedoCommand = withCdpCommand("DOM.redo", RedoParams, RedoResult); export const RemoveAttributeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "name": z.string() }).passthrough(), "DOM.removeAttribute.params", "commandParams", { method: "DOM.removeAttribute" }); export const RemoveAttributeResult = withCdpMeta(z.object({ }).passthrough(), "DOM.removeAttribute.result", "commandResult", { method: "DOM.removeAttribute" }); +export const RemoveAttributeCommand = withCdpCommand("DOM.removeAttribute", RemoveAttributeParams, RemoveAttributeResult); export const RemoveNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.removeNode.params", "commandParams", { method: "DOM.removeNode" }); export const RemoveNodeResult = withCdpMeta(z.object({ }).passthrough(), "DOM.removeNode.result", "commandResult", { method: "DOM.removeNode" }); +export const RemoveNodeCommand = withCdpCommand("DOM.removeNode", RemoveNodeParams, RemoveNodeResult); export const RequestChildNodesParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "depth": z.number().int().optional(), "pierce": z.boolean().optional() }).passthrough(), "DOM.requestChildNodes.params", "commandParams", { method: "DOM.requestChildNodes" }); export const RequestChildNodesResult = withCdpMeta(z.object({ }).passthrough(), "DOM.requestChildNodes.result", "commandResult", { method: "DOM.requestChildNodes" }); +export const RequestChildNodesCommand = withCdpCommand("DOM.requestChildNodes", RequestChildNodesParams, RequestChildNodesResult); export const RequestNodeParams = withCdpMeta(z.object({ "objectId": z.lazy(() => Runtime.RemoteObjectId) }).passthrough(), "DOM.requestNode.params", "commandParams", { method: "DOM.requestNode" }); export const RequestNodeResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.requestNode.result", "commandResult", { method: "DOM.requestNode" }); +export const RequestNodeCommand = withCdpCommand("DOM.requestNode", RequestNodeParams, RequestNodeResult); export const ResolveNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId).optional(), "backendNodeId": z.lazy(() => BackendNodeId).optional(), "objectGroup": z.string().optional(), "executionContextId": z.lazy(() => Runtime.ExecutionContextId).optional() }).passthrough(), "DOM.resolveNode.params", "commandParams", { method: "DOM.resolveNode" }); export const ResolveNodeResult = withCdpMeta(z.object({ "object": z.lazy(() => Runtime.RemoteObject) }).passthrough(), "DOM.resolveNode.result", "commandResult", { method: "DOM.resolveNode" }); +export const ResolveNodeCommand = withCdpCommand("DOM.resolveNode", ResolveNodeParams, ResolveNodeResult); export const SetAttributeValueParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "name": z.string(), "value": z.string() }).passthrough(), "DOM.setAttributeValue.params", "commandParams", { method: "DOM.setAttributeValue" }); export const SetAttributeValueResult = withCdpMeta(z.object({ }).passthrough(), "DOM.setAttributeValue.result", "commandResult", { method: "DOM.setAttributeValue" }); +export const SetAttributeValueCommand = withCdpCommand("DOM.setAttributeValue", SetAttributeValueParams, SetAttributeValueResult); export const SetAttributesAsTextParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "text": z.string(), "name": z.string().optional() }).passthrough(), "DOM.setAttributesAsText.params", "commandParams", { method: "DOM.setAttributesAsText" }); export const SetAttributesAsTextResult = withCdpMeta(z.object({ }).passthrough(), "DOM.setAttributesAsText.result", "commandResult", { method: "DOM.setAttributesAsText" }); +export const SetAttributesAsTextCommand = withCdpCommand("DOM.setAttributesAsText", SetAttributesAsTextParams, SetAttributesAsTextResult); export const SetFileInputFilesParams = withCdpMeta(z.object({ "files": z.array(z.string()), "nodeId": z.lazy(() => NodeId).optional(), "backendNodeId": z.lazy(() => BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional() }).passthrough(), "DOM.setFileInputFiles.params", "commandParams", { method: "DOM.setFileInputFiles" }); export const SetFileInputFilesResult = withCdpMeta(z.object({ }).passthrough(), "DOM.setFileInputFiles.result", "commandResult", { method: "DOM.setFileInputFiles" }); +export const SetFileInputFilesCommand = withCdpCommand("DOM.setFileInputFiles", SetFileInputFilesParams, SetFileInputFilesResult); export const SetNodeStackTracesEnabledParams = withCdpMeta(z.object({ "enable": z.boolean() }).passthrough(), "DOM.setNodeStackTracesEnabled.params", "commandParams", { method: "DOM.setNodeStackTracesEnabled" }); export const SetNodeStackTracesEnabledResult = withCdpMeta(z.object({ }).passthrough(), "DOM.setNodeStackTracesEnabled.result", "commandResult", { method: "DOM.setNodeStackTracesEnabled" }); +export const SetNodeStackTracesEnabledCommand = withCdpCommand("DOM.setNodeStackTracesEnabled", SetNodeStackTracesEnabledParams, SetNodeStackTracesEnabledResult); export const GetNodeStackTracesParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.getNodeStackTraces.params", "commandParams", { method: "DOM.getNodeStackTraces" }); export const GetNodeStackTracesResult = withCdpMeta(z.object({ "creation": z.lazy(() => Runtime.StackTrace).optional() }).passthrough(), "DOM.getNodeStackTraces.result", "commandResult", { method: "DOM.getNodeStackTraces" }); +export const GetNodeStackTracesCommand = withCdpCommand("DOM.getNodeStackTraces", GetNodeStackTracesParams, GetNodeStackTracesResult); export const GetFileInfoParams = withCdpMeta(z.object({ "objectId": z.lazy(() => Runtime.RemoteObjectId) }).passthrough(), "DOM.getFileInfo.params", "commandParams", { method: "DOM.getFileInfo" }); export const GetFileInfoResult = withCdpMeta(z.object({ "path": z.string() }).passthrough(), "DOM.getFileInfo.result", "commandResult", { method: "DOM.getFileInfo" }); +export const GetFileInfoCommand = withCdpCommand("DOM.getFileInfo", GetFileInfoParams, GetFileInfoResult); export const GetDetachedDomNodesParams = withCdpMeta(z.object({ }).passthrough(), "DOM.getDetachedDomNodes.params", "commandParams", { method: "DOM.getDetachedDomNodes" }); export const GetDetachedDomNodesResult = withCdpMeta(z.object({ "detachedNodes": z.array(z.lazy(() => DetachedElementInfo)) }).passthrough(), "DOM.getDetachedDomNodes.result", "commandResult", { method: "DOM.getDetachedDomNodes" }); +export const GetDetachedDomNodesCommand = withCdpCommand("DOM.getDetachedDomNodes", GetDetachedDomNodesParams, GetDetachedDomNodesResult); export const SetInspectedNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.setInspectedNode.params", "commandParams", { method: "DOM.setInspectedNode" }); export const SetInspectedNodeResult = withCdpMeta(z.object({ }).passthrough(), "DOM.setInspectedNode.result", "commandResult", { method: "DOM.setInspectedNode" }); +export const SetInspectedNodeCommand = withCdpCommand("DOM.setInspectedNode", SetInspectedNodeParams, SetInspectedNodeResult); export const SetNodeNameParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "name": z.string() }).passthrough(), "DOM.setNodeName.params", "commandParams", { method: "DOM.setNodeName" }); export const SetNodeNameResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.setNodeName.result", "commandResult", { method: "DOM.setNodeName" }); +export const SetNodeNameCommand = withCdpCommand("DOM.setNodeName", SetNodeNameParams, SetNodeNameResult); export const SetNodeValueParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "value": z.string() }).passthrough(), "DOM.setNodeValue.params", "commandParams", { method: "DOM.setNodeValue" }); export const SetNodeValueResult = withCdpMeta(z.object({ }).passthrough(), "DOM.setNodeValue.result", "commandResult", { method: "DOM.setNodeValue" }); +export const SetNodeValueCommand = withCdpCommand("DOM.setNodeValue", SetNodeValueParams, SetNodeValueResult); export const SetOuterHTMLParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "outerHTML": z.string() }).passthrough(), "DOM.setOuterHTML.params", "commandParams", { method: "DOM.setOuterHTML" }); export const SetOuterHTMLResult = withCdpMeta(z.object({ }).passthrough(), "DOM.setOuterHTML.result", "commandResult", { method: "DOM.setOuterHTML" }); +export const SetOuterHTMLCommand = withCdpCommand("DOM.setOuterHTML", SetOuterHTMLParams, SetOuterHTMLResult); export const UndoParams = withCdpMeta(z.object({ }).passthrough(), "DOM.undo.params", "commandParams", { method: "DOM.undo" }); export const UndoResult = withCdpMeta(z.object({ }).passthrough(), "DOM.undo.result", "commandResult", { method: "DOM.undo" }); +export const UndoCommand = withCdpCommand("DOM.undo", UndoParams, UndoResult); export const GetFrameOwnerParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId) }).passthrough(), "DOM.getFrameOwner.params", "commandParams", { method: "DOM.getFrameOwner" }); export const GetFrameOwnerResult = withCdpMeta(z.object({ "backendNodeId": z.lazy(() => BackendNodeId), "nodeId": z.lazy(() => NodeId).optional() }).passthrough(), "DOM.getFrameOwner.result", "commandResult", { method: "DOM.getFrameOwner" }); +export const GetFrameOwnerCommand = withCdpCommand("DOM.getFrameOwner", GetFrameOwnerParams, GetFrameOwnerResult); export const GetContainerForNodeParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "containerName": z.string().optional(), "physicalAxes": z.lazy(() => PhysicalAxes).optional(), "logicalAxes": z.lazy(() => LogicalAxes).optional(), "queriesScrollState": z.boolean().optional(), "queriesAnchored": z.boolean().optional() }).passthrough(), "DOM.getContainerForNode.params", "commandParams", { method: "DOM.getContainerForNode" }); export const GetContainerForNodeResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId).optional() }).passthrough(), "DOM.getContainerForNode.result", "commandResult", { method: "DOM.getContainerForNode" }); +export const GetContainerForNodeCommand = withCdpCommand("DOM.getContainerForNode", GetContainerForNodeParams, GetContainerForNodeResult); export const GetQueryingDescendantsForContainerParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.getQueryingDescendantsForContainer.params", "commandParams", { method: "DOM.getQueryingDescendantsForContainer" }); export const GetQueryingDescendantsForContainerResult = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => NodeId)) }).passthrough(), "DOM.getQueryingDescendantsForContainer.result", "commandResult", { method: "DOM.getQueryingDescendantsForContainer" }); +export const GetQueryingDescendantsForContainerCommand = withCdpCommand("DOM.getQueryingDescendantsForContainer", GetQueryingDescendantsForContainerParams, GetQueryingDescendantsForContainerResult); export const GetAnchorElementParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "anchorSpecifier": z.string().optional() }).passthrough(), "DOM.getAnchorElement.params", "commandParams", { method: "DOM.getAnchorElement" }); export const GetAnchorElementResult = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId) }).passthrough(), "DOM.getAnchorElement.result", "commandResult", { method: "DOM.getAnchorElement" }); +export const GetAnchorElementCommand = withCdpCommand("DOM.getAnchorElement", GetAnchorElementParams, GetAnchorElementResult); export const ForceShowPopoverParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "enable": z.boolean() }).passthrough(), "DOM.forceShowPopover.params", "commandParams", { method: "DOM.forceShowPopover" }); export const ForceShowPopoverResult = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => NodeId)) }).passthrough(), "DOM.forceShowPopover.result", "commandResult", { method: "DOM.forceShowPopover" }); +export const ForceShowPopoverCommand = withCdpCommand("DOM.forceShowPopover", ForceShowPopoverParams, ForceShowPopoverResult); export const AttributeModifiedEvent = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "name": z.string(), "value": z.string() }).passthrough(), "DOM.attributeModified", "event", { phase: "event" }); export const AdoptedStyleSheetsModifiedEvent = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "adoptedStyleSheets": z.array(z.lazy(() => StyleSheetId)) }).passthrough(), "DOM.adoptedStyleSheetsModified", "event", { phase: "event" }); export const AttributeRemovedEvent = withCdpMeta(z.object({ "nodeId": z.lazy(() => NodeId), "name": z.string() }).passthrough(), "DOM.attributeRemoved", "event", { phase: "event" }); @@ -296,59 +349,59 @@ export const zod = { ShadowRootPushedEvent: ShadowRootPushedEvent, } as const; export const commands = { - "DOM.collectClassNamesFromSubtree": { params: CollectClassNamesFromSubtreeParams, result: CollectClassNamesFromSubtreeResult }, - "DOM.copyTo": { params: CopyToParams, result: CopyToResult }, - "DOM.describeNode": { params: DescribeNodeParams, result: DescribeNodeResult }, - "DOM.scrollIntoViewIfNeeded": { params: ScrollIntoViewIfNeededParams, result: ScrollIntoViewIfNeededResult }, - "DOM.disable": { params: DisableParams, result: DisableResult }, - "DOM.discardSearchResults": { params: DiscardSearchResultsParams, result: DiscardSearchResultsResult }, - "DOM.enable": { params: EnableParams, result: EnableResult }, - "DOM.focus": { params: FocusParams, result: FocusResult }, - "DOM.getAttributes": { params: GetAttributesParams, result: GetAttributesResult }, - "DOM.getBoxModel": { params: GetBoxModelParams, result: GetBoxModelResult }, - "DOM.getContentQuads": { params: GetContentQuadsParams, result: GetContentQuadsResult }, - "DOM.getDocument": { params: GetDocumentParams, result: GetDocumentResult }, - "DOM.getFlattenedDocument": { params: GetFlattenedDocumentParams, result: GetFlattenedDocumentResult }, - "DOM.getNodesForSubtreeByStyle": { params: GetNodesForSubtreeByStyleParams, result: GetNodesForSubtreeByStyleResult }, - "DOM.getNodeForLocation": { params: GetNodeForLocationParams, result: GetNodeForLocationResult }, - "DOM.getOuterHTML": { params: GetOuterHTMLParams, result: GetOuterHTMLResult }, - "DOM.getRelayoutBoundary": { params: GetRelayoutBoundaryParams, result: GetRelayoutBoundaryResult }, - "DOM.getSearchResults": { params: GetSearchResultsParams, result: GetSearchResultsResult }, - "DOM.hideHighlight": { params: HideHighlightParams, result: HideHighlightResult }, - "DOM.highlightNode": { params: HighlightNodeParams, result: HighlightNodeResult }, - "DOM.highlightRect": { params: HighlightRectParams, result: HighlightRectResult }, - "DOM.markUndoableState": { params: MarkUndoableStateParams, result: MarkUndoableStateResult }, - "DOM.moveTo": { params: MoveToParams, result: MoveToResult }, - "DOM.performSearch": { params: PerformSearchParams, result: PerformSearchResult }, - "DOM.pushNodeByPathToFrontend": { params: PushNodeByPathToFrontendParams, result: PushNodeByPathToFrontendResult }, - "DOM.pushNodesByBackendIdsToFrontend": { params: PushNodesByBackendIdsToFrontendParams, result: PushNodesByBackendIdsToFrontendResult }, - "DOM.querySelector": { params: QuerySelectorParams, result: QuerySelectorResult }, - "DOM.querySelectorAll": { params: QuerySelectorAllParams, result: QuerySelectorAllResult }, - "DOM.getTopLayerElements": { params: GetTopLayerElementsParams, result: GetTopLayerElementsResult }, - "DOM.getElementByRelation": { params: GetElementByRelationParams, result: GetElementByRelationResult }, - "DOM.redo": { params: RedoParams, result: RedoResult }, - "DOM.removeAttribute": { params: RemoveAttributeParams, result: RemoveAttributeResult }, - "DOM.removeNode": { params: RemoveNodeParams, result: RemoveNodeResult }, - "DOM.requestChildNodes": { params: RequestChildNodesParams, result: RequestChildNodesResult }, - "DOM.requestNode": { params: RequestNodeParams, result: RequestNodeResult }, - "DOM.resolveNode": { params: ResolveNodeParams, result: ResolveNodeResult }, - "DOM.setAttributeValue": { params: SetAttributeValueParams, result: SetAttributeValueResult }, - "DOM.setAttributesAsText": { params: SetAttributesAsTextParams, result: SetAttributesAsTextResult }, - "DOM.setFileInputFiles": { params: SetFileInputFilesParams, result: SetFileInputFilesResult }, - "DOM.setNodeStackTracesEnabled": { params: SetNodeStackTracesEnabledParams, result: SetNodeStackTracesEnabledResult }, - "DOM.getNodeStackTraces": { params: GetNodeStackTracesParams, result: GetNodeStackTracesResult }, - "DOM.getFileInfo": { params: GetFileInfoParams, result: GetFileInfoResult }, - "DOM.getDetachedDomNodes": { params: GetDetachedDomNodesParams, result: GetDetachedDomNodesResult }, - "DOM.setInspectedNode": { params: SetInspectedNodeParams, result: SetInspectedNodeResult }, - "DOM.setNodeName": { params: SetNodeNameParams, result: SetNodeNameResult }, - "DOM.setNodeValue": { params: SetNodeValueParams, result: SetNodeValueResult }, - "DOM.setOuterHTML": { params: SetOuterHTMLParams, result: SetOuterHTMLResult }, - "DOM.undo": { params: UndoParams, result: UndoResult }, - "DOM.getFrameOwner": { params: GetFrameOwnerParams, result: GetFrameOwnerResult }, - "DOM.getContainerForNode": { params: GetContainerForNodeParams, result: GetContainerForNodeResult }, - "DOM.getQueryingDescendantsForContainer": { params: GetQueryingDescendantsForContainerParams, result: GetQueryingDescendantsForContainerResult }, - "DOM.getAnchorElement": { params: GetAnchorElementParams, result: GetAnchorElementResult }, - "DOM.forceShowPopover": { params: ForceShowPopoverParams, result: ForceShowPopoverResult }, + "DOM.collectClassNamesFromSubtree": CollectClassNamesFromSubtreeCommand, + "DOM.copyTo": CopyToCommand, + "DOM.describeNode": DescribeNodeCommand, + "DOM.scrollIntoViewIfNeeded": ScrollIntoViewIfNeededCommand, + "DOM.disable": DisableCommand, + "DOM.discardSearchResults": DiscardSearchResultsCommand, + "DOM.enable": EnableCommand, + "DOM.focus": FocusCommand, + "DOM.getAttributes": GetAttributesCommand, + "DOM.getBoxModel": GetBoxModelCommand, + "DOM.getContentQuads": GetContentQuadsCommand, + "DOM.getDocument": GetDocumentCommand, + "DOM.getFlattenedDocument": GetFlattenedDocumentCommand, + "DOM.getNodesForSubtreeByStyle": GetNodesForSubtreeByStyleCommand, + "DOM.getNodeForLocation": GetNodeForLocationCommand, + "DOM.getOuterHTML": GetOuterHTMLCommand, + "DOM.getRelayoutBoundary": GetRelayoutBoundaryCommand, + "DOM.getSearchResults": GetSearchResultsCommand, + "DOM.hideHighlight": HideHighlightCommand, + "DOM.highlightNode": HighlightNodeCommand, + "DOM.highlightRect": HighlightRectCommand, + "DOM.markUndoableState": MarkUndoableStateCommand, + "DOM.moveTo": MoveToCommand, + "DOM.performSearch": PerformSearchCommand, + "DOM.pushNodeByPathToFrontend": PushNodeByPathToFrontendCommand, + "DOM.pushNodesByBackendIdsToFrontend": PushNodesByBackendIdsToFrontendCommand, + "DOM.querySelector": QuerySelectorCommand, + "DOM.querySelectorAll": QuerySelectorAllCommand, + "DOM.getTopLayerElements": GetTopLayerElementsCommand, + "DOM.getElementByRelation": GetElementByRelationCommand, + "DOM.redo": RedoCommand, + "DOM.removeAttribute": RemoveAttributeCommand, + "DOM.removeNode": RemoveNodeCommand, + "DOM.requestChildNodes": RequestChildNodesCommand, + "DOM.requestNode": RequestNodeCommand, + "DOM.resolveNode": ResolveNodeCommand, + "DOM.setAttributeValue": SetAttributeValueCommand, + "DOM.setAttributesAsText": SetAttributesAsTextCommand, + "DOM.setFileInputFiles": SetFileInputFilesCommand, + "DOM.setNodeStackTracesEnabled": SetNodeStackTracesEnabledCommand, + "DOM.getNodeStackTraces": GetNodeStackTracesCommand, + "DOM.getFileInfo": GetFileInfoCommand, + "DOM.getDetachedDomNodes": GetDetachedDomNodesCommand, + "DOM.setInspectedNode": SetInspectedNodeCommand, + "DOM.setNodeName": SetNodeNameCommand, + "DOM.setNodeValue": SetNodeValueCommand, + "DOM.setOuterHTML": SetOuterHTMLCommand, + "DOM.undo": UndoCommand, + "DOM.getFrameOwner": GetFrameOwnerCommand, + "DOM.getContainerForNode": GetContainerForNodeCommand, + "DOM.getQueryingDescendantsForContainer": GetQueryingDescendantsForContainerCommand, + "DOM.getAnchorElement": GetAnchorElementCommand, + "DOM.forceShowPopover": ForceShowPopoverCommand, } as const; export const events = { "DOM.attributeModified": AttributeModifiedEvent, diff --git a/js/src/types/generated/zod/DOMDebugger.ts b/js/src/types/generated/zod/DOMDebugger.ts index b3073866..617961bc 100644 --- a/js/src/types/generated/zod/DOMDebugger.ts +++ b/js/src/types/generated/zod/DOMDebugger.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Runtime from "./Runtime.js"; @@ -10,24 +10,34 @@ export const CSPViolationType = withCdpMeta(z.enum(["trustedtype-sink-violation" export const EventListener = withCdpMeta(z.object({ "type": z.string(), "useCapture": z.boolean(), "passive": z.boolean(), "once": z.boolean(), "scriptId": z.lazy(() => Runtime.ScriptId), "lineNumber": z.number().int(), "columnNumber": z.number().int(), "handler": z.lazy(() => Runtime.RemoteObject).optional(), "originalHandler": z.lazy(() => Runtime.RemoteObject).optional(), "backendNodeId": z.lazy(() => DOM.BackendNodeId).optional() }).passthrough(), "DOMDebugger.EventListener", "type"); export const GetEventListenersParams = withCdpMeta(z.object({ "objectId": z.lazy(() => Runtime.RemoteObjectId), "depth": z.number().int().optional(), "pierce": z.boolean().optional() }).passthrough(), "DOMDebugger.getEventListeners.params", "commandParams", { method: "DOMDebugger.getEventListeners" }); export const GetEventListenersResult = withCdpMeta(z.object({ "listeners": z.array(z.lazy(() => EventListener)) }).passthrough(), "DOMDebugger.getEventListeners.result", "commandResult", { method: "DOMDebugger.getEventListeners" }); +export const GetEventListenersCommand = withCdpCommand("DOMDebugger.getEventListeners", GetEventListenersParams, GetEventListenersResult); export const RemoveDOMBreakpointParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId), "type": z.lazy(() => DOMBreakpointType) }).passthrough(), "DOMDebugger.removeDOMBreakpoint.params", "commandParams", { method: "DOMDebugger.removeDOMBreakpoint" }); export const RemoveDOMBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.removeDOMBreakpoint.result", "commandResult", { method: "DOMDebugger.removeDOMBreakpoint" }); +export const RemoveDOMBreakpointCommand = withCdpCommand("DOMDebugger.removeDOMBreakpoint", RemoveDOMBreakpointParams, RemoveDOMBreakpointResult); export const RemoveEventListenerBreakpointParams = withCdpMeta(z.object({ "eventName": z.string(), "targetName": z.string().optional() }).passthrough(), "DOMDebugger.removeEventListenerBreakpoint.params", "commandParams", { method: "DOMDebugger.removeEventListenerBreakpoint" }); export const RemoveEventListenerBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.removeEventListenerBreakpoint.result", "commandResult", { method: "DOMDebugger.removeEventListenerBreakpoint" }); +export const RemoveEventListenerBreakpointCommand = withCdpCommand("DOMDebugger.removeEventListenerBreakpoint", RemoveEventListenerBreakpointParams, RemoveEventListenerBreakpointResult); export const RemoveInstrumentationBreakpointParams = withCdpMeta(z.object({ "eventName": z.string() }).passthrough(), "DOMDebugger.removeInstrumentationBreakpoint.params", "commandParams", { method: "DOMDebugger.removeInstrumentationBreakpoint" }); export const RemoveInstrumentationBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.removeInstrumentationBreakpoint.result", "commandResult", { method: "DOMDebugger.removeInstrumentationBreakpoint" }); +export const RemoveInstrumentationBreakpointCommand = withCdpCommand("DOMDebugger.removeInstrumentationBreakpoint", RemoveInstrumentationBreakpointParams, RemoveInstrumentationBreakpointResult); export const RemoveXHRBreakpointParams = withCdpMeta(z.object({ "url": z.string() }).passthrough(), "DOMDebugger.removeXHRBreakpoint.params", "commandParams", { method: "DOMDebugger.removeXHRBreakpoint" }); export const RemoveXHRBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.removeXHRBreakpoint.result", "commandResult", { method: "DOMDebugger.removeXHRBreakpoint" }); +export const RemoveXHRBreakpointCommand = withCdpCommand("DOMDebugger.removeXHRBreakpoint", RemoveXHRBreakpointParams, RemoveXHRBreakpointResult); export const SetBreakOnCSPViolationParams = withCdpMeta(z.object({ "violationTypes": z.array(z.lazy(() => CSPViolationType)) }).passthrough(), "DOMDebugger.setBreakOnCSPViolation.params", "commandParams", { method: "DOMDebugger.setBreakOnCSPViolation" }); export const SetBreakOnCSPViolationResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.setBreakOnCSPViolation.result", "commandResult", { method: "DOMDebugger.setBreakOnCSPViolation" }); +export const SetBreakOnCSPViolationCommand = withCdpCommand("DOMDebugger.setBreakOnCSPViolation", SetBreakOnCSPViolationParams, SetBreakOnCSPViolationResult); export const SetDOMBreakpointParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId), "type": z.lazy(() => DOMBreakpointType) }).passthrough(), "DOMDebugger.setDOMBreakpoint.params", "commandParams", { method: "DOMDebugger.setDOMBreakpoint" }); export const SetDOMBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.setDOMBreakpoint.result", "commandResult", { method: "DOMDebugger.setDOMBreakpoint" }); +export const SetDOMBreakpointCommand = withCdpCommand("DOMDebugger.setDOMBreakpoint", SetDOMBreakpointParams, SetDOMBreakpointResult); export const SetEventListenerBreakpointParams = withCdpMeta(z.object({ "eventName": z.string(), "targetName": z.string().optional() }).passthrough(), "DOMDebugger.setEventListenerBreakpoint.params", "commandParams", { method: "DOMDebugger.setEventListenerBreakpoint" }); export const SetEventListenerBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.setEventListenerBreakpoint.result", "commandResult", { method: "DOMDebugger.setEventListenerBreakpoint" }); +export const SetEventListenerBreakpointCommand = withCdpCommand("DOMDebugger.setEventListenerBreakpoint", SetEventListenerBreakpointParams, SetEventListenerBreakpointResult); export const SetInstrumentationBreakpointParams = withCdpMeta(z.object({ "eventName": z.string() }).passthrough(), "DOMDebugger.setInstrumentationBreakpoint.params", "commandParams", { method: "DOMDebugger.setInstrumentationBreakpoint" }); export const SetInstrumentationBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.setInstrumentationBreakpoint.result", "commandResult", { method: "DOMDebugger.setInstrumentationBreakpoint" }); +export const SetInstrumentationBreakpointCommand = withCdpCommand("DOMDebugger.setInstrumentationBreakpoint", SetInstrumentationBreakpointParams, SetInstrumentationBreakpointResult); export const SetXHRBreakpointParams = withCdpMeta(z.object({ "url": z.string() }).passthrough(), "DOMDebugger.setXHRBreakpoint.params", "commandParams", { method: "DOMDebugger.setXHRBreakpoint" }); export const SetXHRBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "DOMDebugger.setXHRBreakpoint.result", "commandResult", { method: "DOMDebugger.setXHRBreakpoint" }); +export const SetXHRBreakpointCommand = withCdpCommand("DOMDebugger.setXHRBreakpoint", SetXHRBreakpointParams, SetXHRBreakpointResult); export const zod = { DOMBreakpointType: DOMBreakpointType, @@ -55,16 +65,16 @@ export const zod = { SetXHRBreakpointResult: SetXHRBreakpointResult, } as const; export const commands = { - "DOMDebugger.getEventListeners": { params: GetEventListenersParams, result: GetEventListenersResult }, - "DOMDebugger.removeDOMBreakpoint": { params: RemoveDOMBreakpointParams, result: RemoveDOMBreakpointResult }, - "DOMDebugger.removeEventListenerBreakpoint": { params: RemoveEventListenerBreakpointParams, result: RemoveEventListenerBreakpointResult }, - "DOMDebugger.removeInstrumentationBreakpoint": { params: RemoveInstrumentationBreakpointParams, result: RemoveInstrumentationBreakpointResult }, - "DOMDebugger.removeXHRBreakpoint": { params: RemoveXHRBreakpointParams, result: RemoveXHRBreakpointResult }, - "DOMDebugger.setBreakOnCSPViolation": { params: SetBreakOnCSPViolationParams, result: SetBreakOnCSPViolationResult }, - "DOMDebugger.setDOMBreakpoint": { params: SetDOMBreakpointParams, result: SetDOMBreakpointResult }, - "DOMDebugger.setEventListenerBreakpoint": { params: SetEventListenerBreakpointParams, result: SetEventListenerBreakpointResult }, - "DOMDebugger.setInstrumentationBreakpoint": { params: SetInstrumentationBreakpointParams, result: SetInstrumentationBreakpointResult }, - "DOMDebugger.setXHRBreakpoint": { params: SetXHRBreakpointParams, result: SetXHRBreakpointResult }, + "DOMDebugger.getEventListeners": GetEventListenersCommand, + "DOMDebugger.removeDOMBreakpoint": RemoveDOMBreakpointCommand, + "DOMDebugger.removeEventListenerBreakpoint": RemoveEventListenerBreakpointCommand, + "DOMDebugger.removeInstrumentationBreakpoint": RemoveInstrumentationBreakpointCommand, + "DOMDebugger.removeXHRBreakpoint": RemoveXHRBreakpointCommand, + "DOMDebugger.setBreakOnCSPViolation": SetBreakOnCSPViolationCommand, + "DOMDebugger.setDOMBreakpoint": SetDOMBreakpointCommand, + "DOMDebugger.setEventListenerBreakpoint": SetEventListenerBreakpointCommand, + "DOMDebugger.setInstrumentationBreakpoint": SetInstrumentationBreakpointCommand, + "DOMDebugger.setXHRBreakpoint": SetXHRBreakpointCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/DOMSnapshot.ts b/js/src/types/generated/zod/DOMSnapshot.ts index 1b855c29..636a9578 100644 --- a/js/src/types/generated/zod/DOMSnapshot.ts +++ b/js/src/types/generated/zod/DOMSnapshot.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as DOMDebugger from "./DOMDebugger.js"; import * as Page from "./Page.js"; @@ -23,12 +23,16 @@ export const LayoutTreeSnapshot = withCdpMeta(z.object({ "nodeIndex": z.array(z. export const TextBoxSnapshot = withCdpMeta(z.object({ "layoutIndex": z.array(z.number().int()), "bounds": z.array(z.lazy(() => Rectangle)), "start": z.array(z.number().int()), "length": z.array(z.number().int()) }).passthrough(), "DOMSnapshot.TextBoxSnapshot", "type"); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "DOMSnapshot.disable.params", "commandParams", { method: "DOMSnapshot.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "DOMSnapshot.disable.result", "commandResult", { method: "DOMSnapshot.disable" }); +export const DisableCommand = withCdpCommand("DOMSnapshot.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "DOMSnapshot.enable.params", "commandParams", { method: "DOMSnapshot.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "DOMSnapshot.enable.result", "commandResult", { method: "DOMSnapshot.enable" }); +export const EnableCommand = withCdpCommand("DOMSnapshot.enable", EnableParams, EnableResult); export const GetSnapshotParams = withCdpMeta(z.object({ "computedStyleWhitelist": z.array(z.string()), "includeEventListeners": z.boolean().optional(), "includePaintOrder": z.boolean().optional(), "includeUserAgentShadowTree": z.boolean().optional() }).passthrough(), "DOMSnapshot.getSnapshot.params", "commandParams", { method: "DOMSnapshot.getSnapshot" }); export const GetSnapshotResult = withCdpMeta(z.object({ "domNodes": z.array(z.lazy(() => DOMNode)), "layoutTreeNodes": z.array(z.lazy(() => LayoutTreeNode)), "computedStyles": z.array(z.lazy(() => ComputedStyle)) }).passthrough(), "DOMSnapshot.getSnapshot.result", "commandResult", { method: "DOMSnapshot.getSnapshot" }); +export const GetSnapshotCommand = withCdpCommand("DOMSnapshot.getSnapshot", GetSnapshotParams, GetSnapshotResult); export const CaptureSnapshotParams = withCdpMeta(z.object({ "computedStyles": z.array(z.string()), "includePaintOrder": z.boolean().optional(), "includeDOMRects": z.boolean().optional(), "includeBlendedBackgroundColors": z.boolean().optional(), "includeTextColorOpacities": z.boolean().optional() }).passthrough(), "DOMSnapshot.captureSnapshot.params", "commandParams", { method: "DOMSnapshot.captureSnapshot" }); export const CaptureSnapshotResult = withCdpMeta(z.object({ "documents": z.array(z.lazy(() => DocumentSnapshot)), "strings": z.array(z.string()) }).passthrough(), "DOMSnapshot.captureSnapshot.result", "commandResult", { method: "DOMSnapshot.captureSnapshot" }); +export const CaptureSnapshotCommand = withCdpCommand("DOMSnapshot.captureSnapshot", CaptureSnapshotParams, CaptureSnapshotResult); export const zod = { DOMNode: DOMNode, @@ -56,10 +60,10 @@ export const zod = { CaptureSnapshotResult: CaptureSnapshotResult, } as const; export const commands = { - "DOMSnapshot.disable": { params: DisableParams, result: DisableResult }, - "DOMSnapshot.enable": { params: EnableParams, result: EnableResult }, - "DOMSnapshot.getSnapshot": { params: GetSnapshotParams, result: GetSnapshotResult }, - "DOMSnapshot.captureSnapshot": { params: CaptureSnapshotParams, result: CaptureSnapshotResult }, + "DOMSnapshot.disable": DisableCommand, + "DOMSnapshot.enable": EnableCommand, + "DOMSnapshot.getSnapshot": GetSnapshotCommand, + "DOMSnapshot.captureSnapshot": CaptureSnapshotCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/DOMStorage.ts b/js/src/types/generated/zod/DOMStorage.ts index 43c59094..5f999cbc 100644 --- a/js/src/types/generated/zod/DOMStorage.ts +++ b/js/src/types/generated/zod/DOMStorage.ts @@ -1,23 +1,29 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const SerializedStorageKey = withCdpMeta(z.string(), "DOMStorage.SerializedStorageKey", "type"); export const StorageId = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.lazy(() => SerializedStorageKey).optional(), "isLocalStorage": z.boolean() }).passthrough(), "DOMStorage.StorageId", "type"); export const Item = withCdpMeta(z.array(z.string()), "DOMStorage.Item", "type"); export const ClearParams = withCdpMeta(z.object({ "storageId": z.lazy(() => StorageId) }).passthrough(), "DOMStorage.clear.params", "commandParams", { method: "DOMStorage.clear" }); export const ClearResult = withCdpMeta(z.object({ }).passthrough(), "DOMStorage.clear.result", "commandResult", { method: "DOMStorage.clear" }); +export const ClearCommand = withCdpCommand("DOMStorage.clear", ClearParams, ClearResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "DOMStorage.disable.params", "commandParams", { method: "DOMStorage.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "DOMStorage.disable.result", "commandResult", { method: "DOMStorage.disable" }); +export const DisableCommand = withCdpCommand("DOMStorage.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "DOMStorage.enable.params", "commandParams", { method: "DOMStorage.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "DOMStorage.enable.result", "commandResult", { method: "DOMStorage.enable" }); +export const EnableCommand = withCdpCommand("DOMStorage.enable", EnableParams, EnableResult); export const GetDOMStorageItemsParams = withCdpMeta(z.object({ "storageId": z.lazy(() => StorageId) }).passthrough(), "DOMStorage.getDOMStorageItems.params", "commandParams", { method: "DOMStorage.getDOMStorageItems" }); export const GetDOMStorageItemsResult = withCdpMeta(z.object({ "entries": z.array(z.lazy(() => Item)) }).passthrough(), "DOMStorage.getDOMStorageItems.result", "commandResult", { method: "DOMStorage.getDOMStorageItems" }); +export const GetDOMStorageItemsCommand = withCdpCommand("DOMStorage.getDOMStorageItems", GetDOMStorageItemsParams, GetDOMStorageItemsResult); export const RemoveDOMStorageItemParams = withCdpMeta(z.object({ "storageId": z.lazy(() => StorageId), "key": z.string() }).passthrough(), "DOMStorage.removeDOMStorageItem.params", "commandParams", { method: "DOMStorage.removeDOMStorageItem" }); export const RemoveDOMStorageItemResult = withCdpMeta(z.object({ }).passthrough(), "DOMStorage.removeDOMStorageItem.result", "commandResult", { method: "DOMStorage.removeDOMStorageItem" }); +export const RemoveDOMStorageItemCommand = withCdpCommand("DOMStorage.removeDOMStorageItem", RemoveDOMStorageItemParams, RemoveDOMStorageItemResult); export const SetDOMStorageItemParams = withCdpMeta(z.object({ "storageId": z.lazy(() => StorageId), "key": z.string(), "value": z.string() }).passthrough(), "DOMStorage.setDOMStorageItem.params", "commandParams", { method: "DOMStorage.setDOMStorageItem" }); export const SetDOMStorageItemResult = withCdpMeta(z.object({ }).passthrough(), "DOMStorage.setDOMStorageItem.result", "commandResult", { method: "DOMStorage.setDOMStorageItem" }); +export const SetDOMStorageItemCommand = withCdpCommand("DOMStorage.setDOMStorageItem", SetDOMStorageItemParams, SetDOMStorageItemResult); export const DomStorageItemAddedEvent = withCdpMeta(z.object({ "storageId": z.lazy(() => StorageId), "key": z.string(), "newValue": z.string() }).passthrough(), "DOMStorage.domStorageItemAdded", "event", { phase: "event" }); export const DomStorageItemRemovedEvent = withCdpMeta(z.object({ "storageId": z.lazy(() => StorageId), "key": z.string() }).passthrough(), "DOMStorage.domStorageItemRemoved", "event", { phase: "event" }); export const DomStorageItemUpdatedEvent = withCdpMeta(z.object({ "storageId": z.lazy(() => StorageId), "key": z.string(), "oldValue": z.string(), "newValue": z.string() }).passthrough(), "DOMStorage.domStorageItemUpdated", "event", { phase: "event" }); @@ -45,12 +51,12 @@ export const zod = { DomStorageItemsClearedEvent: DomStorageItemsClearedEvent, } as const; export const commands = { - "DOMStorage.clear": { params: ClearParams, result: ClearResult }, - "DOMStorage.disable": { params: DisableParams, result: DisableResult }, - "DOMStorage.enable": { params: EnableParams, result: EnableResult }, - "DOMStorage.getDOMStorageItems": { params: GetDOMStorageItemsParams, result: GetDOMStorageItemsResult }, - "DOMStorage.removeDOMStorageItem": { params: RemoveDOMStorageItemParams, result: RemoveDOMStorageItemResult }, - "DOMStorage.setDOMStorageItem": { params: SetDOMStorageItemParams, result: SetDOMStorageItemResult }, + "DOMStorage.clear": ClearCommand, + "DOMStorage.disable": DisableCommand, + "DOMStorage.enable": EnableCommand, + "DOMStorage.getDOMStorageItems": GetDOMStorageItemsCommand, + "DOMStorage.removeDOMStorageItem": RemoveDOMStorageItemCommand, + "DOMStorage.setDOMStorageItem": SetDOMStorageItemCommand, } as const; export const events = { "DOMStorage.domStorageItemAdded": DomStorageItemAddedEvent, diff --git a/js/src/types/generated/zod/Debugger.ts b/js/src/types/generated/zod/Debugger.ts index 0dd8c5f1..7bfa306e 100644 --- a/js/src/types/generated/zod/Debugger.ts +++ b/js/src/types/generated/zod/Debugger.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Runtime from "./Runtime.js"; export const BreakpointId = withCdpMeta(z.string(), "Debugger.BreakpointId", "type"); @@ -19,70 +19,103 @@ export const DebugSymbols = withCdpMeta(z.object({ "type": z.enum(["SourceMap", export const ResolvedBreakpoint = withCdpMeta(z.object({ "breakpointId": z.lazy(() => BreakpointId), "location": z.lazy(() => Location) }).passthrough(), "Debugger.ResolvedBreakpoint", "type"); export const ContinueToLocationParams = withCdpMeta(z.object({ "location": z.lazy(() => Location), "targetCallFrames": z.enum(["any", "current"]).optional() }).passthrough(), "Debugger.continueToLocation.params", "commandParams", { method: "Debugger.continueToLocation" }); export const ContinueToLocationResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.continueToLocation.result", "commandResult", { method: "Debugger.continueToLocation" }); +export const ContinueToLocationCommand = withCdpCommand("Debugger.continueToLocation", ContinueToLocationParams, ContinueToLocationResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Debugger.disable.params", "commandParams", { method: "Debugger.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.disable.result", "commandResult", { method: "Debugger.disable" }); +export const DisableCommand = withCdpCommand("Debugger.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ "maxScriptsCacheSize": z.number().optional() }).passthrough(), "Debugger.enable.params", "commandParams", { method: "Debugger.enable" }); export const EnableResult = withCdpMeta(z.object({ "debuggerId": z.lazy(() => Runtime.UniqueDebuggerId) }).passthrough(), "Debugger.enable.result", "commandResult", { method: "Debugger.enable" }); +export const EnableCommand = withCdpCommand("Debugger.enable", EnableParams, EnableResult); export const EvaluateOnCallFrameParams = withCdpMeta(z.object({ "callFrameId": z.lazy(() => CallFrameId), "expression": z.string(), "objectGroup": z.string().optional(), "includeCommandLineAPI": z.boolean().optional(), "silent": z.boolean().optional(), "returnByValue": z.boolean().optional(), "generatePreview": z.boolean().optional(), "throwOnSideEffect": z.boolean().optional(), "timeout": z.lazy(() => Runtime.TimeDelta).optional() }).passthrough(), "Debugger.evaluateOnCallFrame.params", "commandParams", { method: "Debugger.evaluateOnCallFrame" }); export const EvaluateOnCallFrameResult = withCdpMeta(z.object({ "result": z.lazy(() => Runtime.RemoteObject), "exceptionDetails": z.lazy(() => Runtime.ExceptionDetails).optional() }).passthrough(), "Debugger.evaluateOnCallFrame.result", "commandResult", { method: "Debugger.evaluateOnCallFrame" }); +export const EvaluateOnCallFrameCommand = withCdpCommand("Debugger.evaluateOnCallFrame", EvaluateOnCallFrameParams, EvaluateOnCallFrameResult); export const GetPossibleBreakpointsParams = withCdpMeta(z.object({ "start": z.lazy(() => Location), "end": z.lazy(() => Location).optional(), "restrictToFunction": z.boolean().optional() }).passthrough(), "Debugger.getPossibleBreakpoints.params", "commandParams", { method: "Debugger.getPossibleBreakpoints" }); export const GetPossibleBreakpointsResult = withCdpMeta(z.object({ "locations": z.array(z.lazy(() => BreakLocation)) }).passthrough(), "Debugger.getPossibleBreakpoints.result", "commandResult", { method: "Debugger.getPossibleBreakpoints" }); +export const GetPossibleBreakpointsCommand = withCdpCommand("Debugger.getPossibleBreakpoints", GetPossibleBreakpointsParams, GetPossibleBreakpointsResult); export const GetScriptSourceParams = withCdpMeta(z.object({ "scriptId": z.lazy(() => Runtime.ScriptId) }).passthrough(), "Debugger.getScriptSource.params", "commandParams", { method: "Debugger.getScriptSource" }); export const GetScriptSourceResult = withCdpMeta(z.object({ "scriptSource": z.string(), "bytecode": z.string().optional() }).passthrough(), "Debugger.getScriptSource.result", "commandResult", { method: "Debugger.getScriptSource" }); +export const GetScriptSourceCommand = withCdpCommand("Debugger.getScriptSource", GetScriptSourceParams, GetScriptSourceResult); export const DisassembleWasmModuleParams = withCdpMeta(z.object({ "scriptId": z.lazy(() => Runtime.ScriptId) }).passthrough(), "Debugger.disassembleWasmModule.params", "commandParams", { method: "Debugger.disassembleWasmModule" }); export const DisassembleWasmModuleResult = withCdpMeta(z.object({ "streamId": z.string().optional(), "totalNumberOfLines": z.number().int(), "functionBodyOffsets": z.array(z.number().int()), "chunk": z.lazy(() => WasmDisassemblyChunk) }).passthrough(), "Debugger.disassembleWasmModule.result", "commandResult", { method: "Debugger.disassembleWasmModule" }); +export const DisassembleWasmModuleCommand = withCdpCommand("Debugger.disassembleWasmModule", DisassembleWasmModuleParams, DisassembleWasmModuleResult); export const NextWasmDisassemblyChunkParams = withCdpMeta(z.object({ "streamId": z.string() }).passthrough(), "Debugger.nextWasmDisassemblyChunk.params", "commandParams", { method: "Debugger.nextWasmDisassemblyChunk" }); export const NextWasmDisassemblyChunkResult = withCdpMeta(z.object({ "chunk": z.lazy(() => WasmDisassemblyChunk) }).passthrough(), "Debugger.nextWasmDisassemblyChunk.result", "commandResult", { method: "Debugger.nextWasmDisassemblyChunk" }); +export const NextWasmDisassemblyChunkCommand = withCdpCommand("Debugger.nextWasmDisassemblyChunk", NextWasmDisassemblyChunkParams, NextWasmDisassemblyChunkResult); export const GetWasmBytecodeParams = withCdpMeta(z.object({ "scriptId": z.lazy(() => Runtime.ScriptId) }).passthrough(), "Debugger.getWasmBytecode.params", "commandParams", { method: "Debugger.getWasmBytecode" }); export const GetWasmBytecodeResult = withCdpMeta(z.object({ "bytecode": z.string() }).passthrough(), "Debugger.getWasmBytecode.result", "commandResult", { method: "Debugger.getWasmBytecode" }); +export const GetWasmBytecodeCommand = withCdpCommand("Debugger.getWasmBytecode", GetWasmBytecodeParams, GetWasmBytecodeResult); export const GetStackTraceParams = withCdpMeta(z.object({ "stackTraceId": z.lazy(() => Runtime.StackTraceId) }).passthrough(), "Debugger.getStackTrace.params", "commandParams", { method: "Debugger.getStackTrace" }); export const GetStackTraceResult = withCdpMeta(z.object({ "stackTrace": z.lazy(() => Runtime.StackTrace) }).passthrough(), "Debugger.getStackTrace.result", "commandResult", { method: "Debugger.getStackTrace" }); +export const GetStackTraceCommand = withCdpCommand("Debugger.getStackTrace", GetStackTraceParams, GetStackTraceResult); export const PauseParams = withCdpMeta(z.object({ }).passthrough(), "Debugger.pause.params", "commandParams", { method: "Debugger.pause" }); export const PauseResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.pause.result", "commandResult", { method: "Debugger.pause" }); +export const PauseCommand = withCdpCommand("Debugger.pause", PauseParams, PauseResult); export const PauseOnAsyncCallParams = withCdpMeta(z.object({ "parentStackTraceId": z.lazy(() => Runtime.StackTraceId) }).passthrough(), "Debugger.pauseOnAsyncCall.params", "commandParams", { method: "Debugger.pauseOnAsyncCall" }); export const PauseOnAsyncCallResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.pauseOnAsyncCall.result", "commandResult", { method: "Debugger.pauseOnAsyncCall" }); +export const PauseOnAsyncCallCommand = withCdpCommand("Debugger.pauseOnAsyncCall", PauseOnAsyncCallParams, PauseOnAsyncCallResult); export const RemoveBreakpointParams = withCdpMeta(z.object({ "breakpointId": z.lazy(() => BreakpointId) }).passthrough(), "Debugger.removeBreakpoint.params", "commandParams", { method: "Debugger.removeBreakpoint" }); export const RemoveBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.removeBreakpoint.result", "commandResult", { method: "Debugger.removeBreakpoint" }); +export const RemoveBreakpointCommand = withCdpCommand("Debugger.removeBreakpoint", RemoveBreakpointParams, RemoveBreakpointResult); export const RestartFrameParams = withCdpMeta(z.object({ "callFrameId": z.lazy(() => CallFrameId), "mode": z.enum(["StepInto"]).optional() }).passthrough(), "Debugger.restartFrame.params", "commandParams", { method: "Debugger.restartFrame" }); export const RestartFrameResult = withCdpMeta(z.object({ "callFrames": z.array(z.lazy(() => CallFrame)), "asyncStackTrace": z.lazy(() => Runtime.StackTrace).optional(), "asyncStackTraceId": z.lazy(() => Runtime.StackTraceId).optional() }).passthrough(), "Debugger.restartFrame.result", "commandResult", { method: "Debugger.restartFrame" }); +export const RestartFrameCommand = withCdpCommand("Debugger.restartFrame", RestartFrameParams, RestartFrameResult); export const ResumeParams = withCdpMeta(z.object({ "terminateOnResume": z.boolean().optional() }).passthrough(), "Debugger.resume.params", "commandParams", { method: "Debugger.resume" }); export const ResumeResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.resume.result", "commandResult", { method: "Debugger.resume" }); +export const ResumeCommand = withCdpCommand("Debugger.resume", ResumeParams, ResumeResult); export const SearchInContentParams = withCdpMeta(z.object({ "scriptId": z.lazy(() => Runtime.ScriptId), "query": z.string(), "caseSensitive": z.boolean().optional(), "isRegex": z.boolean().optional() }).passthrough(), "Debugger.searchInContent.params", "commandParams", { method: "Debugger.searchInContent" }); export const SearchInContentResult = withCdpMeta(z.object({ "result": z.array(z.lazy(() => SearchMatch)) }).passthrough(), "Debugger.searchInContent.result", "commandResult", { method: "Debugger.searchInContent" }); +export const SearchInContentCommand = withCdpCommand("Debugger.searchInContent", SearchInContentParams, SearchInContentResult); export const SetAsyncCallStackDepthParams = withCdpMeta(z.object({ "maxDepth": z.number().int() }).passthrough(), "Debugger.setAsyncCallStackDepth.params", "commandParams", { method: "Debugger.setAsyncCallStackDepth" }); export const SetAsyncCallStackDepthResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setAsyncCallStackDepth.result", "commandResult", { method: "Debugger.setAsyncCallStackDepth" }); +export const SetAsyncCallStackDepthCommand = withCdpCommand("Debugger.setAsyncCallStackDepth", SetAsyncCallStackDepthParams, SetAsyncCallStackDepthResult); export const SetBlackboxExecutionContextsParams = withCdpMeta(z.object({ "uniqueIds": z.array(z.string()) }).passthrough(), "Debugger.setBlackboxExecutionContexts.params", "commandParams", { method: "Debugger.setBlackboxExecutionContexts" }); export const SetBlackboxExecutionContextsResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setBlackboxExecutionContexts.result", "commandResult", { method: "Debugger.setBlackboxExecutionContexts" }); +export const SetBlackboxExecutionContextsCommand = withCdpCommand("Debugger.setBlackboxExecutionContexts", SetBlackboxExecutionContextsParams, SetBlackboxExecutionContextsResult); export const SetBlackboxPatternsParams = withCdpMeta(z.object({ "patterns": z.array(z.string()), "skipAnonymous": z.boolean().optional() }).passthrough(), "Debugger.setBlackboxPatterns.params", "commandParams", { method: "Debugger.setBlackboxPatterns" }); export const SetBlackboxPatternsResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setBlackboxPatterns.result", "commandResult", { method: "Debugger.setBlackboxPatterns" }); +export const SetBlackboxPatternsCommand = withCdpCommand("Debugger.setBlackboxPatterns", SetBlackboxPatternsParams, SetBlackboxPatternsResult); export const SetBlackboxedRangesParams = withCdpMeta(z.object({ "scriptId": z.lazy(() => Runtime.ScriptId), "positions": z.array(z.lazy(() => ScriptPosition)) }).passthrough(), "Debugger.setBlackboxedRanges.params", "commandParams", { method: "Debugger.setBlackboxedRanges" }); export const SetBlackboxedRangesResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setBlackboxedRanges.result", "commandResult", { method: "Debugger.setBlackboxedRanges" }); +export const SetBlackboxedRangesCommand = withCdpCommand("Debugger.setBlackboxedRanges", SetBlackboxedRangesParams, SetBlackboxedRangesResult); export const SetBreakpointParams = withCdpMeta(z.object({ "location": z.lazy(() => Location), "condition": z.string().optional() }).passthrough(), "Debugger.setBreakpoint.params", "commandParams", { method: "Debugger.setBreakpoint" }); export const SetBreakpointResult = withCdpMeta(z.object({ "breakpointId": z.lazy(() => BreakpointId), "actualLocation": z.lazy(() => Location) }).passthrough(), "Debugger.setBreakpoint.result", "commandResult", { method: "Debugger.setBreakpoint" }); +export const SetBreakpointCommand = withCdpCommand("Debugger.setBreakpoint", SetBreakpointParams, SetBreakpointResult); export const SetInstrumentationBreakpointParams = withCdpMeta(z.object({ "instrumentation": z.enum(["beforeScriptExecution", "beforeScriptWithSourceMapExecution"]) }).passthrough(), "Debugger.setInstrumentationBreakpoint.params", "commandParams", { method: "Debugger.setInstrumentationBreakpoint" }); export const SetInstrumentationBreakpointResult = withCdpMeta(z.object({ "breakpointId": z.lazy(() => BreakpointId) }).passthrough(), "Debugger.setInstrumentationBreakpoint.result", "commandResult", { method: "Debugger.setInstrumentationBreakpoint" }); +export const SetInstrumentationBreakpointCommand = withCdpCommand("Debugger.setInstrumentationBreakpoint", SetInstrumentationBreakpointParams, SetInstrumentationBreakpointResult); export const SetBreakpointByUrlParams = withCdpMeta(z.object({ "lineNumber": z.number().int(), "url": z.string().optional(), "urlRegex": z.string().optional(), "scriptHash": z.string().optional(), "columnNumber": z.number().int().optional(), "condition": z.string().optional() }).passthrough(), "Debugger.setBreakpointByUrl.params", "commandParams", { method: "Debugger.setBreakpointByUrl" }); export const SetBreakpointByUrlResult = withCdpMeta(z.object({ "breakpointId": z.lazy(() => BreakpointId), "locations": z.array(z.lazy(() => Location)) }).passthrough(), "Debugger.setBreakpointByUrl.result", "commandResult", { method: "Debugger.setBreakpointByUrl" }); +export const SetBreakpointByUrlCommand = withCdpCommand("Debugger.setBreakpointByUrl", SetBreakpointByUrlParams, SetBreakpointByUrlResult); export const SetBreakpointOnFunctionCallParams = withCdpMeta(z.object({ "objectId": z.lazy(() => Runtime.RemoteObjectId), "condition": z.string().optional() }).passthrough(), "Debugger.setBreakpointOnFunctionCall.params", "commandParams", { method: "Debugger.setBreakpointOnFunctionCall" }); export const SetBreakpointOnFunctionCallResult = withCdpMeta(z.object({ "breakpointId": z.lazy(() => BreakpointId) }).passthrough(), "Debugger.setBreakpointOnFunctionCall.result", "commandResult", { method: "Debugger.setBreakpointOnFunctionCall" }); +export const SetBreakpointOnFunctionCallCommand = withCdpCommand("Debugger.setBreakpointOnFunctionCall", SetBreakpointOnFunctionCallParams, SetBreakpointOnFunctionCallResult); export const SetBreakpointsActiveParams = withCdpMeta(z.object({ "active": z.boolean() }).passthrough(), "Debugger.setBreakpointsActive.params", "commandParams", { method: "Debugger.setBreakpointsActive" }); export const SetBreakpointsActiveResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setBreakpointsActive.result", "commandResult", { method: "Debugger.setBreakpointsActive" }); +export const SetBreakpointsActiveCommand = withCdpCommand("Debugger.setBreakpointsActive", SetBreakpointsActiveParams, SetBreakpointsActiveResult); export const SetPauseOnExceptionsParams = withCdpMeta(z.object({ "state": z.enum(["none", "caught", "uncaught", "all"]) }).passthrough(), "Debugger.setPauseOnExceptions.params", "commandParams", { method: "Debugger.setPauseOnExceptions" }); export const SetPauseOnExceptionsResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setPauseOnExceptions.result", "commandResult", { method: "Debugger.setPauseOnExceptions" }); +export const SetPauseOnExceptionsCommand = withCdpCommand("Debugger.setPauseOnExceptions", SetPauseOnExceptionsParams, SetPauseOnExceptionsResult); export const SetReturnValueParams = withCdpMeta(z.object({ "newValue": z.lazy(() => Runtime.CallArgument) }).passthrough(), "Debugger.setReturnValue.params", "commandParams", { method: "Debugger.setReturnValue" }); export const SetReturnValueResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setReturnValue.result", "commandResult", { method: "Debugger.setReturnValue" }); +export const SetReturnValueCommand = withCdpCommand("Debugger.setReturnValue", SetReturnValueParams, SetReturnValueResult); export const SetScriptSourceParams = withCdpMeta(z.object({ "scriptId": z.lazy(() => Runtime.ScriptId), "scriptSource": z.string(), "dryRun": z.boolean().optional(), "allowTopFrameEditing": z.boolean().optional() }).passthrough(), "Debugger.setScriptSource.params", "commandParams", { method: "Debugger.setScriptSource" }); export const SetScriptSourceResult = withCdpMeta(z.object({ "callFrames": z.array(z.lazy(() => CallFrame)).optional(), "stackChanged": z.boolean().optional(), "asyncStackTrace": z.lazy(() => Runtime.StackTrace).optional(), "asyncStackTraceId": z.lazy(() => Runtime.StackTraceId).optional(), "status": z.enum(["Ok", "CompileError", "BlockedByActiveGenerator", "BlockedByActiveFunction", "BlockedByTopLevelEsModuleChange"]), "exceptionDetails": z.lazy(() => Runtime.ExceptionDetails).optional() }).passthrough(), "Debugger.setScriptSource.result", "commandResult", { method: "Debugger.setScriptSource" }); +export const SetScriptSourceCommand = withCdpCommand("Debugger.setScriptSource", SetScriptSourceParams, SetScriptSourceResult); export const SetSkipAllPausesParams = withCdpMeta(z.object({ "skip": z.boolean() }).passthrough(), "Debugger.setSkipAllPauses.params", "commandParams", { method: "Debugger.setSkipAllPauses" }); export const SetSkipAllPausesResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setSkipAllPauses.result", "commandResult", { method: "Debugger.setSkipAllPauses" }); +export const SetSkipAllPausesCommand = withCdpCommand("Debugger.setSkipAllPauses", SetSkipAllPausesParams, SetSkipAllPausesResult); export const SetVariableValueParams = withCdpMeta(z.object({ "scopeNumber": z.number().int(), "variableName": z.string(), "newValue": z.lazy(() => Runtime.CallArgument), "callFrameId": z.lazy(() => CallFrameId) }).passthrough(), "Debugger.setVariableValue.params", "commandParams", { method: "Debugger.setVariableValue" }); export const SetVariableValueResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.setVariableValue.result", "commandResult", { method: "Debugger.setVariableValue" }); +export const SetVariableValueCommand = withCdpCommand("Debugger.setVariableValue", SetVariableValueParams, SetVariableValueResult); export const StepIntoParams = withCdpMeta(z.object({ "breakOnAsyncCall": z.boolean().optional(), "skipList": z.array(z.lazy(() => LocationRange)).optional() }).passthrough(), "Debugger.stepInto.params", "commandParams", { method: "Debugger.stepInto" }); export const StepIntoResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.stepInto.result", "commandResult", { method: "Debugger.stepInto" }); +export const StepIntoCommand = withCdpCommand("Debugger.stepInto", StepIntoParams, StepIntoResult); export const StepOutParams = withCdpMeta(z.object({ }).passthrough(), "Debugger.stepOut.params", "commandParams", { method: "Debugger.stepOut" }); export const StepOutResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.stepOut.result", "commandResult", { method: "Debugger.stepOut" }); +export const StepOutCommand = withCdpCommand("Debugger.stepOut", StepOutParams, StepOutResult); export const StepOverParams = withCdpMeta(z.object({ "skipList": z.array(z.lazy(() => LocationRange)).optional() }).passthrough(), "Debugger.stepOver.params", "commandParams", { method: "Debugger.stepOver" }); export const StepOverResult = withCdpMeta(z.object({ }).passthrough(), "Debugger.stepOver.result", "commandResult", { method: "Debugger.stepOver" }); +export const StepOverCommand = withCdpCommand("Debugger.stepOver", StepOverParams, StepOverResult); export const BreakpointResolvedEvent = withCdpMeta(z.object({ "breakpointId": z.lazy(() => BreakpointId), "location": z.lazy(() => Location) }).passthrough(), "Debugger.breakpointResolved", "event", { phase: "event" }); export const PausedEvent = withCdpMeta(z.object({ "callFrames": z.array(z.lazy(() => CallFrame)), "reason": z.enum(["ambiguous", "assert", "CSPViolation", "debugCommand", "DOM", "EventListener", "exception", "instrumentation", "OOM", "other", "promiseRejection", "XHR", "step"]), "data": z.record(z.string(), z.unknown()).optional(), "hitBreakpoints": z.array(z.string()).optional(), "asyncStackTrace": z.lazy(() => Runtime.StackTrace).optional(), "asyncStackTraceId": z.lazy(() => Runtime.StackTraceId).optional(), "asyncCallStackTraceId": z.lazy(() => Runtime.StackTraceId).optional() }).passthrough(), "Debugger.paused", "event", { phase: "event" }); export const ResumedEvent = withCdpMeta(z.object({ }).passthrough(), "Debugger.resumed", "event", { phase: "event" }); @@ -176,39 +209,39 @@ export const zod = { ScriptParsedEvent: ScriptParsedEvent, } as const; export const commands = { - "Debugger.continueToLocation": { params: ContinueToLocationParams, result: ContinueToLocationResult }, - "Debugger.disable": { params: DisableParams, result: DisableResult }, - "Debugger.enable": { params: EnableParams, result: EnableResult }, - "Debugger.evaluateOnCallFrame": { params: EvaluateOnCallFrameParams, result: EvaluateOnCallFrameResult }, - "Debugger.getPossibleBreakpoints": { params: GetPossibleBreakpointsParams, result: GetPossibleBreakpointsResult }, - "Debugger.getScriptSource": { params: GetScriptSourceParams, result: GetScriptSourceResult }, - "Debugger.disassembleWasmModule": { params: DisassembleWasmModuleParams, result: DisassembleWasmModuleResult }, - "Debugger.nextWasmDisassemblyChunk": { params: NextWasmDisassemblyChunkParams, result: NextWasmDisassemblyChunkResult }, - "Debugger.getWasmBytecode": { params: GetWasmBytecodeParams, result: GetWasmBytecodeResult }, - "Debugger.getStackTrace": { params: GetStackTraceParams, result: GetStackTraceResult }, - "Debugger.pause": { params: PauseParams, result: PauseResult }, - "Debugger.pauseOnAsyncCall": { params: PauseOnAsyncCallParams, result: PauseOnAsyncCallResult }, - "Debugger.removeBreakpoint": { params: RemoveBreakpointParams, result: RemoveBreakpointResult }, - "Debugger.restartFrame": { params: RestartFrameParams, result: RestartFrameResult }, - "Debugger.resume": { params: ResumeParams, result: ResumeResult }, - "Debugger.searchInContent": { params: SearchInContentParams, result: SearchInContentResult }, - "Debugger.setAsyncCallStackDepth": { params: SetAsyncCallStackDepthParams, result: SetAsyncCallStackDepthResult }, - "Debugger.setBlackboxExecutionContexts": { params: SetBlackboxExecutionContextsParams, result: SetBlackboxExecutionContextsResult }, - "Debugger.setBlackboxPatterns": { params: SetBlackboxPatternsParams, result: SetBlackboxPatternsResult }, - "Debugger.setBlackboxedRanges": { params: SetBlackboxedRangesParams, result: SetBlackboxedRangesResult }, - "Debugger.setBreakpoint": { params: SetBreakpointParams, result: SetBreakpointResult }, - "Debugger.setInstrumentationBreakpoint": { params: SetInstrumentationBreakpointParams, result: SetInstrumentationBreakpointResult }, - "Debugger.setBreakpointByUrl": { params: SetBreakpointByUrlParams, result: SetBreakpointByUrlResult }, - "Debugger.setBreakpointOnFunctionCall": { params: SetBreakpointOnFunctionCallParams, result: SetBreakpointOnFunctionCallResult }, - "Debugger.setBreakpointsActive": { params: SetBreakpointsActiveParams, result: SetBreakpointsActiveResult }, - "Debugger.setPauseOnExceptions": { params: SetPauseOnExceptionsParams, result: SetPauseOnExceptionsResult }, - "Debugger.setReturnValue": { params: SetReturnValueParams, result: SetReturnValueResult }, - "Debugger.setScriptSource": { params: SetScriptSourceParams, result: SetScriptSourceResult }, - "Debugger.setSkipAllPauses": { params: SetSkipAllPausesParams, result: SetSkipAllPausesResult }, - "Debugger.setVariableValue": { params: SetVariableValueParams, result: SetVariableValueResult }, - "Debugger.stepInto": { params: StepIntoParams, result: StepIntoResult }, - "Debugger.stepOut": { params: StepOutParams, result: StepOutResult }, - "Debugger.stepOver": { params: StepOverParams, result: StepOverResult }, + "Debugger.continueToLocation": ContinueToLocationCommand, + "Debugger.disable": DisableCommand, + "Debugger.enable": EnableCommand, + "Debugger.evaluateOnCallFrame": EvaluateOnCallFrameCommand, + "Debugger.getPossibleBreakpoints": GetPossibleBreakpointsCommand, + "Debugger.getScriptSource": GetScriptSourceCommand, + "Debugger.disassembleWasmModule": DisassembleWasmModuleCommand, + "Debugger.nextWasmDisassemblyChunk": NextWasmDisassemblyChunkCommand, + "Debugger.getWasmBytecode": GetWasmBytecodeCommand, + "Debugger.getStackTrace": GetStackTraceCommand, + "Debugger.pause": PauseCommand, + "Debugger.pauseOnAsyncCall": PauseOnAsyncCallCommand, + "Debugger.removeBreakpoint": RemoveBreakpointCommand, + "Debugger.restartFrame": RestartFrameCommand, + "Debugger.resume": ResumeCommand, + "Debugger.searchInContent": SearchInContentCommand, + "Debugger.setAsyncCallStackDepth": SetAsyncCallStackDepthCommand, + "Debugger.setBlackboxExecutionContexts": SetBlackboxExecutionContextsCommand, + "Debugger.setBlackboxPatterns": SetBlackboxPatternsCommand, + "Debugger.setBlackboxedRanges": SetBlackboxedRangesCommand, + "Debugger.setBreakpoint": SetBreakpointCommand, + "Debugger.setInstrumentationBreakpoint": SetInstrumentationBreakpointCommand, + "Debugger.setBreakpointByUrl": SetBreakpointByUrlCommand, + "Debugger.setBreakpointOnFunctionCall": SetBreakpointOnFunctionCallCommand, + "Debugger.setBreakpointsActive": SetBreakpointsActiveCommand, + "Debugger.setPauseOnExceptions": SetPauseOnExceptionsCommand, + "Debugger.setReturnValue": SetReturnValueCommand, + "Debugger.setScriptSource": SetScriptSourceCommand, + "Debugger.setSkipAllPauses": SetSkipAllPausesCommand, + "Debugger.setVariableValue": SetVariableValueCommand, + "Debugger.stepInto": StepIntoCommand, + "Debugger.stepOut": StepOutCommand, + "Debugger.stepOver": StepOverCommand, } as const; export const events = { "Debugger.breakpointResolved": BreakpointResolvedEvent, diff --git a/js/src/types/generated/zod/DeviceAccess.ts b/js/src/types/generated/zod/DeviceAccess.ts index 5d860a85..8a69d343 100644 --- a/js/src/types/generated/zod/DeviceAccess.ts +++ b/js/src/types/generated/zod/DeviceAccess.ts @@ -1,19 +1,23 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const RequestId = withCdpMeta(z.string(), "DeviceAccess.RequestId", "type"); export const DeviceId = withCdpMeta(z.string(), "DeviceAccess.DeviceId", "type"); export const PromptDevice = withCdpMeta(z.object({ "id": z.lazy(() => DeviceId), "name": z.string() }).passthrough(), "DeviceAccess.PromptDevice", "type"); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "DeviceAccess.enable.params", "commandParams", { method: "DeviceAccess.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "DeviceAccess.enable.result", "commandResult", { method: "DeviceAccess.enable" }); +export const EnableCommand = withCdpCommand("DeviceAccess.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "DeviceAccess.disable.params", "commandParams", { method: "DeviceAccess.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "DeviceAccess.disable.result", "commandResult", { method: "DeviceAccess.disable" }); +export const DisableCommand = withCdpCommand("DeviceAccess.disable", DisableParams, DisableResult); export const SelectPromptParams = withCdpMeta(z.object({ "id": z.lazy(() => RequestId), "deviceId": z.lazy(() => DeviceId) }).passthrough(), "DeviceAccess.selectPrompt.params", "commandParams", { method: "DeviceAccess.selectPrompt" }); export const SelectPromptResult = withCdpMeta(z.object({ }).passthrough(), "DeviceAccess.selectPrompt.result", "commandResult", { method: "DeviceAccess.selectPrompt" }); +export const SelectPromptCommand = withCdpCommand("DeviceAccess.selectPrompt", SelectPromptParams, SelectPromptResult); export const CancelPromptParams = withCdpMeta(z.object({ "id": z.lazy(() => RequestId) }).passthrough(), "DeviceAccess.cancelPrompt.params", "commandParams", { method: "DeviceAccess.cancelPrompt" }); export const CancelPromptResult = withCdpMeta(z.object({ }).passthrough(), "DeviceAccess.cancelPrompt.result", "commandResult", { method: "DeviceAccess.cancelPrompt" }); +export const CancelPromptCommand = withCdpCommand("DeviceAccess.cancelPrompt", CancelPromptParams, CancelPromptResult); export const DeviceRequestPromptedEvent = withCdpMeta(z.object({ "id": z.lazy(() => RequestId), "devices": z.array(z.lazy(() => PromptDevice)) }).passthrough(), "DeviceAccess.deviceRequestPrompted", "event", { phase: "event" }); export const zod = { @@ -31,10 +35,10 @@ export const zod = { DeviceRequestPromptedEvent: DeviceRequestPromptedEvent, } as const; export const commands = { - "DeviceAccess.enable": { params: EnableParams, result: EnableResult }, - "DeviceAccess.disable": { params: DisableParams, result: DisableResult }, - "DeviceAccess.selectPrompt": { params: SelectPromptParams, result: SelectPromptResult }, - "DeviceAccess.cancelPrompt": { params: CancelPromptParams, result: CancelPromptResult }, + "DeviceAccess.enable": EnableCommand, + "DeviceAccess.disable": DisableCommand, + "DeviceAccess.selectPrompt": SelectPromptCommand, + "DeviceAccess.cancelPrompt": CancelPromptCommand, } as const; export const events = { "DeviceAccess.deviceRequestPrompted": DeviceRequestPromptedEvent, diff --git a/js/src/types/generated/zod/DeviceOrientation.ts b/js/src/types/generated/zod/DeviceOrientation.ts index 3f06e148..af297fb7 100644 --- a/js/src/types/generated/zod/DeviceOrientation.ts +++ b/js/src/types/generated/zod/DeviceOrientation.ts @@ -1,12 +1,14 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const ClearDeviceOrientationOverrideParams = withCdpMeta(z.object({ }).passthrough(), "DeviceOrientation.clearDeviceOrientationOverride.params", "commandParams", { method: "DeviceOrientation.clearDeviceOrientationOverride" }); export const ClearDeviceOrientationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "DeviceOrientation.clearDeviceOrientationOverride.result", "commandResult", { method: "DeviceOrientation.clearDeviceOrientationOverride" }); +export const ClearDeviceOrientationOverrideCommand = withCdpCommand("DeviceOrientation.clearDeviceOrientationOverride", ClearDeviceOrientationOverrideParams, ClearDeviceOrientationOverrideResult); export const SetDeviceOrientationOverrideParams = withCdpMeta(z.object({ "alpha": z.number(), "beta": z.number(), "gamma": z.number() }).passthrough(), "DeviceOrientation.setDeviceOrientationOverride.params", "commandParams", { method: "DeviceOrientation.setDeviceOrientationOverride" }); export const SetDeviceOrientationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "DeviceOrientation.setDeviceOrientationOverride.result", "commandResult", { method: "DeviceOrientation.setDeviceOrientationOverride" }); +export const SetDeviceOrientationOverrideCommand = withCdpCommand("DeviceOrientation.setDeviceOrientationOverride", SetDeviceOrientationOverrideParams, SetDeviceOrientationOverrideResult); export const zod = { ClearDeviceOrientationOverrideParams: ClearDeviceOrientationOverrideParams, @@ -15,8 +17,8 @@ export const zod = { SetDeviceOrientationOverrideResult: SetDeviceOrientationOverrideResult, } as const; export const commands = { - "DeviceOrientation.clearDeviceOrientationOverride": { params: ClearDeviceOrientationOverrideParams, result: ClearDeviceOrientationOverrideResult }, - "DeviceOrientation.setDeviceOrientationOverride": { params: SetDeviceOrientationOverrideParams, result: SetDeviceOrientationOverrideResult }, + "DeviceOrientation.clearDeviceOrientationOverride": ClearDeviceOrientationOverrideCommand, + "DeviceOrientation.setDeviceOrientationOverride": SetDeviceOrientationOverrideCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/Emulation.ts b/js/src/types/generated/zod/Emulation.ts index 00cfea62..6c26da7f 100644 --- a/js/src/types/generated/zod/Emulation.ts +++ b/js/src/types/generated/zod/Emulation.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Network from "./Network.js"; import * as Page from "./Page.js"; @@ -29,100 +29,148 @@ export const ScreenInfo = withCdpMeta(z.object({ "left": z.number().int(), "top" export const DisabledImageType = withCdpMeta(z.enum(["avif", "jxl", "webp"]), "Emulation.DisabledImageType", "type"); export const CanEmulateParams = withCdpMeta(z.object({ }).passthrough(), "Emulation.canEmulate.params", "commandParams", { method: "Emulation.canEmulate" }); export const CanEmulateResult = withCdpMeta(z.object({ "result": z.boolean() }).passthrough(), "Emulation.canEmulate.result", "commandResult", { method: "Emulation.canEmulate" }); +export const CanEmulateCommand = withCdpCommand("Emulation.canEmulate", CanEmulateParams, CanEmulateResult); export const ClearDeviceMetricsOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearDeviceMetricsOverride.params", "commandParams", { method: "Emulation.clearDeviceMetricsOverride" }); export const ClearDeviceMetricsOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearDeviceMetricsOverride.result", "commandResult", { method: "Emulation.clearDeviceMetricsOverride" }); +export const ClearDeviceMetricsOverrideCommand = withCdpCommand("Emulation.clearDeviceMetricsOverride", ClearDeviceMetricsOverrideParams, ClearDeviceMetricsOverrideResult); export const ClearGeolocationOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearGeolocationOverride.params", "commandParams", { method: "Emulation.clearGeolocationOverride" }); export const ClearGeolocationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearGeolocationOverride.result", "commandResult", { method: "Emulation.clearGeolocationOverride" }); +export const ClearGeolocationOverrideCommand = withCdpCommand("Emulation.clearGeolocationOverride", ClearGeolocationOverrideParams, ClearGeolocationOverrideResult); export const ResetPageScaleFactorParams = withCdpMeta(z.object({ }).passthrough(), "Emulation.resetPageScaleFactor.params", "commandParams", { method: "Emulation.resetPageScaleFactor" }); export const ResetPageScaleFactorResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.resetPageScaleFactor.result", "commandResult", { method: "Emulation.resetPageScaleFactor" }); +export const ResetPageScaleFactorCommand = withCdpCommand("Emulation.resetPageScaleFactor", ResetPageScaleFactorParams, ResetPageScaleFactorResult); export const SetFocusEmulationEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "Emulation.setFocusEmulationEnabled.params", "commandParams", { method: "Emulation.setFocusEmulationEnabled" }); export const SetFocusEmulationEnabledResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setFocusEmulationEnabled.result", "commandResult", { method: "Emulation.setFocusEmulationEnabled" }); +export const SetFocusEmulationEnabledCommand = withCdpCommand("Emulation.setFocusEmulationEnabled", SetFocusEmulationEnabledParams, SetFocusEmulationEnabledResult); export const SetAutoDarkModeOverrideParams = withCdpMeta(z.object({ "enabled": z.boolean().optional() }).passthrough(), "Emulation.setAutoDarkModeOverride.params", "commandParams", { method: "Emulation.setAutoDarkModeOverride" }); export const SetAutoDarkModeOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setAutoDarkModeOverride.result", "commandResult", { method: "Emulation.setAutoDarkModeOverride" }); +export const SetAutoDarkModeOverrideCommand = withCdpCommand("Emulation.setAutoDarkModeOverride", SetAutoDarkModeOverrideParams, SetAutoDarkModeOverrideResult); export const SetCPUThrottlingRateParams = withCdpMeta(z.object({ "rate": z.number() }).passthrough(), "Emulation.setCPUThrottlingRate.params", "commandParams", { method: "Emulation.setCPUThrottlingRate" }); export const SetCPUThrottlingRateResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setCPUThrottlingRate.result", "commandResult", { method: "Emulation.setCPUThrottlingRate" }); +export const SetCPUThrottlingRateCommand = withCdpCommand("Emulation.setCPUThrottlingRate", SetCPUThrottlingRateParams, SetCPUThrottlingRateResult); export const SetDefaultBackgroundColorOverrideParams = withCdpMeta(z.object({ "color": z.lazy(() => DOM.RGBA).optional() }).passthrough(), "Emulation.setDefaultBackgroundColorOverride.params", "commandParams", { method: "Emulation.setDefaultBackgroundColorOverride" }); export const SetDefaultBackgroundColorOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setDefaultBackgroundColorOverride.result", "commandResult", { method: "Emulation.setDefaultBackgroundColorOverride" }); +export const SetDefaultBackgroundColorOverrideCommand = withCdpCommand("Emulation.setDefaultBackgroundColorOverride", SetDefaultBackgroundColorOverrideParams, SetDefaultBackgroundColorOverrideResult); export const SetSafeAreaInsetsOverrideParams = withCdpMeta(z.object({ "insets": z.lazy(() => SafeAreaInsets) }).passthrough(), "Emulation.setSafeAreaInsetsOverride.params", "commandParams", { method: "Emulation.setSafeAreaInsetsOverride" }); export const SetSafeAreaInsetsOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setSafeAreaInsetsOverride.result", "commandResult", { method: "Emulation.setSafeAreaInsetsOverride" }); +export const SetSafeAreaInsetsOverrideCommand = withCdpCommand("Emulation.setSafeAreaInsetsOverride", SetSafeAreaInsetsOverrideParams, SetSafeAreaInsetsOverrideResult); export const SetDeviceMetricsOverrideParams = withCdpMeta(z.object({ "width": z.number().int(), "height": z.number().int(), "deviceScaleFactor": z.number(), "mobile": z.boolean(), "scale": z.number().optional(), "screenWidth": z.number().int().optional(), "screenHeight": z.number().int().optional(), "positionX": z.number().int().optional(), "positionY": z.number().int().optional(), "dontSetVisibleSize": z.boolean().optional(), "screenOrientation": z.lazy(() => ScreenOrientation).optional(), "viewport": z.lazy(() => Page.Viewport).optional(), "displayFeature": z.lazy(() => DisplayFeature).optional(), "devicePosture": z.lazy(() => DevicePosture).optional(), "scrollbarType": z.enum(["overlay", "default"]).optional(), "screenOrientationLockEmulation": z.boolean().optional() }).passthrough(), "Emulation.setDeviceMetricsOverride.params", "commandParams", { method: "Emulation.setDeviceMetricsOverride" }); export const SetDeviceMetricsOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setDeviceMetricsOverride.result", "commandResult", { method: "Emulation.setDeviceMetricsOverride" }); +export const SetDeviceMetricsOverrideCommand = withCdpCommand("Emulation.setDeviceMetricsOverride", SetDeviceMetricsOverrideParams, SetDeviceMetricsOverrideResult); export const SetDevicePostureOverrideParams = withCdpMeta(z.object({ "posture": z.lazy(() => DevicePosture) }).passthrough(), "Emulation.setDevicePostureOverride.params", "commandParams", { method: "Emulation.setDevicePostureOverride" }); export const SetDevicePostureOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setDevicePostureOverride.result", "commandResult", { method: "Emulation.setDevicePostureOverride" }); +export const SetDevicePostureOverrideCommand = withCdpCommand("Emulation.setDevicePostureOverride", SetDevicePostureOverrideParams, SetDevicePostureOverrideResult); export const ClearDevicePostureOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearDevicePostureOverride.params", "commandParams", { method: "Emulation.clearDevicePostureOverride" }); export const ClearDevicePostureOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearDevicePostureOverride.result", "commandResult", { method: "Emulation.clearDevicePostureOverride" }); +export const ClearDevicePostureOverrideCommand = withCdpCommand("Emulation.clearDevicePostureOverride", ClearDevicePostureOverrideParams, ClearDevicePostureOverrideResult); export const SetDisplayFeaturesOverrideParams = withCdpMeta(z.object({ "features": z.array(z.lazy(() => DisplayFeature)) }).passthrough(), "Emulation.setDisplayFeaturesOverride.params", "commandParams", { method: "Emulation.setDisplayFeaturesOverride" }); export const SetDisplayFeaturesOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setDisplayFeaturesOverride.result", "commandResult", { method: "Emulation.setDisplayFeaturesOverride" }); +export const SetDisplayFeaturesOverrideCommand = withCdpCommand("Emulation.setDisplayFeaturesOverride", SetDisplayFeaturesOverrideParams, SetDisplayFeaturesOverrideResult); export const ClearDisplayFeaturesOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearDisplayFeaturesOverride.params", "commandParams", { method: "Emulation.clearDisplayFeaturesOverride" }); export const ClearDisplayFeaturesOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearDisplayFeaturesOverride.result", "commandResult", { method: "Emulation.clearDisplayFeaturesOverride" }); +export const ClearDisplayFeaturesOverrideCommand = withCdpCommand("Emulation.clearDisplayFeaturesOverride", ClearDisplayFeaturesOverrideParams, ClearDisplayFeaturesOverrideResult); export const SetScrollbarsHiddenParams = withCdpMeta(z.object({ "hidden": z.boolean() }).passthrough(), "Emulation.setScrollbarsHidden.params", "commandParams", { method: "Emulation.setScrollbarsHidden" }); export const SetScrollbarsHiddenResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setScrollbarsHidden.result", "commandResult", { method: "Emulation.setScrollbarsHidden" }); +export const SetScrollbarsHiddenCommand = withCdpCommand("Emulation.setScrollbarsHidden", SetScrollbarsHiddenParams, SetScrollbarsHiddenResult); export const SetDocumentCookieDisabledParams = withCdpMeta(z.object({ "disabled": z.boolean() }).passthrough(), "Emulation.setDocumentCookieDisabled.params", "commandParams", { method: "Emulation.setDocumentCookieDisabled" }); export const SetDocumentCookieDisabledResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setDocumentCookieDisabled.result", "commandResult", { method: "Emulation.setDocumentCookieDisabled" }); +export const SetDocumentCookieDisabledCommand = withCdpCommand("Emulation.setDocumentCookieDisabled", SetDocumentCookieDisabledParams, SetDocumentCookieDisabledResult); export const SetEmitTouchEventsForMouseParams = withCdpMeta(z.object({ "enabled": z.boolean(), "configuration": z.enum(["mobile", "desktop"]).optional() }).passthrough(), "Emulation.setEmitTouchEventsForMouse.params", "commandParams", { method: "Emulation.setEmitTouchEventsForMouse" }); export const SetEmitTouchEventsForMouseResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setEmitTouchEventsForMouse.result", "commandResult", { method: "Emulation.setEmitTouchEventsForMouse" }); +export const SetEmitTouchEventsForMouseCommand = withCdpCommand("Emulation.setEmitTouchEventsForMouse", SetEmitTouchEventsForMouseParams, SetEmitTouchEventsForMouseResult); export const SetEmulatedMediaParams = withCdpMeta(z.object({ "media": z.string().optional(), "features": z.array(z.lazy(() => MediaFeature)).optional() }).passthrough(), "Emulation.setEmulatedMedia.params", "commandParams", { method: "Emulation.setEmulatedMedia" }); export const SetEmulatedMediaResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setEmulatedMedia.result", "commandResult", { method: "Emulation.setEmulatedMedia" }); +export const SetEmulatedMediaCommand = withCdpCommand("Emulation.setEmulatedMedia", SetEmulatedMediaParams, SetEmulatedMediaResult); export const SetEmulatedVisionDeficiencyParams = withCdpMeta(z.object({ "type": z.enum(["none", "blurredVision", "reducedContrast", "achromatopsia", "deuteranopia", "protanopia", "tritanopia"]) }).passthrough(), "Emulation.setEmulatedVisionDeficiency.params", "commandParams", { method: "Emulation.setEmulatedVisionDeficiency" }); export const SetEmulatedVisionDeficiencyResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setEmulatedVisionDeficiency.result", "commandResult", { method: "Emulation.setEmulatedVisionDeficiency" }); +export const SetEmulatedVisionDeficiencyCommand = withCdpCommand("Emulation.setEmulatedVisionDeficiency", SetEmulatedVisionDeficiencyParams, SetEmulatedVisionDeficiencyResult); export const SetEmulatedOSTextScaleParams = withCdpMeta(z.object({ "scale": z.number().optional() }).passthrough(), "Emulation.setEmulatedOSTextScale.params", "commandParams", { method: "Emulation.setEmulatedOSTextScale" }); export const SetEmulatedOSTextScaleResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setEmulatedOSTextScale.result", "commandResult", { method: "Emulation.setEmulatedOSTextScale" }); +export const SetEmulatedOSTextScaleCommand = withCdpCommand("Emulation.setEmulatedOSTextScale", SetEmulatedOSTextScaleParams, SetEmulatedOSTextScaleResult); export const SetGeolocationOverrideParams = withCdpMeta(z.object({ "latitude": z.number().optional(), "longitude": z.number().optional(), "accuracy": z.number().optional(), "altitude": z.number().optional(), "altitudeAccuracy": z.number().optional(), "heading": z.number().optional(), "speed": z.number().optional() }).passthrough(), "Emulation.setGeolocationOverride.params", "commandParams", { method: "Emulation.setGeolocationOverride" }); export const SetGeolocationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setGeolocationOverride.result", "commandResult", { method: "Emulation.setGeolocationOverride" }); +export const SetGeolocationOverrideCommand = withCdpCommand("Emulation.setGeolocationOverride", SetGeolocationOverrideParams, SetGeolocationOverrideResult); export const GetOverriddenSensorInformationParams = withCdpMeta(z.object({ "type": z.lazy(() => SensorType) }).passthrough(), "Emulation.getOverriddenSensorInformation.params", "commandParams", { method: "Emulation.getOverriddenSensorInformation" }); export const GetOverriddenSensorInformationResult = withCdpMeta(z.object({ "requestedSamplingFrequency": z.number() }).passthrough(), "Emulation.getOverriddenSensorInformation.result", "commandResult", { method: "Emulation.getOverriddenSensorInformation" }); +export const GetOverriddenSensorInformationCommand = withCdpCommand("Emulation.getOverriddenSensorInformation", GetOverriddenSensorInformationParams, GetOverriddenSensorInformationResult); export const SetSensorOverrideEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean(), "type": z.lazy(() => SensorType), "metadata": z.lazy(() => SensorMetadata).optional() }).passthrough(), "Emulation.setSensorOverrideEnabled.params", "commandParams", { method: "Emulation.setSensorOverrideEnabled" }); export const SetSensorOverrideEnabledResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setSensorOverrideEnabled.result", "commandResult", { method: "Emulation.setSensorOverrideEnabled" }); +export const SetSensorOverrideEnabledCommand = withCdpCommand("Emulation.setSensorOverrideEnabled", SetSensorOverrideEnabledParams, SetSensorOverrideEnabledResult); export const SetSensorOverrideReadingsParams = withCdpMeta(z.object({ "type": z.lazy(() => SensorType), "reading": z.lazy(() => SensorReading) }).passthrough(), "Emulation.setSensorOverrideReadings.params", "commandParams", { method: "Emulation.setSensorOverrideReadings" }); export const SetSensorOverrideReadingsResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setSensorOverrideReadings.result", "commandResult", { method: "Emulation.setSensorOverrideReadings" }); +export const SetSensorOverrideReadingsCommand = withCdpCommand("Emulation.setSensorOverrideReadings", SetSensorOverrideReadingsParams, SetSensorOverrideReadingsResult); export const SetPressureSourceOverrideEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean(), "source": z.lazy(() => PressureSource), "metadata": z.lazy(() => PressureMetadata).optional() }).passthrough(), "Emulation.setPressureSourceOverrideEnabled.params", "commandParams", { method: "Emulation.setPressureSourceOverrideEnabled" }); export const SetPressureSourceOverrideEnabledResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setPressureSourceOverrideEnabled.result", "commandResult", { method: "Emulation.setPressureSourceOverrideEnabled" }); +export const SetPressureSourceOverrideEnabledCommand = withCdpCommand("Emulation.setPressureSourceOverrideEnabled", SetPressureSourceOverrideEnabledParams, SetPressureSourceOverrideEnabledResult); export const SetPressureStateOverrideParams = withCdpMeta(z.object({ "source": z.lazy(() => PressureSource), "state": z.lazy(() => PressureState) }).passthrough(), "Emulation.setPressureStateOverride.params", "commandParams", { method: "Emulation.setPressureStateOverride" }); export const SetPressureStateOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setPressureStateOverride.result", "commandResult", { method: "Emulation.setPressureStateOverride" }); +export const SetPressureStateOverrideCommand = withCdpCommand("Emulation.setPressureStateOverride", SetPressureStateOverrideParams, SetPressureStateOverrideResult); export const SetPressureDataOverrideParams = withCdpMeta(z.object({ "source": z.lazy(() => PressureSource), "state": z.lazy(() => PressureState), "ownContributionEstimate": z.number().optional() }).passthrough(), "Emulation.setPressureDataOverride.params", "commandParams", { method: "Emulation.setPressureDataOverride" }); export const SetPressureDataOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setPressureDataOverride.result", "commandResult", { method: "Emulation.setPressureDataOverride" }); +export const SetPressureDataOverrideCommand = withCdpCommand("Emulation.setPressureDataOverride", SetPressureDataOverrideParams, SetPressureDataOverrideResult); export const SetIdleOverrideParams = withCdpMeta(z.object({ "isUserActive": z.boolean(), "isScreenUnlocked": z.boolean() }).passthrough(), "Emulation.setIdleOverride.params", "commandParams", { method: "Emulation.setIdleOverride" }); export const SetIdleOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setIdleOverride.result", "commandResult", { method: "Emulation.setIdleOverride" }); +export const SetIdleOverrideCommand = withCdpCommand("Emulation.setIdleOverride", SetIdleOverrideParams, SetIdleOverrideResult); export const ClearIdleOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearIdleOverride.params", "commandParams", { method: "Emulation.clearIdleOverride" }); export const ClearIdleOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.clearIdleOverride.result", "commandResult", { method: "Emulation.clearIdleOverride" }); +export const ClearIdleOverrideCommand = withCdpCommand("Emulation.clearIdleOverride", ClearIdleOverrideParams, ClearIdleOverrideResult); export const SetNavigatorOverridesParams = withCdpMeta(z.object({ "platform": z.string() }).passthrough(), "Emulation.setNavigatorOverrides.params", "commandParams", { method: "Emulation.setNavigatorOverrides" }); export const SetNavigatorOverridesResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setNavigatorOverrides.result", "commandResult", { method: "Emulation.setNavigatorOverrides" }); +export const SetNavigatorOverridesCommand = withCdpCommand("Emulation.setNavigatorOverrides", SetNavigatorOverridesParams, SetNavigatorOverridesResult); export const SetPageScaleFactorParams = withCdpMeta(z.object({ "pageScaleFactor": z.number() }).passthrough(), "Emulation.setPageScaleFactor.params", "commandParams", { method: "Emulation.setPageScaleFactor" }); export const SetPageScaleFactorResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setPageScaleFactor.result", "commandResult", { method: "Emulation.setPageScaleFactor" }); +export const SetPageScaleFactorCommand = withCdpCommand("Emulation.setPageScaleFactor", SetPageScaleFactorParams, SetPageScaleFactorResult); export const SetScriptExecutionDisabledParams = withCdpMeta(z.object({ "value": z.boolean() }).passthrough(), "Emulation.setScriptExecutionDisabled.params", "commandParams", { method: "Emulation.setScriptExecutionDisabled" }); export const SetScriptExecutionDisabledResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setScriptExecutionDisabled.result", "commandResult", { method: "Emulation.setScriptExecutionDisabled" }); +export const SetScriptExecutionDisabledCommand = withCdpCommand("Emulation.setScriptExecutionDisabled", SetScriptExecutionDisabledParams, SetScriptExecutionDisabledResult); export const SetTouchEmulationEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean(), "maxTouchPoints": z.number().int().optional() }).passthrough(), "Emulation.setTouchEmulationEnabled.params", "commandParams", { method: "Emulation.setTouchEmulationEnabled" }); export const SetTouchEmulationEnabledResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setTouchEmulationEnabled.result", "commandResult", { method: "Emulation.setTouchEmulationEnabled" }); +export const SetTouchEmulationEnabledCommand = withCdpCommand("Emulation.setTouchEmulationEnabled", SetTouchEmulationEnabledParams, SetTouchEmulationEnabledResult); export const SetVirtualTimePolicyParams = withCdpMeta(z.object({ "policy": z.lazy(() => VirtualTimePolicy), "budget": z.number().optional(), "maxVirtualTimeTaskStarvationCount": z.number().int().optional(), "initialVirtualTime": z.lazy(() => Network.TimeSinceEpoch).optional() }).passthrough(), "Emulation.setVirtualTimePolicy.params", "commandParams", { method: "Emulation.setVirtualTimePolicy" }); export const SetVirtualTimePolicyResult = withCdpMeta(z.object({ "virtualTimeTicksBase": z.number() }).passthrough(), "Emulation.setVirtualTimePolicy.result", "commandResult", { method: "Emulation.setVirtualTimePolicy" }); +export const SetVirtualTimePolicyCommand = withCdpCommand("Emulation.setVirtualTimePolicy", SetVirtualTimePolicyParams, SetVirtualTimePolicyResult); export const SetLocaleOverrideParams = withCdpMeta(z.object({ "locale": z.string().optional() }).passthrough(), "Emulation.setLocaleOverride.params", "commandParams", { method: "Emulation.setLocaleOverride" }); export const SetLocaleOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setLocaleOverride.result", "commandResult", { method: "Emulation.setLocaleOverride" }); +export const SetLocaleOverrideCommand = withCdpCommand("Emulation.setLocaleOverride", SetLocaleOverrideParams, SetLocaleOverrideResult); export const SetTimezoneOverrideParams = withCdpMeta(z.object({ "timezoneId": z.string() }).passthrough(), "Emulation.setTimezoneOverride.params", "commandParams", { method: "Emulation.setTimezoneOverride" }); export const SetTimezoneOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setTimezoneOverride.result", "commandResult", { method: "Emulation.setTimezoneOverride" }); +export const SetTimezoneOverrideCommand = withCdpCommand("Emulation.setTimezoneOverride", SetTimezoneOverrideParams, SetTimezoneOverrideResult); export const SetVisibleSizeParams = withCdpMeta(z.object({ "width": z.number().int(), "height": z.number().int() }).passthrough(), "Emulation.setVisibleSize.params", "commandParams", { method: "Emulation.setVisibleSize" }); export const SetVisibleSizeResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setVisibleSize.result", "commandResult", { method: "Emulation.setVisibleSize" }); +export const SetVisibleSizeCommand = withCdpCommand("Emulation.setVisibleSize", SetVisibleSizeParams, SetVisibleSizeResult); export const SetDisabledImageTypesParams = withCdpMeta(z.object({ "imageTypes": z.array(z.lazy(() => DisabledImageType)) }).passthrough(), "Emulation.setDisabledImageTypes.params", "commandParams", { method: "Emulation.setDisabledImageTypes" }); export const SetDisabledImageTypesResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setDisabledImageTypes.result", "commandResult", { method: "Emulation.setDisabledImageTypes" }); +export const SetDisabledImageTypesCommand = withCdpCommand("Emulation.setDisabledImageTypes", SetDisabledImageTypesParams, SetDisabledImageTypesResult); export const SetDataSaverOverrideParams = withCdpMeta(z.object({ "dataSaverEnabled": z.boolean().optional() }).passthrough(), "Emulation.setDataSaverOverride.params", "commandParams", { method: "Emulation.setDataSaverOverride" }); export const SetDataSaverOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setDataSaverOverride.result", "commandResult", { method: "Emulation.setDataSaverOverride" }); +export const SetDataSaverOverrideCommand = withCdpCommand("Emulation.setDataSaverOverride", SetDataSaverOverrideParams, SetDataSaverOverrideResult); export const SetHardwareConcurrencyOverrideParams = withCdpMeta(z.object({ "hardwareConcurrency": z.number().int() }).passthrough(), "Emulation.setHardwareConcurrencyOverride.params", "commandParams", { method: "Emulation.setHardwareConcurrencyOverride" }); export const SetHardwareConcurrencyOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setHardwareConcurrencyOverride.result", "commandResult", { method: "Emulation.setHardwareConcurrencyOverride" }); +export const SetHardwareConcurrencyOverrideCommand = withCdpCommand("Emulation.setHardwareConcurrencyOverride", SetHardwareConcurrencyOverrideParams, SetHardwareConcurrencyOverrideResult); export const SetUserAgentOverrideParams = withCdpMeta(z.object({ "userAgent": z.string(), "acceptLanguage": z.string().optional(), "platform": z.string().optional(), "userAgentMetadata": z.lazy(() => UserAgentMetadata).optional() }).passthrough(), "Emulation.setUserAgentOverride.params", "commandParams", { method: "Emulation.setUserAgentOverride" }); export const SetUserAgentOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setUserAgentOverride.result", "commandResult", { method: "Emulation.setUserAgentOverride" }); +export const SetUserAgentOverrideCommand = withCdpCommand("Emulation.setUserAgentOverride", SetUserAgentOverrideParams, SetUserAgentOverrideResult); export const SetAutomationOverrideParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "Emulation.setAutomationOverride.params", "commandParams", { method: "Emulation.setAutomationOverride" }); export const SetAutomationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setAutomationOverride.result", "commandResult", { method: "Emulation.setAutomationOverride" }); +export const SetAutomationOverrideCommand = withCdpCommand("Emulation.setAutomationOverride", SetAutomationOverrideParams, SetAutomationOverrideResult); export const SetSmallViewportHeightDifferenceOverrideParams = withCdpMeta(z.object({ "difference": z.number().int() }).passthrough(), "Emulation.setSmallViewportHeightDifferenceOverride.params", "commandParams", { method: "Emulation.setSmallViewportHeightDifferenceOverride" }); export const SetSmallViewportHeightDifferenceOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setSmallViewportHeightDifferenceOverride.result", "commandResult", { method: "Emulation.setSmallViewportHeightDifferenceOverride" }); +export const SetSmallViewportHeightDifferenceOverrideCommand = withCdpCommand("Emulation.setSmallViewportHeightDifferenceOverride", SetSmallViewportHeightDifferenceOverrideParams, SetSmallViewportHeightDifferenceOverrideResult); export const GetScreenInfosParams = withCdpMeta(z.object({ }).passthrough(), "Emulation.getScreenInfos.params", "commandParams", { method: "Emulation.getScreenInfos" }); export const GetScreenInfosResult = withCdpMeta(z.object({ "screenInfos": z.array(z.lazy(() => ScreenInfo)) }).passthrough(), "Emulation.getScreenInfos.result", "commandResult", { method: "Emulation.getScreenInfos" }); +export const GetScreenInfosCommand = withCdpCommand("Emulation.getScreenInfos", GetScreenInfosParams, GetScreenInfosResult); export const AddScreenParams = withCdpMeta(z.object({ "left": z.number().int(), "top": z.number().int(), "width": z.number().int(), "height": z.number().int(), "workAreaInsets": z.lazy(() => WorkAreaInsets).optional(), "devicePixelRatio": z.number().optional(), "rotation": z.number().int().optional(), "colorDepth": z.number().int().optional(), "label": z.string().optional(), "isInternal": z.boolean().optional() }).passthrough(), "Emulation.addScreen.params", "commandParams", { method: "Emulation.addScreen" }); export const AddScreenResult = withCdpMeta(z.object({ "screenInfo": z.lazy(() => ScreenInfo) }).passthrough(), "Emulation.addScreen.result", "commandResult", { method: "Emulation.addScreen" }); +export const AddScreenCommand = withCdpCommand("Emulation.addScreen", AddScreenParams, AddScreenResult); export const UpdateScreenParams = withCdpMeta(z.object({ "screenId": z.lazy(() => ScreenId), "left": z.number().int().optional(), "top": z.number().int().optional(), "width": z.number().int().optional(), "height": z.number().int().optional(), "workAreaInsets": z.lazy(() => WorkAreaInsets).optional(), "devicePixelRatio": z.number().optional(), "rotation": z.number().int().optional(), "colorDepth": z.number().int().optional(), "label": z.string().optional(), "isInternal": z.boolean().optional() }).passthrough(), "Emulation.updateScreen.params", "commandParams", { method: "Emulation.updateScreen" }); export const UpdateScreenResult = withCdpMeta(z.object({ "screenInfo": z.lazy(() => ScreenInfo) }).passthrough(), "Emulation.updateScreen.result", "commandResult", { method: "Emulation.updateScreen" }); +export const UpdateScreenCommand = withCdpCommand("Emulation.updateScreen", UpdateScreenParams, UpdateScreenResult); export const RemoveScreenParams = withCdpMeta(z.object({ "screenId": z.lazy(() => ScreenId) }).passthrough(), "Emulation.removeScreen.params", "commandParams", { method: "Emulation.removeScreen" }); export const RemoveScreenResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.removeScreen.result", "commandResult", { method: "Emulation.removeScreen" }); +export const RemoveScreenCommand = withCdpCommand("Emulation.removeScreen", RemoveScreenParams, RemoveScreenResult); export const SetPrimaryScreenParams = withCdpMeta(z.object({ "screenId": z.lazy(() => ScreenId) }).passthrough(), "Emulation.setPrimaryScreen.params", "commandParams", { method: "Emulation.setPrimaryScreen" }); export const SetPrimaryScreenResult = withCdpMeta(z.object({ }).passthrough(), "Emulation.setPrimaryScreen.result", "commandResult", { method: "Emulation.setPrimaryScreen" }); +export const SetPrimaryScreenCommand = withCdpCommand("Emulation.setPrimaryScreen", SetPrimaryScreenParams, SetPrimaryScreenResult); export const VirtualTimeBudgetExpiredEvent = withCdpMeta(z.object({ }).passthrough(), "Emulation.virtualTimeBudgetExpired", "event", { phase: "event" }); export const ScreenOrientationLockChangedEvent = withCdpMeta(z.object({ "locked": z.boolean(), "orientation": z.lazy(() => ScreenOrientation).optional() }).passthrough(), "Emulation.screenOrientationLockChanged", "event", { phase: "event" }); @@ -248,54 +296,54 @@ export const zod = { ScreenOrientationLockChangedEvent: ScreenOrientationLockChangedEvent, } as const; export const commands = { - "Emulation.canEmulate": { params: CanEmulateParams, result: CanEmulateResult }, - "Emulation.clearDeviceMetricsOverride": { params: ClearDeviceMetricsOverrideParams, result: ClearDeviceMetricsOverrideResult }, - "Emulation.clearGeolocationOverride": { params: ClearGeolocationOverrideParams, result: ClearGeolocationOverrideResult }, - "Emulation.resetPageScaleFactor": { params: ResetPageScaleFactorParams, result: ResetPageScaleFactorResult }, - "Emulation.setFocusEmulationEnabled": { params: SetFocusEmulationEnabledParams, result: SetFocusEmulationEnabledResult }, - "Emulation.setAutoDarkModeOverride": { params: SetAutoDarkModeOverrideParams, result: SetAutoDarkModeOverrideResult }, - "Emulation.setCPUThrottlingRate": { params: SetCPUThrottlingRateParams, result: SetCPUThrottlingRateResult }, - "Emulation.setDefaultBackgroundColorOverride": { params: SetDefaultBackgroundColorOverrideParams, result: SetDefaultBackgroundColorOverrideResult }, - "Emulation.setSafeAreaInsetsOverride": { params: SetSafeAreaInsetsOverrideParams, result: SetSafeAreaInsetsOverrideResult }, - "Emulation.setDeviceMetricsOverride": { params: SetDeviceMetricsOverrideParams, result: SetDeviceMetricsOverrideResult }, - "Emulation.setDevicePostureOverride": { params: SetDevicePostureOverrideParams, result: SetDevicePostureOverrideResult }, - "Emulation.clearDevicePostureOverride": { params: ClearDevicePostureOverrideParams, result: ClearDevicePostureOverrideResult }, - "Emulation.setDisplayFeaturesOverride": { params: SetDisplayFeaturesOverrideParams, result: SetDisplayFeaturesOverrideResult }, - "Emulation.clearDisplayFeaturesOverride": { params: ClearDisplayFeaturesOverrideParams, result: ClearDisplayFeaturesOverrideResult }, - "Emulation.setScrollbarsHidden": { params: SetScrollbarsHiddenParams, result: SetScrollbarsHiddenResult }, - "Emulation.setDocumentCookieDisabled": { params: SetDocumentCookieDisabledParams, result: SetDocumentCookieDisabledResult }, - "Emulation.setEmitTouchEventsForMouse": { params: SetEmitTouchEventsForMouseParams, result: SetEmitTouchEventsForMouseResult }, - "Emulation.setEmulatedMedia": { params: SetEmulatedMediaParams, result: SetEmulatedMediaResult }, - "Emulation.setEmulatedVisionDeficiency": { params: SetEmulatedVisionDeficiencyParams, result: SetEmulatedVisionDeficiencyResult }, - "Emulation.setEmulatedOSTextScale": { params: SetEmulatedOSTextScaleParams, result: SetEmulatedOSTextScaleResult }, - "Emulation.setGeolocationOverride": { params: SetGeolocationOverrideParams, result: SetGeolocationOverrideResult }, - "Emulation.getOverriddenSensorInformation": { params: GetOverriddenSensorInformationParams, result: GetOverriddenSensorInformationResult }, - "Emulation.setSensorOverrideEnabled": { params: SetSensorOverrideEnabledParams, result: SetSensorOverrideEnabledResult }, - "Emulation.setSensorOverrideReadings": { params: SetSensorOverrideReadingsParams, result: SetSensorOverrideReadingsResult }, - "Emulation.setPressureSourceOverrideEnabled": { params: SetPressureSourceOverrideEnabledParams, result: SetPressureSourceOverrideEnabledResult }, - "Emulation.setPressureStateOverride": { params: SetPressureStateOverrideParams, result: SetPressureStateOverrideResult }, - "Emulation.setPressureDataOverride": { params: SetPressureDataOverrideParams, result: SetPressureDataOverrideResult }, - "Emulation.setIdleOverride": { params: SetIdleOverrideParams, result: SetIdleOverrideResult }, - "Emulation.clearIdleOverride": { params: ClearIdleOverrideParams, result: ClearIdleOverrideResult }, - "Emulation.setNavigatorOverrides": { params: SetNavigatorOverridesParams, result: SetNavigatorOverridesResult }, - "Emulation.setPageScaleFactor": { params: SetPageScaleFactorParams, result: SetPageScaleFactorResult }, - "Emulation.setScriptExecutionDisabled": { params: SetScriptExecutionDisabledParams, result: SetScriptExecutionDisabledResult }, - "Emulation.setTouchEmulationEnabled": { params: SetTouchEmulationEnabledParams, result: SetTouchEmulationEnabledResult }, - "Emulation.setVirtualTimePolicy": { params: SetVirtualTimePolicyParams, result: SetVirtualTimePolicyResult }, - "Emulation.setLocaleOverride": { params: SetLocaleOverrideParams, result: SetLocaleOverrideResult }, - "Emulation.setTimezoneOverride": { params: SetTimezoneOverrideParams, result: SetTimezoneOverrideResult }, - "Emulation.setVisibleSize": { params: SetVisibleSizeParams, result: SetVisibleSizeResult }, - "Emulation.setDisabledImageTypes": { params: SetDisabledImageTypesParams, result: SetDisabledImageTypesResult }, - "Emulation.setDataSaverOverride": { params: SetDataSaverOverrideParams, result: SetDataSaverOverrideResult }, - "Emulation.setHardwareConcurrencyOverride": { params: SetHardwareConcurrencyOverrideParams, result: SetHardwareConcurrencyOverrideResult }, - "Emulation.setUserAgentOverride": { params: SetUserAgentOverrideParams, result: SetUserAgentOverrideResult }, - "Emulation.setAutomationOverride": { params: SetAutomationOverrideParams, result: SetAutomationOverrideResult }, - "Emulation.setSmallViewportHeightDifferenceOverride": { params: SetSmallViewportHeightDifferenceOverrideParams, result: SetSmallViewportHeightDifferenceOverrideResult }, - "Emulation.getScreenInfos": { params: GetScreenInfosParams, result: GetScreenInfosResult }, - "Emulation.addScreen": { params: AddScreenParams, result: AddScreenResult }, - "Emulation.updateScreen": { params: UpdateScreenParams, result: UpdateScreenResult }, - "Emulation.removeScreen": { params: RemoveScreenParams, result: RemoveScreenResult }, - "Emulation.setPrimaryScreen": { params: SetPrimaryScreenParams, result: SetPrimaryScreenResult }, + "Emulation.canEmulate": CanEmulateCommand, + "Emulation.clearDeviceMetricsOverride": ClearDeviceMetricsOverrideCommand, + "Emulation.clearGeolocationOverride": ClearGeolocationOverrideCommand, + "Emulation.resetPageScaleFactor": ResetPageScaleFactorCommand, + "Emulation.setFocusEmulationEnabled": SetFocusEmulationEnabledCommand, + "Emulation.setAutoDarkModeOverride": SetAutoDarkModeOverrideCommand, + "Emulation.setCPUThrottlingRate": SetCPUThrottlingRateCommand, + "Emulation.setDefaultBackgroundColorOverride": SetDefaultBackgroundColorOverrideCommand, + "Emulation.setSafeAreaInsetsOverride": SetSafeAreaInsetsOverrideCommand, + "Emulation.setDeviceMetricsOverride": SetDeviceMetricsOverrideCommand, + "Emulation.setDevicePostureOverride": SetDevicePostureOverrideCommand, + "Emulation.clearDevicePostureOverride": ClearDevicePostureOverrideCommand, + "Emulation.setDisplayFeaturesOverride": SetDisplayFeaturesOverrideCommand, + "Emulation.clearDisplayFeaturesOverride": ClearDisplayFeaturesOverrideCommand, + "Emulation.setScrollbarsHidden": SetScrollbarsHiddenCommand, + "Emulation.setDocumentCookieDisabled": SetDocumentCookieDisabledCommand, + "Emulation.setEmitTouchEventsForMouse": SetEmitTouchEventsForMouseCommand, + "Emulation.setEmulatedMedia": SetEmulatedMediaCommand, + "Emulation.setEmulatedVisionDeficiency": SetEmulatedVisionDeficiencyCommand, + "Emulation.setEmulatedOSTextScale": SetEmulatedOSTextScaleCommand, + "Emulation.setGeolocationOverride": SetGeolocationOverrideCommand, + "Emulation.getOverriddenSensorInformation": GetOverriddenSensorInformationCommand, + "Emulation.setSensorOverrideEnabled": SetSensorOverrideEnabledCommand, + "Emulation.setSensorOverrideReadings": SetSensorOverrideReadingsCommand, + "Emulation.setPressureSourceOverrideEnabled": SetPressureSourceOverrideEnabledCommand, + "Emulation.setPressureStateOverride": SetPressureStateOverrideCommand, + "Emulation.setPressureDataOverride": SetPressureDataOverrideCommand, + "Emulation.setIdleOverride": SetIdleOverrideCommand, + "Emulation.clearIdleOverride": ClearIdleOverrideCommand, + "Emulation.setNavigatorOverrides": SetNavigatorOverridesCommand, + "Emulation.setPageScaleFactor": SetPageScaleFactorCommand, + "Emulation.setScriptExecutionDisabled": SetScriptExecutionDisabledCommand, + "Emulation.setTouchEmulationEnabled": SetTouchEmulationEnabledCommand, + "Emulation.setVirtualTimePolicy": SetVirtualTimePolicyCommand, + "Emulation.setLocaleOverride": SetLocaleOverrideCommand, + "Emulation.setTimezoneOverride": SetTimezoneOverrideCommand, + "Emulation.setVisibleSize": SetVisibleSizeCommand, + "Emulation.setDisabledImageTypes": SetDisabledImageTypesCommand, + "Emulation.setDataSaverOverride": SetDataSaverOverrideCommand, + "Emulation.setHardwareConcurrencyOverride": SetHardwareConcurrencyOverrideCommand, + "Emulation.setUserAgentOverride": SetUserAgentOverrideCommand, + "Emulation.setAutomationOverride": SetAutomationOverrideCommand, + "Emulation.setSmallViewportHeightDifferenceOverride": SetSmallViewportHeightDifferenceOverrideCommand, + "Emulation.getScreenInfos": GetScreenInfosCommand, + "Emulation.addScreen": AddScreenCommand, + "Emulation.updateScreen": UpdateScreenCommand, + "Emulation.removeScreen": RemoveScreenCommand, + "Emulation.setPrimaryScreen": SetPrimaryScreenCommand, } as const; export const events = { "Emulation.virtualTimeBudgetExpired": VirtualTimeBudgetExpiredEvent, diff --git a/js/src/types/generated/zod/EventBreakpoints.ts b/js/src/types/generated/zod/EventBreakpoints.ts index 6f9da151..88f03f05 100644 --- a/js/src/types/generated/zod/EventBreakpoints.ts +++ b/js/src/types/generated/zod/EventBreakpoints.ts @@ -1,14 +1,17 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const SetInstrumentationBreakpointParams = withCdpMeta(z.object({ "eventName": z.string() }).passthrough(), "EventBreakpoints.setInstrumentationBreakpoint.params", "commandParams", { method: "EventBreakpoints.setInstrumentationBreakpoint" }); export const SetInstrumentationBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "EventBreakpoints.setInstrumentationBreakpoint.result", "commandResult", { method: "EventBreakpoints.setInstrumentationBreakpoint" }); +export const SetInstrumentationBreakpointCommand = withCdpCommand("EventBreakpoints.setInstrumentationBreakpoint", SetInstrumentationBreakpointParams, SetInstrumentationBreakpointResult); export const RemoveInstrumentationBreakpointParams = withCdpMeta(z.object({ "eventName": z.string() }).passthrough(), "EventBreakpoints.removeInstrumentationBreakpoint.params", "commandParams", { method: "EventBreakpoints.removeInstrumentationBreakpoint" }); export const RemoveInstrumentationBreakpointResult = withCdpMeta(z.object({ }).passthrough(), "EventBreakpoints.removeInstrumentationBreakpoint.result", "commandResult", { method: "EventBreakpoints.removeInstrumentationBreakpoint" }); +export const RemoveInstrumentationBreakpointCommand = withCdpCommand("EventBreakpoints.removeInstrumentationBreakpoint", RemoveInstrumentationBreakpointParams, RemoveInstrumentationBreakpointResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "EventBreakpoints.disable.params", "commandParams", { method: "EventBreakpoints.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "EventBreakpoints.disable.result", "commandResult", { method: "EventBreakpoints.disable" }); +export const DisableCommand = withCdpCommand("EventBreakpoints.disable", DisableParams, DisableResult); export const zod = { SetInstrumentationBreakpointParams: SetInstrumentationBreakpointParams, @@ -19,9 +22,9 @@ export const zod = { DisableResult: DisableResult, } as const; export const commands = { - "EventBreakpoints.setInstrumentationBreakpoint": { params: SetInstrumentationBreakpointParams, result: SetInstrumentationBreakpointResult }, - "EventBreakpoints.removeInstrumentationBreakpoint": { params: RemoveInstrumentationBreakpointParams, result: RemoveInstrumentationBreakpointResult }, - "EventBreakpoints.disable": { params: DisableParams, result: DisableResult }, + "EventBreakpoints.setInstrumentationBreakpoint": SetInstrumentationBreakpointCommand, + "EventBreakpoints.removeInstrumentationBreakpoint": RemoveInstrumentationBreakpointCommand, + "EventBreakpoints.disable": DisableCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/Extensions.ts b/js/src/types/generated/zod/Extensions.ts index 8cd2332e..95523206 100644 --- a/js/src/types/generated/zod/Extensions.ts +++ b/js/src/types/generated/zod/Extensions.ts @@ -1,26 +1,34 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const StorageArea = withCdpMeta(z.enum(["session", "local", "sync", "managed"]), "Extensions.StorageArea", "type"); export const ExtensionInfo = withCdpMeta(z.object({ "id": z.string(), "name": z.string(), "version": z.string(), "path": z.string(), "enabled": z.boolean() }).passthrough(), "Extensions.ExtensionInfo", "type"); export const TriggerActionParams = withCdpMeta(z.object({ "id": z.string(), "targetId": z.string() }).passthrough(), "Extensions.triggerAction.params", "commandParams", { method: "Extensions.triggerAction" }); export const TriggerActionResult = withCdpMeta(z.object({ }).passthrough(), "Extensions.triggerAction.result", "commandResult", { method: "Extensions.triggerAction" }); +export const TriggerActionCommand = withCdpCommand("Extensions.triggerAction", TriggerActionParams, TriggerActionResult); export const LoadUnpackedParams = withCdpMeta(z.object({ "path": z.string(), "enableInIncognito": z.boolean().optional() }).passthrough(), "Extensions.loadUnpacked.params", "commandParams", { method: "Extensions.loadUnpacked" }); export const LoadUnpackedResult = withCdpMeta(z.object({ "id": z.string() }).passthrough(), "Extensions.loadUnpacked.result", "commandResult", { method: "Extensions.loadUnpacked" }); +export const LoadUnpackedCommand = withCdpCommand("Extensions.loadUnpacked", LoadUnpackedParams, LoadUnpackedResult); export const GetExtensionsParams = withCdpMeta(z.object({ }).passthrough(), "Extensions.getExtensions.params", "commandParams", { method: "Extensions.getExtensions" }); export const GetExtensionsResult = withCdpMeta(z.object({ "extensions": z.array(z.lazy(() => ExtensionInfo)) }).passthrough(), "Extensions.getExtensions.result", "commandResult", { method: "Extensions.getExtensions" }); +export const GetExtensionsCommand = withCdpCommand("Extensions.getExtensions", GetExtensionsParams, GetExtensionsResult); export const UninstallParams = withCdpMeta(z.object({ "id": z.string() }).passthrough(), "Extensions.uninstall.params", "commandParams", { method: "Extensions.uninstall" }); export const UninstallResult = withCdpMeta(z.object({ }).passthrough(), "Extensions.uninstall.result", "commandResult", { method: "Extensions.uninstall" }); +export const UninstallCommand = withCdpCommand("Extensions.uninstall", UninstallParams, UninstallResult); export const GetStorageItemsParams = withCdpMeta(z.object({ "id": z.string(), "storageArea": z.lazy(() => StorageArea), "keys": z.array(z.string()).optional() }).passthrough(), "Extensions.getStorageItems.params", "commandParams", { method: "Extensions.getStorageItems" }); export const GetStorageItemsResult = withCdpMeta(z.object({ "data": z.record(z.string(), z.unknown()) }).passthrough(), "Extensions.getStorageItems.result", "commandResult", { method: "Extensions.getStorageItems" }); +export const GetStorageItemsCommand = withCdpCommand("Extensions.getStorageItems", GetStorageItemsParams, GetStorageItemsResult); export const RemoveStorageItemsParams = withCdpMeta(z.object({ "id": z.string(), "storageArea": z.lazy(() => StorageArea), "keys": z.array(z.string()) }).passthrough(), "Extensions.removeStorageItems.params", "commandParams", { method: "Extensions.removeStorageItems" }); export const RemoveStorageItemsResult = withCdpMeta(z.object({ }).passthrough(), "Extensions.removeStorageItems.result", "commandResult", { method: "Extensions.removeStorageItems" }); +export const RemoveStorageItemsCommand = withCdpCommand("Extensions.removeStorageItems", RemoveStorageItemsParams, RemoveStorageItemsResult); export const ClearStorageItemsParams = withCdpMeta(z.object({ "id": z.string(), "storageArea": z.lazy(() => StorageArea) }).passthrough(), "Extensions.clearStorageItems.params", "commandParams", { method: "Extensions.clearStorageItems" }); export const ClearStorageItemsResult = withCdpMeta(z.object({ }).passthrough(), "Extensions.clearStorageItems.result", "commandResult", { method: "Extensions.clearStorageItems" }); +export const ClearStorageItemsCommand = withCdpCommand("Extensions.clearStorageItems", ClearStorageItemsParams, ClearStorageItemsResult); export const SetStorageItemsParams = withCdpMeta(z.object({ "id": z.string(), "storageArea": z.lazy(() => StorageArea), "values": z.record(z.string(), z.unknown()) }).passthrough(), "Extensions.setStorageItems.params", "commandParams", { method: "Extensions.setStorageItems" }); export const SetStorageItemsResult = withCdpMeta(z.object({ }).passthrough(), "Extensions.setStorageItems.result", "commandResult", { method: "Extensions.setStorageItems" }); +export const SetStorageItemsCommand = withCdpCommand("Extensions.setStorageItems", SetStorageItemsParams, SetStorageItemsResult); export const zod = { StorageArea: StorageArea, @@ -43,14 +51,14 @@ export const zod = { SetStorageItemsResult: SetStorageItemsResult, } as const; export const commands = { - "Extensions.triggerAction": { params: TriggerActionParams, result: TriggerActionResult }, - "Extensions.loadUnpacked": { params: LoadUnpackedParams, result: LoadUnpackedResult }, - "Extensions.getExtensions": { params: GetExtensionsParams, result: GetExtensionsResult }, - "Extensions.uninstall": { params: UninstallParams, result: UninstallResult }, - "Extensions.getStorageItems": { params: GetStorageItemsParams, result: GetStorageItemsResult }, - "Extensions.removeStorageItems": { params: RemoveStorageItemsParams, result: RemoveStorageItemsResult }, - "Extensions.clearStorageItems": { params: ClearStorageItemsParams, result: ClearStorageItemsResult }, - "Extensions.setStorageItems": { params: SetStorageItemsParams, result: SetStorageItemsResult }, + "Extensions.triggerAction": TriggerActionCommand, + "Extensions.loadUnpacked": LoadUnpackedCommand, + "Extensions.getExtensions": GetExtensionsCommand, + "Extensions.uninstall": UninstallCommand, + "Extensions.getStorageItems": GetStorageItemsCommand, + "Extensions.removeStorageItems": RemoveStorageItemsCommand, + "Extensions.clearStorageItems": ClearStorageItemsCommand, + "Extensions.setStorageItems": SetStorageItemsCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/FedCm.ts b/js/src/types/generated/zod/FedCm.ts index a39f5496..daa5ecf8 100644 --- a/js/src/types/generated/zod/FedCm.ts +++ b/js/src/types/generated/zod/FedCm.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const LoginState = withCdpMeta(z.enum(["SignIn", "SignUp"]), "FedCm.LoginState", "type"); export const DialogType = withCdpMeta(z.enum(["AccountChooser", "AutoReauthn", "ConfirmIdpLogin", "Error"]), "FedCm.DialogType", "type"); @@ -10,18 +10,25 @@ export const AccountUrlType = withCdpMeta(z.enum(["TermsOfService", "PrivacyPoli export const Account = withCdpMeta(z.object({ "accountId": z.string(), "email": z.string(), "name": z.string(), "givenName": z.string(), "pictureUrl": z.string(), "idpConfigUrl": z.string(), "idpLoginUrl": z.string(), "loginState": z.lazy(() => LoginState), "termsOfServiceUrl": z.string().optional(), "privacyPolicyUrl": z.string().optional() }).passthrough(), "FedCm.Account", "type"); export const EnableParams = withCdpMeta(z.object({ "disableRejectionDelay": z.boolean().optional() }).passthrough(), "FedCm.enable.params", "commandParams", { method: "FedCm.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "FedCm.enable.result", "commandResult", { method: "FedCm.enable" }); +export const EnableCommand = withCdpCommand("FedCm.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "FedCm.disable.params", "commandParams", { method: "FedCm.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "FedCm.disable.result", "commandResult", { method: "FedCm.disable" }); +export const DisableCommand = withCdpCommand("FedCm.disable", DisableParams, DisableResult); export const SelectAccountParams = withCdpMeta(z.object({ "dialogId": z.string(), "accountIndex": z.number().int() }).passthrough(), "FedCm.selectAccount.params", "commandParams", { method: "FedCm.selectAccount" }); export const SelectAccountResult = withCdpMeta(z.object({ }).passthrough(), "FedCm.selectAccount.result", "commandResult", { method: "FedCm.selectAccount" }); +export const SelectAccountCommand = withCdpCommand("FedCm.selectAccount", SelectAccountParams, SelectAccountResult); export const ClickDialogButtonParams = withCdpMeta(z.object({ "dialogId": z.string(), "dialogButton": z.lazy(() => DialogButton) }).passthrough(), "FedCm.clickDialogButton.params", "commandParams", { method: "FedCm.clickDialogButton" }); export const ClickDialogButtonResult = withCdpMeta(z.object({ }).passthrough(), "FedCm.clickDialogButton.result", "commandResult", { method: "FedCm.clickDialogButton" }); +export const ClickDialogButtonCommand = withCdpCommand("FedCm.clickDialogButton", ClickDialogButtonParams, ClickDialogButtonResult); export const OpenUrlParams = withCdpMeta(z.object({ "dialogId": z.string(), "accountIndex": z.number().int(), "accountUrlType": z.lazy(() => AccountUrlType) }).passthrough(), "FedCm.openUrl.params", "commandParams", { method: "FedCm.openUrl" }); export const OpenUrlResult = withCdpMeta(z.object({ }).passthrough(), "FedCm.openUrl.result", "commandResult", { method: "FedCm.openUrl" }); +export const OpenUrlCommand = withCdpCommand("FedCm.openUrl", OpenUrlParams, OpenUrlResult); export const DismissDialogParams = withCdpMeta(z.object({ "dialogId": z.string(), "triggerCooldown": z.boolean().optional() }).passthrough(), "FedCm.dismissDialog.params", "commandParams", { method: "FedCm.dismissDialog" }); export const DismissDialogResult = withCdpMeta(z.object({ }).passthrough(), "FedCm.dismissDialog.result", "commandResult", { method: "FedCm.dismissDialog" }); +export const DismissDialogCommand = withCdpCommand("FedCm.dismissDialog", DismissDialogParams, DismissDialogResult); export const ResetCooldownParams = withCdpMeta(z.object({ }).passthrough(), "FedCm.resetCooldown.params", "commandParams", { method: "FedCm.resetCooldown" }); export const ResetCooldownResult = withCdpMeta(z.object({ }).passthrough(), "FedCm.resetCooldown.result", "commandResult", { method: "FedCm.resetCooldown" }); +export const ResetCooldownCommand = withCdpCommand("FedCm.resetCooldown", ResetCooldownParams, ResetCooldownResult); export const DialogShownEvent = withCdpMeta(z.object({ "dialogId": z.string(), "dialogType": z.lazy(() => DialogType), "accounts": z.array(z.lazy(() => Account)), "title": z.string(), "subtitle": z.string().optional() }).passthrough(), "FedCm.dialogShown", "event", { phase: "event" }); export const DialogClosedEvent = withCdpMeta(z.object({ "dialogId": z.string() }).passthrough(), "FedCm.dialogClosed", "event", { phase: "event" }); @@ -49,13 +56,13 @@ export const zod = { DialogClosedEvent: DialogClosedEvent, } as const; export const commands = { - "FedCm.enable": { params: EnableParams, result: EnableResult }, - "FedCm.disable": { params: DisableParams, result: DisableResult }, - "FedCm.selectAccount": { params: SelectAccountParams, result: SelectAccountResult }, - "FedCm.clickDialogButton": { params: ClickDialogButtonParams, result: ClickDialogButtonResult }, - "FedCm.openUrl": { params: OpenUrlParams, result: OpenUrlResult }, - "FedCm.dismissDialog": { params: DismissDialogParams, result: DismissDialogResult }, - "FedCm.resetCooldown": { params: ResetCooldownParams, result: ResetCooldownResult }, + "FedCm.enable": EnableCommand, + "FedCm.disable": DisableCommand, + "FedCm.selectAccount": SelectAccountCommand, + "FedCm.clickDialogButton": ClickDialogButtonCommand, + "FedCm.openUrl": OpenUrlCommand, + "FedCm.dismissDialog": DismissDialogCommand, + "FedCm.resetCooldown": ResetCooldownCommand, } as const; export const events = { "FedCm.dialogShown": DialogShownEvent, diff --git a/js/src/types/generated/zod/Fetch.ts b/js/src/types/generated/zod/Fetch.ts index f87b181b..29ee458d 100644 --- a/js/src/types/generated/zod/Fetch.ts +++ b/js/src/types/generated/zod/Fetch.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as IO from "./IO.js"; import * as Network from "./Network.js"; import * as Page from "./Page.js"; @@ -14,22 +14,31 @@ export const AuthChallenge = withCdpMeta(z.object({ "source": z.enum(["Server", export const AuthChallengeResponse = withCdpMeta(z.object({ "response": z.enum(["Default", "CancelAuth", "ProvideCredentials"]), "username": z.string().optional(), "password": z.string().optional() }).passthrough(), "Fetch.AuthChallengeResponse", "type"); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Fetch.disable.params", "commandParams", { method: "Fetch.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Fetch.disable.result", "commandResult", { method: "Fetch.disable" }); +export const DisableCommand = withCdpCommand("Fetch.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ "patterns": z.array(z.lazy(() => RequestPattern)).optional(), "handleAuthRequests": z.boolean().optional() }).passthrough(), "Fetch.enable.params", "commandParams", { method: "Fetch.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Fetch.enable.result", "commandResult", { method: "Fetch.enable" }); +export const EnableCommand = withCdpCommand("Fetch.enable", EnableParams, EnableResult); export const FailRequestParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "errorReason": z.lazy(() => Network.ErrorReason) }).passthrough(), "Fetch.failRequest.params", "commandParams", { method: "Fetch.failRequest" }); export const FailRequestResult = withCdpMeta(z.object({ }).passthrough(), "Fetch.failRequest.result", "commandResult", { method: "Fetch.failRequest" }); +export const FailRequestCommand = withCdpCommand("Fetch.failRequest", FailRequestParams, FailRequestResult); export const FulfillRequestParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "responseCode": z.number().int(), "responseHeaders": z.array(z.lazy(() => HeaderEntry)).optional(), "binaryResponseHeaders": z.string().optional(), "body": z.string().optional(), "responsePhrase": z.string().optional() }).passthrough(), "Fetch.fulfillRequest.params", "commandParams", { method: "Fetch.fulfillRequest" }); export const FulfillRequestResult = withCdpMeta(z.object({ }).passthrough(), "Fetch.fulfillRequest.result", "commandResult", { method: "Fetch.fulfillRequest" }); +export const FulfillRequestCommand = withCdpCommand("Fetch.fulfillRequest", FulfillRequestParams, FulfillRequestResult); export const ContinueRequestParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "url": z.string().optional(), "method": z.string().optional(), "postData": z.string().optional(), "headers": z.array(z.lazy(() => HeaderEntry)).optional(), "interceptResponse": z.boolean().optional() }).passthrough(), "Fetch.continueRequest.params", "commandParams", { method: "Fetch.continueRequest" }); export const ContinueRequestResult = withCdpMeta(z.object({ }).passthrough(), "Fetch.continueRequest.result", "commandResult", { method: "Fetch.continueRequest" }); +export const ContinueRequestCommand = withCdpCommand("Fetch.continueRequest", ContinueRequestParams, ContinueRequestResult); export const ContinueWithAuthParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "authChallengeResponse": z.lazy(() => AuthChallengeResponse) }).passthrough(), "Fetch.continueWithAuth.params", "commandParams", { method: "Fetch.continueWithAuth" }); export const ContinueWithAuthResult = withCdpMeta(z.object({ }).passthrough(), "Fetch.continueWithAuth.result", "commandResult", { method: "Fetch.continueWithAuth" }); +export const ContinueWithAuthCommand = withCdpCommand("Fetch.continueWithAuth", ContinueWithAuthParams, ContinueWithAuthResult); export const ContinueResponseParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "responseCode": z.number().int().optional(), "responsePhrase": z.string().optional(), "responseHeaders": z.array(z.lazy(() => HeaderEntry)).optional(), "binaryResponseHeaders": z.string().optional() }).passthrough(), "Fetch.continueResponse.params", "commandParams", { method: "Fetch.continueResponse" }); export const ContinueResponseResult = withCdpMeta(z.object({ }).passthrough(), "Fetch.continueResponse.result", "commandResult", { method: "Fetch.continueResponse" }); +export const ContinueResponseCommand = withCdpCommand("Fetch.continueResponse", ContinueResponseParams, ContinueResponseResult); export const GetResponseBodyParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId) }).passthrough(), "Fetch.getResponseBody.params", "commandParams", { method: "Fetch.getResponseBody" }); export const GetResponseBodyResult = withCdpMeta(z.object({ "body": z.string(), "base64Encoded": z.boolean() }).passthrough(), "Fetch.getResponseBody.result", "commandResult", { method: "Fetch.getResponseBody" }); +export const GetResponseBodyCommand = withCdpCommand("Fetch.getResponseBody", GetResponseBodyParams, GetResponseBodyResult); export const TakeResponseBodyAsStreamParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId) }).passthrough(), "Fetch.takeResponseBodyAsStream.params", "commandParams", { method: "Fetch.takeResponseBodyAsStream" }); export const TakeResponseBodyAsStreamResult = withCdpMeta(z.object({ "stream": z.lazy(() => IO.StreamHandle) }).passthrough(), "Fetch.takeResponseBodyAsStream.result", "commandResult", { method: "Fetch.takeResponseBodyAsStream" }); +export const TakeResponseBodyAsStreamCommand = withCdpCommand("Fetch.takeResponseBodyAsStream", TakeResponseBodyAsStreamParams, TakeResponseBodyAsStreamResult); export const RequestPausedEvent = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "request": z.lazy(() => Network.Request), "frameId": z.lazy(() => Page.FrameId), "resourceType": z.lazy(() => Network.ResourceType), "responseErrorReason": z.lazy(() => Network.ErrorReason).optional(), "responseStatusCode": z.number().int().optional(), "responseStatusText": z.string().optional(), "responseHeaders": z.array(z.lazy(() => HeaderEntry)).optional(), "networkId": z.lazy(() => Network.RequestId).optional(), "redirectedRequestId": z.lazy(() => RequestId).optional() }).passthrough(), "Fetch.requestPaused", "event", { phase: "event" }); export const AuthRequiredEvent = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "request": z.lazy(() => Network.Request), "frameId": z.lazy(() => Page.FrameId), "resourceType": z.lazy(() => Network.ResourceType), "authChallenge": z.lazy(() => AuthChallenge) }).passthrough(), "Fetch.authRequired", "event", { phase: "event" }); @@ -62,15 +71,15 @@ export const zod = { AuthRequiredEvent: AuthRequiredEvent, } as const; export const commands = { - "Fetch.disable": { params: DisableParams, result: DisableResult }, - "Fetch.enable": { params: EnableParams, result: EnableResult }, - "Fetch.failRequest": { params: FailRequestParams, result: FailRequestResult }, - "Fetch.fulfillRequest": { params: FulfillRequestParams, result: FulfillRequestResult }, - "Fetch.continueRequest": { params: ContinueRequestParams, result: ContinueRequestResult }, - "Fetch.continueWithAuth": { params: ContinueWithAuthParams, result: ContinueWithAuthResult }, - "Fetch.continueResponse": { params: ContinueResponseParams, result: ContinueResponseResult }, - "Fetch.getResponseBody": { params: GetResponseBodyParams, result: GetResponseBodyResult }, - "Fetch.takeResponseBodyAsStream": { params: TakeResponseBodyAsStreamParams, result: TakeResponseBodyAsStreamResult }, + "Fetch.disable": DisableCommand, + "Fetch.enable": EnableCommand, + "Fetch.failRequest": FailRequestCommand, + "Fetch.fulfillRequest": FulfillRequestCommand, + "Fetch.continueRequest": ContinueRequestCommand, + "Fetch.continueWithAuth": ContinueWithAuthCommand, + "Fetch.continueResponse": ContinueResponseCommand, + "Fetch.getResponseBody": GetResponseBodyCommand, + "Fetch.takeResponseBodyAsStream": TakeResponseBodyAsStreamCommand, } as const; export const events = { "Fetch.requestPaused": RequestPausedEvent, diff --git a/js/src/types/generated/zod/FileSystem.ts b/js/src/types/generated/zod/FileSystem.ts index 9e15cc4f..21403f58 100644 --- a/js/src/types/generated/zod/FileSystem.ts +++ b/js/src/types/generated/zod/FileSystem.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Network from "./Network.js"; import * as Storage from "./Storage.js"; @@ -10,6 +10,7 @@ export const Directory = withCdpMeta(z.object({ "name": z.string(), "nestedDirec export const BucketFileSystemLocator = withCdpMeta(z.object({ "storageKey": z.lazy(() => Storage.SerializedStorageKey), "bucketName": z.string().optional(), "pathComponents": z.array(z.string()) }).passthrough(), "FileSystem.BucketFileSystemLocator", "type"); export const GetDirectoryParams = withCdpMeta(z.object({ "bucketFileSystemLocator": z.lazy(() => BucketFileSystemLocator) }).passthrough(), "FileSystem.getDirectory.params", "commandParams", { method: "FileSystem.getDirectory" }); export const GetDirectoryResult = withCdpMeta(z.object({ "directory": z.lazy(() => Directory) }).passthrough(), "FileSystem.getDirectory.result", "commandResult", { method: "FileSystem.getDirectory" }); +export const GetDirectoryCommand = withCdpCommand("FileSystem.getDirectory", GetDirectoryParams, GetDirectoryResult); export const zod = { File: File, @@ -19,7 +20,7 @@ export const zod = { GetDirectoryResult: GetDirectoryResult, } as const; export const commands = { - "FileSystem.getDirectory": { params: GetDirectoryParams, result: GetDirectoryResult }, + "FileSystem.getDirectory": GetDirectoryCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/HeadlessExperimental.ts b/js/src/types/generated/zod/HeadlessExperimental.ts index e0f017b7..4fc8a992 100644 --- a/js/src/types/generated/zod/HeadlessExperimental.ts +++ b/js/src/types/generated/zod/HeadlessExperimental.ts @@ -1,15 +1,18 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const ScreenshotParams = withCdpMeta(z.object({ "format": z.enum(["jpeg", "png", "webp"]).optional(), "quality": z.number().int().optional(), "optimizeForSpeed": z.boolean().optional() }).passthrough(), "HeadlessExperimental.ScreenshotParams", "type"); export const BeginFrameParams = withCdpMeta(z.object({ "frameTimeTicks": z.number().optional(), "interval": z.number().optional(), "noDisplayUpdates": z.boolean().optional(), "screenshot": z.lazy(() => ScreenshotParams).optional() }).passthrough(), "HeadlessExperimental.beginFrame.params", "commandParams", { method: "HeadlessExperimental.beginFrame" }); export const BeginFrameResult = withCdpMeta(z.object({ "hasDamage": z.boolean(), "screenshotData": z.string().optional() }).passthrough(), "HeadlessExperimental.beginFrame.result", "commandResult", { method: "HeadlessExperimental.beginFrame" }); +export const BeginFrameCommand = withCdpCommand("HeadlessExperimental.beginFrame", BeginFrameParams, BeginFrameResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "HeadlessExperimental.disable.params", "commandParams", { method: "HeadlessExperimental.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "HeadlessExperimental.disable.result", "commandResult", { method: "HeadlessExperimental.disable" }); +export const DisableCommand = withCdpCommand("HeadlessExperimental.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "HeadlessExperimental.enable.params", "commandParams", { method: "HeadlessExperimental.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "HeadlessExperimental.enable.result", "commandResult", { method: "HeadlessExperimental.enable" }); +export const EnableCommand = withCdpCommand("HeadlessExperimental.enable", EnableParams, EnableResult); export const zod = { ScreenshotParams: ScreenshotParams, @@ -21,9 +24,9 @@ export const zod = { EnableResult: EnableResult, } as const; export const commands = { - "HeadlessExperimental.beginFrame": { params: BeginFrameParams, result: BeginFrameResult }, - "HeadlessExperimental.disable": { params: DisableParams, result: DisableResult }, - "HeadlessExperimental.enable": { params: EnableParams, result: EnableResult }, + "HeadlessExperimental.beginFrame": BeginFrameCommand, + "HeadlessExperimental.disable": DisableCommand, + "HeadlessExperimental.enable": EnableCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/HeapProfiler.ts b/js/src/types/generated/zod/HeapProfiler.ts index a88e0187..027ae99c 100644 --- a/js/src/types/generated/zod/HeapProfiler.ts +++ b/js/src/types/generated/zod/HeapProfiler.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Runtime from "./Runtime.js"; export const HeapSnapshotObjectId = withCdpMeta(z.string(), "HeapProfiler.HeapSnapshotObjectId", "type"); @@ -10,28 +10,40 @@ export const SamplingHeapProfileSample = withCdpMeta(z.object({ "size": z.number export const SamplingHeapProfile = withCdpMeta(z.object({ "head": z.lazy(() => SamplingHeapProfileNode), "samples": z.array(z.lazy(() => SamplingHeapProfileSample)) }).passthrough(), "HeapProfiler.SamplingHeapProfile", "type"); export const AddInspectedHeapObjectParams = withCdpMeta(z.object({ "heapObjectId": z.lazy(() => HeapSnapshotObjectId) }).passthrough(), "HeapProfiler.addInspectedHeapObject.params", "commandParams", { method: "HeapProfiler.addInspectedHeapObject" }); export const AddInspectedHeapObjectResult = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.addInspectedHeapObject.result", "commandResult", { method: "HeapProfiler.addInspectedHeapObject" }); +export const AddInspectedHeapObjectCommand = withCdpCommand("HeapProfiler.addInspectedHeapObject", AddInspectedHeapObjectParams, AddInspectedHeapObjectResult); export const CollectGarbageParams = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.collectGarbage.params", "commandParams", { method: "HeapProfiler.collectGarbage" }); export const CollectGarbageResult = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.collectGarbage.result", "commandResult", { method: "HeapProfiler.collectGarbage" }); +export const CollectGarbageCommand = withCdpCommand("HeapProfiler.collectGarbage", CollectGarbageParams, CollectGarbageResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.disable.params", "commandParams", { method: "HeapProfiler.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.disable.result", "commandResult", { method: "HeapProfiler.disable" }); +export const DisableCommand = withCdpCommand("HeapProfiler.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.enable.params", "commandParams", { method: "HeapProfiler.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.enable.result", "commandResult", { method: "HeapProfiler.enable" }); +export const EnableCommand = withCdpCommand("HeapProfiler.enable", EnableParams, EnableResult); export const GetHeapObjectIdParams = withCdpMeta(z.object({ "objectId": z.lazy(() => Runtime.RemoteObjectId) }).passthrough(), "HeapProfiler.getHeapObjectId.params", "commandParams", { method: "HeapProfiler.getHeapObjectId" }); export const GetHeapObjectIdResult = withCdpMeta(z.object({ "heapSnapshotObjectId": z.lazy(() => HeapSnapshotObjectId) }).passthrough(), "HeapProfiler.getHeapObjectId.result", "commandResult", { method: "HeapProfiler.getHeapObjectId" }); +export const GetHeapObjectIdCommand = withCdpCommand("HeapProfiler.getHeapObjectId", GetHeapObjectIdParams, GetHeapObjectIdResult); export const GetObjectByHeapObjectIdParams = withCdpMeta(z.object({ "objectId": z.lazy(() => HeapSnapshotObjectId), "objectGroup": z.string().optional() }).passthrough(), "HeapProfiler.getObjectByHeapObjectId.params", "commandParams", { method: "HeapProfiler.getObjectByHeapObjectId" }); export const GetObjectByHeapObjectIdResult = withCdpMeta(z.object({ "result": z.lazy(() => Runtime.RemoteObject) }).passthrough(), "HeapProfiler.getObjectByHeapObjectId.result", "commandResult", { method: "HeapProfiler.getObjectByHeapObjectId" }); +export const GetObjectByHeapObjectIdCommand = withCdpCommand("HeapProfiler.getObjectByHeapObjectId", GetObjectByHeapObjectIdParams, GetObjectByHeapObjectIdResult); export const GetSamplingProfileParams = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.getSamplingProfile.params", "commandParams", { method: "HeapProfiler.getSamplingProfile" }); export const GetSamplingProfileResult = withCdpMeta(z.object({ "profile": z.lazy(() => SamplingHeapProfile) }).passthrough(), "HeapProfiler.getSamplingProfile.result", "commandResult", { method: "HeapProfiler.getSamplingProfile" }); +export const GetSamplingProfileCommand = withCdpCommand("HeapProfiler.getSamplingProfile", GetSamplingProfileParams, GetSamplingProfileResult); export const StartSamplingParams = withCdpMeta(z.object({ "samplingInterval": z.number().optional(), "stackDepth": z.number().optional(), "includeObjectsCollectedByMajorGC": z.boolean().optional(), "includeObjectsCollectedByMinorGC": z.boolean().optional() }).passthrough(), "HeapProfiler.startSampling.params", "commandParams", { method: "HeapProfiler.startSampling" }); export const StartSamplingResult = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.startSampling.result", "commandResult", { method: "HeapProfiler.startSampling" }); +export const StartSamplingCommand = withCdpCommand("HeapProfiler.startSampling", StartSamplingParams, StartSamplingResult); export const StartTrackingHeapObjectsParams = withCdpMeta(z.object({ "trackAllocations": z.boolean().optional() }).passthrough(), "HeapProfiler.startTrackingHeapObjects.params", "commandParams", { method: "HeapProfiler.startTrackingHeapObjects" }); export const StartTrackingHeapObjectsResult = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.startTrackingHeapObjects.result", "commandResult", { method: "HeapProfiler.startTrackingHeapObjects" }); +export const StartTrackingHeapObjectsCommand = withCdpCommand("HeapProfiler.startTrackingHeapObjects", StartTrackingHeapObjectsParams, StartTrackingHeapObjectsResult); export const StopSamplingParams = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.stopSampling.params", "commandParams", { method: "HeapProfiler.stopSampling" }); export const StopSamplingResult = withCdpMeta(z.object({ "profile": z.lazy(() => SamplingHeapProfile) }).passthrough(), "HeapProfiler.stopSampling.result", "commandResult", { method: "HeapProfiler.stopSampling" }); +export const StopSamplingCommand = withCdpCommand("HeapProfiler.stopSampling", StopSamplingParams, StopSamplingResult); export const StopTrackingHeapObjectsParams = withCdpMeta(z.object({ "reportProgress": z.boolean().optional(), "treatGlobalObjectsAsRoots": z.boolean().optional(), "captureNumericValue": z.boolean().optional(), "exposeInternals": z.boolean().optional() }).passthrough(), "HeapProfiler.stopTrackingHeapObjects.params", "commandParams", { method: "HeapProfiler.stopTrackingHeapObjects" }); export const StopTrackingHeapObjectsResult = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.stopTrackingHeapObjects.result", "commandResult", { method: "HeapProfiler.stopTrackingHeapObjects" }); +export const StopTrackingHeapObjectsCommand = withCdpCommand("HeapProfiler.stopTrackingHeapObjects", StopTrackingHeapObjectsParams, StopTrackingHeapObjectsResult); export const TakeHeapSnapshotParams = withCdpMeta(z.object({ "reportProgress": z.boolean().optional(), "treatGlobalObjectsAsRoots": z.boolean().optional(), "captureNumericValue": z.boolean().optional(), "exposeInternals": z.boolean().optional() }).passthrough(), "HeapProfiler.takeHeapSnapshot.params", "commandParams", { method: "HeapProfiler.takeHeapSnapshot" }); export const TakeHeapSnapshotResult = withCdpMeta(z.object({ }).passthrough(), "HeapProfiler.takeHeapSnapshot.result", "commandResult", { method: "HeapProfiler.takeHeapSnapshot" }); +export const TakeHeapSnapshotCommand = withCdpCommand("HeapProfiler.takeHeapSnapshot", TakeHeapSnapshotParams, TakeHeapSnapshotResult); export const AddHeapSnapshotChunkEvent = withCdpMeta(z.object({ "chunk": z.string() }).passthrough(), "HeapProfiler.addHeapSnapshotChunk", "event", { phase: "event" }); export const HeapStatsUpdateEvent = withCdpMeta(z.object({ "statsUpdate": z.array(z.number().int()) }).passthrough(), "HeapProfiler.heapStatsUpdate", "event", { phase: "event" }); export const LastSeenObjectIdEvent = withCdpMeta(z.object({ "lastSeenObjectId": z.number().int(), "timestamp": z.number() }).passthrough(), "HeapProfiler.lastSeenObjectId", "event", { phase: "event" }); @@ -74,18 +86,18 @@ export const zod = { ResetProfilesEvent: ResetProfilesEvent, } as const; export const commands = { - "HeapProfiler.addInspectedHeapObject": { params: AddInspectedHeapObjectParams, result: AddInspectedHeapObjectResult }, - "HeapProfiler.collectGarbage": { params: CollectGarbageParams, result: CollectGarbageResult }, - "HeapProfiler.disable": { params: DisableParams, result: DisableResult }, - "HeapProfiler.enable": { params: EnableParams, result: EnableResult }, - "HeapProfiler.getHeapObjectId": { params: GetHeapObjectIdParams, result: GetHeapObjectIdResult }, - "HeapProfiler.getObjectByHeapObjectId": { params: GetObjectByHeapObjectIdParams, result: GetObjectByHeapObjectIdResult }, - "HeapProfiler.getSamplingProfile": { params: GetSamplingProfileParams, result: GetSamplingProfileResult }, - "HeapProfiler.startSampling": { params: StartSamplingParams, result: StartSamplingResult }, - "HeapProfiler.startTrackingHeapObjects": { params: StartTrackingHeapObjectsParams, result: StartTrackingHeapObjectsResult }, - "HeapProfiler.stopSampling": { params: StopSamplingParams, result: StopSamplingResult }, - "HeapProfiler.stopTrackingHeapObjects": { params: StopTrackingHeapObjectsParams, result: StopTrackingHeapObjectsResult }, - "HeapProfiler.takeHeapSnapshot": { params: TakeHeapSnapshotParams, result: TakeHeapSnapshotResult }, + "HeapProfiler.addInspectedHeapObject": AddInspectedHeapObjectCommand, + "HeapProfiler.collectGarbage": CollectGarbageCommand, + "HeapProfiler.disable": DisableCommand, + "HeapProfiler.enable": EnableCommand, + "HeapProfiler.getHeapObjectId": GetHeapObjectIdCommand, + "HeapProfiler.getObjectByHeapObjectId": GetObjectByHeapObjectIdCommand, + "HeapProfiler.getSamplingProfile": GetSamplingProfileCommand, + "HeapProfiler.startSampling": StartSamplingCommand, + "HeapProfiler.startTrackingHeapObjects": StartTrackingHeapObjectsCommand, + "HeapProfiler.stopSampling": StopSamplingCommand, + "HeapProfiler.stopTrackingHeapObjects": StopTrackingHeapObjectsCommand, + "HeapProfiler.takeHeapSnapshot": TakeHeapSnapshotCommand, } as const; export const events = { "HeapProfiler.addHeapSnapshotChunk": AddHeapSnapshotChunkEvent, diff --git a/js/src/types/generated/zod/IO.ts b/js/src/types/generated/zod/IO.ts index 90b40e12..48b25edd 100644 --- a/js/src/types/generated/zod/IO.ts +++ b/js/src/types/generated/zod/IO.ts @@ -1,16 +1,19 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Runtime from "./Runtime.js"; export const StreamHandle = withCdpMeta(z.string(), "IO.StreamHandle", "type"); export const CloseParams = withCdpMeta(z.object({ "handle": z.lazy(() => StreamHandle) }).passthrough(), "IO.close.params", "commandParams", { method: "IO.close" }); export const CloseResult = withCdpMeta(z.object({ }).passthrough(), "IO.close.result", "commandResult", { method: "IO.close" }); +export const CloseCommand = withCdpCommand("IO.close", CloseParams, CloseResult); export const ReadParams = withCdpMeta(z.object({ "handle": z.lazy(() => StreamHandle), "offset": z.number().int().optional(), "size": z.number().int().optional() }).passthrough(), "IO.read.params", "commandParams", { method: "IO.read" }); export const ReadResult = withCdpMeta(z.object({ "base64Encoded": z.boolean().optional(), "data": z.string(), "eof": z.boolean() }).passthrough(), "IO.read.result", "commandResult", { method: "IO.read" }); +export const ReadCommand = withCdpCommand("IO.read", ReadParams, ReadResult); export const ResolveBlobParams = withCdpMeta(z.object({ "objectId": z.lazy(() => Runtime.RemoteObjectId) }).passthrough(), "IO.resolveBlob.params", "commandParams", { method: "IO.resolveBlob" }); export const ResolveBlobResult = withCdpMeta(z.object({ "uuid": z.string() }).passthrough(), "IO.resolveBlob.result", "commandResult", { method: "IO.resolveBlob" }); +export const ResolveBlobCommand = withCdpCommand("IO.resolveBlob", ResolveBlobParams, ResolveBlobResult); export const zod = { StreamHandle: StreamHandle, @@ -22,9 +25,9 @@ export const zod = { ResolveBlobResult: ResolveBlobResult, } as const; export const commands = { - "IO.close": { params: CloseParams, result: CloseResult }, - "IO.read": { params: ReadParams, result: ReadResult }, - "IO.resolveBlob": { params: ResolveBlobParams, result: ResolveBlobResult }, + "IO.close": CloseCommand, + "IO.read": ReadCommand, + "IO.resolveBlob": ResolveBlobCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/IndexedDB.ts b/js/src/types/generated/zod/IndexedDB.ts index 3d484ce1..877eff79 100644 --- a/js/src/types/generated/zod/IndexedDB.ts +++ b/js/src/types/generated/zod/IndexedDB.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Runtime from "./Runtime.js"; import * as Storage from "./Storage.js"; @@ -14,22 +14,31 @@ export const DataEntry = withCdpMeta(z.object({ "key": z.lazy(() => Runtime.Remo export const KeyPath = withCdpMeta(z.object({ "type": z.enum(["null", "string", "array"]), "string": z.string().optional(), "array": z.array(z.string()).optional() }).passthrough(), "IndexedDB.KeyPath", "type"); export const ClearObjectStoreParams = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.string().optional(), "storageBucket": z.lazy(() => Storage.StorageBucket).optional(), "databaseName": z.string(), "objectStoreName": z.string() }).passthrough(), "IndexedDB.clearObjectStore.params", "commandParams", { method: "IndexedDB.clearObjectStore" }); export const ClearObjectStoreResult = withCdpMeta(z.object({ }).passthrough(), "IndexedDB.clearObjectStore.result", "commandResult", { method: "IndexedDB.clearObjectStore" }); +export const ClearObjectStoreCommand = withCdpCommand("IndexedDB.clearObjectStore", ClearObjectStoreParams, ClearObjectStoreResult); export const DeleteDatabaseParams = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.string().optional(), "storageBucket": z.lazy(() => Storage.StorageBucket).optional(), "databaseName": z.string() }).passthrough(), "IndexedDB.deleteDatabase.params", "commandParams", { method: "IndexedDB.deleteDatabase" }); export const DeleteDatabaseResult = withCdpMeta(z.object({ }).passthrough(), "IndexedDB.deleteDatabase.result", "commandResult", { method: "IndexedDB.deleteDatabase" }); +export const DeleteDatabaseCommand = withCdpCommand("IndexedDB.deleteDatabase", DeleteDatabaseParams, DeleteDatabaseResult); export const DeleteObjectStoreEntriesParams = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.string().optional(), "storageBucket": z.lazy(() => Storage.StorageBucket).optional(), "databaseName": z.string(), "objectStoreName": z.string(), "keyRange": z.lazy(() => KeyRange) }).passthrough(), "IndexedDB.deleteObjectStoreEntries.params", "commandParams", { method: "IndexedDB.deleteObjectStoreEntries" }); export const DeleteObjectStoreEntriesResult = withCdpMeta(z.object({ }).passthrough(), "IndexedDB.deleteObjectStoreEntries.result", "commandResult", { method: "IndexedDB.deleteObjectStoreEntries" }); +export const DeleteObjectStoreEntriesCommand = withCdpCommand("IndexedDB.deleteObjectStoreEntries", DeleteObjectStoreEntriesParams, DeleteObjectStoreEntriesResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "IndexedDB.disable.params", "commandParams", { method: "IndexedDB.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "IndexedDB.disable.result", "commandResult", { method: "IndexedDB.disable" }); +export const DisableCommand = withCdpCommand("IndexedDB.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "IndexedDB.enable.params", "commandParams", { method: "IndexedDB.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "IndexedDB.enable.result", "commandResult", { method: "IndexedDB.enable" }); +export const EnableCommand = withCdpCommand("IndexedDB.enable", EnableParams, EnableResult); export const RequestDataParams = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.string().optional(), "storageBucket": z.lazy(() => Storage.StorageBucket).optional(), "databaseName": z.string(), "objectStoreName": z.string(), "indexName": z.string().optional(), "skipCount": z.number().int(), "pageSize": z.number().int(), "keyRange": z.lazy(() => KeyRange).optional() }).passthrough(), "IndexedDB.requestData.params", "commandParams", { method: "IndexedDB.requestData" }); export const RequestDataResult = withCdpMeta(z.object({ "objectStoreDataEntries": z.array(z.lazy(() => DataEntry)), "hasMore": z.boolean() }).passthrough(), "IndexedDB.requestData.result", "commandResult", { method: "IndexedDB.requestData" }); +export const RequestDataCommand = withCdpCommand("IndexedDB.requestData", RequestDataParams, RequestDataResult); export const GetMetadataParams = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.string().optional(), "storageBucket": z.lazy(() => Storage.StorageBucket).optional(), "databaseName": z.string(), "objectStoreName": z.string() }).passthrough(), "IndexedDB.getMetadata.params", "commandParams", { method: "IndexedDB.getMetadata" }); export const GetMetadataResult = withCdpMeta(z.object({ "entriesCount": z.number(), "keyGeneratorValue": z.number() }).passthrough(), "IndexedDB.getMetadata.result", "commandResult", { method: "IndexedDB.getMetadata" }); +export const GetMetadataCommand = withCdpCommand("IndexedDB.getMetadata", GetMetadataParams, GetMetadataResult); export const RequestDatabaseParams = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.string().optional(), "storageBucket": z.lazy(() => Storage.StorageBucket).optional(), "databaseName": z.string() }).passthrough(), "IndexedDB.requestDatabase.params", "commandParams", { method: "IndexedDB.requestDatabase" }); export const RequestDatabaseResult = withCdpMeta(z.object({ "databaseWithObjectStores": z.lazy(() => DatabaseWithObjectStores) }).passthrough(), "IndexedDB.requestDatabase.result", "commandResult", { method: "IndexedDB.requestDatabase" }); +export const RequestDatabaseCommand = withCdpCommand("IndexedDB.requestDatabase", RequestDatabaseParams, RequestDatabaseResult); export const RequestDatabaseNamesParams = withCdpMeta(z.object({ "securityOrigin": z.string().optional(), "storageKey": z.string().optional(), "storageBucket": z.lazy(() => Storage.StorageBucket).optional() }).passthrough(), "IndexedDB.requestDatabaseNames.params", "commandParams", { method: "IndexedDB.requestDatabaseNames" }); export const RequestDatabaseNamesResult = withCdpMeta(z.object({ "databaseNames": z.array(z.string()) }).passthrough(), "IndexedDB.requestDatabaseNames.result", "commandResult", { method: "IndexedDB.requestDatabaseNames" }); +export const RequestDatabaseNamesCommand = withCdpCommand("IndexedDB.requestDatabaseNames", RequestDatabaseNamesParams, RequestDatabaseNamesResult); export const zod = { DatabaseWithObjectStores: DatabaseWithObjectStores, @@ -59,15 +68,15 @@ export const zod = { RequestDatabaseNamesResult: RequestDatabaseNamesResult, } as const; export const commands = { - "IndexedDB.clearObjectStore": { params: ClearObjectStoreParams, result: ClearObjectStoreResult }, - "IndexedDB.deleteDatabase": { params: DeleteDatabaseParams, result: DeleteDatabaseResult }, - "IndexedDB.deleteObjectStoreEntries": { params: DeleteObjectStoreEntriesParams, result: DeleteObjectStoreEntriesResult }, - "IndexedDB.disable": { params: DisableParams, result: DisableResult }, - "IndexedDB.enable": { params: EnableParams, result: EnableResult }, - "IndexedDB.requestData": { params: RequestDataParams, result: RequestDataResult }, - "IndexedDB.getMetadata": { params: GetMetadataParams, result: GetMetadataResult }, - "IndexedDB.requestDatabase": { params: RequestDatabaseParams, result: RequestDatabaseResult }, - "IndexedDB.requestDatabaseNames": { params: RequestDatabaseNamesParams, result: RequestDatabaseNamesResult }, + "IndexedDB.clearObjectStore": ClearObjectStoreCommand, + "IndexedDB.deleteDatabase": DeleteDatabaseCommand, + "IndexedDB.deleteObjectStoreEntries": DeleteObjectStoreEntriesCommand, + "IndexedDB.disable": DisableCommand, + "IndexedDB.enable": EnableCommand, + "IndexedDB.requestData": RequestDataCommand, + "IndexedDB.getMetadata": GetMetadataCommand, + "IndexedDB.requestDatabase": RequestDatabaseCommand, + "IndexedDB.requestDatabaseNames": RequestDatabaseNamesCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/Input.ts b/js/src/types/generated/zod/Input.ts index e751355b..ec1174d9 100644 --- a/js/src/types/generated/zod/Input.ts +++ b/js/src/types/generated/zod/Input.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const TouchPoint = withCdpMeta(z.object({ "x": z.number(), "y": z.number(), "radiusX": z.number().optional(), "radiusY": z.number().optional(), "rotationAngle": z.number().optional(), "force": z.number().optional(), "tangentialPressure": z.number().optional(), "tiltX": z.number().optional(), "tiltY": z.number().optional(), "twist": z.number().int().optional(), "id": z.number().optional() }).passthrough(), "Input.TouchPoint", "type"); export const GestureSourceType = withCdpMeta(z.enum(["default", "touch", "mouse"]), "Input.GestureSourceType", "type"); @@ -11,30 +11,43 @@ export const DragDataItem = withCdpMeta(z.object({ "mimeType": z.string(), "data export const DragData = withCdpMeta(z.object({ "items": z.array(z.lazy(() => DragDataItem)), "files": z.array(z.string()).optional(), "dragOperationsMask": z.number().int() }).passthrough(), "Input.DragData", "type"); export const DispatchDragEventParams = withCdpMeta(z.object({ "type": z.enum(["dragEnter", "dragOver", "drop", "dragCancel"]), "x": z.number(), "y": z.number(), "data": z.lazy(() => DragData), "modifiers": z.number().int().optional() }).passthrough(), "Input.dispatchDragEvent.params", "commandParams", { method: "Input.dispatchDragEvent" }); export const DispatchDragEventResult = withCdpMeta(z.object({ }).passthrough(), "Input.dispatchDragEvent.result", "commandResult", { method: "Input.dispatchDragEvent" }); +export const DispatchDragEventCommand = withCdpCommand("Input.dispatchDragEvent", DispatchDragEventParams, DispatchDragEventResult); export const DispatchKeyEventParams = withCdpMeta(z.object({ "type": z.enum(["keyDown", "keyUp", "rawKeyDown", "char"]), "modifiers": z.number().int().optional(), "timestamp": z.lazy(() => TimeSinceEpoch).optional(), "text": z.string().optional(), "unmodifiedText": z.string().optional(), "keyIdentifier": z.string().optional(), "code": z.string().optional(), "key": z.string().optional(), "windowsVirtualKeyCode": z.number().int().optional(), "nativeVirtualKeyCode": z.number().int().optional(), "autoRepeat": z.boolean().optional(), "isKeypad": z.boolean().optional(), "isSystemKey": z.boolean().optional(), "location": z.number().int().optional(), "commands": z.array(z.string()).optional() }).passthrough(), "Input.dispatchKeyEvent.params", "commandParams", { method: "Input.dispatchKeyEvent" }); export const DispatchKeyEventResult = withCdpMeta(z.object({ }).passthrough(), "Input.dispatchKeyEvent.result", "commandResult", { method: "Input.dispatchKeyEvent" }); +export const DispatchKeyEventCommand = withCdpCommand("Input.dispatchKeyEvent", DispatchKeyEventParams, DispatchKeyEventResult); export const InsertTextParams = withCdpMeta(z.object({ "text": z.string() }).passthrough(), "Input.insertText.params", "commandParams", { method: "Input.insertText" }); export const InsertTextResult = withCdpMeta(z.object({ }).passthrough(), "Input.insertText.result", "commandResult", { method: "Input.insertText" }); +export const InsertTextCommand = withCdpCommand("Input.insertText", InsertTextParams, InsertTextResult); export const ImeSetCompositionParams = withCdpMeta(z.object({ "text": z.string(), "selectionStart": z.number().int(), "selectionEnd": z.number().int(), "replacementStart": z.number().int().optional(), "replacementEnd": z.number().int().optional() }).passthrough(), "Input.imeSetComposition.params", "commandParams", { method: "Input.imeSetComposition" }); export const ImeSetCompositionResult = withCdpMeta(z.object({ }).passthrough(), "Input.imeSetComposition.result", "commandResult", { method: "Input.imeSetComposition" }); +export const ImeSetCompositionCommand = withCdpCommand("Input.imeSetComposition", ImeSetCompositionParams, ImeSetCompositionResult); export const DispatchMouseEventParams = withCdpMeta(z.object({ "type": z.enum(["mousePressed", "mouseReleased", "mouseMoved", "mouseWheel"]), "x": z.number(), "y": z.number(), "modifiers": z.number().int().optional(), "timestamp": z.lazy(() => TimeSinceEpoch).optional(), "button": z.lazy(() => MouseButton).optional(), "buttons": z.number().int().optional(), "clickCount": z.number().int().optional(), "force": z.number().optional(), "tangentialPressure": z.number().optional(), "tiltX": z.number().optional(), "tiltY": z.number().optional(), "twist": z.number().int().optional(), "deltaX": z.number().optional(), "deltaY": z.number().optional(), "pointerType": z.enum(["mouse", "pen"]).optional() }).passthrough(), "Input.dispatchMouseEvent.params", "commandParams", { method: "Input.dispatchMouseEvent" }); export const DispatchMouseEventResult = withCdpMeta(z.object({ }).passthrough(), "Input.dispatchMouseEvent.result", "commandResult", { method: "Input.dispatchMouseEvent" }); +export const DispatchMouseEventCommand = withCdpCommand("Input.dispatchMouseEvent", DispatchMouseEventParams, DispatchMouseEventResult); export const DispatchTouchEventParams = withCdpMeta(z.object({ "type": z.enum(["touchStart", "touchEnd", "touchMove", "touchCancel"]), "touchPoints": z.array(z.lazy(() => TouchPoint)), "modifiers": z.number().int().optional(), "timestamp": z.lazy(() => TimeSinceEpoch).optional() }).passthrough(), "Input.dispatchTouchEvent.params", "commandParams", { method: "Input.dispatchTouchEvent" }); export const DispatchTouchEventResult = withCdpMeta(z.object({ }).passthrough(), "Input.dispatchTouchEvent.result", "commandResult", { method: "Input.dispatchTouchEvent" }); +export const DispatchTouchEventCommand = withCdpCommand("Input.dispatchTouchEvent", DispatchTouchEventParams, DispatchTouchEventResult); export const CancelDraggingParams = withCdpMeta(z.object({ }).passthrough(), "Input.cancelDragging.params", "commandParams", { method: "Input.cancelDragging" }); export const CancelDraggingResult = withCdpMeta(z.object({ }).passthrough(), "Input.cancelDragging.result", "commandResult", { method: "Input.cancelDragging" }); +export const CancelDraggingCommand = withCdpCommand("Input.cancelDragging", CancelDraggingParams, CancelDraggingResult); export const EmulateTouchFromMouseEventParams = withCdpMeta(z.object({ "type": z.enum(["mousePressed", "mouseReleased", "mouseMoved", "mouseWheel"]), "x": z.number().int(), "y": z.number().int(), "button": z.lazy(() => MouseButton), "timestamp": z.lazy(() => TimeSinceEpoch).optional(), "deltaX": z.number().optional(), "deltaY": z.number().optional(), "modifiers": z.number().int().optional(), "clickCount": z.number().int().optional() }).passthrough(), "Input.emulateTouchFromMouseEvent.params", "commandParams", { method: "Input.emulateTouchFromMouseEvent" }); export const EmulateTouchFromMouseEventResult = withCdpMeta(z.object({ }).passthrough(), "Input.emulateTouchFromMouseEvent.result", "commandResult", { method: "Input.emulateTouchFromMouseEvent" }); +export const EmulateTouchFromMouseEventCommand = withCdpCommand("Input.emulateTouchFromMouseEvent", EmulateTouchFromMouseEventParams, EmulateTouchFromMouseEventResult); export const SetIgnoreInputEventsParams = withCdpMeta(z.object({ "ignore": z.boolean() }).passthrough(), "Input.setIgnoreInputEvents.params", "commandParams", { method: "Input.setIgnoreInputEvents" }); export const SetIgnoreInputEventsResult = withCdpMeta(z.object({ }).passthrough(), "Input.setIgnoreInputEvents.result", "commandResult", { method: "Input.setIgnoreInputEvents" }); +export const SetIgnoreInputEventsCommand = withCdpCommand("Input.setIgnoreInputEvents", SetIgnoreInputEventsParams, SetIgnoreInputEventsResult); export const SetInterceptDragsParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "Input.setInterceptDrags.params", "commandParams", { method: "Input.setInterceptDrags" }); export const SetInterceptDragsResult = withCdpMeta(z.object({ }).passthrough(), "Input.setInterceptDrags.result", "commandResult", { method: "Input.setInterceptDrags" }); +export const SetInterceptDragsCommand = withCdpCommand("Input.setInterceptDrags", SetInterceptDragsParams, SetInterceptDragsResult); export const SynthesizePinchGestureParams = withCdpMeta(z.object({ "x": z.number(), "y": z.number(), "scaleFactor": z.number(), "relativeSpeed": z.number().int().optional(), "gestureSourceType": z.lazy(() => GestureSourceType).optional() }).passthrough(), "Input.synthesizePinchGesture.params", "commandParams", { method: "Input.synthesizePinchGesture" }); export const SynthesizePinchGestureResult = withCdpMeta(z.object({ }).passthrough(), "Input.synthesizePinchGesture.result", "commandResult", { method: "Input.synthesizePinchGesture" }); +export const SynthesizePinchGestureCommand = withCdpCommand("Input.synthesizePinchGesture", SynthesizePinchGestureParams, SynthesizePinchGestureResult); export const SynthesizeScrollGestureParams = withCdpMeta(z.object({ "x": z.number(), "y": z.number(), "xDistance": z.number().optional(), "yDistance": z.number().optional(), "xOverscroll": z.number().optional(), "yOverscroll": z.number().optional(), "preventFling": z.boolean().optional(), "speed": z.number().int().optional(), "gestureSourceType": z.lazy(() => GestureSourceType).optional(), "repeatCount": z.number().int().optional(), "repeatDelayMs": z.number().int().optional(), "interactionMarkerName": z.string().optional() }).passthrough(), "Input.synthesizeScrollGesture.params", "commandParams", { method: "Input.synthesizeScrollGesture" }); export const SynthesizeScrollGestureResult = withCdpMeta(z.object({ }).passthrough(), "Input.synthesizeScrollGesture.result", "commandResult", { method: "Input.synthesizeScrollGesture" }); +export const SynthesizeScrollGestureCommand = withCdpCommand("Input.synthesizeScrollGesture", SynthesizeScrollGestureParams, SynthesizeScrollGestureResult); export const SynthesizeTapGestureParams = withCdpMeta(z.object({ "x": z.number(), "y": z.number(), "duration": z.number().int().optional(), "tapCount": z.number().int().optional(), "gestureSourceType": z.lazy(() => GestureSourceType).optional() }).passthrough(), "Input.synthesizeTapGesture.params", "commandParams", { method: "Input.synthesizeTapGesture" }); export const SynthesizeTapGestureResult = withCdpMeta(z.object({ }).passthrough(), "Input.synthesizeTapGesture.result", "commandResult", { method: "Input.synthesizeTapGesture" }); +export const SynthesizeTapGestureCommand = withCdpCommand("Input.synthesizeTapGesture", SynthesizeTapGestureParams, SynthesizeTapGestureResult); export const DragInterceptedEvent = withCdpMeta(z.object({ "data": z.lazy(() => DragData) }).passthrough(), "Input.dragIntercepted", "event", { phase: "event" }); export const zod = { @@ -73,19 +86,19 @@ export const zod = { DragInterceptedEvent: DragInterceptedEvent, } as const; export const commands = { - "Input.dispatchDragEvent": { params: DispatchDragEventParams, result: DispatchDragEventResult }, - "Input.dispatchKeyEvent": { params: DispatchKeyEventParams, result: DispatchKeyEventResult }, - "Input.insertText": { params: InsertTextParams, result: InsertTextResult }, - "Input.imeSetComposition": { params: ImeSetCompositionParams, result: ImeSetCompositionResult }, - "Input.dispatchMouseEvent": { params: DispatchMouseEventParams, result: DispatchMouseEventResult }, - "Input.dispatchTouchEvent": { params: DispatchTouchEventParams, result: DispatchTouchEventResult }, - "Input.cancelDragging": { params: CancelDraggingParams, result: CancelDraggingResult }, - "Input.emulateTouchFromMouseEvent": { params: EmulateTouchFromMouseEventParams, result: EmulateTouchFromMouseEventResult }, - "Input.setIgnoreInputEvents": { params: SetIgnoreInputEventsParams, result: SetIgnoreInputEventsResult }, - "Input.setInterceptDrags": { params: SetInterceptDragsParams, result: SetInterceptDragsResult }, - "Input.synthesizePinchGesture": { params: SynthesizePinchGestureParams, result: SynthesizePinchGestureResult }, - "Input.synthesizeScrollGesture": { params: SynthesizeScrollGestureParams, result: SynthesizeScrollGestureResult }, - "Input.synthesizeTapGesture": { params: SynthesizeTapGestureParams, result: SynthesizeTapGestureResult }, + "Input.dispatchDragEvent": DispatchDragEventCommand, + "Input.dispatchKeyEvent": DispatchKeyEventCommand, + "Input.insertText": InsertTextCommand, + "Input.imeSetComposition": ImeSetCompositionCommand, + "Input.dispatchMouseEvent": DispatchMouseEventCommand, + "Input.dispatchTouchEvent": DispatchTouchEventCommand, + "Input.cancelDragging": CancelDraggingCommand, + "Input.emulateTouchFromMouseEvent": EmulateTouchFromMouseEventCommand, + "Input.setIgnoreInputEvents": SetIgnoreInputEventsCommand, + "Input.setInterceptDrags": SetInterceptDragsCommand, + "Input.synthesizePinchGesture": SynthesizePinchGestureCommand, + "Input.synthesizeScrollGesture": SynthesizeScrollGestureCommand, + "Input.synthesizeTapGesture": SynthesizeTapGestureCommand, } as const; export const events = { "Input.dragIntercepted": DragInterceptedEvent, diff --git a/js/src/types/generated/zod/Inspector.ts b/js/src/types/generated/zod/Inspector.ts index 821520e0..0e5dbeda 100644 --- a/js/src/types/generated/zod/Inspector.ts +++ b/js/src/types/generated/zod/Inspector.ts @@ -1,12 +1,14 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Inspector.disable.params", "commandParams", { method: "Inspector.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Inspector.disable.result", "commandResult", { method: "Inspector.disable" }); +export const DisableCommand = withCdpCommand("Inspector.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Inspector.enable.params", "commandParams", { method: "Inspector.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Inspector.enable.result", "commandResult", { method: "Inspector.enable" }); +export const EnableCommand = withCdpCommand("Inspector.enable", EnableParams, EnableResult); export const DetachedEvent = withCdpMeta(z.object({ "reason": z.string() }).passthrough(), "Inspector.detached", "event", { phase: "event" }); export const TargetCrashedEvent = withCdpMeta(z.object({ }).passthrough(), "Inspector.targetCrashed", "event", { phase: "event" }); export const TargetReloadedAfterCrashEvent = withCdpMeta(z.object({ }).passthrough(), "Inspector.targetReloadedAfterCrash", "event", { phase: "event" }); @@ -23,8 +25,8 @@ export const zod = { WorkerScriptLoadedEvent: WorkerScriptLoadedEvent, } as const; export const commands = { - "Inspector.disable": { params: DisableParams, result: DisableResult }, - "Inspector.enable": { params: EnableParams, result: EnableResult }, + "Inspector.disable": DisableCommand, + "Inspector.enable": EnableCommand, } as const; export const events = { "Inspector.detached": DetachedEvent, diff --git a/js/src/types/generated/zod/LayerTree.ts b/js/src/types/generated/zod/LayerTree.ts index 4bd592c8..a748807c 100644 --- a/js/src/types/generated/zod/LayerTree.ts +++ b/js/src/types/generated/zod/LayerTree.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; export const LayerId = withCdpMeta(z.string(), "LayerTree.LayerId", "type"); @@ -13,22 +13,31 @@ export const Layer = withCdpMeta(z.object({ "layerId": z.lazy(() => LayerId), "p export const PaintProfile = withCdpMeta(z.array(z.number()), "LayerTree.PaintProfile", "type"); export const CompositingReasonsParams = withCdpMeta(z.object({ "layerId": z.lazy(() => LayerId) }).passthrough(), "LayerTree.compositingReasons.params", "commandParams", { method: "LayerTree.compositingReasons" }); export const CompositingReasonsResult = withCdpMeta(z.object({ "compositingReasons": z.array(z.string()), "compositingReasonIds": z.array(z.string()) }).passthrough(), "LayerTree.compositingReasons.result", "commandResult", { method: "LayerTree.compositingReasons" }); +export const CompositingReasonsCommand = withCdpCommand("LayerTree.compositingReasons", CompositingReasonsParams, CompositingReasonsResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "LayerTree.disable.params", "commandParams", { method: "LayerTree.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "LayerTree.disable.result", "commandResult", { method: "LayerTree.disable" }); +export const DisableCommand = withCdpCommand("LayerTree.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "LayerTree.enable.params", "commandParams", { method: "LayerTree.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "LayerTree.enable.result", "commandResult", { method: "LayerTree.enable" }); +export const EnableCommand = withCdpCommand("LayerTree.enable", EnableParams, EnableResult); export const LoadSnapshotParams = withCdpMeta(z.object({ "tiles": z.array(z.lazy(() => PictureTile)) }).passthrough(), "LayerTree.loadSnapshot.params", "commandParams", { method: "LayerTree.loadSnapshot" }); export const LoadSnapshotResult = withCdpMeta(z.object({ "snapshotId": z.lazy(() => SnapshotId) }).passthrough(), "LayerTree.loadSnapshot.result", "commandResult", { method: "LayerTree.loadSnapshot" }); +export const LoadSnapshotCommand = withCdpCommand("LayerTree.loadSnapshot", LoadSnapshotParams, LoadSnapshotResult); export const MakeSnapshotParams = withCdpMeta(z.object({ "layerId": z.lazy(() => LayerId) }).passthrough(), "LayerTree.makeSnapshot.params", "commandParams", { method: "LayerTree.makeSnapshot" }); export const MakeSnapshotResult = withCdpMeta(z.object({ "snapshotId": z.lazy(() => SnapshotId) }).passthrough(), "LayerTree.makeSnapshot.result", "commandResult", { method: "LayerTree.makeSnapshot" }); +export const MakeSnapshotCommand = withCdpCommand("LayerTree.makeSnapshot", MakeSnapshotParams, MakeSnapshotResult); export const ProfileSnapshotParams = withCdpMeta(z.object({ "snapshotId": z.lazy(() => SnapshotId), "minRepeatCount": z.number().int().optional(), "minDuration": z.number().optional(), "clipRect": z.lazy(() => DOM.Rect).optional() }).passthrough(), "LayerTree.profileSnapshot.params", "commandParams", { method: "LayerTree.profileSnapshot" }); export const ProfileSnapshotResult = withCdpMeta(z.object({ "timings": z.array(z.lazy(() => PaintProfile)) }).passthrough(), "LayerTree.profileSnapshot.result", "commandResult", { method: "LayerTree.profileSnapshot" }); +export const ProfileSnapshotCommand = withCdpCommand("LayerTree.profileSnapshot", ProfileSnapshotParams, ProfileSnapshotResult); export const ReleaseSnapshotParams = withCdpMeta(z.object({ "snapshotId": z.lazy(() => SnapshotId) }).passthrough(), "LayerTree.releaseSnapshot.params", "commandParams", { method: "LayerTree.releaseSnapshot" }); export const ReleaseSnapshotResult = withCdpMeta(z.object({ }).passthrough(), "LayerTree.releaseSnapshot.result", "commandResult", { method: "LayerTree.releaseSnapshot" }); +export const ReleaseSnapshotCommand = withCdpCommand("LayerTree.releaseSnapshot", ReleaseSnapshotParams, ReleaseSnapshotResult); export const ReplaySnapshotParams = withCdpMeta(z.object({ "snapshotId": z.lazy(() => SnapshotId), "fromStep": z.number().int().optional(), "toStep": z.number().int().optional(), "scale": z.number().optional() }).passthrough(), "LayerTree.replaySnapshot.params", "commandParams", { method: "LayerTree.replaySnapshot" }); export const ReplaySnapshotResult = withCdpMeta(z.object({ "dataURL": z.string() }).passthrough(), "LayerTree.replaySnapshot.result", "commandResult", { method: "LayerTree.replaySnapshot" }); +export const ReplaySnapshotCommand = withCdpCommand("LayerTree.replaySnapshot", ReplaySnapshotParams, ReplaySnapshotResult); export const SnapshotCommandLogParams = withCdpMeta(z.object({ "snapshotId": z.lazy(() => SnapshotId) }).passthrough(), "LayerTree.snapshotCommandLog.params", "commandParams", { method: "LayerTree.snapshotCommandLog" }); export const SnapshotCommandLogResult = withCdpMeta(z.object({ "commandLog": z.array(z.record(z.string(), z.unknown())) }).passthrough(), "LayerTree.snapshotCommandLog.result", "commandResult", { method: "LayerTree.snapshotCommandLog" }); +export const SnapshotCommandLogCommand = withCdpCommand("LayerTree.snapshotCommandLog", SnapshotCommandLogParams, SnapshotCommandLogResult); export const LayerPaintedEvent = withCdpMeta(z.object({ "layerId": z.lazy(() => LayerId), "clip": z.lazy(() => DOM.Rect) }).passthrough(), "LayerTree.layerPainted", "event", { phase: "event" }); export const LayerTreeDidChangeEvent = withCdpMeta(z.object({ "layers": z.array(z.lazy(() => Layer)).optional() }).passthrough(), "LayerTree.layerTreeDidChange", "event", { phase: "event" }); @@ -62,15 +71,15 @@ export const zod = { LayerTreeDidChangeEvent: LayerTreeDidChangeEvent, } as const; export const commands = { - "LayerTree.compositingReasons": { params: CompositingReasonsParams, result: CompositingReasonsResult }, - "LayerTree.disable": { params: DisableParams, result: DisableResult }, - "LayerTree.enable": { params: EnableParams, result: EnableResult }, - "LayerTree.loadSnapshot": { params: LoadSnapshotParams, result: LoadSnapshotResult }, - "LayerTree.makeSnapshot": { params: MakeSnapshotParams, result: MakeSnapshotResult }, - "LayerTree.profileSnapshot": { params: ProfileSnapshotParams, result: ProfileSnapshotResult }, - "LayerTree.releaseSnapshot": { params: ReleaseSnapshotParams, result: ReleaseSnapshotResult }, - "LayerTree.replaySnapshot": { params: ReplaySnapshotParams, result: ReplaySnapshotResult }, - "LayerTree.snapshotCommandLog": { params: SnapshotCommandLogParams, result: SnapshotCommandLogResult }, + "LayerTree.compositingReasons": CompositingReasonsCommand, + "LayerTree.disable": DisableCommand, + "LayerTree.enable": EnableCommand, + "LayerTree.loadSnapshot": LoadSnapshotCommand, + "LayerTree.makeSnapshot": MakeSnapshotCommand, + "LayerTree.profileSnapshot": ProfileSnapshotCommand, + "LayerTree.releaseSnapshot": ReleaseSnapshotCommand, + "LayerTree.replaySnapshot": ReplaySnapshotCommand, + "LayerTree.snapshotCommandLog": SnapshotCommandLogCommand, } as const; export const events = { "LayerTree.layerPainted": LayerPaintedEvent, diff --git a/js/src/types/generated/zod/Log.ts b/js/src/types/generated/zod/Log.ts index e8131fe3..ac8726ed 100644 --- a/js/src/types/generated/zod/Log.ts +++ b/js/src/types/generated/zod/Log.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Network from "./Network.js"; import * as Runtime from "./Runtime.js"; @@ -9,14 +9,19 @@ export const LogEntry = withCdpMeta(z.object({ "source": z.enum(["xml", "javascr export const ViolationSetting = withCdpMeta(z.object({ "name": z.enum(["longTask", "longLayout", "blockedEvent", "blockedParser", "discouragedAPIUse", "handler", "recurringHandler"]), "threshold": z.number() }).passthrough(), "Log.ViolationSetting", "type"); export const ClearParams = withCdpMeta(z.object({ }).passthrough(), "Log.clear.params", "commandParams", { method: "Log.clear" }); export const ClearResult = withCdpMeta(z.object({ }).passthrough(), "Log.clear.result", "commandResult", { method: "Log.clear" }); +export const ClearCommand = withCdpCommand("Log.clear", ClearParams, ClearResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Log.disable.params", "commandParams", { method: "Log.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Log.disable.result", "commandResult", { method: "Log.disable" }); +export const DisableCommand = withCdpCommand("Log.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Log.enable.params", "commandParams", { method: "Log.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Log.enable.result", "commandResult", { method: "Log.enable" }); +export const EnableCommand = withCdpCommand("Log.enable", EnableParams, EnableResult); export const StartViolationsReportParams = withCdpMeta(z.object({ "config": z.array(z.lazy(() => ViolationSetting)) }).passthrough(), "Log.startViolationsReport.params", "commandParams", { method: "Log.startViolationsReport" }); export const StartViolationsReportResult = withCdpMeta(z.object({ }).passthrough(), "Log.startViolationsReport.result", "commandResult", { method: "Log.startViolationsReport" }); +export const StartViolationsReportCommand = withCdpCommand("Log.startViolationsReport", StartViolationsReportParams, StartViolationsReportResult); export const StopViolationsReportParams = withCdpMeta(z.object({ }).passthrough(), "Log.stopViolationsReport.params", "commandParams", { method: "Log.stopViolationsReport" }); export const StopViolationsReportResult = withCdpMeta(z.object({ }).passthrough(), "Log.stopViolationsReport.result", "commandResult", { method: "Log.stopViolationsReport" }); +export const StopViolationsReportCommand = withCdpCommand("Log.stopViolationsReport", StopViolationsReportParams, StopViolationsReportResult); export const EntryAddedEvent = withCdpMeta(z.object({ "entry": z.lazy(() => LogEntry) }).passthrough(), "Log.entryAdded", "event", { phase: "event" }); export const zod = { @@ -35,11 +40,11 @@ export const zod = { EntryAddedEvent: EntryAddedEvent, } as const; export const commands = { - "Log.clear": { params: ClearParams, result: ClearResult }, - "Log.disable": { params: DisableParams, result: DisableResult }, - "Log.enable": { params: EnableParams, result: EnableResult }, - "Log.startViolationsReport": { params: StartViolationsReportParams, result: StartViolationsReportResult }, - "Log.stopViolationsReport": { params: StopViolationsReportParams, result: StopViolationsReportResult }, + "Log.clear": ClearCommand, + "Log.disable": DisableCommand, + "Log.enable": EnableCommand, + "Log.startViolationsReport": StartViolationsReportCommand, + "Log.stopViolationsReport": StopViolationsReportCommand, } as const; export const events = { "Log.entryAdded": EntryAddedEvent, diff --git a/js/src/types/generated/zod/Media.ts b/js/src/types/generated/zod/Media.ts index 05841be9..d3a6a357 100644 --- a/js/src/types/generated/zod/Media.ts +++ b/js/src/types/generated/zod/Media.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; export const PlayerId = withCdpMeta(z.string(), "Media.PlayerId", "type"); @@ -14,8 +14,10 @@ export const PlayerError = withCdpMeta(z.object({ "errorType": z.string(), "code export const Player = withCdpMeta(z.object({ "playerId": z.lazy(() => PlayerId), "domNodeId": z.lazy(() => DOM.BackendNodeId).optional() }).passthrough(), "Media.Player", "type"); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Media.enable.params", "commandParams", { method: "Media.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Media.enable.result", "commandResult", { method: "Media.enable" }); +export const EnableCommand = withCdpCommand("Media.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Media.disable.params", "commandParams", { method: "Media.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Media.disable.result", "commandResult", { method: "Media.disable" }); +export const DisableCommand = withCdpCommand("Media.disable", DisableParams, DisableResult); export const PlayerPropertiesChangedEvent = withCdpMeta(z.object({ "playerId": z.lazy(() => PlayerId), "properties": z.array(z.lazy(() => PlayerProperty)) }).passthrough(), "Media.playerPropertiesChanged", "event", { phase: "event" }); export const PlayerEventsAddedEvent = withCdpMeta(z.object({ "playerId": z.lazy(() => PlayerId), "events": z.array(z.lazy(() => PlayerEvent)) }).passthrough(), "Media.playerEventsAdded", "event", { phase: "event" }); export const PlayerMessagesLoggedEvent = withCdpMeta(z.object({ "playerId": z.lazy(() => PlayerId), "messages": z.array(z.lazy(() => PlayerMessage)) }).passthrough(), "Media.playerMessagesLogged", "event", { phase: "event" }); @@ -42,8 +44,8 @@ export const zod = { PlayerCreatedEvent: PlayerCreatedEvent, } as const; export const commands = { - "Media.enable": { params: EnableParams, result: EnableResult }, - "Media.disable": { params: DisableParams, result: DisableResult }, + "Media.enable": EnableCommand, + "Media.disable": DisableCommand, } as const; export const events = { "Media.playerPropertiesChanged": PlayerPropertiesChangedEvent, diff --git a/js/src/types/generated/zod/Memory.ts b/js/src/types/generated/zod/Memory.ts index 8a7e0973..8acb014f 100644 --- a/js/src/types/generated/zod/Memory.ts +++ b/js/src/types/generated/zod/Memory.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const PressureLevel = withCdpMeta(z.enum(["moderate", "critical"]), "Memory.PressureLevel", "type"); export const SamplingProfileNode = withCdpMeta(z.object({ "size": z.number(), "total": z.number(), "stack": z.array(z.string()) }).passthrough(), "Memory.SamplingProfileNode", "type"); @@ -10,26 +10,37 @@ export const Module = withCdpMeta(z.object({ "name": z.string(), "uuid": z.strin export const DOMCounter = withCdpMeta(z.object({ "name": z.string(), "count": z.number().int() }).passthrough(), "Memory.DOMCounter", "type"); export const GetDOMCountersParams = withCdpMeta(z.object({ }).passthrough(), "Memory.getDOMCounters.params", "commandParams", { method: "Memory.getDOMCounters" }); export const GetDOMCountersResult = withCdpMeta(z.object({ "documents": z.number().int(), "nodes": z.number().int(), "jsEventListeners": z.number().int() }).passthrough(), "Memory.getDOMCounters.result", "commandResult", { method: "Memory.getDOMCounters" }); +export const GetDOMCountersCommand = withCdpCommand("Memory.getDOMCounters", GetDOMCountersParams, GetDOMCountersResult); export const GetDOMCountersForLeakDetectionParams = withCdpMeta(z.object({ }).passthrough(), "Memory.getDOMCountersForLeakDetection.params", "commandParams", { method: "Memory.getDOMCountersForLeakDetection" }); export const GetDOMCountersForLeakDetectionResult = withCdpMeta(z.object({ "counters": z.array(z.lazy(() => DOMCounter)) }).passthrough(), "Memory.getDOMCountersForLeakDetection.result", "commandResult", { method: "Memory.getDOMCountersForLeakDetection" }); +export const GetDOMCountersForLeakDetectionCommand = withCdpCommand("Memory.getDOMCountersForLeakDetection", GetDOMCountersForLeakDetectionParams, GetDOMCountersForLeakDetectionResult); export const PrepareForLeakDetectionParams = withCdpMeta(z.object({ }).passthrough(), "Memory.prepareForLeakDetection.params", "commandParams", { method: "Memory.prepareForLeakDetection" }); export const PrepareForLeakDetectionResult = withCdpMeta(z.object({ }).passthrough(), "Memory.prepareForLeakDetection.result", "commandResult", { method: "Memory.prepareForLeakDetection" }); +export const PrepareForLeakDetectionCommand = withCdpCommand("Memory.prepareForLeakDetection", PrepareForLeakDetectionParams, PrepareForLeakDetectionResult); export const ForciblyPurgeJavaScriptMemoryParams = withCdpMeta(z.object({ }).passthrough(), "Memory.forciblyPurgeJavaScriptMemory.params", "commandParams", { method: "Memory.forciblyPurgeJavaScriptMemory" }); export const ForciblyPurgeJavaScriptMemoryResult = withCdpMeta(z.object({ }).passthrough(), "Memory.forciblyPurgeJavaScriptMemory.result", "commandResult", { method: "Memory.forciblyPurgeJavaScriptMemory" }); +export const ForciblyPurgeJavaScriptMemoryCommand = withCdpCommand("Memory.forciblyPurgeJavaScriptMemory", ForciblyPurgeJavaScriptMemoryParams, ForciblyPurgeJavaScriptMemoryResult); export const SetPressureNotificationsSuppressedParams = withCdpMeta(z.object({ "suppressed": z.boolean() }).passthrough(), "Memory.setPressureNotificationsSuppressed.params", "commandParams", { method: "Memory.setPressureNotificationsSuppressed" }); export const SetPressureNotificationsSuppressedResult = withCdpMeta(z.object({ }).passthrough(), "Memory.setPressureNotificationsSuppressed.result", "commandResult", { method: "Memory.setPressureNotificationsSuppressed" }); +export const SetPressureNotificationsSuppressedCommand = withCdpCommand("Memory.setPressureNotificationsSuppressed", SetPressureNotificationsSuppressedParams, SetPressureNotificationsSuppressedResult); export const SimulatePressureNotificationParams = withCdpMeta(z.object({ "level": z.lazy(() => PressureLevel) }).passthrough(), "Memory.simulatePressureNotification.params", "commandParams", { method: "Memory.simulatePressureNotification" }); export const SimulatePressureNotificationResult = withCdpMeta(z.object({ }).passthrough(), "Memory.simulatePressureNotification.result", "commandResult", { method: "Memory.simulatePressureNotification" }); +export const SimulatePressureNotificationCommand = withCdpCommand("Memory.simulatePressureNotification", SimulatePressureNotificationParams, SimulatePressureNotificationResult); export const StartSamplingParams = withCdpMeta(z.object({ "samplingInterval": z.number().int().optional(), "suppressRandomness": z.boolean().optional() }).passthrough(), "Memory.startSampling.params", "commandParams", { method: "Memory.startSampling" }); export const StartSamplingResult = withCdpMeta(z.object({ }).passthrough(), "Memory.startSampling.result", "commandResult", { method: "Memory.startSampling" }); +export const StartSamplingCommand = withCdpCommand("Memory.startSampling", StartSamplingParams, StartSamplingResult); export const StopSamplingParams = withCdpMeta(z.object({ }).passthrough(), "Memory.stopSampling.params", "commandParams", { method: "Memory.stopSampling" }); export const StopSamplingResult = withCdpMeta(z.object({ }).passthrough(), "Memory.stopSampling.result", "commandResult", { method: "Memory.stopSampling" }); +export const StopSamplingCommand = withCdpCommand("Memory.stopSampling", StopSamplingParams, StopSamplingResult); export const GetAllTimeSamplingProfileParams = withCdpMeta(z.object({ }).passthrough(), "Memory.getAllTimeSamplingProfile.params", "commandParams", { method: "Memory.getAllTimeSamplingProfile" }); export const GetAllTimeSamplingProfileResult = withCdpMeta(z.object({ "profile": z.lazy(() => SamplingProfile) }).passthrough(), "Memory.getAllTimeSamplingProfile.result", "commandResult", { method: "Memory.getAllTimeSamplingProfile" }); +export const GetAllTimeSamplingProfileCommand = withCdpCommand("Memory.getAllTimeSamplingProfile", GetAllTimeSamplingProfileParams, GetAllTimeSamplingProfileResult); export const GetBrowserSamplingProfileParams = withCdpMeta(z.object({ }).passthrough(), "Memory.getBrowserSamplingProfile.params", "commandParams", { method: "Memory.getBrowserSamplingProfile" }); export const GetBrowserSamplingProfileResult = withCdpMeta(z.object({ "profile": z.lazy(() => SamplingProfile) }).passthrough(), "Memory.getBrowserSamplingProfile.result", "commandResult", { method: "Memory.getBrowserSamplingProfile" }); +export const GetBrowserSamplingProfileCommand = withCdpCommand("Memory.getBrowserSamplingProfile", GetBrowserSamplingProfileParams, GetBrowserSamplingProfileResult); export const GetSamplingProfileParams = withCdpMeta(z.object({ }).passthrough(), "Memory.getSamplingProfile.params", "commandParams", { method: "Memory.getSamplingProfile" }); export const GetSamplingProfileResult = withCdpMeta(z.object({ "profile": z.lazy(() => SamplingProfile) }).passthrough(), "Memory.getSamplingProfile.result", "commandResult", { method: "Memory.getSamplingProfile" }); +export const GetSamplingProfileCommand = withCdpCommand("Memory.getSamplingProfile", GetSamplingProfileParams, GetSamplingProfileResult); export const zod = { PressureLevel: PressureLevel, @@ -61,17 +72,17 @@ export const zod = { GetSamplingProfileResult: GetSamplingProfileResult, } as const; export const commands = { - "Memory.getDOMCounters": { params: GetDOMCountersParams, result: GetDOMCountersResult }, - "Memory.getDOMCountersForLeakDetection": { params: GetDOMCountersForLeakDetectionParams, result: GetDOMCountersForLeakDetectionResult }, - "Memory.prepareForLeakDetection": { params: PrepareForLeakDetectionParams, result: PrepareForLeakDetectionResult }, - "Memory.forciblyPurgeJavaScriptMemory": { params: ForciblyPurgeJavaScriptMemoryParams, result: ForciblyPurgeJavaScriptMemoryResult }, - "Memory.setPressureNotificationsSuppressed": { params: SetPressureNotificationsSuppressedParams, result: SetPressureNotificationsSuppressedResult }, - "Memory.simulatePressureNotification": { params: SimulatePressureNotificationParams, result: SimulatePressureNotificationResult }, - "Memory.startSampling": { params: StartSamplingParams, result: StartSamplingResult }, - "Memory.stopSampling": { params: StopSamplingParams, result: StopSamplingResult }, - "Memory.getAllTimeSamplingProfile": { params: GetAllTimeSamplingProfileParams, result: GetAllTimeSamplingProfileResult }, - "Memory.getBrowserSamplingProfile": { params: GetBrowserSamplingProfileParams, result: GetBrowserSamplingProfileResult }, - "Memory.getSamplingProfile": { params: GetSamplingProfileParams, result: GetSamplingProfileResult }, + "Memory.getDOMCounters": GetDOMCountersCommand, + "Memory.getDOMCountersForLeakDetection": GetDOMCountersForLeakDetectionCommand, + "Memory.prepareForLeakDetection": PrepareForLeakDetectionCommand, + "Memory.forciblyPurgeJavaScriptMemory": ForciblyPurgeJavaScriptMemoryCommand, + "Memory.setPressureNotificationsSuppressed": SetPressureNotificationsSuppressedCommand, + "Memory.simulatePressureNotification": SimulatePressureNotificationCommand, + "Memory.startSampling": StartSamplingCommand, + "Memory.stopSampling": StopSamplingCommand, + "Memory.getAllTimeSamplingProfile": GetAllTimeSamplingProfileCommand, + "Memory.getBrowserSamplingProfile": GetBrowserSamplingProfileCommand, + "Memory.getSamplingProfile": GetSamplingProfileCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/Network.ts b/js/src/types/generated/zod/Network.ts index 249626a5..e9c2f878 100644 --- a/js/src/types/generated/zod/Network.ts +++ b/js/src/types/generated/zod/Network.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Debugger from "./Debugger.js"; import * as Emulation from "./Emulation.js"; import * as IO from "./IO.js"; @@ -104,86 +104,127 @@ export const LoadNetworkResourcePageResult = withCdpMeta(z.object({ "success": z export const LoadNetworkResourceOptions = withCdpMeta(z.object({ "disableCache": z.boolean(), "includeCredentials": z.boolean() }).passthrough(), "Network.LoadNetworkResourceOptions", "type"); export const SetAcceptedEncodingsParams = withCdpMeta(z.object({ "encodings": z.array(z.lazy(() => ContentEncoding)) }).passthrough(), "Network.setAcceptedEncodings.params", "commandParams", { method: "Network.setAcceptedEncodings" }); export const SetAcceptedEncodingsResult = withCdpMeta(z.object({ }).passthrough(), "Network.setAcceptedEncodings.result", "commandResult", { method: "Network.setAcceptedEncodings" }); +export const SetAcceptedEncodingsCommand = withCdpCommand("Network.setAcceptedEncodings", SetAcceptedEncodingsParams, SetAcceptedEncodingsResult); export const ClearAcceptedEncodingsOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Network.clearAcceptedEncodingsOverride.params", "commandParams", { method: "Network.clearAcceptedEncodingsOverride" }); export const ClearAcceptedEncodingsOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Network.clearAcceptedEncodingsOverride.result", "commandResult", { method: "Network.clearAcceptedEncodingsOverride" }); +export const ClearAcceptedEncodingsOverrideCommand = withCdpCommand("Network.clearAcceptedEncodingsOverride", ClearAcceptedEncodingsOverrideParams, ClearAcceptedEncodingsOverrideResult); export const CanClearBrowserCacheParams = withCdpMeta(z.object({ }).passthrough(), "Network.canClearBrowserCache.params", "commandParams", { method: "Network.canClearBrowserCache" }); export const CanClearBrowserCacheResult = withCdpMeta(z.object({ "result": z.boolean() }).passthrough(), "Network.canClearBrowserCache.result", "commandResult", { method: "Network.canClearBrowserCache" }); +export const CanClearBrowserCacheCommand = withCdpCommand("Network.canClearBrowserCache", CanClearBrowserCacheParams, CanClearBrowserCacheResult); export const CanClearBrowserCookiesParams = withCdpMeta(z.object({ }).passthrough(), "Network.canClearBrowserCookies.params", "commandParams", { method: "Network.canClearBrowserCookies" }); export const CanClearBrowserCookiesResult = withCdpMeta(z.object({ "result": z.boolean() }).passthrough(), "Network.canClearBrowserCookies.result", "commandResult", { method: "Network.canClearBrowserCookies" }); +export const CanClearBrowserCookiesCommand = withCdpCommand("Network.canClearBrowserCookies", CanClearBrowserCookiesParams, CanClearBrowserCookiesResult); export const CanEmulateNetworkConditionsParams = withCdpMeta(z.object({ }).passthrough(), "Network.canEmulateNetworkConditions.params", "commandParams", { method: "Network.canEmulateNetworkConditions" }); export const CanEmulateNetworkConditionsResult = withCdpMeta(z.object({ "result": z.boolean() }).passthrough(), "Network.canEmulateNetworkConditions.result", "commandResult", { method: "Network.canEmulateNetworkConditions" }); +export const CanEmulateNetworkConditionsCommand = withCdpCommand("Network.canEmulateNetworkConditions", CanEmulateNetworkConditionsParams, CanEmulateNetworkConditionsResult); export const ClearBrowserCacheParams = withCdpMeta(z.object({ }).passthrough(), "Network.clearBrowserCache.params", "commandParams", { method: "Network.clearBrowserCache" }); export const ClearBrowserCacheResult = withCdpMeta(z.object({ }).passthrough(), "Network.clearBrowserCache.result", "commandResult", { method: "Network.clearBrowserCache" }); +export const ClearBrowserCacheCommand = withCdpCommand("Network.clearBrowserCache", ClearBrowserCacheParams, ClearBrowserCacheResult); export const ClearBrowserCookiesParams = withCdpMeta(z.object({ }).passthrough(), "Network.clearBrowserCookies.params", "commandParams", { method: "Network.clearBrowserCookies" }); export const ClearBrowserCookiesResult = withCdpMeta(z.object({ }).passthrough(), "Network.clearBrowserCookies.result", "commandResult", { method: "Network.clearBrowserCookies" }); +export const ClearBrowserCookiesCommand = withCdpCommand("Network.clearBrowserCookies", ClearBrowserCookiesParams, ClearBrowserCookiesResult); export const ContinueInterceptedRequestParams = withCdpMeta(z.object({ "interceptionId": z.lazy(() => InterceptionId), "errorReason": z.lazy(() => ErrorReason).optional(), "rawResponse": z.string().optional(), "url": z.string().optional(), "method": z.string().optional(), "postData": z.string().optional(), "headers": z.lazy(() => Headers).optional(), "authChallengeResponse": z.lazy(() => AuthChallengeResponse).optional() }).passthrough(), "Network.continueInterceptedRequest.params", "commandParams", { method: "Network.continueInterceptedRequest" }); export const ContinueInterceptedRequestResult = withCdpMeta(z.object({ }).passthrough(), "Network.continueInterceptedRequest.result", "commandResult", { method: "Network.continueInterceptedRequest" }); +export const ContinueInterceptedRequestCommand = withCdpCommand("Network.continueInterceptedRequest", ContinueInterceptedRequestParams, ContinueInterceptedRequestResult); export const DeleteCookiesParams = withCdpMeta(z.object({ "name": z.string(), "url": z.string().optional(), "domain": z.string().optional(), "path": z.string().optional(), "partitionKey": z.lazy(() => CookiePartitionKey).optional() }).passthrough(), "Network.deleteCookies.params", "commandParams", { method: "Network.deleteCookies" }); export const DeleteCookiesResult = withCdpMeta(z.object({ }).passthrough(), "Network.deleteCookies.result", "commandResult", { method: "Network.deleteCookies" }); +export const DeleteCookiesCommand = withCdpCommand("Network.deleteCookies", DeleteCookiesParams, DeleteCookiesResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Network.disable.params", "commandParams", { method: "Network.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Network.disable.result", "commandResult", { method: "Network.disable" }); +export const DisableCommand = withCdpCommand("Network.disable", DisableParams, DisableResult); export const EmulateNetworkConditionsParams = withCdpMeta(z.object({ "offline": z.boolean(), "latency": z.number(), "downloadThroughput": z.number(), "uploadThroughput": z.number(), "connectionType": z.lazy(() => ConnectionType).optional(), "packetLoss": z.number().optional(), "packetQueueLength": z.number().int().optional(), "packetReordering": z.boolean().optional() }).passthrough(), "Network.emulateNetworkConditions.params", "commandParams", { method: "Network.emulateNetworkConditions" }); export const EmulateNetworkConditionsResult = withCdpMeta(z.object({ }).passthrough(), "Network.emulateNetworkConditions.result", "commandResult", { method: "Network.emulateNetworkConditions" }); +export const EmulateNetworkConditionsCommand = withCdpCommand("Network.emulateNetworkConditions", EmulateNetworkConditionsParams, EmulateNetworkConditionsResult); export const EmulateNetworkConditionsByRuleParams = withCdpMeta(z.object({ "offline": z.boolean().optional(), "emulateOfflineServiceWorker": z.boolean().optional(), "matchedNetworkConditions": z.array(z.lazy(() => NetworkConditions)) }).passthrough(), "Network.emulateNetworkConditionsByRule.params", "commandParams", { method: "Network.emulateNetworkConditionsByRule" }); export const EmulateNetworkConditionsByRuleResult = withCdpMeta(z.object({ "ruleIds": z.array(z.string()) }).passthrough(), "Network.emulateNetworkConditionsByRule.result", "commandResult", { method: "Network.emulateNetworkConditionsByRule" }); +export const EmulateNetworkConditionsByRuleCommand = withCdpCommand("Network.emulateNetworkConditionsByRule", EmulateNetworkConditionsByRuleParams, EmulateNetworkConditionsByRuleResult); export const OverrideNetworkStateParams = withCdpMeta(z.object({ "offline": z.boolean(), "latency": z.number(), "downloadThroughput": z.number(), "uploadThroughput": z.number(), "connectionType": z.lazy(() => ConnectionType).optional() }).passthrough(), "Network.overrideNetworkState.params", "commandParams", { method: "Network.overrideNetworkState" }); export const OverrideNetworkStateResult = withCdpMeta(z.object({ }).passthrough(), "Network.overrideNetworkState.result", "commandResult", { method: "Network.overrideNetworkState" }); +export const OverrideNetworkStateCommand = withCdpCommand("Network.overrideNetworkState", OverrideNetworkStateParams, OverrideNetworkStateResult); export const EnableParams = withCdpMeta(z.object({ "maxTotalBufferSize": z.number().int().optional(), "maxResourceBufferSize": z.number().int().optional(), "maxPostDataSize": z.number().int().optional(), "reportDirectSocketTraffic": z.boolean().optional(), "enableDurableMessages": z.boolean().optional() }).passthrough(), "Network.enable.params", "commandParams", { method: "Network.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Network.enable.result", "commandResult", { method: "Network.enable" }); +export const EnableCommand = withCdpCommand("Network.enable", EnableParams, EnableResult); export const ConfigureDurableMessagesParams = withCdpMeta(z.object({ "maxTotalBufferSize": z.number().int().optional(), "maxResourceBufferSize": z.number().int().optional() }).passthrough(), "Network.configureDurableMessages.params", "commandParams", { method: "Network.configureDurableMessages" }); export const ConfigureDurableMessagesResult = withCdpMeta(z.object({ }).passthrough(), "Network.configureDurableMessages.result", "commandResult", { method: "Network.configureDurableMessages" }); +export const ConfigureDurableMessagesCommand = withCdpCommand("Network.configureDurableMessages", ConfigureDurableMessagesParams, ConfigureDurableMessagesResult); export const GetAllCookiesParams = withCdpMeta(z.object({ }).passthrough(), "Network.getAllCookies.params", "commandParams", { method: "Network.getAllCookies" }); export const GetAllCookiesResult = withCdpMeta(z.object({ "cookies": z.array(z.lazy(() => Cookie)) }).passthrough(), "Network.getAllCookies.result", "commandResult", { method: "Network.getAllCookies" }); +export const GetAllCookiesCommand = withCdpCommand("Network.getAllCookies", GetAllCookiesParams, GetAllCookiesResult); export const GetCertificateParams = withCdpMeta(z.object({ "origin": z.string() }).passthrough(), "Network.getCertificate.params", "commandParams", { method: "Network.getCertificate" }); export const GetCertificateResult = withCdpMeta(z.object({ "tableNames": z.array(z.string()) }).passthrough(), "Network.getCertificate.result", "commandResult", { method: "Network.getCertificate" }); +export const GetCertificateCommand = withCdpCommand("Network.getCertificate", GetCertificateParams, GetCertificateResult); export const GetCookiesParams = withCdpMeta(z.object({ "urls": z.array(z.string()).optional() }).passthrough(), "Network.getCookies.params", "commandParams", { method: "Network.getCookies" }); export const GetCookiesResult = withCdpMeta(z.object({ "cookies": z.array(z.lazy(() => Cookie)) }).passthrough(), "Network.getCookies.result", "commandResult", { method: "Network.getCookies" }); +export const GetCookiesCommand = withCdpCommand("Network.getCookies", GetCookiesParams, GetCookiesResult); export const GetResponseBodyParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId) }).passthrough(), "Network.getResponseBody.params", "commandParams", { method: "Network.getResponseBody" }); export const GetResponseBodyResult = withCdpMeta(z.object({ "body": z.string(), "base64Encoded": z.boolean() }).passthrough(), "Network.getResponseBody.result", "commandResult", { method: "Network.getResponseBody" }); +export const GetResponseBodyCommand = withCdpCommand("Network.getResponseBody", GetResponseBodyParams, GetResponseBodyResult); export const GetRequestPostDataParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId) }).passthrough(), "Network.getRequestPostData.params", "commandParams", { method: "Network.getRequestPostData" }); export const GetRequestPostDataResult = withCdpMeta(z.object({ "postData": z.string(), "base64Encoded": z.boolean() }).passthrough(), "Network.getRequestPostData.result", "commandResult", { method: "Network.getRequestPostData" }); +export const GetRequestPostDataCommand = withCdpCommand("Network.getRequestPostData", GetRequestPostDataParams, GetRequestPostDataResult); export const GetResponseBodyForInterceptionParams = withCdpMeta(z.object({ "interceptionId": z.lazy(() => InterceptionId) }).passthrough(), "Network.getResponseBodyForInterception.params", "commandParams", { method: "Network.getResponseBodyForInterception" }); export const GetResponseBodyForInterceptionResult = withCdpMeta(z.object({ "body": z.string(), "base64Encoded": z.boolean() }).passthrough(), "Network.getResponseBodyForInterception.result", "commandResult", { method: "Network.getResponseBodyForInterception" }); +export const GetResponseBodyForInterceptionCommand = withCdpCommand("Network.getResponseBodyForInterception", GetResponseBodyForInterceptionParams, GetResponseBodyForInterceptionResult); export const TakeResponseBodyForInterceptionAsStreamParams = withCdpMeta(z.object({ "interceptionId": z.lazy(() => InterceptionId) }).passthrough(), "Network.takeResponseBodyForInterceptionAsStream.params", "commandParams", { method: "Network.takeResponseBodyForInterceptionAsStream" }); export const TakeResponseBodyForInterceptionAsStreamResult = withCdpMeta(z.object({ "stream": z.lazy(() => IO.StreamHandle) }).passthrough(), "Network.takeResponseBodyForInterceptionAsStream.result", "commandResult", { method: "Network.takeResponseBodyForInterceptionAsStream" }); +export const TakeResponseBodyForInterceptionAsStreamCommand = withCdpCommand("Network.takeResponseBodyForInterceptionAsStream", TakeResponseBodyForInterceptionAsStreamParams, TakeResponseBodyForInterceptionAsStreamResult); export const ReplayXHRParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId) }).passthrough(), "Network.replayXHR.params", "commandParams", { method: "Network.replayXHR" }); export const ReplayXHRResult = withCdpMeta(z.object({ }).passthrough(), "Network.replayXHR.result", "commandResult", { method: "Network.replayXHR" }); +export const ReplayXHRCommand = withCdpCommand("Network.replayXHR", ReplayXHRParams, ReplayXHRResult); export const SearchInResponseBodyParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "query": z.string(), "caseSensitive": z.boolean().optional(), "isRegex": z.boolean().optional() }).passthrough(), "Network.searchInResponseBody.params", "commandParams", { method: "Network.searchInResponseBody" }); export const SearchInResponseBodyResult = withCdpMeta(z.object({ "result": z.array(z.lazy(() => Debugger.SearchMatch)) }).passthrough(), "Network.searchInResponseBody.result", "commandResult", { method: "Network.searchInResponseBody" }); +export const SearchInResponseBodyCommand = withCdpCommand("Network.searchInResponseBody", SearchInResponseBodyParams, SearchInResponseBodyResult); export const SetBlockedURLsParams = withCdpMeta(z.object({ "urlPatterns": z.array(z.lazy(() => BlockPattern)).optional(), "urls": z.array(z.string()).optional() }).passthrough(), "Network.setBlockedURLs.params", "commandParams", { method: "Network.setBlockedURLs" }); export const SetBlockedURLsResult = withCdpMeta(z.object({ }).passthrough(), "Network.setBlockedURLs.result", "commandResult", { method: "Network.setBlockedURLs" }); +export const SetBlockedURLsCommand = withCdpCommand("Network.setBlockedURLs", SetBlockedURLsParams, SetBlockedURLsResult); export const SetBypassServiceWorkerParams = withCdpMeta(z.object({ "bypass": z.boolean() }).passthrough(), "Network.setBypassServiceWorker.params", "commandParams", { method: "Network.setBypassServiceWorker" }); export const SetBypassServiceWorkerResult = withCdpMeta(z.object({ }).passthrough(), "Network.setBypassServiceWorker.result", "commandResult", { method: "Network.setBypassServiceWorker" }); +export const SetBypassServiceWorkerCommand = withCdpCommand("Network.setBypassServiceWorker", SetBypassServiceWorkerParams, SetBypassServiceWorkerResult); export const SetCacheDisabledParams = withCdpMeta(z.object({ "cacheDisabled": z.boolean() }).passthrough(), "Network.setCacheDisabled.params", "commandParams", { method: "Network.setCacheDisabled" }); export const SetCacheDisabledResult = withCdpMeta(z.object({ }).passthrough(), "Network.setCacheDisabled.result", "commandResult", { method: "Network.setCacheDisabled" }); +export const SetCacheDisabledCommand = withCdpCommand("Network.setCacheDisabled", SetCacheDisabledParams, SetCacheDisabledResult); export const SetCookieParams = withCdpMeta(z.object({ "name": z.string(), "value": z.string(), "url": z.string().optional(), "domain": z.string().optional(), "path": z.string().optional(), "secure": z.boolean().optional(), "httpOnly": z.boolean().optional(), "sameSite": z.lazy(() => CookieSameSite).optional(), "expires": z.lazy(() => TimeSinceEpoch).optional(), "priority": z.lazy(() => CookiePriority).optional(), "sourceScheme": z.lazy(() => CookieSourceScheme).optional(), "sourcePort": z.number().int().optional(), "partitionKey": z.lazy(() => CookiePartitionKey).optional() }).passthrough(), "Network.setCookie.params", "commandParams", { method: "Network.setCookie" }); export const SetCookieResult = withCdpMeta(z.object({ "success": z.boolean() }).passthrough(), "Network.setCookie.result", "commandResult", { method: "Network.setCookie" }); +export const SetCookieCommand = withCdpCommand("Network.setCookie", SetCookieParams, SetCookieResult); export const SetCookiesParams = withCdpMeta(z.object({ "cookies": z.array(z.lazy(() => CookieParam)) }).passthrough(), "Network.setCookies.params", "commandParams", { method: "Network.setCookies" }); export const SetCookiesResult = withCdpMeta(z.object({ }).passthrough(), "Network.setCookies.result", "commandResult", { method: "Network.setCookies" }); +export const SetCookiesCommand = withCdpCommand("Network.setCookies", SetCookiesParams, SetCookiesResult); export const SetExtraHTTPHeadersParams = withCdpMeta(z.object({ "headers": z.lazy(() => Headers) }).passthrough(), "Network.setExtraHTTPHeaders.params", "commandParams", { method: "Network.setExtraHTTPHeaders" }); export const SetExtraHTTPHeadersResult = withCdpMeta(z.object({ }).passthrough(), "Network.setExtraHTTPHeaders.result", "commandResult", { method: "Network.setExtraHTTPHeaders" }); +export const SetExtraHTTPHeadersCommand = withCdpCommand("Network.setExtraHTTPHeaders", SetExtraHTTPHeadersParams, SetExtraHTTPHeadersResult); export const SetAttachDebugStackParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "Network.setAttachDebugStack.params", "commandParams", { method: "Network.setAttachDebugStack" }); export const SetAttachDebugStackResult = withCdpMeta(z.object({ }).passthrough(), "Network.setAttachDebugStack.result", "commandResult", { method: "Network.setAttachDebugStack" }); +export const SetAttachDebugStackCommand = withCdpCommand("Network.setAttachDebugStack", SetAttachDebugStackParams, SetAttachDebugStackResult); export const SetRequestInterceptionParams = withCdpMeta(z.object({ "patterns": z.array(z.lazy(() => RequestPattern)) }).passthrough(), "Network.setRequestInterception.params", "commandParams", { method: "Network.setRequestInterception" }); export const SetRequestInterceptionResult = withCdpMeta(z.object({ }).passthrough(), "Network.setRequestInterception.result", "commandResult", { method: "Network.setRequestInterception" }); +export const SetRequestInterceptionCommand = withCdpCommand("Network.setRequestInterception", SetRequestInterceptionParams, SetRequestInterceptionResult); export const SetUserAgentOverrideParams = withCdpMeta(z.object({ "userAgent": z.string(), "acceptLanguage": z.string().optional(), "platform": z.string().optional(), "userAgentMetadata": z.lazy(() => Emulation.UserAgentMetadata).optional() }).passthrough(), "Network.setUserAgentOverride.params", "commandParams", { method: "Network.setUserAgentOverride" }); export const SetUserAgentOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Network.setUserAgentOverride.result", "commandResult", { method: "Network.setUserAgentOverride" }); +export const SetUserAgentOverrideCommand = withCdpCommand("Network.setUserAgentOverride", SetUserAgentOverrideParams, SetUserAgentOverrideResult); export const StreamResourceContentParams = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId) }).passthrough(), "Network.streamResourceContent.params", "commandParams", { method: "Network.streamResourceContent" }); export const StreamResourceContentResult = withCdpMeta(z.object({ "bufferedData": z.string() }).passthrough(), "Network.streamResourceContent.result", "commandResult", { method: "Network.streamResourceContent" }); +export const StreamResourceContentCommand = withCdpCommand("Network.streamResourceContent", StreamResourceContentParams, StreamResourceContentResult); export const GetSecurityIsolationStatusParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId).optional() }).passthrough(), "Network.getSecurityIsolationStatus.params", "commandParams", { method: "Network.getSecurityIsolationStatus" }); export const GetSecurityIsolationStatusResult = withCdpMeta(z.object({ "status": z.lazy(() => SecurityIsolationStatus) }).passthrough(), "Network.getSecurityIsolationStatus.result", "commandResult", { method: "Network.getSecurityIsolationStatus" }); +export const GetSecurityIsolationStatusCommand = withCdpCommand("Network.getSecurityIsolationStatus", GetSecurityIsolationStatusParams, GetSecurityIsolationStatusResult); export const EnableReportingApiParams = withCdpMeta(z.object({ "enable": z.boolean() }).passthrough(), "Network.enableReportingApi.params", "commandParams", { method: "Network.enableReportingApi" }); export const EnableReportingApiResult = withCdpMeta(z.object({ }).passthrough(), "Network.enableReportingApi.result", "commandResult", { method: "Network.enableReportingApi" }); +export const EnableReportingApiCommand = withCdpCommand("Network.enableReportingApi", EnableReportingApiParams, EnableReportingApiResult); export const EnableDeviceBoundSessionsParams = withCdpMeta(z.object({ "enable": z.boolean() }).passthrough(), "Network.enableDeviceBoundSessions.params", "commandParams", { method: "Network.enableDeviceBoundSessions" }); export const EnableDeviceBoundSessionsResult = withCdpMeta(z.object({ }).passthrough(), "Network.enableDeviceBoundSessions.result", "commandResult", { method: "Network.enableDeviceBoundSessions" }); +export const EnableDeviceBoundSessionsCommand = withCdpCommand("Network.enableDeviceBoundSessions", EnableDeviceBoundSessionsParams, EnableDeviceBoundSessionsResult); export const DeleteDeviceBoundSessionParams = withCdpMeta(z.object({ "key": z.lazy(() => DeviceBoundSessionKey) }).passthrough(), "Network.deleteDeviceBoundSession.params", "commandParams", { method: "Network.deleteDeviceBoundSession" }); export const DeleteDeviceBoundSessionResult = withCdpMeta(z.object({ }).passthrough(), "Network.deleteDeviceBoundSession.result", "commandResult", { method: "Network.deleteDeviceBoundSession" }); +export const DeleteDeviceBoundSessionCommand = withCdpCommand("Network.deleteDeviceBoundSession", DeleteDeviceBoundSessionParams, DeleteDeviceBoundSessionResult); export const FetchSchemefulSiteParams = withCdpMeta(z.object({ "origin": z.string() }).passthrough(), "Network.fetchSchemefulSite.params", "commandParams", { method: "Network.fetchSchemefulSite" }); export const FetchSchemefulSiteResult = withCdpMeta(z.object({ "schemefulSite": z.string() }).passthrough(), "Network.fetchSchemefulSite.result", "commandResult", { method: "Network.fetchSchemefulSite" }); +export const FetchSchemefulSiteCommand = withCdpCommand("Network.fetchSchemefulSite", FetchSchemefulSiteParams, FetchSchemefulSiteResult); export const LoadNetworkResourceParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId).optional(), "url": z.string(), "options": z.lazy(() => LoadNetworkResourceOptions) }).passthrough(), "Network.loadNetworkResource.params", "commandParams", { method: "Network.loadNetworkResource" }); export const LoadNetworkResourceResult = withCdpMeta(z.object({ "resource": z.lazy(() => LoadNetworkResourcePageResult) }).passthrough(), "Network.loadNetworkResource.result", "commandResult", { method: "Network.loadNetworkResource" }); +export const LoadNetworkResourceCommand = withCdpCommand("Network.loadNetworkResource", LoadNetworkResourceParams, LoadNetworkResourceResult); export const SetCookieControlsParams = withCdpMeta(z.object({ "enableThirdPartyCookieRestriction": z.boolean() }).passthrough(), "Network.setCookieControls.params", "commandParams", { method: "Network.setCookieControls" }); export const SetCookieControlsResult = withCdpMeta(z.object({ }).passthrough(), "Network.setCookieControls.result", "commandResult", { method: "Network.setCookieControls" }); +export const SetCookieControlsCommand = withCdpCommand("Network.setCookieControls", SetCookieControlsParams, SetCookieControlsResult); export const DataReceivedEvent = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "timestamp": z.lazy(() => MonotonicTime), "dataLength": z.number().int(), "encodedDataLength": z.number().int(), "data": z.string().optional() }).passthrough(), "Network.dataReceived", "event", { phase: "event" }); export const EventSourceMessageReceivedEvent = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "timestamp": z.lazy(() => MonotonicTime), "eventName": z.string(), "eventId": z.string(), "data": z.string() }).passthrough(), "Network.eventSourceMessageReceived", "event", { phase: "event" }); export const LoadingFailedEvent = withCdpMeta(z.object({ "requestId": z.lazy(() => RequestId), "timestamp": z.lazy(() => MonotonicTime), "type": z.lazy(() => ResourceType), "errorText": z.string(), "canceled": z.boolean().optional(), "blockedReason": z.lazy(() => BlockedReason).optional(), "corsErrorStatus": z.lazy(() => CorsErrorStatus).optional() }).passthrough(), "Network.loadingFailed", "event", { phase: "event" }); @@ -451,47 +492,47 @@ export const zod = { DeviceBoundSessionEventOccurredEvent: DeviceBoundSessionEventOccurredEvent, } as const; export const commands = { - "Network.setAcceptedEncodings": { params: SetAcceptedEncodingsParams, result: SetAcceptedEncodingsResult }, - "Network.clearAcceptedEncodingsOverride": { params: ClearAcceptedEncodingsOverrideParams, result: ClearAcceptedEncodingsOverrideResult }, - "Network.canClearBrowserCache": { params: CanClearBrowserCacheParams, result: CanClearBrowserCacheResult }, - "Network.canClearBrowserCookies": { params: CanClearBrowserCookiesParams, result: CanClearBrowserCookiesResult }, - "Network.canEmulateNetworkConditions": { params: CanEmulateNetworkConditionsParams, result: CanEmulateNetworkConditionsResult }, - "Network.clearBrowserCache": { params: ClearBrowserCacheParams, result: ClearBrowserCacheResult }, - "Network.clearBrowserCookies": { params: ClearBrowserCookiesParams, result: ClearBrowserCookiesResult }, - "Network.continueInterceptedRequest": { params: ContinueInterceptedRequestParams, result: ContinueInterceptedRequestResult }, - "Network.deleteCookies": { params: DeleteCookiesParams, result: DeleteCookiesResult }, - "Network.disable": { params: DisableParams, result: DisableResult }, - "Network.emulateNetworkConditions": { params: EmulateNetworkConditionsParams, result: EmulateNetworkConditionsResult }, - "Network.emulateNetworkConditionsByRule": { params: EmulateNetworkConditionsByRuleParams, result: EmulateNetworkConditionsByRuleResult }, - "Network.overrideNetworkState": { params: OverrideNetworkStateParams, result: OverrideNetworkStateResult }, - "Network.enable": { params: EnableParams, result: EnableResult }, - "Network.configureDurableMessages": { params: ConfigureDurableMessagesParams, result: ConfigureDurableMessagesResult }, - "Network.getAllCookies": { params: GetAllCookiesParams, result: GetAllCookiesResult }, - "Network.getCertificate": { params: GetCertificateParams, result: GetCertificateResult }, - "Network.getCookies": { params: GetCookiesParams, result: GetCookiesResult }, - "Network.getResponseBody": { params: GetResponseBodyParams, result: GetResponseBodyResult }, - "Network.getRequestPostData": { params: GetRequestPostDataParams, result: GetRequestPostDataResult }, - "Network.getResponseBodyForInterception": { params: GetResponseBodyForInterceptionParams, result: GetResponseBodyForInterceptionResult }, - "Network.takeResponseBodyForInterceptionAsStream": { params: TakeResponseBodyForInterceptionAsStreamParams, result: TakeResponseBodyForInterceptionAsStreamResult }, - "Network.replayXHR": { params: ReplayXHRParams, result: ReplayXHRResult }, - "Network.searchInResponseBody": { params: SearchInResponseBodyParams, result: SearchInResponseBodyResult }, - "Network.setBlockedURLs": { params: SetBlockedURLsParams, result: SetBlockedURLsResult }, - "Network.setBypassServiceWorker": { params: SetBypassServiceWorkerParams, result: SetBypassServiceWorkerResult }, - "Network.setCacheDisabled": { params: SetCacheDisabledParams, result: SetCacheDisabledResult }, - "Network.setCookie": { params: SetCookieParams, result: SetCookieResult }, - "Network.setCookies": { params: SetCookiesParams, result: SetCookiesResult }, - "Network.setExtraHTTPHeaders": { params: SetExtraHTTPHeadersParams, result: SetExtraHTTPHeadersResult }, - "Network.setAttachDebugStack": { params: SetAttachDebugStackParams, result: SetAttachDebugStackResult }, - "Network.setRequestInterception": { params: SetRequestInterceptionParams, result: SetRequestInterceptionResult }, - "Network.setUserAgentOverride": { params: SetUserAgentOverrideParams, result: SetUserAgentOverrideResult }, - "Network.streamResourceContent": { params: StreamResourceContentParams, result: StreamResourceContentResult }, - "Network.getSecurityIsolationStatus": { params: GetSecurityIsolationStatusParams, result: GetSecurityIsolationStatusResult }, - "Network.enableReportingApi": { params: EnableReportingApiParams, result: EnableReportingApiResult }, - "Network.enableDeviceBoundSessions": { params: EnableDeviceBoundSessionsParams, result: EnableDeviceBoundSessionsResult }, - "Network.deleteDeviceBoundSession": { params: DeleteDeviceBoundSessionParams, result: DeleteDeviceBoundSessionResult }, - "Network.fetchSchemefulSite": { params: FetchSchemefulSiteParams, result: FetchSchemefulSiteResult }, - "Network.loadNetworkResource": { params: LoadNetworkResourceParams, result: LoadNetworkResourceResult }, - "Network.setCookieControls": { params: SetCookieControlsParams, result: SetCookieControlsResult }, + "Network.setAcceptedEncodings": SetAcceptedEncodingsCommand, + "Network.clearAcceptedEncodingsOverride": ClearAcceptedEncodingsOverrideCommand, + "Network.canClearBrowserCache": CanClearBrowserCacheCommand, + "Network.canClearBrowserCookies": CanClearBrowserCookiesCommand, + "Network.canEmulateNetworkConditions": CanEmulateNetworkConditionsCommand, + "Network.clearBrowserCache": ClearBrowserCacheCommand, + "Network.clearBrowserCookies": ClearBrowserCookiesCommand, + "Network.continueInterceptedRequest": ContinueInterceptedRequestCommand, + "Network.deleteCookies": DeleteCookiesCommand, + "Network.disable": DisableCommand, + "Network.emulateNetworkConditions": EmulateNetworkConditionsCommand, + "Network.emulateNetworkConditionsByRule": EmulateNetworkConditionsByRuleCommand, + "Network.overrideNetworkState": OverrideNetworkStateCommand, + "Network.enable": EnableCommand, + "Network.configureDurableMessages": ConfigureDurableMessagesCommand, + "Network.getAllCookies": GetAllCookiesCommand, + "Network.getCertificate": GetCertificateCommand, + "Network.getCookies": GetCookiesCommand, + "Network.getResponseBody": GetResponseBodyCommand, + "Network.getRequestPostData": GetRequestPostDataCommand, + "Network.getResponseBodyForInterception": GetResponseBodyForInterceptionCommand, + "Network.takeResponseBodyForInterceptionAsStream": TakeResponseBodyForInterceptionAsStreamCommand, + "Network.replayXHR": ReplayXHRCommand, + "Network.searchInResponseBody": SearchInResponseBodyCommand, + "Network.setBlockedURLs": SetBlockedURLsCommand, + "Network.setBypassServiceWorker": SetBypassServiceWorkerCommand, + "Network.setCacheDisabled": SetCacheDisabledCommand, + "Network.setCookie": SetCookieCommand, + "Network.setCookies": SetCookiesCommand, + "Network.setExtraHTTPHeaders": SetExtraHTTPHeadersCommand, + "Network.setAttachDebugStack": SetAttachDebugStackCommand, + "Network.setRequestInterception": SetRequestInterceptionCommand, + "Network.setUserAgentOverride": SetUserAgentOverrideCommand, + "Network.streamResourceContent": StreamResourceContentCommand, + "Network.getSecurityIsolationStatus": GetSecurityIsolationStatusCommand, + "Network.enableReportingApi": EnableReportingApiCommand, + "Network.enableDeviceBoundSessions": EnableDeviceBoundSessionsCommand, + "Network.deleteDeviceBoundSession": DeleteDeviceBoundSessionCommand, + "Network.fetchSchemefulSite": FetchSchemefulSiteCommand, + "Network.loadNetworkResource": LoadNetworkResourceCommand, + "Network.setCookieControls": SetCookieControlsCommand, } as const; export const events = { "Network.dataReceived": DataReceivedEvent, diff --git a/js/src/types/generated/zod/Overlay.ts b/js/src/types/generated/zod/Overlay.ts index 74eb92b9..abbad661 100644 --- a/js/src/types/generated/zod/Overlay.ts +++ b/js/src/types/generated/zod/Overlay.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Page from "./Page.js"; import * as Runtime from "./Runtime.js"; @@ -29,64 +29,94 @@ export const InspectMode = withCdpMeta(z.enum(["searchForNode", "searchForUAShad export const InspectedElementAnchorConfig = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId).optional(), "backendNodeId": z.lazy(() => DOM.BackendNodeId).optional() }).passthrough(), "Overlay.InspectedElementAnchorConfig", "type"); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Overlay.disable.params", "commandParams", { method: "Overlay.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.disable.result", "commandResult", { method: "Overlay.disable" }); +export const DisableCommand = withCdpCommand("Overlay.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Overlay.enable.params", "commandParams", { method: "Overlay.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.enable.result", "commandResult", { method: "Overlay.enable" }); +export const EnableCommand = withCdpCommand("Overlay.enable", EnableParams, EnableResult); export const GetHighlightObjectForTestParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId), "includeDistance": z.boolean().optional(), "includeStyle": z.boolean().optional(), "colorFormat": z.lazy(() => ColorFormat).optional(), "showAccessibilityInfo": z.boolean().optional() }).passthrough(), "Overlay.getHighlightObjectForTest.params", "commandParams", { method: "Overlay.getHighlightObjectForTest" }); export const GetHighlightObjectForTestResult = withCdpMeta(z.object({ "highlight": z.record(z.string(), z.unknown()) }).passthrough(), "Overlay.getHighlightObjectForTest.result", "commandResult", { method: "Overlay.getHighlightObjectForTest" }); +export const GetHighlightObjectForTestCommand = withCdpCommand("Overlay.getHighlightObjectForTest", GetHighlightObjectForTestParams, GetHighlightObjectForTestResult); export const GetGridHighlightObjectsForTestParams = withCdpMeta(z.object({ "nodeIds": z.array(z.lazy(() => DOM.NodeId)) }).passthrough(), "Overlay.getGridHighlightObjectsForTest.params", "commandParams", { method: "Overlay.getGridHighlightObjectsForTest" }); export const GetGridHighlightObjectsForTestResult = withCdpMeta(z.object({ "highlights": z.record(z.string(), z.unknown()) }).passthrough(), "Overlay.getGridHighlightObjectsForTest.result", "commandResult", { method: "Overlay.getGridHighlightObjectsForTest" }); +export const GetGridHighlightObjectsForTestCommand = withCdpCommand("Overlay.getGridHighlightObjectsForTest", GetGridHighlightObjectsForTestParams, GetGridHighlightObjectsForTestResult); export const GetSourceOrderHighlightObjectForTestParams = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "Overlay.getSourceOrderHighlightObjectForTest.params", "commandParams", { method: "Overlay.getSourceOrderHighlightObjectForTest" }); export const GetSourceOrderHighlightObjectForTestResult = withCdpMeta(z.object({ "highlight": z.record(z.string(), z.unknown()) }).passthrough(), "Overlay.getSourceOrderHighlightObjectForTest.result", "commandResult", { method: "Overlay.getSourceOrderHighlightObjectForTest" }); +export const GetSourceOrderHighlightObjectForTestCommand = withCdpCommand("Overlay.getSourceOrderHighlightObjectForTest", GetSourceOrderHighlightObjectForTestParams, GetSourceOrderHighlightObjectForTestResult); export const HideHighlightParams = withCdpMeta(z.object({ }).passthrough(), "Overlay.hideHighlight.params", "commandParams", { method: "Overlay.hideHighlight" }); export const HideHighlightResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.hideHighlight.result", "commandResult", { method: "Overlay.hideHighlight" }); +export const HideHighlightCommand = withCdpCommand("Overlay.hideHighlight", HideHighlightParams, HideHighlightResult); export const HighlightFrameParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId), "contentColor": z.lazy(() => DOM.RGBA).optional(), "contentOutlineColor": z.lazy(() => DOM.RGBA).optional() }).passthrough(), "Overlay.highlightFrame.params", "commandParams", { method: "Overlay.highlightFrame" }); export const HighlightFrameResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.highlightFrame.result", "commandResult", { method: "Overlay.highlightFrame" }); +export const HighlightFrameCommand = withCdpCommand("Overlay.highlightFrame", HighlightFrameParams, HighlightFrameResult); export const HighlightNodeParams = withCdpMeta(z.object({ "highlightConfig": z.lazy(() => HighlightConfig), "nodeId": z.lazy(() => DOM.NodeId).optional(), "backendNodeId": z.lazy(() => DOM.BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional(), "selector": z.string().optional() }).passthrough(), "Overlay.highlightNode.params", "commandParams", { method: "Overlay.highlightNode" }); export const HighlightNodeResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.highlightNode.result", "commandResult", { method: "Overlay.highlightNode" }); +export const HighlightNodeCommand = withCdpCommand("Overlay.highlightNode", HighlightNodeParams, HighlightNodeResult); export const HighlightQuadParams = withCdpMeta(z.object({ "quad": z.lazy(() => DOM.Quad), "color": z.lazy(() => DOM.RGBA).optional(), "outlineColor": z.lazy(() => DOM.RGBA).optional() }).passthrough(), "Overlay.highlightQuad.params", "commandParams", { method: "Overlay.highlightQuad" }); export const HighlightQuadResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.highlightQuad.result", "commandResult", { method: "Overlay.highlightQuad" }); +export const HighlightQuadCommand = withCdpCommand("Overlay.highlightQuad", HighlightQuadParams, HighlightQuadResult); export const HighlightRectParams = withCdpMeta(z.object({ "x": z.number().int(), "y": z.number().int(), "width": z.number().int(), "height": z.number().int(), "color": z.lazy(() => DOM.RGBA).optional(), "outlineColor": z.lazy(() => DOM.RGBA).optional() }).passthrough(), "Overlay.highlightRect.params", "commandParams", { method: "Overlay.highlightRect" }); export const HighlightRectResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.highlightRect.result", "commandResult", { method: "Overlay.highlightRect" }); +export const HighlightRectCommand = withCdpCommand("Overlay.highlightRect", HighlightRectParams, HighlightRectResult); export const HighlightSourceOrderParams = withCdpMeta(z.object({ "sourceOrderConfig": z.lazy(() => SourceOrderConfig), "nodeId": z.lazy(() => DOM.NodeId).optional(), "backendNodeId": z.lazy(() => DOM.BackendNodeId).optional(), "objectId": z.lazy(() => Runtime.RemoteObjectId).optional() }).passthrough(), "Overlay.highlightSourceOrder.params", "commandParams", { method: "Overlay.highlightSourceOrder" }); export const HighlightSourceOrderResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.highlightSourceOrder.result", "commandResult", { method: "Overlay.highlightSourceOrder" }); +export const HighlightSourceOrderCommand = withCdpCommand("Overlay.highlightSourceOrder", HighlightSourceOrderParams, HighlightSourceOrderResult); export const SetInspectModeParams = withCdpMeta(z.object({ "mode": z.lazy(() => InspectMode), "highlightConfig": z.lazy(() => HighlightConfig).optional() }).passthrough(), "Overlay.setInspectMode.params", "commandParams", { method: "Overlay.setInspectMode" }); export const SetInspectModeResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setInspectMode.result", "commandResult", { method: "Overlay.setInspectMode" }); +export const SetInspectModeCommand = withCdpCommand("Overlay.setInspectMode", SetInspectModeParams, SetInspectModeResult); export const SetShowAdHighlightsParams = withCdpMeta(z.object({ "show": z.boolean() }).passthrough(), "Overlay.setShowAdHighlights.params", "commandParams", { method: "Overlay.setShowAdHighlights" }); export const SetShowAdHighlightsResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowAdHighlights.result", "commandResult", { method: "Overlay.setShowAdHighlights" }); +export const SetShowAdHighlightsCommand = withCdpCommand("Overlay.setShowAdHighlights", SetShowAdHighlightsParams, SetShowAdHighlightsResult); export const SetPausedInDebuggerMessageParams = withCdpMeta(z.object({ "message": z.string().optional() }).passthrough(), "Overlay.setPausedInDebuggerMessage.params", "commandParams", { method: "Overlay.setPausedInDebuggerMessage" }); export const SetPausedInDebuggerMessageResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setPausedInDebuggerMessage.result", "commandResult", { method: "Overlay.setPausedInDebuggerMessage" }); +export const SetPausedInDebuggerMessageCommand = withCdpCommand("Overlay.setPausedInDebuggerMessage", SetPausedInDebuggerMessageParams, SetPausedInDebuggerMessageResult); export const SetShowDebugBordersParams = withCdpMeta(z.object({ "show": z.boolean() }).passthrough(), "Overlay.setShowDebugBorders.params", "commandParams", { method: "Overlay.setShowDebugBorders" }); export const SetShowDebugBordersResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowDebugBorders.result", "commandResult", { method: "Overlay.setShowDebugBorders" }); +export const SetShowDebugBordersCommand = withCdpCommand("Overlay.setShowDebugBorders", SetShowDebugBordersParams, SetShowDebugBordersResult); export const SetShowFPSCounterParams = withCdpMeta(z.object({ "show": z.boolean() }).passthrough(), "Overlay.setShowFPSCounter.params", "commandParams", { method: "Overlay.setShowFPSCounter" }); export const SetShowFPSCounterResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowFPSCounter.result", "commandResult", { method: "Overlay.setShowFPSCounter" }); +export const SetShowFPSCounterCommand = withCdpCommand("Overlay.setShowFPSCounter", SetShowFPSCounterParams, SetShowFPSCounterResult); export const SetShowGridOverlaysParams = withCdpMeta(z.object({ "gridNodeHighlightConfigs": z.array(z.lazy(() => GridNodeHighlightConfig)) }).passthrough(), "Overlay.setShowGridOverlays.params", "commandParams", { method: "Overlay.setShowGridOverlays" }); export const SetShowGridOverlaysResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowGridOverlays.result", "commandResult", { method: "Overlay.setShowGridOverlays" }); +export const SetShowGridOverlaysCommand = withCdpCommand("Overlay.setShowGridOverlays", SetShowGridOverlaysParams, SetShowGridOverlaysResult); export const SetShowFlexOverlaysParams = withCdpMeta(z.object({ "flexNodeHighlightConfigs": z.array(z.lazy(() => FlexNodeHighlightConfig)) }).passthrough(), "Overlay.setShowFlexOverlays.params", "commandParams", { method: "Overlay.setShowFlexOverlays" }); export const SetShowFlexOverlaysResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowFlexOverlays.result", "commandResult", { method: "Overlay.setShowFlexOverlays" }); +export const SetShowFlexOverlaysCommand = withCdpCommand("Overlay.setShowFlexOverlays", SetShowFlexOverlaysParams, SetShowFlexOverlaysResult); export const SetShowScrollSnapOverlaysParams = withCdpMeta(z.object({ "scrollSnapHighlightConfigs": z.array(z.lazy(() => ScrollSnapHighlightConfig)) }).passthrough(), "Overlay.setShowScrollSnapOverlays.params", "commandParams", { method: "Overlay.setShowScrollSnapOverlays" }); export const SetShowScrollSnapOverlaysResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowScrollSnapOverlays.result", "commandResult", { method: "Overlay.setShowScrollSnapOverlays" }); +export const SetShowScrollSnapOverlaysCommand = withCdpCommand("Overlay.setShowScrollSnapOverlays", SetShowScrollSnapOverlaysParams, SetShowScrollSnapOverlaysResult); export const SetShowContainerQueryOverlaysParams = withCdpMeta(z.object({ "containerQueryHighlightConfigs": z.array(z.lazy(() => ContainerQueryHighlightConfig)) }).passthrough(), "Overlay.setShowContainerQueryOverlays.params", "commandParams", { method: "Overlay.setShowContainerQueryOverlays" }); export const SetShowContainerQueryOverlaysResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowContainerQueryOverlays.result", "commandResult", { method: "Overlay.setShowContainerQueryOverlays" }); +export const SetShowContainerQueryOverlaysCommand = withCdpCommand("Overlay.setShowContainerQueryOverlays", SetShowContainerQueryOverlaysParams, SetShowContainerQueryOverlaysResult); export const SetShowInspectedElementAnchorParams = withCdpMeta(z.object({ "inspectedElementAnchorConfig": z.lazy(() => InspectedElementAnchorConfig) }).passthrough(), "Overlay.setShowInspectedElementAnchor.params", "commandParams", { method: "Overlay.setShowInspectedElementAnchor" }); export const SetShowInspectedElementAnchorResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowInspectedElementAnchor.result", "commandResult", { method: "Overlay.setShowInspectedElementAnchor" }); +export const SetShowInspectedElementAnchorCommand = withCdpCommand("Overlay.setShowInspectedElementAnchor", SetShowInspectedElementAnchorParams, SetShowInspectedElementAnchorResult); export const SetShowPaintRectsParams = withCdpMeta(z.object({ "result": z.boolean() }).passthrough(), "Overlay.setShowPaintRects.params", "commandParams", { method: "Overlay.setShowPaintRects" }); export const SetShowPaintRectsResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowPaintRects.result", "commandResult", { method: "Overlay.setShowPaintRects" }); +export const SetShowPaintRectsCommand = withCdpCommand("Overlay.setShowPaintRects", SetShowPaintRectsParams, SetShowPaintRectsResult); export const SetShowLayoutShiftRegionsParams = withCdpMeta(z.object({ "result": z.boolean() }).passthrough(), "Overlay.setShowLayoutShiftRegions.params", "commandParams", { method: "Overlay.setShowLayoutShiftRegions" }); export const SetShowLayoutShiftRegionsResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowLayoutShiftRegions.result", "commandResult", { method: "Overlay.setShowLayoutShiftRegions" }); +export const SetShowLayoutShiftRegionsCommand = withCdpCommand("Overlay.setShowLayoutShiftRegions", SetShowLayoutShiftRegionsParams, SetShowLayoutShiftRegionsResult); export const SetShowScrollBottleneckRectsParams = withCdpMeta(z.object({ "show": z.boolean() }).passthrough(), "Overlay.setShowScrollBottleneckRects.params", "commandParams", { method: "Overlay.setShowScrollBottleneckRects" }); export const SetShowScrollBottleneckRectsResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowScrollBottleneckRects.result", "commandResult", { method: "Overlay.setShowScrollBottleneckRects" }); +export const SetShowScrollBottleneckRectsCommand = withCdpCommand("Overlay.setShowScrollBottleneckRects", SetShowScrollBottleneckRectsParams, SetShowScrollBottleneckRectsResult); export const SetShowHitTestBordersParams = withCdpMeta(z.object({ "show": z.boolean() }).passthrough(), "Overlay.setShowHitTestBorders.params", "commandParams", { method: "Overlay.setShowHitTestBorders" }); export const SetShowHitTestBordersResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowHitTestBorders.result", "commandResult", { method: "Overlay.setShowHitTestBorders" }); +export const SetShowHitTestBordersCommand = withCdpCommand("Overlay.setShowHitTestBorders", SetShowHitTestBordersParams, SetShowHitTestBordersResult); export const SetShowWebVitalsParams = withCdpMeta(z.object({ "show": z.boolean() }).passthrough(), "Overlay.setShowWebVitals.params", "commandParams", { method: "Overlay.setShowWebVitals" }); export const SetShowWebVitalsResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowWebVitals.result", "commandResult", { method: "Overlay.setShowWebVitals" }); +export const SetShowWebVitalsCommand = withCdpCommand("Overlay.setShowWebVitals", SetShowWebVitalsParams, SetShowWebVitalsResult); export const SetShowViewportSizeOnResizeParams = withCdpMeta(z.object({ "show": z.boolean() }).passthrough(), "Overlay.setShowViewportSizeOnResize.params", "commandParams", { method: "Overlay.setShowViewportSizeOnResize" }); export const SetShowViewportSizeOnResizeResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowViewportSizeOnResize.result", "commandResult", { method: "Overlay.setShowViewportSizeOnResize" }); +export const SetShowViewportSizeOnResizeCommand = withCdpCommand("Overlay.setShowViewportSizeOnResize", SetShowViewportSizeOnResizeParams, SetShowViewportSizeOnResizeResult); export const SetShowHingeParams = withCdpMeta(z.object({ "hingeConfig": z.lazy(() => HingeConfig).optional() }).passthrough(), "Overlay.setShowHinge.params", "commandParams", { method: "Overlay.setShowHinge" }); export const SetShowHingeResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowHinge.result", "commandResult", { method: "Overlay.setShowHinge" }); +export const SetShowHingeCommand = withCdpCommand("Overlay.setShowHinge", SetShowHingeParams, SetShowHingeResult); export const SetShowIsolatedElementsParams = withCdpMeta(z.object({ "isolatedElementHighlightConfigs": z.array(z.lazy(() => IsolatedElementHighlightConfig)) }).passthrough(), "Overlay.setShowIsolatedElements.params", "commandParams", { method: "Overlay.setShowIsolatedElements" }); export const SetShowIsolatedElementsResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowIsolatedElements.result", "commandResult", { method: "Overlay.setShowIsolatedElements" }); +export const SetShowIsolatedElementsCommand = withCdpCommand("Overlay.setShowIsolatedElements", SetShowIsolatedElementsParams, SetShowIsolatedElementsResult); export const SetShowWindowControlsOverlayParams = withCdpMeta(z.object({ "windowControlsOverlayConfig": z.lazy(() => WindowControlsOverlayConfig).optional() }).passthrough(), "Overlay.setShowWindowControlsOverlay.params", "commandParams", { method: "Overlay.setShowWindowControlsOverlay" }); export const SetShowWindowControlsOverlayResult = withCdpMeta(z.object({ }).passthrough(), "Overlay.setShowWindowControlsOverlay.result", "commandResult", { method: "Overlay.setShowWindowControlsOverlay" }); +export const SetShowWindowControlsOverlayCommand = withCdpCommand("Overlay.setShowWindowControlsOverlay", SetShowWindowControlsOverlayParams, SetShowWindowControlsOverlayResult); export const InspectNodeRequestedEvent = withCdpMeta(z.object({ "backendNodeId": z.lazy(() => DOM.BackendNodeId) }).passthrough(), "Overlay.inspectNodeRequested", "event", { phase: "event" }); export const NodeHighlightRequestedEvent = withCdpMeta(z.object({ "nodeId": z.lazy(() => DOM.NodeId) }).passthrough(), "Overlay.nodeHighlightRequested", "event", { phase: "event" }); export const ScreenshotRequestedEvent = withCdpMeta(z.object({ "viewport": z.lazy(() => Page.Viewport) }).passthrough(), "Overlay.screenshotRequested", "event", { phase: "event" }); @@ -184,36 +214,36 @@ export const zod = { InspectModeCanceledEvent: InspectModeCanceledEvent, } as const; export const commands = { - "Overlay.disable": { params: DisableParams, result: DisableResult }, - "Overlay.enable": { params: EnableParams, result: EnableResult }, - "Overlay.getHighlightObjectForTest": { params: GetHighlightObjectForTestParams, result: GetHighlightObjectForTestResult }, - "Overlay.getGridHighlightObjectsForTest": { params: GetGridHighlightObjectsForTestParams, result: GetGridHighlightObjectsForTestResult }, - "Overlay.getSourceOrderHighlightObjectForTest": { params: GetSourceOrderHighlightObjectForTestParams, result: GetSourceOrderHighlightObjectForTestResult }, - "Overlay.hideHighlight": { params: HideHighlightParams, result: HideHighlightResult }, - "Overlay.highlightFrame": { params: HighlightFrameParams, result: HighlightFrameResult }, - "Overlay.highlightNode": { params: HighlightNodeParams, result: HighlightNodeResult }, - "Overlay.highlightQuad": { params: HighlightQuadParams, result: HighlightQuadResult }, - "Overlay.highlightRect": { params: HighlightRectParams, result: HighlightRectResult }, - "Overlay.highlightSourceOrder": { params: HighlightSourceOrderParams, result: HighlightSourceOrderResult }, - "Overlay.setInspectMode": { params: SetInspectModeParams, result: SetInspectModeResult }, - "Overlay.setShowAdHighlights": { params: SetShowAdHighlightsParams, result: SetShowAdHighlightsResult }, - "Overlay.setPausedInDebuggerMessage": { params: SetPausedInDebuggerMessageParams, result: SetPausedInDebuggerMessageResult }, - "Overlay.setShowDebugBorders": { params: SetShowDebugBordersParams, result: SetShowDebugBordersResult }, - "Overlay.setShowFPSCounter": { params: SetShowFPSCounterParams, result: SetShowFPSCounterResult }, - "Overlay.setShowGridOverlays": { params: SetShowGridOverlaysParams, result: SetShowGridOverlaysResult }, - "Overlay.setShowFlexOverlays": { params: SetShowFlexOverlaysParams, result: SetShowFlexOverlaysResult }, - "Overlay.setShowScrollSnapOverlays": { params: SetShowScrollSnapOverlaysParams, result: SetShowScrollSnapOverlaysResult }, - "Overlay.setShowContainerQueryOverlays": { params: SetShowContainerQueryOverlaysParams, result: SetShowContainerQueryOverlaysResult }, - "Overlay.setShowInspectedElementAnchor": { params: SetShowInspectedElementAnchorParams, result: SetShowInspectedElementAnchorResult }, - "Overlay.setShowPaintRects": { params: SetShowPaintRectsParams, result: SetShowPaintRectsResult }, - "Overlay.setShowLayoutShiftRegions": { params: SetShowLayoutShiftRegionsParams, result: SetShowLayoutShiftRegionsResult }, - "Overlay.setShowScrollBottleneckRects": { params: SetShowScrollBottleneckRectsParams, result: SetShowScrollBottleneckRectsResult }, - "Overlay.setShowHitTestBorders": { params: SetShowHitTestBordersParams, result: SetShowHitTestBordersResult }, - "Overlay.setShowWebVitals": { params: SetShowWebVitalsParams, result: SetShowWebVitalsResult }, - "Overlay.setShowViewportSizeOnResize": { params: SetShowViewportSizeOnResizeParams, result: SetShowViewportSizeOnResizeResult }, - "Overlay.setShowHinge": { params: SetShowHingeParams, result: SetShowHingeResult }, - "Overlay.setShowIsolatedElements": { params: SetShowIsolatedElementsParams, result: SetShowIsolatedElementsResult }, - "Overlay.setShowWindowControlsOverlay": { params: SetShowWindowControlsOverlayParams, result: SetShowWindowControlsOverlayResult }, + "Overlay.disable": DisableCommand, + "Overlay.enable": EnableCommand, + "Overlay.getHighlightObjectForTest": GetHighlightObjectForTestCommand, + "Overlay.getGridHighlightObjectsForTest": GetGridHighlightObjectsForTestCommand, + "Overlay.getSourceOrderHighlightObjectForTest": GetSourceOrderHighlightObjectForTestCommand, + "Overlay.hideHighlight": HideHighlightCommand, + "Overlay.highlightFrame": HighlightFrameCommand, + "Overlay.highlightNode": HighlightNodeCommand, + "Overlay.highlightQuad": HighlightQuadCommand, + "Overlay.highlightRect": HighlightRectCommand, + "Overlay.highlightSourceOrder": HighlightSourceOrderCommand, + "Overlay.setInspectMode": SetInspectModeCommand, + "Overlay.setShowAdHighlights": SetShowAdHighlightsCommand, + "Overlay.setPausedInDebuggerMessage": SetPausedInDebuggerMessageCommand, + "Overlay.setShowDebugBorders": SetShowDebugBordersCommand, + "Overlay.setShowFPSCounter": SetShowFPSCounterCommand, + "Overlay.setShowGridOverlays": SetShowGridOverlaysCommand, + "Overlay.setShowFlexOverlays": SetShowFlexOverlaysCommand, + "Overlay.setShowScrollSnapOverlays": SetShowScrollSnapOverlaysCommand, + "Overlay.setShowContainerQueryOverlays": SetShowContainerQueryOverlaysCommand, + "Overlay.setShowInspectedElementAnchor": SetShowInspectedElementAnchorCommand, + "Overlay.setShowPaintRects": SetShowPaintRectsCommand, + "Overlay.setShowLayoutShiftRegions": SetShowLayoutShiftRegionsCommand, + "Overlay.setShowScrollBottleneckRects": SetShowScrollBottleneckRectsCommand, + "Overlay.setShowHitTestBorders": SetShowHitTestBordersCommand, + "Overlay.setShowWebVitals": SetShowWebVitalsCommand, + "Overlay.setShowViewportSizeOnResize": SetShowViewportSizeOnResizeCommand, + "Overlay.setShowHinge": SetShowHingeCommand, + "Overlay.setShowIsolatedElements": SetShowIsolatedElementsCommand, + "Overlay.setShowWindowControlsOverlay": SetShowWindowControlsOverlayCommand, } as const; export const events = { "Overlay.inspectNodeRequested": InspectNodeRequestedEvent, diff --git a/js/src/types/generated/zod/PWA.ts b/js/src/types/generated/zod/PWA.ts index 7723159d..73f87e80 100644 --- a/js/src/types/generated/zod/PWA.ts +++ b/js/src/types/generated/zod/PWA.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Target from "./Target.js"; export const FileHandlerAccept = withCdpMeta(z.object({ "mediaType": z.string(), "fileExtensions": z.array(z.string()) }).passthrough(), "PWA.FileHandlerAccept", "type"); @@ -9,18 +9,25 @@ export const FileHandler = withCdpMeta(z.object({ "action": z.string(), "accepts export const DisplayMode = withCdpMeta(z.enum(["standalone", "browser"]), "PWA.DisplayMode", "type"); export const GetOsAppStateParams = withCdpMeta(z.object({ "manifestId": z.string() }).passthrough(), "PWA.getOsAppState.params", "commandParams", { method: "PWA.getOsAppState" }); export const GetOsAppStateResult = withCdpMeta(z.object({ "badgeCount": z.number().int(), "fileHandlers": z.array(z.lazy(() => FileHandler)) }).passthrough(), "PWA.getOsAppState.result", "commandResult", { method: "PWA.getOsAppState" }); +export const GetOsAppStateCommand = withCdpCommand("PWA.getOsAppState", GetOsAppStateParams, GetOsAppStateResult); export const InstallParams = withCdpMeta(z.object({ "manifestId": z.string(), "installUrlOrBundleUrl": z.string().optional() }).passthrough(), "PWA.install.params", "commandParams", { method: "PWA.install" }); export const InstallResult = withCdpMeta(z.object({ }).passthrough(), "PWA.install.result", "commandResult", { method: "PWA.install" }); +export const InstallCommand = withCdpCommand("PWA.install", InstallParams, InstallResult); export const UninstallParams = withCdpMeta(z.object({ "manifestId": z.string() }).passthrough(), "PWA.uninstall.params", "commandParams", { method: "PWA.uninstall" }); export const UninstallResult = withCdpMeta(z.object({ }).passthrough(), "PWA.uninstall.result", "commandResult", { method: "PWA.uninstall" }); +export const UninstallCommand = withCdpCommand("PWA.uninstall", UninstallParams, UninstallResult); export const LaunchParams = withCdpMeta(z.object({ "manifestId": z.string(), "url": z.string().optional() }).passthrough(), "PWA.launch.params", "commandParams", { method: "PWA.launch" }); export const LaunchResult = withCdpMeta(z.object({ "targetId": z.lazy(() => Target.TargetID) }).passthrough(), "PWA.launch.result", "commandResult", { method: "PWA.launch" }); +export const LaunchCommand = withCdpCommand("PWA.launch", LaunchParams, LaunchResult); export const LaunchFilesInAppParams = withCdpMeta(z.object({ "manifestId": z.string(), "files": z.array(z.string()) }).passthrough(), "PWA.launchFilesInApp.params", "commandParams", { method: "PWA.launchFilesInApp" }); export const LaunchFilesInAppResult = withCdpMeta(z.object({ "targetIds": z.array(z.lazy(() => Target.TargetID)) }).passthrough(), "PWA.launchFilesInApp.result", "commandResult", { method: "PWA.launchFilesInApp" }); +export const LaunchFilesInAppCommand = withCdpCommand("PWA.launchFilesInApp", LaunchFilesInAppParams, LaunchFilesInAppResult); export const OpenCurrentPageInAppParams = withCdpMeta(z.object({ "manifestId": z.string() }).passthrough(), "PWA.openCurrentPageInApp.params", "commandParams", { method: "PWA.openCurrentPageInApp" }); export const OpenCurrentPageInAppResult = withCdpMeta(z.object({ }).passthrough(), "PWA.openCurrentPageInApp.result", "commandResult", { method: "PWA.openCurrentPageInApp" }); +export const OpenCurrentPageInAppCommand = withCdpCommand("PWA.openCurrentPageInApp", OpenCurrentPageInAppParams, OpenCurrentPageInAppResult); export const ChangeAppUserSettingsParams = withCdpMeta(z.object({ "manifestId": z.string(), "linkCapturing": z.boolean().optional(), "displayMode": z.lazy(() => DisplayMode).optional() }).passthrough(), "PWA.changeAppUserSettings.params", "commandParams", { method: "PWA.changeAppUserSettings" }); export const ChangeAppUserSettingsResult = withCdpMeta(z.object({ }).passthrough(), "PWA.changeAppUserSettings.result", "commandResult", { method: "PWA.changeAppUserSettings" }); +export const ChangeAppUserSettingsCommand = withCdpCommand("PWA.changeAppUserSettings", ChangeAppUserSettingsParams, ChangeAppUserSettingsResult); export const zod = { FileHandlerAccept: FileHandlerAccept, @@ -42,13 +49,13 @@ export const zod = { ChangeAppUserSettingsResult: ChangeAppUserSettingsResult, } as const; export const commands = { - "PWA.getOsAppState": { params: GetOsAppStateParams, result: GetOsAppStateResult }, - "PWA.install": { params: InstallParams, result: InstallResult }, - "PWA.uninstall": { params: UninstallParams, result: UninstallResult }, - "PWA.launch": { params: LaunchParams, result: LaunchResult }, - "PWA.launchFilesInApp": { params: LaunchFilesInAppParams, result: LaunchFilesInAppResult }, - "PWA.openCurrentPageInApp": { params: OpenCurrentPageInAppParams, result: OpenCurrentPageInAppResult }, - "PWA.changeAppUserSettings": { params: ChangeAppUserSettingsParams, result: ChangeAppUserSettingsResult }, + "PWA.getOsAppState": GetOsAppStateCommand, + "PWA.install": InstallCommand, + "PWA.uninstall": UninstallCommand, + "PWA.launch": LaunchCommand, + "PWA.launchFilesInApp": LaunchFilesInAppCommand, + "PWA.openCurrentPageInApp": OpenCurrentPageInAppCommand, + "PWA.changeAppUserSettings": ChangeAppUserSettingsCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/Page.ts b/js/src/types/generated/zod/Page.ts index 75d3bf4b..3a4facf3 100644 --- a/js/src/types/generated/zod/Page.ts +++ b/js/src/types/generated/zod/Page.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Debugger from "./Debugger.js"; import * as Emulation from "./Emulation.js"; @@ -69,126 +69,187 @@ export const BackForwardCacheNotRestoredExplanation = withCdpMeta(z.object({ "ty export const BackForwardCacheNotRestoredExplanationTree = withCdpMeta(z.object({ "url": z.string(), "explanations": z.array(z.lazy(() => BackForwardCacheNotRestoredExplanation)), "children": z.array(z.lazy(() => BackForwardCacheNotRestoredExplanationTree)) }).passthrough(), "Page.BackForwardCacheNotRestoredExplanationTree", "type"); export const AddScriptToEvaluateOnLoadParams = withCdpMeta(z.object({ "scriptSource": z.string() }).passthrough(), "Page.addScriptToEvaluateOnLoad.params", "commandParams", { method: "Page.addScriptToEvaluateOnLoad" }); export const AddScriptToEvaluateOnLoadResult = withCdpMeta(z.object({ "identifier": z.lazy(() => ScriptIdentifier) }).passthrough(), "Page.addScriptToEvaluateOnLoad.result", "commandResult", { method: "Page.addScriptToEvaluateOnLoad" }); +export const AddScriptToEvaluateOnLoadCommand = withCdpCommand("Page.addScriptToEvaluateOnLoad", AddScriptToEvaluateOnLoadParams, AddScriptToEvaluateOnLoadResult); export const AddScriptToEvaluateOnNewDocumentParams = withCdpMeta(z.object({ "source": z.string(), "worldName": z.string().optional(), "includeCommandLineAPI": z.boolean().optional(), "runImmediately": z.boolean().optional() }).passthrough(), "Page.addScriptToEvaluateOnNewDocument.params", "commandParams", { method: "Page.addScriptToEvaluateOnNewDocument" }); export const AddScriptToEvaluateOnNewDocumentResult = withCdpMeta(z.object({ "identifier": z.lazy(() => ScriptIdentifier) }).passthrough(), "Page.addScriptToEvaluateOnNewDocument.result", "commandResult", { method: "Page.addScriptToEvaluateOnNewDocument" }); +export const AddScriptToEvaluateOnNewDocumentCommand = withCdpCommand("Page.addScriptToEvaluateOnNewDocument", AddScriptToEvaluateOnNewDocumentParams, AddScriptToEvaluateOnNewDocumentResult); export const BringToFrontParams = withCdpMeta(z.object({ }).passthrough(), "Page.bringToFront.params", "commandParams", { method: "Page.bringToFront" }); export const BringToFrontResult = withCdpMeta(z.object({ }).passthrough(), "Page.bringToFront.result", "commandResult", { method: "Page.bringToFront" }); +export const BringToFrontCommand = withCdpCommand("Page.bringToFront", BringToFrontParams, BringToFrontResult); export const CaptureScreenshotParams = withCdpMeta(z.object({ "format": z.enum(["jpeg", "png", "webp"]).optional(), "quality": z.number().int().optional(), "clip": z.lazy(() => Viewport).optional(), "fromSurface": z.boolean().optional(), "captureBeyondViewport": z.boolean().optional(), "optimizeForSpeed": z.boolean().optional() }).passthrough(), "Page.captureScreenshot.params", "commandParams", { method: "Page.captureScreenshot" }); export const CaptureScreenshotResult = withCdpMeta(z.object({ "data": z.string() }).passthrough(), "Page.captureScreenshot.result", "commandResult", { method: "Page.captureScreenshot" }); +export const CaptureScreenshotCommand = withCdpCommand("Page.captureScreenshot", CaptureScreenshotParams, CaptureScreenshotResult); export const CaptureSnapshotParams = withCdpMeta(z.object({ "format": z.enum(["mhtml"]).optional() }).passthrough(), "Page.captureSnapshot.params", "commandParams", { method: "Page.captureSnapshot" }); export const CaptureSnapshotResult = withCdpMeta(z.object({ "data": z.string() }).passthrough(), "Page.captureSnapshot.result", "commandResult", { method: "Page.captureSnapshot" }); +export const CaptureSnapshotCommand = withCdpCommand("Page.captureSnapshot", CaptureSnapshotParams, CaptureSnapshotResult); export const ClearDeviceMetricsOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Page.clearDeviceMetricsOverride.params", "commandParams", { method: "Page.clearDeviceMetricsOverride" }); export const ClearDeviceMetricsOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Page.clearDeviceMetricsOverride.result", "commandResult", { method: "Page.clearDeviceMetricsOverride" }); +export const ClearDeviceMetricsOverrideCommand = withCdpCommand("Page.clearDeviceMetricsOverride", ClearDeviceMetricsOverrideParams, ClearDeviceMetricsOverrideResult); export const ClearDeviceOrientationOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Page.clearDeviceOrientationOverride.params", "commandParams", { method: "Page.clearDeviceOrientationOverride" }); export const ClearDeviceOrientationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Page.clearDeviceOrientationOverride.result", "commandResult", { method: "Page.clearDeviceOrientationOverride" }); +export const ClearDeviceOrientationOverrideCommand = withCdpCommand("Page.clearDeviceOrientationOverride", ClearDeviceOrientationOverrideParams, ClearDeviceOrientationOverrideResult); export const ClearGeolocationOverrideParams = withCdpMeta(z.object({ }).passthrough(), "Page.clearGeolocationOverride.params", "commandParams", { method: "Page.clearGeolocationOverride" }); export const ClearGeolocationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Page.clearGeolocationOverride.result", "commandResult", { method: "Page.clearGeolocationOverride" }); +export const ClearGeolocationOverrideCommand = withCdpCommand("Page.clearGeolocationOverride", ClearGeolocationOverrideParams, ClearGeolocationOverrideResult); export const CreateIsolatedWorldParams = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId), "worldName": z.string().optional(), "grantUniveralAccess": z.boolean().optional() }).passthrough(), "Page.createIsolatedWorld.params", "commandParams", { method: "Page.createIsolatedWorld" }); export const CreateIsolatedWorldResult = withCdpMeta(z.object({ "executionContextId": z.lazy(() => Runtime.ExecutionContextId) }).passthrough(), "Page.createIsolatedWorld.result", "commandResult", { method: "Page.createIsolatedWorld" }); +export const CreateIsolatedWorldCommand = withCdpCommand("Page.createIsolatedWorld", CreateIsolatedWorldParams, CreateIsolatedWorldResult); export const DeleteCookieParams = withCdpMeta(z.object({ "cookieName": z.string(), "url": z.string() }).passthrough(), "Page.deleteCookie.params", "commandParams", { method: "Page.deleteCookie" }); export const DeleteCookieResult = withCdpMeta(z.object({ }).passthrough(), "Page.deleteCookie.result", "commandResult", { method: "Page.deleteCookie" }); +export const DeleteCookieCommand = withCdpCommand("Page.deleteCookie", DeleteCookieParams, DeleteCookieResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Page.disable.params", "commandParams", { method: "Page.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Page.disable.result", "commandResult", { method: "Page.disable" }); +export const DisableCommand = withCdpCommand("Page.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ "enableFileChooserOpenedEvent": z.boolean().optional() }).passthrough(), "Page.enable.params", "commandParams", { method: "Page.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Page.enable.result", "commandResult", { method: "Page.enable" }); +export const EnableCommand = withCdpCommand("Page.enable", EnableParams, EnableResult); export const GetAppManifestParams = withCdpMeta(z.object({ "manifestId": z.string().optional() }).passthrough(), "Page.getAppManifest.params", "commandParams", { method: "Page.getAppManifest" }); export const GetAppManifestResult = withCdpMeta(z.object({ "url": z.string(), "errors": z.array(z.lazy(() => AppManifestError)), "data": z.string().optional(), "parsed": z.lazy(() => AppManifestParsedProperties).optional(), "manifest": z.lazy(() => WebAppManifest) }).passthrough(), "Page.getAppManifest.result", "commandResult", { method: "Page.getAppManifest" }); +export const GetAppManifestCommand = withCdpCommand("Page.getAppManifest", GetAppManifestParams, GetAppManifestResult); export const GetInstallabilityErrorsParams = withCdpMeta(z.object({ }).passthrough(), "Page.getInstallabilityErrors.params", "commandParams", { method: "Page.getInstallabilityErrors" }); export const GetInstallabilityErrorsResult = withCdpMeta(z.object({ "installabilityErrors": z.array(z.lazy(() => InstallabilityError)) }).passthrough(), "Page.getInstallabilityErrors.result", "commandResult", { method: "Page.getInstallabilityErrors" }); +export const GetInstallabilityErrorsCommand = withCdpCommand("Page.getInstallabilityErrors", GetInstallabilityErrorsParams, GetInstallabilityErrorsResult); export const GetManifestIconsParams = withCdpMeta(z.object({ }).passthrough(), "Page.getManifestIcons.params", "commandParams", { method: "Page.getManifestIcons" }); export const GetManifestIconsResult = withCdpMeta(z.object({ "primaryIcon": z.string().optional() }).passthrough(), "Page.getManifestIcons.result", "commandResult", { method: "Page.getManifestIcons" }); +export const GetManifestIconsCommand = withCdpCommand("Page.getManifestIcons", GetManifestIconsParams, GetManifestIconsResult); export const GetAppIdParams = withCdpMeta(z.object({ }).passthrough(), "Page.getAppId.params", "commandParams", { method: "Page.getAppId" }); export const GetAppIdResult = withCdpMeta(z.object({ "appId": z.string().optional(), "recommendedId": z.string().optional() }).passthrough(), "Page.getAppId.result", "commandResult", { method: "Page.getAppId" }); +export const GetAppIdCommand = withCdpCommand("Page.getAppId", GetAppIdParams, GetAppIdResult); export const GetAdScriptAncestryParams = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId) }).passthrough(), "Page.getAdScriptAncestry.params", "commandParams", { method: "Page.getAdScriptAncestry" }); export const GetAdScriptAncestryResult = withCdpMeta(z.object({ "adScriptAncestry": z.lazy(() => Network.AdAncestry).optional() }).passthrough(), "Page.getAdScriptAncestry.result", "commandResult", { method: "Page.getAdScriptAncestry" }); +export const GetAdScriptAncestryCommand = withCdpCommand("Page.getAdScriptAncestry", GetAdScriptAncestryParams, GetAdScriptAncestryResult); export const GetFrameTreeParams = withCdpMeta(z.object({ }).passthrough(), "Page.getFrameTree.params", "commandParams", { method: "Page.getFrameTree" }); export const GetFrameTreeResult = withCdpMeta(z.object({ "frameTree": z.lazy(() => FrameTree) }).passthrough(), "Page.getFrameTree.result", "commandResult", { method: "Page.getFrameTree" }); +export const GetFrameTreeCommand = withCdpCommand("Page.getFrameTree", GetFrameTreeParams, GetFrameTreeResult); export const GetLayoutMetricsParams = withCdpMeta(z.object({ }).passthrough(), "Page.getLayoutMetrics.params", "commandParams", { method: "Page.getLayoutMetrics" }); export const GetLayoutMetricsResult = withCdpMeta(z.object({ "layoutViewport": z.lazy(() => LayoutViewport), "visualViewport": z.lazy(() => VisualViewport), "contentSize": z.lazy(() => DOM.Rect), "cssLayoutViewport": z.lazy(() => LayoutViewport), "cssVisualViewport": z.lazy(() => VisualViewport), "cssContentSize": z.lazy(() => DOM.Rect) }).passthrough(), "Page.getLayoutMetrics.result", "commandResult", { method: "Page.getLayoutMetrics" }); +export const GetLayoutMetricsCommand = withCdpCommand("Page.getLayoutMetrics", GetLayoutMetricsParams, GetLayoutMetricsResult); export const GetNavigationHistoryParams = withCdpMeta(z.object({ }).passthrough(), "Page.getNavigationHistory.params", "commandParams", { method: "Page.getNavigationHistory" }); export const GetNavigationHistoryResult = withCdpMeta(z.object({ "currentIndex": z.number().int(), "entries": z.array(z.lazy(() => NavigationEntry)) }).passthrough(), "Page.getNavigationHistory.result", "commandResult", { method: "Page.getNavigationHistory" }); +export const GetNavigationHistoryCommand = withCdpCommand("Page.getNavigationHistory", GetNavigationHistoryParams, GetNavigationHistoryResult); export const ResetNavigationHistoryParams = withCdpMeta(z.object({ }).passthrough(), "Page.resetNavigationHistory.params", "commandParams", { method: "Page.resetNavigationHistory" }); export const ResetNavigationHistoryResult = withCdpMeta(z.object({ }).passthrough(), "Page.resetNavigationHistory.result", "commandResult", { method: "Page.resetNavigationHistory" }); +export const ResetNavigationHistoryCommand = withCdpCommand("Page.resetNavigationHistory", ResetNavigationHistoryParams, ResetNavigationHistoryResult); export const GetResourceContentParams = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId), "url": z.string() }).passthrough(), "Page.getResourceContent.params", "commandParams", { method: "Page.getResourceContent" }); export const GetResourceContentResult = withCdpMeta(z.object({ "content": z.string(), "base64Encoded": z.boolean() }).passthrough(), "Page.getResourceContent.result", "commandResult", { method: "Page.getResourceContent" }); +export const GetResourceContentCommand = withCdpCommand("Page.getResourceContent", GetResourceContentParams, GetResourceContentResult); export const GetResourceTreeParams = withCdpMeta(z.object({ }).passthrough(), "Page.getResourceTree.params", "commandParams", { method: "Page.getResourceTree" }); export const GetResourceTreeResult = withCdpMeta(z.object({ "frameTree": z.lazy(() => FrameResourceTree) }).passthrough(), "Page.getResourceTree.result", "commandResult", { method: "Page.getResourceTree" }); +export const GetResourceTreeCommand = withCdpCommand("Page.getResourceTree", GetResourceTreeParams, GetResourceTreeResult); export const HandleJavaScriptDialogParams = withCdpMeta(z.object({ "accept": z.boolean(), "promptText": z.string().optional() }).passthrough(), "Page.handleJavaScriptDialog.params", "commandParams", { method: "Page.handleJavaScriptDialog" }); export const HandleJavaScriptDialogResult = withCdpMeta(z.object({ }).passthrough(), "Page.handleJavaScriptDialog.result", "commandResult", { method: "Page.handleJavaScriptDialog" }); +export const HandleJavaScriptDialogCommand = withCdpCommand("Page.handleJavaScriptDialog", HandleJavaScriptDialogParams, HandleJavaScriptDialogResult); export const NavigateParams = withCdpMeta(z.object({ "url": z.string(), "referrer": z.string().optional(), "transitionType": z.lazy(() => TransitionType).optional(), "frameId": z.lazy(() => FrameId).optional(), "referrerPolicy": z.lazy(() => ReferrerPolicy).optional() }).passthrough(), "Page.navigate.params", "commandParams", { method: "Page.navigate" }); export const NavigateResult = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId), "loaderId": z.lazy(() => Network.LoaderId).optional(), "errorText": z.string().optional(), "isDownload": z.boolean().optional() }).passthrough(), "Page.navigate.result", "commandResult", { method: "Page.navigate" }); +export const NavigateCommand = withCdpCommand("Page.navigate", NavigateParams, NavigateResult); export const NavigateToHistoryEntryParams = withCdpMeta(z.object({ "entryId": z.number().int() }).passthrough(), "Page.navigateToHistoryEntry.params", "commandParams", { method: "Page.navigateToHistoryEntry" }); export const NavigateToHistoryEntryResult = withCdpMeta(z.object({ }).passthrough(), "Page.navigateToHistoryEntry.result", "commandResult", { method: "Page.navigateToHistoryEntry" }); +export const NavigateToHistoryEntryCommand = withCdpCommand("Page.navigateToHistoryEntry", NavigateToHistoryEntryParams, NavigateToHistoryEntryResult); export const PrintToPDFParams = withCdpMeta(z.object({ "landscape": z.boolean().optional(), "displayHeaderFooter": z.boolean().optional(), "printBackground": z.boolean().optional(), "scale": z.number().optional(), "paperWidth": z.number().optional(), "paperHeight": z.number().optional(), "marginTop": z.number().optional(), "marginBottom": z.number().optional(), "marginLeft": z.number().optional(), "marginRight": z.number().optional(), "pageRanges": z.string().optional(), "headerTemplate": z.string().optional(), "footerTemplate": z.string().optional(), "preferCSSPageSize": z.boolean().optional(), "transferMode": z.enum(["ReturnAsBase64", "ReturnAsStream"]).optional(), "generateTaggedPDF": z.boolean().optional(), "generateDocumentOutline": z.boolean().optional() }).passthrough(), "Page.printToPDF.params", "commandParams", { method: "Page.printToPDF" }); export const PrintToPDFResult = withCdpMeta(z.object({ "data": z.string(), "stream": z.lazy(() => IO.StreamHandle).optional() }).passthrough(), "Page.printToPDF.result", "commandResult", { method: "Page.printToPDF" }); +export const PrintToPDFCommand = withCdpCommand("Page.printToPDF", PrintToPDFParams, PrintToPDFResult); export const ReloadParams = withCdpMeta(z.object({ "ignoreCache": z.boolean().optional(), "scriptToEvaluateOnLoad": z.string().optional(), "loaderId": z.lazy(() => Network.LoaderId).optional() }).passthrough(), "Page.reload.params", "commandParams", { method: "Page.reload" }); export const ReloadResult = withCdpMeta(z.object({ }).passthrough(), "Page.reload.result", "commandResult", { method: "Page.reload" }); +export const ReloadCommand = withCdpCommand("Page.reload", ReloadParams, ReloadResult); export const RemoveScriptToEvaluateOnLoadParams = withCdpMeta(z.object({ "identifier": z.lazy(() => ScriptIdentifier) }).passthrough(), "Page.removeScriptToEvaluateOnLoad.params", "commandParams", { method: "Page.removeScriptToEvaluateOnLoad" }); export const RemoveScriptToEvaluateOnLoadResult = withCdpMeta(z.object({ }).passthrough(), "Page.removeScriptToEvaluateOnLoad.result", "commandResult", { method: "Page.removeScriptToEvaluateOnLoad" }); +export const RemoveScriptToEvaluateOnLoadCommand = withCdpCommand("Page.removeScriptToEvaluateOnLoad", RemoveScriptToEvaluateOnLoadParams, RemoveScriptToEvaluateOnLoadResult); export const RemoveScriptToEvaluateOnNewDocumentParams = withCdpMeta(z.object({ "identifier": z.lazy(() => ScriptIdentifier) }).passthrough(), "Page.removeScriptToEvaluateOnNewDocument.params", "commandParams", { method: "Page.removeScriptToEvaluateOnNewDocument" }); export const RemoveScriptToEvaluateOnNewDocumentResult = withCdpMeta(z.object({ }).passthrough(), "Page.removeScriptToEvaluateOnNewDocument.result", "commandResult", { method: "Page.removeScriptToEvaluateOnNewDocument" }); +export const RemoveScriptToEvaluateOnNewDocumentCommand = withCdpCommand("Page.removeScriptToEvaluateOnNewDocument", RemoveScriptToEvaluateOnNewDocumentParams, RemoveScriptToEvaluateOnNewDocumentResult); export const ScreencastFrameAckParams = withCdpMeta(z.object({ "sessionId": z.number().int() }).passthrough(), "Page.screencastFrameAck.params", "commandParams", { method: "Page.screencastFrameAck" }); export const ScreencastFrameAckResult = withCdpMeta(z.object({ }).passthrough(), "Page.screencastFrameAck.result", "commandResult", { method: "Page.screencastFrameAck" }); +export const ScreencastFrameAckCommand = withCdpCommand("Page.screencastFrameAck", ScreencastFrameAckParams, ScreencastFrameAckResult); export const SearchInResourceParams = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId), "url": z.string(), "query": z.string(), "caseSensitive": z.boolean().optional(), "isRegex": z.boolean().optional() }).passthrough(), "Page.searchInResource.params", "commandParams", { method: "Page.searchInResource" }); export const SearchInResourceResult = withCdpMeta(z.object({ "result": z.array(z.lazy(() => Debugger.SearchMatch)) }).passthrough(), "Page.searchInResource.result", "commandResult", { method: "Page.searchInResource" }); +export const SearchInResourceCommand = withCdpCommand("Page.searchInResource", SearchInResourceParams, SearchInResourceResult); export const SetAdBlockingEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "Page.setAdBlockingEnabled.params", "commandParams", { method: "Page.setAdBlockingEnabled" }); export const SetAdBlockingEnabledResult = withCdpMeta(z.object({ }).passthrough(), "Page.setAdBlockingEnabled.result", "commandResult", { method: "Page.setAdBlockingEnabled" }); +export const SetAdBlockingEnabledCommand = withCdpCommand("Page.setAdBlockingEnabled", SetAdBlockingEnabledParams, SetAdBlockingEnabledResult); export const SetBypassCSPParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "Page.setBypassCSP.params", "commandParams", { method: "Page.setBypassCSP" }); export const SetBypassCSPResult = withCdpMeta(z.object({ }).passthrough(), "Page.setBypassCSP.result", "commandResult", { method: "Page.setBypassCSP" }); +export const SetBypassCSPCommand = withCdpCommand("Page.setBypassCSP", SetBypassCSPParams, SetBypassCSPResult); export const GetPermissionsPolicyStateParams = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId) }).passthrough(), "Page.getPermissionsPolicyState.params", "commandParams", { method: "Page.getPermissionsPolicyState" }); export const GetPermissionsPolicyStateResult = withCdpMeta(z.object({ "states": z.array(z.lazy(() => PermissionsPolicyFeatureState)) }).passthrough(), "Page.getPermissionsPolicyState.result", "commandResult", { method: "Page.getPermissionsPolicyState" }); +export const GetPermissionsPolicyStateCommand = withCdpCommand("Page.getPermissionsPolicyState", GetPermissionsPolicyStateParams, GetPermissionsPolicyStateResult); export const GetOriginTrialsParams = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId) }).passthrough(), "Page.getOriginTrials.params", "commandParams", { method: "Page.getOriginTrials" }); export const GetOriginTrialsResult = withCdpMeta(z.object({ "originTrials": z.array(z.lazy(() => OriginTrial)) }).passthrough(), "Page.getOriginTrials.result", "commandResult", { method: "Page.getOriginTrials" }); +export const GetOriginTrialsCommand = withCdpCommand("Page.getOriginTrials", GetOriginTrialsParams, GetOriginTrialsResult); export const SetDeviceMetricsOverrideParams = withCdpMeta(z.object({ "width": z.number().int(), "height": z.number().int(), "deviceScaleFactor": z.number(), "mobile": z.boolean(), "scale": z.number().optional(), "screenWidth": z.number().int().optional(), "screenHeight": z.number().int().optional(), "positionX": z.number().int().optional(), "positionY": z.number().int().optional(), "dontSetVisibleSize": z.boolean().optional(), "screenOrientation": z.lazy(() => Emulation.ScreenOrientation).optional(), "viewport": z.lazy(() => Viewport).optional() }).passthrough(), "Page.setDeviceMetricsOverride.params", "commandParams", { method: "Page.setDeviceMetricsOverride" }); export const SetDeviceMetricsOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Page.setDeviceMetricsOverride.result", "commandResult", { method: "Page.setDeviceMetricsOverride" }); +export const SetDeviceMetricsOverrideCommand = withCdpCommand("Page.setDeviceMetricsOverride", SetDeviceMetricsOverrideParams, SetDeviceMetricsOverrideResult); export const SetDeviceOrientationOverrideParams = withCdpMeta(z.object({ "alpha": z.number(), "beta": z.number(), "gamma": z.number() }).passthrough(), "Page.setDeviceOrientationOverride.params", "commandParams", { method: "Page.setDeviceOrientationOverride" }); export const SetDeviceOrientationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Page.setDeviceOrientationOverride.result", "commandResult", { method: "Page.setDeviceOrientationOverride" }); +export const SetDeviceOrientationOverrideCommand = withCdpCommand("Page.setDeviceOrientationOverride", SetDeviceOrientationOverrideParams, SetDeviceOrientationOverrideResult); export const SetFontFamiliesParams = withCdpMeta(z.object({ "fontFamilies": z.lazy(() => FontFamilies), "forScripts": z.array(z.lazy(() => ScriptFontFamilies)).optional() }).passthrough(), "Page.setFontFamilies.params", "commandParams", { method: "Page.setFontFamilies" }); export const SetFontFamiliesResult = withCdpMeta(z.object({ }).passthrough(), "Page.setFontFamilies.result", "commandResult", { method: "Page.setFontFamilies" }); +export const SetFontFamiliesCommand = withCdpCommand("Page.setFontFamilies", SetFontFamiliesParams, SetFontFamiliesResult); export const SetFontSizesParams = withCdpMeta(z.object({ "fontSizes": z.lazy(() => FontSizes) }).passthrough(), "Page.setFontSizes.params", "commandParams", { method: "Page.setFontSizes" }); export const SetFontSizesResult = withCdpMeta(z.object({ }).passthrough(), "Page.setFontSizes.result", "commandResult", { method: "Page.setFontSizes" }); +export const SetFontSizesCommand = withCdpCommand("Page.setFontSizes", SetFontSizesParams, SetFontSizesResult); export const SetDocumentContentParams = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId), "html": z.string() }).passthrough(), "Page.setDocumentContent.params", "commandParams", { method: "Page.setDocumentContent" }); export const SetDocumentContentResult = withCdpMeta(z.object({ }).passthrough(), "Page.setDocumentContent.result", "commandResult", { method: "Page.setDocumentContent" }); +export const SetDocumentContentCommand = withCdpCommand("Page.setDocumentContent", SetDocumentContentParams, SetDocumentContentResult); export const SetDownloadBehaviorParams = withCdpMeta(z.object({ "behavior": z.enum(["deny", "allow", "default"]), "downloadPath": z.string().optional() }).passthrough(), "Page.setDownloadBehavior.params", "commandParams", { method: "Page.setDownloadBehavior" }); export const SetDownloadBehaviorResult = withCdpMeta(z.object({ }).passthrough(), "Page.setDownloadBehavior.result", "commandResult", { method: "Page.setDownloadBehavior" }); +export const SetDownloadBehaviorCommand = withCdpCommand("Page.setDownloadBehavior", SetDownloadBehaviorParams, SetDownloadBehaviorResult); export const SetGeolocationOverrideParams = withCdpMeta(z.object({ "latitude": z.number().optional(), "longitude": z.number().optional(), "accuracy": z.number().optional() }).passthrough(), "Page.setGeolocationOverride.params", "commandParams", { method: "Page.setGeolocationOverride" }); export const SetGeolocationOverrideResult = withCdpMeta(z.object({ }).passthrough(), "Page.setGeolocationOverride.result", "commandResult", { method: "Page.setGeolocationOverride" }); +export const SetGeolocationOverrideCommand = withCdpCommand("Page.setGeolocationOverride", SetGeolocationOverrideParams, SetGeolocationOverrideResult); export const SetLifecycleEventsEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "Page.setLifecycleEventsEnabled.params", "commandParams", { method: "Page.setLifecycleEventsEnabled" }); export const SetLifecycleEventsEnabledResult = withCdpMeta(z.object({ }).passthrough(), "Page.setLifecycleEventsEnabled.result", "commandResult", { method: "Page.setLifecycleEventsEnabled" }); +export const SetLifecycleEventsEnabledCommand = withCdpCommand("Page.setLifecycleEventsEnabled", SetLifecycleEventsEnabledParams, SetLifecycleEventsEnabledResult); export const SetTouchEmulationEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean(), "configuration": z.enum(["mobile", "desktop"]).optional() }).passthrough(), "Page.setTouchEmulationEnabled.params", "commandParams", { method: "Page.setTouchEmulationEnabled" }); export const SetTouchEmulationEnabledResult = withCdpMeta(z.object({ }).passthrough(), "Page.setTouchEmulationEnabled.result", "commandResult", { method: "Page.setTouchEmulationEnabled" }); +export const SetTouchEmulationEnabledCommand = withCdpCommand("Page.setTouchEmulationEnabled", SetTouchEmulationEnabledParams, SetTouchEmulationEnabledResult); export const StartScreencastParams = withCdpMeta(z.object({ "format": z.enum(["jpeg", "png"]).optional(), "quality": z.number().int().optional(), "maxWidth": z.number().int().optional(), "maxHeight": z.number().int().optional(), "everyNthFrame": z.number().int().optional() }).passthrough(), "Page.startScreencast.params", "commandParams", { method: "Page.startScreencast" }); export const StartScreencastResult = withCdpMeta(z.object({ }).passthrough(), "Page.startScreencast.result", "commandResult", { method: "Page.startScreencast" }); +export const StartScreencastCommand = withCdpCommand("Page.startScreencast", StartScreencastParams, StartScreencastResult); export const StopLoadingParams = withCdpMeta(z.object({ }).passthrough(), "Page.stopLoading.params", "commandParams", { method: "Page.stopLoading" }); export const StopLoadingResult = withCdpMeta(z.object({ }).passthrough(), "Page.stopLoading.result", "commandResult", { method: "Page.stopLoading" }); +export const StopLoadingCommand = withCdpCommand("Page.stopLoading", StopLoadingParams, StopLoadingResult); export const CrashParams = withCdpMeta(z.object({ }).passthrough(), "Page.crash.params", "commandParams", { method: "Page.crash" }); export const CrashResult = withCdpMeta(z.object({ }).passthrough(), "Page.crash.result", "commandResult", { method: "Page.crash" }); +export const CrashCommand = withCdpCommand("Page.crash", CrashParams, CrashResult); export const CloseParams = withCdpMeta(z.object({ }).passthrough(), "Page.close.params", "commandParams", { method: "Page.close" }); export const CloseResult = withCdpMeta(z.object({ }).passthrough(), "Page.close.result", "commandResult", { method: "Page.close" }); +export const CloseCommand = withCdpCommand("Page.close", CloseParams, CloseResult); export const SetWebLifecycleStateParams = withCdpMeta(z.object({ "state": z.enum(["frozen", "active"]) }).passthrough(), "Page.setWebLifecycleState.params", "commandParams", { method: "Page.setWebLifecycleState" }); export const SetWebLifecycleStateResult = withCdpMeta(z.object({ }).passthrough(), "Page.setWebLifecycleState.result", "commandResult", { method: "Page.setWebLifecycleState" }); +export const SetWebLifecycleStateCommand = withCdpCommand("Page.setWebLifecycleState", SetWebLifecycleStateParams, SetWebLifecycleStateResult); export const StopScreencastParams = withCdpMeta(z.object({ }).passthrough(), "Page.stopScreencast.params", "commandParams", { method: "Page.stopScreencast" }); export const StopScreencastResult = withCdpMeta(z.object({ }).passthrough(), "Page.stopScreencast.result", "commandResult", { method: "Page.stopScreencast" }); +export const StopScreencastCommand = withCdpCommand("Page.stopScreencast", StopScreencastParams, StopScreencastResult); export const ProduceCompilationCacheParams = withCdpMeta(z.object({ "scripts": z.array(z.lazy(() => CompilationCacheParams)) }).passthrough(), "Page.produceCompilationCache.params", "commandParams", { method: "Page.produceCompilationCache" }); export const ProduceCompilationCacheResult = withCdpMeta(z.object({ }).passthrough(), "Page.produceCompilationCache.result", "commandResult", { method: "Page.produceCompilationCache" }); +export const ProduceCompilationCacheCommand = withCdpCommand("Page.produceCompilationCache", ProduceCompilationCacheParams, ProduceCompilationCacheResult); export const AddCompilationCacheParams = withCdpMeta(z.object({ "url": z.string(), "data": z.string() }).passthrough(), "Page.addCompilationCache.params", "commandParams", { method: "Page.addCompilationCache" }); export const AddCompilationCacheResult = withCdpMeta(z.object({ }).passthrough(), "Page.addCompilationCache.result", "commandResult", { method: "Page.addCompilationCache" }); +export const AddCompilationCacheCommand = withCdpCommand("Page.addCompilationCache", AddCompilationCacheParams, AddCompilationCacheResult); export const ClearCompilationCacheParams = withCdpMeta(z.object({ }).passthrough(), "Page.clearCompilationCache.params", "commandParams", { method: "Page.clearCompilationCache" }); export const ClearCompilationCacheResult = withCdpMeta(z.object({ }).passthrough(), "Page.clearCompilationCache.result", "commandResult", { method: "Page.clearCompilationCache" }); +export const ClearCompilationCacheCommand = withCdpCommand("Page.clearCompilationCache", ClearCompilationCacheParams, ClearCompilationCacheResult); export const SetSPCTransactionModeParams = withCdpMeta(z.object({ "mode": z.enum(["none", "autoAccept", "autoChooseToAuthAnotherWay", "autoReject", "autoOptOut"]) }).passthrough(), "Page.setSPCTransactionMode.params", "commandParams", { method: "Page.setSPCTransactionMode" }); export const SetSPCTransactionModeResult = withCdpMeta(z.object({ }).passthrough(), "Page.setSPCTransactionMode.result", "commandResult", { method: "Page.setSPCTransactionMode" }); +export const SetSPCTransactionModeCommand = withCdpCommand("Page.setSPCTransactionMode", SetSPCTransactionModeParams, SetSPCTransactionModeResult); export const SetRPHRegistrationModeParams = withCdpMeta(z.object({ "mode": z.enum(["none", "autoAccept", "autoReject"]) }).passthrough(), "Page.setRPHRegistrationMode.params", "commandParams", { method: "Page.setRPHRegistrationMode" }); export const SetRPHRegistrationModeResult = withCdpMeta(z.object({ }).passthrough(), "Page.setRPHRegistrationMode.result", "commandResult", { method: "Page.setRPHRegistrationMode" }); +export const SetRPHRegistrationModeCommand = withCdpCommand("Page.setRPHRegistrationMode", SetRPHRegistrationModeParams, SetRPHRegistrationModeResult); export const GenerateTestReportParams = withCdpMeta(z.object({ "message": z.string(), "group": z.string().optional() }).passthrough(), "Page.generateTestReport.params", "commandParams", { method: "Page.generateTestReport" }); export const GenerateTestReportResult = withCdpMeta(z.object({ }).passthrough(), "Page.generateTestReport.result", "commandResult", { method: "Page.generateTestReport" }); +export const GenerateTestReportCommand = withCdpCommand("Page.generateTestReport", GenerateTestReportParams, GenerateTestReportResult); export const WaitForDebuggerParams = withCdpMeta(z.object({ }).passthrough(), "Page.waitForDebugger.params", "commandParams", { method: "Page.waitForDebugger" }); export const WaitForDebuggerResult = withCdpMeta(z.object({ }).passthrough(), "Page.waitForDebugger.result", "commandResult", { method: "Page.waitForDebugger" }); +export const WaitForDebuggerCommand = withCdpCommand("Page.waitForDebugger", WaitForDebuggerParams, WaitForDebuggerResult); export const SetInterceptFileChooserDialogParams = withCdpMeta(z.object({ "enabled": z.boolean(), "cancel": z.boolean().optional() }).passthrough(), "Page.setInterceptFileChooserDialog.params", "commandParams", { method: "Page.setInterceptFileChooserDialog" }); export const SetInterceptFileChooserDialogResult = withCdpMeta(z.object({ }).passthrough(), "Page.setInterceptFileChooserDialog.result", "commandResult", { method: "Page.setInterceptFileChooserDialog" }); +export const SetInterceptFileChooserDialogCommand = withCdpCommand("Page.setInterceptFileChooserDialog", SetInterceptFileChooserDialogParams, SetInterceptFileChooserDialogResult); export const SetPrerenderingAllowedParams = withCdpMeta(z.object({ "isAllowed": z.boolean() }).passthrough(), "Page.setPrerenderingAllowed.params", "commandParams", { method: "Page.setPrerenderingAllowed" }); export const SetPrerenderingAllowedResult = withCdpMeta(z.object({ }).passthrough(), "Page.setPrerenderingAllowed.result", "commandResult", { method: "Page.setPrerenderingAllowed" }); +export const SetPrerenderingAllowedCommand = withCdpCommand("Page.setPrerenderingAllowed", SetPrerenderingAllowedParams, SetPrerenderingAllowedResult); export const GetAnnotatedPageContentParams = withCdpMeta(z.object({ "includeActionableInformation": z.boolean().optional() }).passthrough(), "Page.getAnnotatedPageContent.params", "commandParams", { method: "Page.getAnnotatedPageContent" }); export const GetAnnotatedPageContentResult = withCdpMeta(z.object({ "content": z.string() }).passthrough(), "Page.getAnnotatedPageContent.result", "commandResult", { method: "Page.getAnnotatedPageContent" }); +export const GetAnnotatedPageContentCommand = withCdpCommand("Page.getAnnotatedPageContent", GetAnnotatedPageContentParams, GetAnnotatedPageContentResult); export const DomContentEventFiredEvent = withCdpMeta(z.object({ "timestamp": z.lazy(() => Network.MonotonicTime) }).passthrough(), "Page.domContentEventFired", "event", { phase: "event" }); export const FileChooserOpenedEvent = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId), "mode": z.enum(["selectSingle", "selectMultiple"]), "backendNodeId": z.lazy(() => DOM.BackendNodeId).optional() }).passthrough(), "Page.fileChooserOpened", "event", { phase: "event" }); export const FrameAttachedEvent = withCdpMeta(z.object({ "frameId": z.lazy(() => FrameId), "parentFrameId": z.lazy(() => FrameId), "stack": z.lazy(() => Runtime.StackTrace).optional() }).passthrough(), "Page.frameAttached", "event", { phase: "event" }); @@ -429,67 +490,67 @@ export const zod = { CompilationCacheProducedEvent: CompilationCacheProducedEvent, } as const; export const commands = { - "Page.addScriptToEvaluateOnLoad": { params: AddScriptToEvaluateOnLoadParams, result: AddScriptToEvaluateOnLoadResult }, - "Page.addScriptToEvaluateOnNewDocument": { params: AddScriptToEvaluateOnNewDocumentParams, result: AddScriptToEvaluateOnNewDocumentResult }, - "Page.bringToFront": { params: BringToFrontParams, result: BringToFrontResult }, - "Page.captureScreenshot": { params: CaptureScreenshotParams, result: CaptureScreenshotResult }, - "Page.captureSnapshot": { params: CaptureSnapshotParams, result: CaptureSnapshotResult }, - "Page.clearDeviceMetricsOverride": { params: ClearDeviceMetricsOverrideParams, result: ClearDeviceMetricsOverrideResult }, - "Page.clearDeviceOrientationOverride": { params: ClearDeviceOrientationOverrideParams, result: ClearDeviceOrientationOverrideResult }, - "Page.clearGeolocationOverride": { params: ClearGeolocationOverrideParams, result: ClearGeolocationOverrideResult }, - "Page.createIsolatedWorld": { params: CreateIsolatedWorldParams, result: CreateIsolatedWorldResult }, - "Page.deleteCookie": { params: DeleteCookieParams, result: DeleteCookieResult }, - "Page.disable": { params: DisableParams, result: DisableResult }, - "Page.enable": { params: EnableParams, result: EnableResult }, - "Page.getAppManifest": { params: GetAppManifestParams, result: GetAppManifestResult }, - "Page.getInstallabilityErrors": { params: GetInstallabilityErrorsParams, result: GetInstallabilityErrorsResult }, - "Page.getManifestIcons": { params: GetManifestIconsParams, result: GetManifestIconsResult }, - "Page.getAppId": { params: GetAppIdParams, result: GetAppIdResult }, - "Page.getAdScriptAncestry": { params: GetAdScriptAncestryParams, result: GetAdScriptAncestryResult }, - "Page.getFrameTree": { params: GetFrameTreeParams, result: GetFrameTreeResult }, - "Page.getLayoutMetrics": { params: GetLayoutMetricsParams, result: GetLayoutMetricsResult }, - "Page.getNavigationHistory": { params: GetNavigationHistoryParams, result: GetNavigationHistoryResult }, - "Page.resetNavigationHistory": { params: ResetNavigationHistoryParams, result: ResetNavigationHistoryResult }, - "Page.getResourceContent": { params: GetResourceContentParams, result: GetResourceContentResult }, - "Page.getResourceTree": { params: GetResourceTreeParams, result: GetResourceTreeResult }, - "Page.handleJavaScriptDialog": { params: HandleJavaScriptDialogParams, result: HandleJavaScriptDialogResult }, - "Page.navigate": { params: NavigateParams, result: NavigateResult }, - "Page.navigateToHistoryEntry": { params: NavigateToHistoryEntryParams, result: NavigateToHistoryEntryResult }, - "Page.printToPDF": { params: PrintToPDFParams, result: PrintToPDFResult }, - "Page.reload": { params: ReloadParams, result: ReloadResult }, - "Page.removeScriptToEvaluateOnLoad": { params: RemoveScriptToEvaluateOnLoadParams, result: RemoveScriptToEvaluateOnLoadResult }, - "Page.removeScriptToEvaluateOnNewDocument": { params: RemoveScriptToEvaluateOnNewDocumentParams, result: RemoveScriptToEvaluateOnNewDocumentResult }, - "Page.screencastFrameAck": { params: ScreencastFrameAckParams, result: ScreencastFrameAckResult }, - "Page.searchInResource": { params: SearchInResourceParams, result: SearchInResourceResult }, - "Page.setAdBlockingEnabled": { params: SetAdBlockingEnabledParams, result: SetAdBlockingEnabledResult }, - "Page.setBypassCSP": { params: SetBypassCSPParams, result: SetBypassCSPResult }, - "Page.getPermissionsPolicyState": { params: GetPermissionsPolicyStateParams, result: GetPermissionsPolicyStateResult }, - "Page.getOriginTrials": { params: GetOriginTrialsParams, result: GetOriginTrialsResult }, - "Page.setDeviceMetricsOverride": { params: SetDeviceMetricsOverrideParams, result: SetDeviceMetricsOverrideResult }, - "Page.setDeviceOrientationOverride": { params: SetDeviceOrientationOverrideParams, result: SetDeviceOrientationOverrideResult }, - "Page.setFontFamilies": { params: SetFontFamiliesParams, result: SetFontFamiliesResult }, - "Page.setFontSizes": { params: SetFontSizesParams, result: SetFontSizesResult }, - "Page.setDocumentContent": { params: SetDocumentContentParams, result: SetDocumentContentResult }, - "Page.setDownloadBehavior": { params: SetDownloadBehaviorParams, result: SetDownloadBehaviorResult }, - "Page.setGeolocationOverride": { params: SetGeolocationOverrideParams, result: SetGeolocationOverrideResult }, - "Page.setLifecycleEventsEnabled": { params: SetLifecycleEventsEnabledParams, result: SetLifecycleEventsEnabledResult }, - "Page.setTouchEmulationEnabled": { params: SetTouchEmulationEnabledParams, result: SetTouchEmulationEnabledResult }, - "Page.startScreencast": { params: StartScreencastParams, result: StartScreencastResult }, - "Page.stopLoading": { params: StopLoadingParams, result: StopLoadingResult }, - "Page.crash": { params: CrashParams, result: CrashResult }, - "Page.close": { params: CloseParams, result: CloseResult }, - "Page.setWebLifecycleState": { params: SetWebLifecycleStateParams, result: SetWebLifecycleStateResult }, - "Page.stopScreencast": { params: StopScreencastParams, result: StopScreencastResult }, - "Page.produceCompilationCache": { params: ProduceCompilationCacheParams, result: ProduceCompilationCacheResult }, - "Page.addCompilationCache": { params: AddCompilationCacheParams, result: AddCompilationCacheResult }, - "Page.clearCompilationCache": { params: ClearCompilationCacheParams, result: ClearCompilationCacheResult }, - "Page.setSPCTransactionMode": { params: SetSPCTransactionModeParams, result: SetSPCTransactionModeResult }, - "Page.setRPHRegistrationMode": { params: SetRPHRegistrationModeParams, result: SetRPHRegistrationModeResult }, - "Page.generateTestReport": { params: GenerateTestReportParams, result: GenerateTestReportResult }, - "Page.waitForDebugger": { params: WaitForDebuggerParams, result: WaitForDebuggerResult }, - "Page.setInterceptFileChooserDialog": { params: SetInterceptFileChooserDialogParams, result: SetInterceptFileChooserDialogResult }, - "Page.setPrerenderingAllowed": { params: SetPrerenderingAllowedParams, result: SetPrerenderingAllowedResult }, - "Page.getAnnotatedPageContent": { params: GetAnnotatedPageContentParams, result: GetAnnotatedPageContentResult }, + "Page.addScriptToEvaluateOnLoad": AddScriptToEvaluateOnLoadCommand, + "Page.addScriptToEvaluateOnNewDocument": AddScriptToEvaluateOnNewDocumentCommand, + "Page.bringToFront": BringToFrontCommand, + "Page.captureScreenshot": CaptureScreenshotCommand, + "Page.captureSnapshot": CaptureSnapshotCommand, + "Page.clearDeviceMetricsOverride": ClearDeviceMetricsOverrideCommand, + "Page.clearDeviceOrientationOverride": ClearDeviceOrientationOverrideCommand, + "Page.clearGeolocationOverride": ClearGeolocationOverrideCommand, + "Page.createIsolatedWorld": CreateIsolatedWorldCommand, + "Page.deleteCookie": DeleteCookieCommand, + "Page.disable": DisableCommand, + "Page.enable": EnableCommand, + "Page.getAppManifest": GetAppManifestCommand, + "Page.getInstallabilityErrors": GetInstallabilityErrorsCommand, + "Page.getManifestIcons": GetManifestIconsCommand, + "Page.getAppId": GetAppIdCommand, + "Page.getAdScriptAncestry": GetAdScriptAncestryCommand, + "Page.getFrameTree": GetFrameTreeCommand, + "Page.getLayoutMetrics": GetLayoutMetricsCommand, + "Page.getNavigationHistory": GetNavigationHistoryCommand, + "Page.resetNavigationHistory": ResetNavigationHistoryCommand, + "Page.getResourceContent": GetResourceContentCommand, + "Page.getResourceTree": GetResourceTreeCommand, + "Page.handleJavaScriptDialog": HandleJavaScriptDialogCommand, + "Page.navigate": NavigateCommand, + "Page.navigateToHistoryEntry": NavigateToHistoryEntryCommand, + "Page.printToPDF": PrintToPDFCommand, + "Page.reload": ReloadCommand, + "Page.removeScriptToEvaluateOnLoad": RemoveScriptToEvaluateOnLoadCommand, + "Page.removeScriptToEvaluateOnNewDocument": RemoveScriptToEvaluateOnNewDocumentCommand, + "Page.screencastFrameAck": ScreencastFrameAckCommand, + "Page.searchInResource": SearchInResourceCommand, + "Page.setAdBlockingEnabled": SetAdBlockingEnabledCommand, + "Page.setBypassCSP": SetBypassCSPCommand, + "Page.getPermissionsPolicyState": GetPermissionsPolicyStateCommand, + "Page.getOriginTrials": GetOriginTrialsCommand, + "Page.setDeviceMetricsOverride": SetDeviceMetricsOverrideCommand, + "Page.setDeviceOrientationOverride": SetDeviceOrientationOverrideCommand, + "Page.setFontFamilies": SetFontFamiliesCommand, + "Page.setFontSizes": SetFontSizesCommand, + "Page.setDocumentContent": SetDocumentContentCommand, + "Page.setDownloadBehavior": SetDownloadBehaviorCommand, + "Page.setGeolocationOverride": SetGeolocationOverrideCommand, + "Page.setLifecycleEventsEnabled": SetLifecycleEventsEnabledCommand, + "Page.setTouchEmulationEnabled": SetTouchEmulationEnabledCommand, + "Page.startScreencast": StartScreencastCommand, + "Page.stopLoading": StopLoadingCommand, + "Page.crash": CrashCommand, + "Page.close": CloseCommand, + "Page.setWebLifecycleState": SetWebLifecycleStateCommand, + "Page.stopScreencast": StopScreencastCommand, + "Page.produceCompilationCache": ProduceCompilationCacheCommand, + "Page.addCompilationCache": AddCompilationCacheCommand, + "Page.clearCompilationCache": ClearCompilationCacheCommand, + "Page.setSPCTransactionMode": SetSPCTransactionModeCommand, + "Page.setRPHRegistrationMode": SetRPHRegistrationModeCommand, + "Page.generateTestReport": GenerateTestReportCommand, + "Page.waitForDebugger": WaitForDebuggerCommand, + "Page.setInterceptFileChooserDialog": SetInterceptFileChooserDialogCommand, + "Page.setPrerenderingAllowed": SetPrerenderingAllowedCommand, + "Page.getAnnotatedPageContent": GetAnnotatedPageContentCommand, } as const; export const events = { "Page.domContentEventFired": DomContentEventFiredEvent, diff --git a/js/src/types/generated/zod/Performance.ts b/js/src/types/generated/zod/Performance.ts index 1374ed8c..19f17751 100644 --- a/js/src/types/generated/zod/Performance.ts +++ b/js/src/types/generated/zod/Performance.ts @@ -1,17 +1,21 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const Metric = withCdpMeta(z.object({ "name": z.string(), "value": z.number() }).passthrough(), "Performance.Metric", "type"); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Performance.disable.params", "commandParams", { method: "Performance.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Performance.disable.result", "commandResult", { method: "Performance.disable" }); +export const DisableCommand = withCdpCommand("Performance.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ "timeDomain": z.enum(["timeTicks", "threadTicks"]).optional() }).passthrough(), "Performance.enable.params", "commandParams", { method: "Performance.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Performance.enable.result", "commandResult", { method: "Performance.enable" }); +export const EnableCommand = withCdpCommand("Performance.enable", EnableParams, EnableResult); export const SetTimeDomainParams = withCdpMeta(z.object({ "timeDomain": z.enum(["timeTicks", "threadTicks"]) }).passthrough(), "Performance.setTimeDomain.params", "commandParams", { method: "Performance.setTimeDomain" }); export const SetTimeDomainResult = withCdpMeta(z.object({ }).passthrough(), "Performance.setTimeDomain.result", "commandResult", { method: "Performance.setTimeDomain" }); +export const SetTimeDomainCommand = withCdpCommand("Performance.setTimeDomain", SetTimeDomainParams, SetTimeDomainResult); export const GetMetricsParams = withCdpMeta(z.object({ }).passthrough(), "Performance.getMetrics.params", "commandParams", { method: "Performance.getMetrics" }); export const GetMetricsResult = withCdpMeta(z.object({ "metrics": z.array(z.lazy(() => Metric)) }).passthrough(), "Performance.getMetrics.result", "commandResult", { method: "Performance.getMetrics" }); +export const GetMetricsCommand = withCdpCommand("Performance.getMetrics", GetMetricsParams, GetMetricsResult); export const MetricsEvent = withCdpMeta(z.object({ "metrics": z.array(z.lazy(() => Metric)), "title": z.string() }).passthrough(), "Performance.metrics", "event", { phase: "event" }); export const zod = { @@ -27,10 +31,10 @@ export const zod = { MetricsEvent: MetricsEvent, } as const; export const commands = { - "Performance.disable": { params: DisableParams, result: DisableResult }, - "Performance.enable": { params: EnableParams, result: EnableResult }, - "Performance.setTimeDomain": { params: SetTimeDomainParams, result: SetTimeDomainResult }, - "Performance.getMetrics": { params: GetMetricsParams, result: GetMetricsResult }, + "Performance.disable": DisableCommand, + "Performance.enable": EnableCommand, + "Performance.setTimeDomain": SetTimeDomainCommand, + "Performance.getMetrics": GetMetricsCommand, } as const; export const events = { "Performance.metrics": MetricsEvent, diff --git a/js/src/types/generated/zod/PerformanceTimeline.ts b/js/src/types/generated/zod/PerformanceTimeline.ts index efe9bde1..d79df172 100644 --- a/js/src/types/generated/zod/PerformanceTimeline.ts +++ b/js/src/types/generated/zod/PerformanceTimeline.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Network from "./Network.js"; import * as Page from "./Page.js"; @@ -12,6 +12,7 @@ export const LayoutShift = withCdpMeta(z.object({ "value": z.number(), "hadRecen export const TimelineEvent = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId), "type": z.string(), "name": z.string(), "time": z.lazy(() => Network.TimeSinceEpoch), "duration": z.number().optional(), "lcpDetails": z.lazy(() => LargestContentfulPaint).optional(), "layoutShiftDetails": z.lazy(() => LayoutShift).optional() }).passthrough(), "PerformanceTimeline.TimelineEvent", "type"); export const EnableParams = withCdpMeta(z.object({ "eventTypes": z.array(z.string()) }).passthrough(), "PerformanceTimeline.enable.params", "commandParams", { method: "PerformanceTimeline.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "PerformanceTimeline.enable.result", "commandResult", { method: "PerformanceTimeline.enable" }); +export const EnableCommand = withCdpCommand("PerformanceTimeline.enable", EnableParams, EnableResult); export const TimelineEventAddedEvent = withCdpMeta(z.object({ "event": z.lazy(() => TimelineEvent) }).passthrough(), "PerformanceTimeline.timelineEventAdded", "event", { phase: "event" }); export const zod = { @@ -24,7 +25,7 @@ export const zod = { TimelineEventAddedEvent: TimelineEventAddedEvent, } as const; export const commands = { - "PerformanceTimeline.enable": { params: EnableParams, result: EnableResult }, + "PerformanceTimeline.enable": EnableCommand, } as const; export const events = { "PerformanceTimeline.timelineEventAdded": TimelineEventAddedEvent, diff --git a/js/src/types/generated/zod/Preload.ts b/js/src/types/generated/zod/Preload.ts index 277bf93c..87bf43f5 100644 --- a/js/src/types/generated/zod/Preload.ts +++ b/js/src/types/generated/zod/Preload.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Network from "./Network.js"; import * as Page from "./Page.js"; @@ -20,8 +20,10 @@ export const PrefetchStatus = withCdpMeta(z.enum(["PrefetchAllowed", "PrefetchFa export const PrerenderMismatchedHeaders = withCdpMeta(z.object({ "headerName": z.string(), "initialValue": z.string().optional(), "activationValue": z.string().optional() }).passthrough(), "Preload.PrerenderMismatchedHeaders", "type"); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Preload.enable.params", "commandParams", { method: "Preload.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Preload.enable.result", "commandResult", { method: "Preload.enable" }); +export const EnableCommand = withCdpCommand("Preload.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Preload.disable.params", "commandParams", { method: "Preload.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Preload.disable.result", "commandResult", { method: "Preload.disable" }); +export const DisableCommand = withCdpCommand("Preload.disable", DisableParams, DisableResult); export const RuleSetUpdatedEvent = withCdpMeta(z.object({ "ruleSet": z.lazy(() => RuleSet) }).passthrough(), "Preload.ruleSetUpdated", "event", { phase: "event" }); export const RuleSetRemovedEvent = withCdpMeta(z.object({ "id": z.lazy(() => RuleSetId) }).passthrough(), "Preload.ruleSetRemoved", "event", { phase: "event" }); export const PreloadEnabledStateUpdatedEvent = withCdpMeta(z.object({ "disabledByPreference": z.boolean(), "disabledByDataSaver": z.boolean(), "disabledByBatterySaver": z.boolean(), "disabledByHoldbackPrefetchSpeculationRules": z.boolean(), "disabledByHoldbackPrerenderSpeculationRules": z.boolean() }).passthrough(), "Preload.preloadEnabledStateUpdated", "event", { phase: "event" }); @@ -54,8 +56,8 @@ export const zod = { PreloadingAttemptSourcesUpdatedEvent: PreloadingAttemptSourcesUpdatedEvent, } as const; export const commands = { - "Preload.enable": { params: EnableParams, result: EnableResult }, - "Preload.disable": { params: DisableParams, result: DisableResult }, + "Preload.enable": EnableCommand, + "Preload.disable": DisableCommand, } as const; export const events = { "Preload.ruleSetUpdated": RuleSetUpdatedEvent, diff --git a/js/src/types/generated/zod/Profiler.ts b/js/src/types/generated/zod/Profiler.ts index 48a0f9d7..713f0458 100644 --- a/js/src/types/generated/zod/Profiler.ts +++ b/js/src/types/generated/zod/Profiler.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Debugger from "./Debugger.js"; import * as Runtime from "./Runtime.js"; @@ -13,22 +13,31 @@ export const FunctionCoverage = withCdpMeta(z.object({ "functionName": z.string( export const ScriptCoverage = withCdpMeta(z.object({ "scriptId": z.lazy(() => Runtime.ScriptId), "url": z.string(), "functions": z.array(z.lazy(() => FunctionCoverage)) }).passthrough(), "Profiler.ScriptCoverage", "type"); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Profiler.disable.params", "commandParams", { method: "Profiler.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Profiler.disable.result", "commandResult", { method: "Profiler.disable" }); +export const DisableCommand = withCdpCommand("Profiler.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Profiler.enable.params", "commandParams", { method: "Profiler.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Profiler.enable.result", "commandResult", { method: "Profiler.enable" }); +export const EnableCommand = withCdpCommand("Profiler.enable", EnableParams, EnableResult); export const GetBestEffortCoverageParams = withCdpMeta(z.object({ }).passthrough(), "Profiler.getBestEffortCoverage.params", "commandParams", { method: "Profiler.getBestEffortCoverage" }); export const GetBestEffortCoverageResult = withCdpMeta(z.object({ "result": z.array(z.lazy(() => ScriptCoverage)) }).passthrough(), "Profiler.getBestEffortCoverage.result", "commandResult", { method: "Profiler.getBestEffortCoverage" }); +export const GetBestEffortCoverageCommand = withCdpCommand("Profiler.getBestEffortCoverage", GetBestEffortCoverageParams, GetBestEffortCoverageResult); export const SetSamplingIntervalParams = withCdpMeta(z.object({ "interval": z.number().int() }).passthrough(), "Profiler.setSamplingInterval.params", "commandParams", { method: "Profiler.setSamplingInterval" }); export const SetSamplingIntervalResult = withCdpMeta(z.object({ }).passthrough(), "Profiler.setSamplingInterval.result", "commandResult", { method: "Profiler.setSamplingInterval" }); +export const SetSamplingIntervalCommand = withCdpCommand("Profiler.setSamplingInterval", SetSamplingIntervalParams, SetSamplingIntervalResult); export const StartParams = withCdpMeta(z.object({ }).passthrough(), "Profiler.start.params", "commandParams", { method: "Profiler.start" }); export const StartResult = withCdpMeta(z.object({ }).passthrough(), "Profiler.start.result", "commandResult", { method: "Profiler.start" }); +export const StartCommand = withCdpCommand("Profiler.start", StartParams, StartResult); export const StartPreciseCoverageParams = withCdpMeta(z.object({ "callCount": z.boolean().optional(), "detailed": z.boolean().optional(), "allowTriggeredUpdates": z.boolean().optional() }).passthrough(), "Profiler.startPreciseCoverage.params", "commandParams", { method: "Profiler.startPreciseCoverage" }); export const StartPreciseCoverageResult = withCdpMeta(z.object({ "timestamp": z.number() }).passthrough(), "Profiler.startPreciseCoverage.result", "commandResult", { method: "Profiler.startPreciseCoverage" }); +export const StartPreciseCoverageCommand = withCdpCommand("Profiler.startPreciseCoverage", StartPreciseCoverageParams, StartPreciseCoverageResult); export const StopParams = withCdpMeta(z.object({ }).passthrough(), "Profiler.stop.params", "commandParams", { method: "Profiler.stop" }); export const StopResult = withCdpMeta(z.object({ "profile": z.lazy(() => Profile) }).passthrough(), "Profiler.stop.result", "commandResult", { method: "Profiler.stop" }); +export const StopCommand = withCdpCommand("Profiler.stop", StopParams, StopResult); export const StopPreciseCoverageParams = withCdpMeta(z.object({ }).passthrough(), "Profiler.stopPreciseCoverage.params", "commandParams", { method: "Profiler.stopPreciseCoverage" }); export const StopPreciseCoverageResult = withCdpMeta(z.object({ }).passthrough(), "Profiler.stopPreciseCoverage.result", "commandResult", { method: "Profiler.stopPreciseCoverage" }); +export const StopPreciseCoverageCommand = withCdpCommand("Profiler.stopPreciseCoverage", StopPreciseCoverageParams, StopPreciseCoverageResult); export const TakePreciseCoverageParams = withCdpMeta(z.object({ }).passthrough(), "Profiler.takePreciseCoverage.params", "commandParams", { method: "Profiler.takePreciseCoverage" }); export const TakePreciseCoverageResult = withCdpMeta(z.object({ "result": z.array(z.lazy(() => ScriptCoverage)), "timestamp": z.number() }).passthrough(), "Profiler.takePreciseCoverage.result", "commandResult", { method: "Profiler.takePreciseCoverage" }); +export const TakePreciseCoverageCommand = withCdpCommand("Profiler.takePreciseCoverage", TakePreciseCoverageParams, TakePreciseCoverageResult); export const ConsoleProfileFinishedEvent = withCdpMeta(z.object({ "id": z.string(), "location": z.lazy(() => Debugger.Location), "profile": z.lazy(() => Profile), "title": z.string().optional() }).passthrough(), "Profiler.consoleProfileFinished", "event", { phase: "event" }); export const ConsoleProfileStartedEvent = withCdpMeta(z.object({ "id": z.string(), "location": z.lazy(() => Debugger.Location), "title": z.string().optional() }).passthrough(), "Profiler.consoleProfileStarted", "event", { phase: "event" }); export const PreciseCoverageDeltaUpdateEvent = withCdpMeta(z.object({ "timestamp": z.number(), "occasion": z.string(), "result": z.array(z.lazy(() => ScriptCoverage)) }).passthrough(), "Profiler.preciseCoverageDeltaUpdate", "event", { phase: "event" }); @@ -63,15 +72,15 @@ export const zod = { PreciseCoverageDeltaUpdateEvent: PreciseCoverageDeltaUpdateEvent, } as const; export const commands = { - "Profiler.disable": { params: DisableParams, result: DisableResult }, - "Profiler.enable": { params: EnableParams, result: EnableResult }, - "Profiler.getBestEffortCoverage": { params: GetBestEffortCoverageParams, result: GetBestEffortCoverageResult }, - "Profiler.setSamplingInterval": { params: SetSamplingIntervalParams, result: SetSamplingIntervalResult }, - "Profiler.start": { params: StartParams, result: StartResult }, - "Profiler.startPreciseCoverage": { params: StartPreciseCoverageParams, result: StartPreciseCoverageResult }, - "Profiler.stop": { params: StopParams, result: StopResult }, - "Profiler.stopPreciseCoverage": { params: StopPreciseCoverageParams, result: StopPreciseCoverageResult }, - "Profiler.takePreciseCoverage": { params: TakePreciseCoverageParams, result: TakePreciseCoverageResult }, + "Profiler.disable": DisableCommand, + "Profiler.enable": EnableCommand, + "Profiler.getBestEffortCoverage": GetBestEffortCoverageCommand, + "Profiler.setSamplingInterval": SetSamplingIntervalCommand, + "Profiler.start": StartCommand, + "Profiler.startPreciseCoverage": StartPreciseCoverageCommand, + "Profiler.stop": StopCommand, + "Profiler.stopPreciseCoverage": StopPreciseCoverageCommand, + "Profiler.takePreciseCoverage": TakePreciseCoverageCommand, } as const; export const events = { "Profiler.consoleProfileFinished": ConsoleProfileFinishedEvent, diff --git a/js/src/types/generated/zod/Runtime.ts b/js/src/types/generated/zod/Runtime.ts index 11a6f111..1a567feb 100644 --- a/js/src/types/generated/zod/Runtime.ts +++ b/js/src/types/generated/zod/Runtime.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const ScriptId = withCdpMeta(z.string(), "Runtime.ScriptId", "type"); export const SerializationOptions = withCdpMeta(z.object({ "serialization": z.enum(["deep", "json", "idOnly"]), "maxDepth": z.number().int().optional(), "additionalParameters": z.record(z.string(), z.unknown()).optional() }).passthrough(), "Runtime.SerializationOptions", "type"); @@ -28,50 +28,73 @@ export const UniqueDebuggerId = withCdpMeta(z.string(), "Runtime.UniqueDebuggerI export const StackTraceId = withCdpMeta(z.object({ "id": z.string(), "debuggerId": z.lazy(() => UniqueDebuggerId).optional() }).passthrough(), "Runtime.StackTraceId", "type"); export const AwaitPromiseParams = withCdpMeta(z.object({ "promiseObjectId": z.lazy(() => RemoteObjectId), "returnByValue": z.boolean().optional(), "generatePreview": z.boolean().optional() }).passthrough(), "Runtime.awaitPromise.params", "commandParams", { method: "Runtime.awaitPromise" }); export const AwaitPromiseResult = withCdpMeta(z.object({ "result": z.lazy(() => RemoteObject), "exceptionDetails": z.lazy(() => ExceptionDetails).optional() }).passthrough(), "Runtime.awaitPromise.result", "commandResult", { method: "Runtime.awaitPromise" }); +export const AwaitPromiseCommand = withCdpCommand("Runtime.awaitPromise", AwaitPromiseParams, AwaitPromiseResult); export const CallFunctionOnParams = withCdpMeta(z.object({ "functionDeclaration": z.string(), "objectId": z.lazy(() => RemoteObjectId).optional(), "arguments": z.array(z.lazy(() => CallArgument)).optional(), "silent": z.boolean().optional(), "returnByValue": z.boolean().optional(), "generatePreview": z.boolean().optional(), "userGesture": z.boolean().optional(), "awaitPromise": z.boolean().optional(), "executionContextId": z.lazy(() => ExecutionContextId).optional(), "objectGroup": z.string().optional(), "throwOnSideEffect": z.boolean().optional(), "uniqueContextId": z.string().optional(), "serializationOptions": z.lazy(() => SerializationOptions).optional() }).passthrough(), "Runtime.callFunctionOn.params", "commandParams", { method: "Runtime.callFunctionOn" }); export const CallFunctionOnResult = withCdpMeta(z.object({ "result": z.lazy(() => RemoteObject), "exceptionDetails": z.lazy(() => ExceptionDetails).optional() }).passthrough(), "Runtime.callFunctionOn.result", "commandResult", { method: "Runtime.callFunctionOn" }); +export const CallFunctionOnCommand = withCdpCommand("Runtime.callFunctionOn", CallFunctionOnParams, CallFunctionOnResult); export const CompileScriptParams = withCdpMeta(z.object({ "expression": z.string(), "sourceURL": z.string(), "persistScript": z.boolean(), "executionContextId": z.lazy(() => ExecutionContextId).optional() }).passthrough(), "Runtime.compileScript.params", "commandParams", { method: "Runtime.compileScript" }); export const CompileScriptResult = withCdpMeta(z.object({ "scriptId": z.lazy(() => ScriptId).optional(), "exceptionDetails": z.lazy(() => ExceptionDetails).optional() }).passthrough(), "Runtime.compileScript.result", "commandResult", { method: "Runtime.compileScript" }); +export const CompileScriptCommand = withCdpCommand("Runtime.compileScript", CompileScriptParams, CompileScriptResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Runtime.disable.params", "commandParams", { method: "Runtime.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.disable.result", "commandResult", { method: "Runtime.disable" }); +export const DisableCommand = withCdpCommand("Runtime.disable", DisableParams, DisableResult); export const DiscardConsoleEntriesParams = withCdpMeta(z.object({ }).passthrough(), "Runtime.discardConsoleEntries.params", "commandParams", { method: "Runtime.discardConsoleEntries" }); export const DiscardConsoleEntriesResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.discardConsoleEntries.result", "commandResult", { method: "Runtime.discardConsoleEntries" }); +export const DiscardConsoleEntriesCommand = withCdpCommand("Runtime.discardConsoleEntries", DiscardConsoleEntriesParams, DiscardConsoleEntriesResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Runtime.enable.params", "commandParams", { method: "Runtime.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.enable.result", "commandResult", { method: "Runtime.enable" }); +export const EnableCommand = withCdpCommand("Runtime.enable", EnableParams, EnableResult); export const EvaluateParams = withCdpMeta(z.object({ "expression": z.string(), "objectGroup": z.string().optional(), "includeCommandLineAPI": z.boolean().optional(), "silent": z.boolean().optional(), "contextId": z.lazy(() => ExecutionContextId).optional(), "returnByValue": z.boolean().optional(), "generatePreview": z.boolean().optional(), "userGesture": z.boolean().optional(), "awaitPromise": z.boolean().optional(), "throwOnSideEffect": z.boolean().optional(), "timeout": z.lazy(() => TimeDelta).optional(), "disableBreaks": z.boolean().optional(), "replMode": z.boolean().optional(), "allowUnsafeEvalBlockedByCSP": z.boolean().optional(), "uniqueContextId": z.string().optional(), "serializationOptions": z.lazy(() => SerializationOptions).optional() }).passthrough(), "Runtime.evaluate.params", "commandParams", { method: "Runtime.evaluate" }); export const EvaluateResult = withCdpMeta(z.object({ "result": z.lazy(() => RemoteObject), "exceptionDetails": z.lazy(() => ExceptionDetails).optional() }).passthrough(), "Runtime.evaluate.result", "commandResult", { method: "Runtime.evaluate" }); +export const EvaluateCommand = withCdpCommand("Runtime.evaluate", EvaluateParams, EvaluateResult); export const GetIsolateIdParams = withCdpMeta(z.object({ }).passthrough(), "Runtime.getIsolateId.params", "commandParams", { method: "Runtime.getIsolateId" }); export const GetIsolateIdResult = withCdpMeta(z.object({ "id": z.string() }).passthrough(), "Runtime.getIsolateId.result", "commandResult", { method: "Runtime.getIsolateId" }); +export const GetIsolateIdCommand = withCdpCommand("Runtime.getIsolateId", GetIsolateIdParams, GetIsolateIdResult); export const GetHeapUsageParams = withCdpMeta(z.object({ }).passthrough(), "Runtime.getHeapUsage.params", "commandParams", { method: "Runtime.getHeapUsage" }); export const GetHeapUsageResult = withCdpMeta(z.object({ "usedSize": z.number(), "totalSize": z.number(), "embedderHeapUsedSize": z.number(), "backingStorageSize": z.number() }).passthrough(), "Runtime.getHeapUsage.result", "commandResult", { method: "Runtime.getHeapUsage" }); +export const GetHeapUsageCommand = withCdpCommand("Runtime.getHeapUsage", GetHeapUsageParams, GetHeapUsageResult); export const GetPropertiesParams = withCdpMeta(z.object({ "objectId": z.lazy(() => RemoteObjectId), "ownProperties": z.boolean().optional(), "accessorPropertiesOnly": z.boolean().optional(), "generatePreview": z.boolean().optional(), "nonIndexedPropertiesOnly": z.boolean().optional() }).passthrough(), "Runtime.getProperties.params", "commandParams", { method: "Runtime.getProperties" }); export const GetPropertiesResult = withCdpMeta(z.object({ "result": z.array(z.lazy(() => PropertyDescriptor)), "internalProperties": z.array(z.lazy(() => InternalPropertyDescriptor)).optional(), "privateProperties": z.array(z.lazy(() => PrivatePropertyDescriptor)).optional(), "exceptionDetails": z.lazy(() => ExceptionDetails).optional() }).passthrough(), "Runtime.getProperties.result", "commandResult", { method: "Runtime.getProperties" }); +export const GetPropertiesCommand = withCdpCommand("Runtime.getProperties", GetPropertiesParams, GetPropertiesResult); export const GlobalLexicalScopeNamesParams = withCdpMeta(z.object({ "executionContextId": z.lazy(() => ExecutionContextId).optional() }).passthrough(), "Runtime.globalLexicalScopeNames.params", "commandParams", { method: "Runtime.globalLexicalScopeNames" }); export const GlobalLexicalScopeNamesResult = withCdpMeta(z.object({ "names": z.array(z.string()) }).passthrough(), "Runtime.globalLexicalScopeNames.result", "commandResult", { method: "Runtime.globalLexicalScopeNames" }); +export const GlobalLexicalScopeNamesCommand = withCdpCommand("Runtime.globalLexicalScopeNames", GlobalLexicalScopeNamesParams, GlobalLexicalScopeNamesResult); export const QueryObjectsParams = withCdpMeta(z.object({ "prototypeObjectId": z.lazy(() => RemoteObjectId), "objectGroup": z.string().optional() }).passthrough(), "Runtime.queryObjects.params", "commandParams", { method: "Runtime.queryObjects" }); export const QueryObjectsResult = withCdpMeta(z.object({ "objects": z.lazy(() => RemoteObject) }).passthrough(), "Runtime.queryObjects.result", "commandResult", { method: "Runtime.queryObjects" }); +export const QueryObjectsCommand = withCdpCommand("Runtime.queryObjects", QueryObjectsParams, QueryObjectsResult); export const ReleaseObjectParams = withCdpMeta(z.object({ "objectId": z.lazy(() => RemoteObjectId) }).passthrough(), "Runtime.releaseObject.params", "commandParams", { method: "Runtime.releaseObject" }); export const ReleaseObjectResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.releaseObject.result", "commandResult", { method: "Runtime.releaseObject" }); +export const ReleaseObjectCommand = withCdpCommand("Runtime.releaseObject", ReleaseObjectParams, ReleaseObjectResult); export const ReleaseObjectGroupParams = withCdpMeta(z.object({ "objectGroup": z.string() }).passthrough(), "Runtime.releaseObjectGroup.params", "commandParams", { method: "Runtime.releaseObjectGroup" }); export const ReleaseObjectGroupResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.releaseObjectGroup.result", "commandResult", { method: "Runtime.releaseObjectGroup" }); +export const ReleaseObjectGroupCommand = withCdpCommand("Runtime.releaseObjectGroup", ReleaseObjectGroupParams, ReleaseObjectGroupResult); export const RunIfWaitingForDebuggerParams = withCdpMeta(z.object({ }).passthrough(), "Runtime.runIfWaitingForDebugger.params", "commandParams", { method: "Runtime.runIfWaitingForDebugger" }); export const RunIfWaitingForDebuggerResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.runIfWaitingForDebugger.result", "commandResult", { method: "Runtime.runIfWaitingForDebugger" }); +export const RunIfWaitingForDebuggerCommand = withCdpCommand("Runtime.runIfWaitingForDebugger", RunIfWaitingForDebuggerParams, RunIfWaitingForDebuggerResult); export const RunScriptParams = withCdpMeta(z.object({ "scriptId": z.lazy(() => ScriptId), "executionContextId": z.lazy(() => ExecutionContextId).optional(), "objectGroup": z.string().optional(), "silent": z.boolean().optional(), "includeCommandLineAPI": z.boolean().optional(), "returnByValue": z.boolean().optional(), "generatePreview": z.boolean().optional(), "awaitPromise": z.boolean().optional() }).passthrough(), "Runtime.runScript.params", "commandParams", { method: "Runtime.runScript" }); export const RunScriptResult = withCdpMeta(z.object({ "result": z.lazy(() => RemoteObject), "exceptionDetails": z.lazy(() => ExceptionDetails).optional() }).passthrough(), "Runtime.runScript.result", "commandResult", { method: "Runtime.runScript" }); +export const RunScriptCommand = withCdpCommand("Runtime.runScript", RunScriptParams, RunScriptResult); export const SetAsyncCallStackDepthParams = withCdpMeta(z.object({ "maxDepth": z.number().int() }).passthrough(), "Runtime.setAsyncCallStackDepth.params", "commandParams", { method: "Runtime.setAsyncCallStackDepth" }); export const SetAsyncCallStackDepthResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.setAsyncCallStackDepth.result", "commandResult", { method: "Runtime.setAsyncCallStackDepth" }); +export const SetAsyncCallStackDepthCommand = withCdpCommand("Runtime.setAsyncCallStackDepth", SetAsyncCallStackDepthParams, SetAsyncCallStackDepthResult); export const SetCustomObjectFormatterEnabledParams = withCdpMeta(z.object({ "enabled": z.boolean() }).passthrough(), "Runtime.setCustomObjectFormatterEnabled.params", "commandParams", { method: "Runtime.setCustomObjectFormatterEnabled" }); export const SetCustomObjectFormatterEnabledResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.setCustomObjectFormatterEnabled.result", "commandResult", { method: "Runtime.setCustomObjectFormatterEnabled" }); +export const SetCustomObjectFormatterEnabledCommand = withCdpCommand("Runtime.setCustomObjectFormatterEnabled", SetCustomObjectFormatterEnabledParams, SetCustomObjectFormatterEnabledResult); export const SetMaxCallStackSizeToCaptureParams = withCdpMeta(z.object({ "size": z.number().int() }).passthrough(), "Runtime.setMaxCallStackSizeToCapture.params", "commandParams", { method: "Runtime.setMaxCallStackSizeToCapture" }); export const SetMaxCallStackSizeToCaptureResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.setMaxCallStackSizeToCapture.result", "commandResult", { method: "Runtime.setMaxCallStackSizeToCapture" }); +export const SetMaxCallStackSizeToCaptureCommand = withCdpCommand("Runtime.setMaxCallStackSizeToCapture", SetMaxCallStackSizeToCaptureParams, SetMaxCallStackSizeToCaptureResult); export const TerminateExecutionParams = withCdpMeta(z.object({ }).passthrough(), "Runtime.terminateExecution.params", "commandParams", { method: "Runtime.terminateExecution" }); export const TerminateExecutionResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.terminateExecution.result", "commandResult", { method: "Runtime.terminateExecution" }); +export const TerminateExecutionCommand = withCdpCommand("Runtime.terminateExecution", TerminateExecutionParams, TerminateExecutionResult); export const AddBindingParams = withCdpMeta(z.object({ "name": z.string(), "executionContextId": z.lazy(() => ExecutionContextId).optional(), "executionContextName": z.string().optional() }).passthrough(), "Runtime.addBinding.params", "commandParams", { method: "Runtime.addBinding" }); export const AddBindingResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.addBinding.result", "commandResult", { method: "Runtime.addBinding" }); +export const AddBindingCommand = withCdpCommand("Runtime.addBinding", AddBindingParams, AddBindingResult); export const RemoveBindingParams = withCdpMeta(z.object({ "name": z.string() }).passthrough(), "Runtime.removeBinding.params", "commandParams", { method: "Runtime.removeBinding" }); export const RemoveBindingResult = withCdpMeta(z.object({ }).passthrough(), "Runtime.removeBinding.result", "commandResult", { method: "Runtime.removeBinding" }); +export const RemoveBindingCommand = withCdpCommand("Runtime.removeBinding", RemoveBindingParams, RemoveBindingResult); export const GetExceptionDetailsParams = withCdpMeta(z.object({ "errorObjectId": z.lazy(() => RemoteObjectId) }).passthrough(), "Runtime.getExceptionDetails.params", "commandParams", { method: "Runtime.getExceptionDetails" }); export const GetExceptionDetailsResult = withCdpMeta(z.object({ "exceptionDetails": z.lazy(() => ExceptionDetails).optional() }).passthrough(), "Runtime.getExceptionDetails.result", "commandResult", { method: "Runtime.getExceptionDetails" }); +export const GetExceptionDetailsCommand = withCdpCommand("Runtime.getExceptionDetails", GetExceptionDetailsParams, GetExceptionDetailsResult); export const BindingCalledEvent = withCdpMeta(z.object({ "name": z.string(), "payload": z.string(), "executionContextId": z.lazy(() => ExecutionContextId) }).passthrough(), "Runtime.bindingCalled", "event", { phase: "event" }); export const ConsoleAPICalledEvent = withCdpMeta(z.object({ "type": z.enum(["log", "debug", "info", "error", "warning", "dir", "dirxml", "table", "trace", "clear", "startGroup", "startGroupCollapsed", "endGroup", "assert", "profile", "profileEnd", "count", "timeEnd"]), "args": z.array(z.lazy(() => RemoteObject)), "executionContextId": z.lazy(() => ExecutionContextId), "timestamp": z.lazy(() => Timestamp), "stackTrace": z.lazy(() => StackTrace).optional(), "context": z.string().optional() }).passthrough(), "Runtime.consoleAPICalled", "event", { phase: "event" }); export const ExceptionRevokedEvent = withCdpMeta(z.object({ "reason": z.string(), "exceptionId": z.number().int() }).passthrough(), "Runtime.exceptionRevoked", "event", { phase: "event" }); @@ -161,29 +184,29 @@ export const zod = { InspectRequestedEvent: InspectRequestedEvent, } as const; export const commands = { - "Runtime.awaitPromise": { params: AwaitPromiseParams, result: AwaitPromiseResult }, - "Runtime.callFunctionOn": { params: CallFunctionOnParams, result: CallFunctionOnResult }, - "Runtime.compileScript": { params: CompileScriptParams, result: CompileScriptResult }, - "Runtime.disable": { params: DisableParams, result: DisableResult }, - "Runtime.discardConsoleEntries": { params: DiscardConsoleEntriesParams, result: DiscardConsoleEntriesResult }, - "Runtime.enable": { params: EnableParams, result: EnableResult }, - "Runtime.evaluate": { params: EvaluateParams, result: EvaluateResult }, - "Runtime.getIsolateId": { params: GetIsolateIdParams, result: GetIsolateIdResult }, - "Runtime.getHeapUsage": { params: GetHeapUsageParams, result: GetHeapUsageResult }, - "Runtime.getProperties": { params: GetPropertiesParams, result: GetPropertiesResult }, - "Runtime.globalLexicalScopeNames": { params: GlobalLexicalScopeNamesParams, result: GlobalLexicalScopeNamesResult }, - "Runtime.queryObjects": { params: QueryObjectsParams, result: QueryObjectsResult }, - "Runtime.releaseObject": { params: ReleaseObjectParams, result: ReleaseObjectResult }, - "Runtime.releaseObjectGroup": { params: ReleaseObjectGroupParams, result: ReleaseObjectGroupResult }, - "Runtime.runIfWaitingForDebugger": { params: RunIfWaitingForDebuggerParams, result: RunIfWaitingForDebuggerResult }, - "Runtime.runScript": { params: RunScriptParams, result: RunScriptResult }, - "Runtime.setAsyncCallStackDepth": { params: SetAsyncCallStackDepthParams, result: SetAsyncCallStackDepthResult }, - "Runtime.setCustomObjectFormatterEnabled": { params: SetCustomObjectFormatterEnabledParams, result: SetCustomObjectFormatterEnabledResult }, - "Runtime.setMaxCallStackSizeToCapture": { params: SetMaxCallStackSizeToCaptureParams, result: SetMaxCallStackSizeToCaptureResult }, - "Runtime.terminateExecution": { params: TerminateExecutionParams, result: TerminateExecutionResult }, - "Runtime.addBinding": { params: AddBindingParams, result: AddBindingResult }, - "Runtime.removeBinding": { params: RemoveBindingParams, result: RemoveBindingResult }, - "Runtime.getExceptionDetails": { params: GetExceptionDetailsParams, result: GetExceptionDetailsResult }, + "Runtime.awaitPromise": AwaitPromiseCommand, + "Runtime.callFunctionOn": CallFunctionOnCommand, + "Runtime.compileScript": CompileScriptCommand, + "Runtime.disable": DisableCommand, + "Runtime.discardConsoleEntries": DiscardConsoleEntriesCommand, + "Runtime.enable": EnableCommand, + "Runtime.evaluate": EvaluateCommand, + "Runtime.getIsolateId": GetIsolateIdCommand, + "Runtime.getHeapUsage": GetHeapUsageCommand, + "Runtime.getProperties": GetPropertiesCommand, + "Runtime.globalLexicalScopeNames": GlobalLexicalScopeNamesCommand, + "Runtime.queryObjects": QueryObjectsCommand, + "Runtime.releaseObject": ReleaseObjectCommand, + "Runtime.releaseObjectGroup": ReleaseObjectGroupCommand, + "Runtime.runIfWaitingForDebugger": RunIfWaitingForDebuggerCommand, + "Runtime.runScript": RunScriptCommand, + "Runtime.setAsyncCallStackDepth": SetAsyncCallStackDepthCommand, + "Runtime.setCustomObjectFormatterEnabled": SetCustomObjectFormatterEnabledCommand, + "Runtime.setMaxCallStackSizeToCapture": SetMaxCallStackSizeToCaptureCommand, + "Runtime.terminateExecution": TerminateExecutionCommand, + "Runtime.addBinding": AddBindingCommand, + "Runtime.removeBinding": RemoveBindingCommand, + "Runtime.getExceptionDetails": GetExceptionDetailsCommand, } as const; export const events = { "Runtime.bindingCalled": BindingCalledEvent, diff --git a/js/src/types/generated/zod/Schema.ts b/js/src/types/generated/zod/Schema.ts index bbc668b2..907e2fc5 100644 --- a/js/src/types/generated/zod/Schema.ts +++ b/js/src/types/generated/zod/Schema.ts @@ -1,11 +1,12 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const Domain = withCdpMeta(z.object({ "name": z.string(), "version": z.string() }).passthrough(), "Schema.Domain", "type"); export const GetDomainsParams = withCdpMeta(z.object({ }).passthrough(), "Schema.getDomains.params", "commandParams", { method: "Schema.getDomains" }); export const GetDomainsResult = withCdpMeta(z.object({ "domains": z.array(z.lazy(() => Domain)) }).passthrough(), "Schema.getDomains.result", "commandResult", { method: "Schema.getDomains" }); +export const GetDomainsCommand = withCdpCommand("Schema.getDomains", GetDomainsParams, GetDomainsResult); export const zod = { Domain: Domain, @@ -13,7 +14,7 @@ export const zod = { GetDomainsResult: GetDomainsResult, } as const; export const commands = { - "Schema.getDomains": { params: GetDomainsParams, result: GetDomainsResult }, + "Schema.getDomains": GetDomainsCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/Security.ts b/js/src/types/generated/zod/Security.ts index 3c6c4e2a..bec165f0 100644 --- a/js/src/types/generated/zod/Security.ts +++ b/js/src/types/generated/zod/Security.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Network from "./Network.js"; export const CertificateId = withCdpMeta(z.number().int(), "Security.CertificateId", "type"); @@ -16,14 +16,19 @@ export const InsecureContentStatus = withCdpMeta(z.object({ "ranMixedContent": z export const CertificateErrorAction = withCdpMeta(z.enum(["continue", "cancel"]), "Security.CertificateErrorAction", "type"); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "Security.disable.params", "commandParams", { method: "Security.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "Security.disable.result", "commandResult", { method: "Security.disable" }); +export const DisableCommand = withCdpCommand("Security.disable", DisableParams, DisableResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "Security.enable.params", "commandParams", { method: "Security.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "Security.enable.result", "commandResult", { method: "Security.enable" }); +export const EnableCommand = withCdpCommand("Security.enable", EnableParams, EnableResult); export const SetIgnoreCertificateErrorsParams = withCdpMeta(z.object({ "ignore": z.boolean() }).passthrough(), "Security.setIgnoreCertificateErrors.params", "commandParams", { method: "Security.setIgnoreCertificateErrors" }); export const SetIgnoreCertificateErrorsResult = withCdpMeta(z.object({ }).passthrough(), "Security.setIgnoreCertificateErrors.result", "commandResult", { method: "Security.setIgnoreCertificateErrors" }); +export const SetIgnoreCertificateErrorsCommand = withCdpCommand("Security.setIgnoreCertificateErrors", SetIgnoreCertificateErrorsParams, SetIgnoreCertificateErrorsResult); export const HandleCertificateErrorParams = withCdpMeta(z.object({ "eventId": z.number().int(), "action": z.lazy(() => CertificateErrorAction) }).passthrough(), "Security.handleCertificateError.params", "commandParams", { method: "Security.handleCertificateError" }); export const HandleCertificateErrorResult = withCdpMeta(z.object({ }).passthrough(), "Security.handleCertificateError.result", "commandResult", { method: "Security.handleCertificateError" }); +export const HandleCertificateErrorCommand = withCdpCommand("Security.handleCertificateError", HandleCertificateErrorParams, HandleCertificateErrorResult); export const SetOverrideCertificateErrorsParams = withCdpMeta(z.object({ "override": z.boolean() }).passthrough(), "Security.setOverrideCertificateErrors.params", "commandParams", { method: "Security.setOverrideCertificateErrors" }); export const SetOverrideCertificateErrorsResult = withCdpMeta(z.object({ }).passthrough(), "Security.setOverrideCertificateErrors.result", "commandResult", { method: "Security.setOverrideCertificateErrors" }); +export const SetOverrideCertificateErrorsCommand = withCdpCommand("Security.setOverrideCertificateErrors", SetOverrideCertificateErrorsParams, SetOverrideCertificateErrorsResult); export const CertificateErrorEvent = withCdpMeta(z.object({ "eventId": z.number().int(), "errorType": z.string(), "requestURL": z.string() }).passthrough(), "Security.certificateError", "event", { phase: "event" }); export const VisibleSecurityStateChangedEvent = withCdpMeta(z.object({ "visibleSecurityState": z.lazy(() => VisibleSecurityState) }).passthrough(), "Security.visibleSecurityStateChanged", "event", { phase: "event" }); export const SecurityStateChangedEvent = withCdpMeta(z.object({ "securityState": z.lazy(() => SecurityState), "schemeIsCryptographic": z.boolean(), "explanations": z.array(z.lazy(() => SecurityStateExplanation)), "insecureContentStatus": z.lazy(() => InsecureContentStatus), "summary": z.string().optional() }).passthrough(), "Security.securityStateChanged", "event", { phase: "event" }); @@ -54,11 +59,11 @@ export const zod = { SecurityStateChangedEvent: SecurityStateChangedEvent, } as const; export const commands = { - "Security.disable": { params: DisableParams, result: DisableResult }, - "Security.enable": { params: EnableParams, result: EnableResult }, - "Security.setIgnoreCertificateErrors": { params: SetIgnoreCertificateErrorsParams, result: SetIgnoreCertificateErrorsResult }, - "Security.handleCertificateError": { params: HandleCertificateErrorParams, result: HandleCertificateErrorResult }, - "Security.setOverrideCertificateErrors": { params: SetOverrideCertificateErrorsParams, result: SetOverrideCertificateErrorsResult }, + "Security.disable": DisableCommand, + "Security.enable": EnableCommand, + "Security.setIgnoreCertificateErrors": SetIgnoreCertificateErrorsCommand, + "Security.handleCertificateError": HandleCertificateErrorCommand, + "Security.setOverrideCertificateErrors": SetOverrideCertificateErrorsCommand, } as const; export const events = { "Security.certificateError": CertificateErrorEvent, diff --git a/js/src/types/generated/zod/ServiceWorker.ts b/js/src/types/generated/zod/ServiceWorker.ts index 636a7765..d508970b 100644 --- a/js/src/types/generated/zod/ServiceWorker.ts +++ b/js/src/types/generated/zod/ServiceWorker.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Target from "./Target.js"; export const RegistrationID = withCdpMeta(z.string(), "ServiceWorker.RegistrationID", "type"); @@ -12,28 +12,40 @@ export const ServiceWorkerVersion = withCdpMeta(z.object({ "versionId": z.string export const ServiceWorkerErrorMessage = withCdpMeta(z.object({ "errorMessage": z.string(), "registrationId": z.lazy(() => RegistrationID), "versionId": z.string(), "sourceURL": z.string(), "lineNumber": z.number().int(), "columnNumber": z.number().int() }).passthrough(), "ServiceWorker.ServiceWorkerErrorMessage", "type"); export const DeliverPushMessageParams = withCdpMeta(z.object({ "origin": z.string(), "registrationId": z.lazy(() => RegistrationID), "data": z.string() }).passthrough(), "ServiceWorker.deliverPushMessage.params", "commandParams", { method: "ServiceWorker.deliverPushMessage" }); export const DeliverPushMessageResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.deliverPushMessage.result", "commandResult", { method: "ServiceWorker.deliverPushMessage" }); +export const DeliverPushMessageCommand = withCdpCommand("ServiceWorker.deliverPushMessage", DeliverPushMessageParams, DeliverPushMessageResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.disable.params", "commandParams", { method: "ServiceWorker.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.disable.result", "commandResult", { method: "ServiceWorker.disable" }); +export const DisableCommand = withCdpCommand("ServiceWorker.disable", DisableParams, DisableResult); export const DispatchSyncEventParams = withCdpMeta(z.object({ "origin": z.string(), "registrationId": z.lazy(() => RegistrationID), "tag": z.string(), "lastChance": z.boolean() }).passthrough(), "ServiceWorker.dispatchSyncEvent.params", "commandParams", { method: "ServiceWorker.dispatchSyncEvent" }); export const DispatchSyncEventResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.dispatchSyncEvent.result", "commandResult", { method: "ServiceWorker.dispatchSyncEvent" }); +export const DispatchSyncEventCommand = withCdpCommand("ServiceWorker.dispatchSyncEvent", DispatchSyncEventParams, DispatchSyncEventResult); export const DispatchPeriodicSyncEventParams = withCdpMeta(z.object({ "origin": z.string(), "registrationId": z.lazy(() => RegistrationID), "tag": z.string() }).passthrough(), "ServiceWorker.dispatchPeriodicSyncEvent.params", "commandParams", { method: "ServiceWorker.dispatchPeriodicSyncEvent" }); export const DispatchPeriodicSyncEventResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.dispatchPeriodicSyncEvent.result", "commandResult", { method: "ServiceWorker.dispatchPeriodicSyncEvent" }); +export const DispatchPeriodicSyncEventCommand = withCdpCommand("ServiceWorker.dispatchPeriodicSyncEvent", DispatchPeriodicSyncEventParams, DispatchPeriodicSyncEventResult); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.enable.params", "commandParams", { method: "ServiceWorker.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.enable.result", "commandResult", { method: "ServiceWorker.enable" }); +export const EnableCommand = withCdpCommand("ServiceWorker.enable", EnableParams, EnableResult); export const SetForceUpdateOnPageLoadParams = withCdpMeta(z.object({ "forceUpdateOnPageLoad": z.boolean() }).passthrough(), "ServiceWorker.setForceUpdateOnPageLoad.params", "commandParams", { method: "ServiceWorker.setForceUpdateOnPageLoad" }); export const SetForceUpdateOnPageLoadResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.setForceUpdateOnPageLoad.result", "commandResult", { method: "ServiceWorker.setForceUpdateOnPageLoad" }); +export const SetForceUpdateOnPageLoadCommand = withCdpCommand("ServiceWorker.setForceUpdateOnPageLoad", SetForceUpdateOnPageLoadParams, SetForceUpdateOnPageLoadResult); export const SkipWaitingParams = withCdpMeta(z.object({ "scopeURL": z.string() }).passthrough(), "ServiceWorker.skipWaiting.params", "commandParams", { method: "ServiceWorker.skipWaiting" }); export const SkipWaitingResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.skipWaiting.result", "commandResult", { method: "ServiceWorker.skipWaiting" }); +export const SkipWaitingCommand = withCdpCommand("ServiceWorker.skipWaiting", SkipWaitingParams, SkipWaitingResult); export const StartWorkerParams = withCdpMeta(z.object({ "scopeURL": z.string() }).passthrough(), "ServiceWorker.startWorker.params", "commandParams", { method: "ServiceWorker.startWorker" }); export const StartWorkerResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.startWorker.result", "commandResult", { method: "ServiceWorker.startWorker" }); +export const StartWorkerCommand = withCdpCommand("ServiceWorker.startWorker", StartWorkerParams, StartWorkerResult); export const StopAllWorkersParams = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.stopAllWorkers.params", "commandParams", { method: "ServiceWorker.stopAllWorkers" }); export const StopAllWorkersResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.stopAllWorkers.result", "commandResult", { method: "ServiceWorker.stopAllWorkers" }); +export const StopAllWorkersCommand = withCdpCommand("ServiceWorker.stopAllWorkers", StopAllWorkersParams, StopAllWorkersResult); export const StopWorkerParams = withCdpMeta(z.object({ "versionId": z.string() }).passthrough(), "ServiceWorker.stopWorker.params", "commandParams", { method: "ServiceWorker.stopWorker" }); export const StopWorkerResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.stopWorker.result", "commandResult", { method: "ServiceWorker.stopWorker" }); +export const StopWorkerCommand = withCdpCommand("ServiceWorker.stopWorker", StopWorkerParams, StopWorkerResult); export const UnregisterParams = withCdpMeta(z.object({ "scopeURL": z.string() }).passthrough(), "ServiceWorker.unregister.params", "commandParams", { method: "ServiceWorker.unregister" }); export const UnregisterResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.unregister.result", "commandResult", { method: "ServiceWorker.unregister" }); +export const UnregisterCommand = withCdpCommand("ServiceWorker.unregister", UnregisterParams, UnregisterResult); export const UpdateRegistrationParams = withCdpMeta(z.object({ "scopeURL": z.string() }).passthrough(), "ServiceWorker.updateRegistration.params", "commandParams", { method: "ServiceWorker.updateRegistration" }); export const UpdateRegistrationResult = withCdpMeta(z.object({ }).passthrough(), "ServiceWorker.updateRegistration.result", "commandResult", { method: "ServiceWorker.updateRegistration" }); +export const UpdateRegistrationCommand = withCdpCommand("ServiceWorker.updateRegistration", UpdateRegistrationParams, UpdateRegistrationResult); export const WorkerErrorReportedEvent = withCdpMeta(z.object({ "errorMessage": z.lazy(() => ServiceWorkerErrorMessage) }).passthrough(), "ServiceWorker.workerErrorReported", "event", { phase: "event" }); export const WorkerRegistrationUpdatedEvent = withCdpMeta(z.object({ "registrations": z.array(z.lazy(() => ServiceWorkerRegistration)) }).passthrough(), "ServiceWorker.workerRegistrationUpdated", "event", { phase: "event" }); export const WorkerVersionUpdatedEvent = withCdpMeta(z.object({ "versions": z.array(z.lazy(() => ServiceWorkerVersion)) }).passthrough(), "ServiceWorker.workerVersionUpdated", "event", { phase: "event" }); @@ -74,18 +86,18 @@ export const zod = { WorkerVersionUpdatedEvent: WorkerVersionUpdatedEvent, } as const; export const commands = { - "ServiceWorker.deliverPushMessage": { params: DeliverPushMessageParams, result: DeliverPushMessageResult }, - "ServiceWorker.disable": { params: DisableParams, result: DisableResult }, - "ServiceWorker.dispatchSyncEvent": { params: DispatchSyncEventParams, result: DispatchSyncEventResult }, - "ServiceWorker.dispatchPeriodicSyncEvent": { params: DispatchPeriodicSyncEventParams, result: DispatchPeriodicSyncEventResult }, - "ServiceWorker.enable": { params: EnableParams, result: EnableResult }, - "ServiceWorker.setForceUpdateOnPageLoad": { params: SetForceUpdateOnPageLoadParams, result: SetForceUpdateOnPageLoadResult }, - "ServiceWorker.skipWaiting": { params: SkipWaitingParams, result: SkipWaitingResult }, - "ServiceWorker.startWorker": { params: StartWorkerParams, result: StartWorkerResult }, - "ServiceWorker.stopAllWorkers": { params: StopAllWorkersParams, result: StopAllWorkersResult }, - "ServiceWorker.stopWorker": { params: StopWorkerParams, result: StopWorkerResult }, - "ServiceWorker.unregister": { params: UnregisterParams, result: UnregisterResult }, - "ServiceWorker.updateRegistration": { params: UpdateRegistrationParams, result: UpdateRegistrationResult }, + "ServiceWorker.deliverPushMessage": DeliverPushMessageCommand, + "ServiceWorker.disable": DisableCommand, + "ServiceWorker.dispatchSyncEvent": DispatchSyncEventCommand, + "ServiceWorker.dispatchPeriodicSyncEvent": DispatchPeriodicSyncEventCommand, + "ServiceWorker.enable": EnableCommand, + "ServiceWorker.setForceUpdateOnPageLoad": SetForceUpdateOnPageLoadCommand, + "ServiceWorker.skipWaiting": SkipWaitingCommand, + "ServiceWorker.startWorker": StartWorkerCommand, + "ServiceWorker.stopAllWorkers": StopAllWorkersCommand, + "ServiceWorker.stopWorker": StopWorkerCommand, + "ServiceWorker.unregister": UnregisterCommand, + "ServiceWorker.updateRegistration": UpdateRegistrationCommand, } as const; export const events = { "ServiceWorker.workerErrorReported": WorkerErrorReportedEvent, diff --git a/js/src/types/generated/zod/SmartCardEmulation.ts b/js/src/types/generated/zod/SmartCardEmulation.ts index 946008e3..255d0574 100644 --- a/js/src/types/generated/zod/SmartCardEmulation.ts +++ b/js/src/types/generated/zod/SmartCardEmulation.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const ResultCode = withCdpMeta(z.enum(["success", "removed-card", "reset-card", "unpowered-card", "unresponsive-card", "unsupported-card", "reader-unavailable", "sharing-violation", "not-transacted", "no-smartcard", "proto-mismatch", "system-cancelled", "not-ready", "cancelled", "insufficient-buffer", "invalid-handle", "invalid-parameter", "invalid-value", "no-memory", "timeout", "unknown-reader", "unsupported-feature", "no-readers-available", "service-stopped", "no-service", "comm-error", "internal-error", "server-too-busy", "unexpected", "shutdown", "unknown-card", "unknown"]), "SmartCardEmulation.ResultCode", "type"); export const ShareMode = withCdpMeta(z.enum(["shared", "exclusive", "direct"]), "SmartCardEmulation.ShareMode", "type"); @@ -14,28 +14,40 @@ export const ReaderStateIn = withCdpMeta(z.object({ "reader": z.string(), "curre export const ReaderStateOut = withCdpMeta(z.object({ "reader": z.string(), "eventState": z.lazy(() => ReaderStateFlags), "eventCount": z.number().int(), "atr": z.string() }).passthrough(), "SmartCardEmulation.ReaderStateOut", "type"); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.enable.params", "commandParams", { method: "SmartCardEmulation.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.enable.result", "commandResult", { method: "SmartCardEmulation.enable" }); +export const EnableCommand = withCdpCommand("SmartCardEmulation.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.disable.params", "commandParams", { method: "SmartCardEmulation.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.disable.result", "commandResult", { method: "SmartCardEmulation.disable" }); +export const DisableCommand = withCdpCommand("SmartCardEmulation.disable", DisableParams, DisableResult); export const ReportEstablishContextResultParams = withCdpMeta(z.object({ "requestId": z.string(), "contextId": z.number().int() }).passthrough(), "SmartCardEmulation.reportEstablishContextResult.params", "commandParams", { method: "SmartCardEmulation.reportEstablishContextResult" }); export const ReportEstablishContextResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportEstablishContextResult.result", "commandResult", { method: "SmartCardEmulation.reportEstablishContextResult" }); +export const ReportEstablishContextResultCommand = withCdpCommand("SmartCardEmulation.reportEstablishContextResult", ReportEstablishContextResultParams, ReportEstablishContextResultResult); export const ReportReleaseContextResultParams = withCdpMeta(z.object({ "requestId": z.string() }).passthrough(), "SmartCardEmulation.reportReleaseContextResult.params", "commandParams", { method: "SmartCardEmulation.reportReleaseContextResult" }); export const ReportReleaseContextResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportReleaseContextResult.result", "commandResult", { method: "SmartCardEmulation.reportReleaseContextResult" }); +export const ReportReleaseContextResultCommand = withCdpCommand("SmartCardEmulation.reportReleaseContextResult", ReportReleaseContextResultParams, ReportReleaseContextResultResult); export const ReportListReadersResultParams = withCdpMeta(z.object({ "requestId": z.string(), "readers": z.array(z.string()) }).passthrough(), "SmartCardEmulation.reportListReadersResult.params", "commandParams", { method: "SmartCardEmulation.reportListReadersResult" }); export const ReportListReadersResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportListReadersResult.result", "commandResult", { method: "SmartCardEmulation.reportListReadersResult" }); +export const ReportListReadersResultCommand = withCdpCommand("SmartCardEmulation.reportListReadersResult", ReportListReadersResultParams, ReportListReadersResultResult); export const ReportGetStatusChangeResultParams = withCdpMeta(z.object({ "requestId": z.string(), "readerStates": z.array(z.lazy(() => ReaderStateOut)) }).passthrough(), "SmartCardEmulation.reportGetStatusChangeResult.params", "commandParams", { method: "SmartCardEmulation.reportGetStatusChangeResult" }); export const ReportGetStatusChangeResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportGetStatusChangeResult.result", "commandResult", { method: "SmartCardEmulation.reportGetStatusChangeResult" }); +export const ReportGetStatusChangeResultCommand = withCdpCommand("SmartCardEmulation.reportGetStatusChangeResult", ReportGetStatusChangeResultParams, ReportGetStatusChangeResultResult); export const ReportBeginTransactionResultParams = withCdpMeta(z.object({ "requestId": z.string(), "handle": z.number().int() }).passthrough(), "SmartCardEmulation.reportBeginTransactionResult.params", "commandParams", { method: "SmartCardEmulation.reportBeginTransactionResult" }); export const ReportBeginTransactionResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportBeginTransactionResult.result", "commandResult", { method: "SmartCardEmulation.reportBeginTransactionResult" }); +export const ReportBeginTransactionResultCommand = withCdpCommand("SmartCardEmulation.reportBeginTransactionResult", ReportBeginTransactionResultParams, ReportBeginTransactionResultResult); export const ReportPlainResultParams = withCdpMeta(z.object({ "requestId": z.string() }).passthrough(), "SmartCardEmulation.reportPlainResult.params", "commandParams", { method: "SmartCardEmulation.reportPlainResult" }); export const ReportPlainResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportPlainResult.result", "commandResult", { method: "SmartCardEmulation.reportPlainResult" }); +export const ReportPlainResultCommand = withCdpCommand("SmartCardEmulation.reportPlainResult", ReportPlainResultParams, ReportPlainResultResult); export const ReportConnectResultParams = withCdpMeta(z.object({ "requestId": z.string(), "handle": z.number().int(), "activeProtocol": z.lazy(() => Protocol).optional() }).passthrough(), "SmartCardEmulation.reportConnectResult.params", "commandParams", { method: "SmartCardEmulation.reportConnectResult" }); export const ReportConnectResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportConnectResult.result", "commandResult", { method: "SmartCardEmulation.reportConnectResult" }); +export const ReportConnectResultCommand = withCdpCommand("SmartCardEmulation.reportConnectResult", ReportConnectResultParams, ReportConnectResultResult); export const ReportDataResultParams = withCdpMeta(z.object({ "requestId": z.string(), "data": z.string() }).passthrough(), "SmartCardEmulation.reportDataResult.params", "commandParams", { method: "SmartCardEmulation.reportDataResult" }); export const ReportDataResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportDataResult.result", "commandResult", { method: "SmartCardEmulation.reportDataResult" }); +export const ReportDataResultCommand = withCdpCommand("SmartCardEmulation.reportDataResult", ReportDataResultParams, ReportDataResultResult); export const ReportStatusResultParams = withCdpMeta(z.object({ "requestId": z.string(), "readerName": z.string(), "state": z.lazy(() => ConnectionState), "atr": z.string(), "protocol": z.lazy(() => Protocol).optional() }).passthrough(), "SmartCardEmulation.reportStatusResult.params", "commandParams", { method: "SmartCardEmulation.reportStatusResult" }); export const ReportStatusResultResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportStatusResult.result", "commandResult", { method: "SmartCardEmulation.reportStatusResult" }); +export const ReportStatusResultCommand = withCdpCommand("SmartCardEmulation.reportStatusResult", ReportStatusResultParams, ReportStatusResultResult); export const ReportErrorParams = withCdpMeta(z.object({ "requestId": z.string(), "resultCode": z.lazy(() => ResultCode) }).passthrough(), "SmartCardEmulation.reportError.params", "commandParams", { method: "SmartCardEmulation.reportError" }); export const ReportErrorResult = withCdpMeta(z.object({ }).passthrough(), "SmartCardEmulation.reportError.result", "commandResult", { method: "SmartCardEmulation.reportError" }); +export const ReportErrorCommand = withCdpCommand("SmartCardEmulation.reportError", ReportErrorParams, ReportErrorResult); export const EstablishContextRequestedEvent = withCdpMeta(z.object({ "requestId": z.string() }).passthrough(), "SmartCardEmulation.establishContextRequested", "event", { phase: "event" }); export const ReleaseContextRequestedEvent = withCdpMeta(z.object({ "requestId": z.string(), "contextId": z.number().int() }).passthrough(), "SmartCardEmulation.releaseContextRequested", "event", { phase: "event" }); export const ListReadersRequestedEvent = withCdpMeta(z.object({ "requestId": z.string(), "contextId": z.number().int() }).passthrough(), "SmartCardEmulation.listReadersRequested", "event", { phase: "event" }); @@ -101,18 +113,18 @@ export const zod = { EndTransactionRequestedEvent: EndTransactionRequestedEvent, } as const; export const commands = { - "SmartCardEmulation.enable": { params: EnableParams, result: EnableResult }, - "SmartCardEmulation.disable": { params: DisableParams, result: DisableResult }, - "SmartCardEmulation.reportEstablishContextResult": { params: ReportEstablishContextResultParams, result: ReportEstablishContextResultResult }, - "SmartCardEmulation.reportReleaseContextResult": { params: ReportReleaseContextResultParams, result: ReportReleaseContextResultResult }, - "SmartCardEmulation.reportListReadersResult": { params: ReportListReadersResultParams, result: ReportListReadersResultResult }, - "SmartCardEmulation.reportGetStatusChangeResult": { params: ReportGetStatusChangeResultParams, result: ReportGetStatusChangeResultResult }, - "SmartCardEmulation.reportBeginTransactionResult": { params: ReportBeginTransactionResultParams, result: ReportBeginTransactionResultResult }, - "SmartCardEmulation.reportPlainResult": { params: ReportPlainResultParams, result: ReportPlainResultResult }, - "SmartCardEmulation.reportConnectResult": { params: ReportConnectResultParams, result: ReportConnectResultResult }, - "SmartCardEmulation.reportDataResult": { params: ReportDataResultParams, result: ReportDataResultResult }, - "SmartCardEmulation.reportStatusResult": { params: ReportStatusResultParams, result: ReportStatusResultResult }, - "SmartCardEmulation.reportError": { params: ReportErrorParams, result: ReportErrorResult }, + "SmartCardEmulation.enable": EnableCommand, + "SmartCardEmulation.disable": DisableCommand, + "SmartCardEmulation.reportEstablishContextResult": ReportEstablishContextResultCommand, + "SmartCardEmulation.reportReleaseContextResult": ReportReleaseContextResultCommand, + "SmartCardEmulation.reportListReadersResult": ReportListReadersResultCommand, + "SmartCardEmulation.reportGetStatusChangeResult": ReportGetStatusChangeResultCommand, + "SmartCardEmulation.reportBeginTransactionResult": ReportBeginTransactionResultCommand, + "SmartCardEmulation.reportPlainResult": ReportPlainResultCommand, + "SmartCardEmulation.reportConnectResult": ReportConnectResultCommand, + "SmartCardEmulation.reportDataResult": ReportDataResultCommand, + "SmartCardEmulation.reportStatusResult": ReportStatusResultCommand, + "SmartCardEmulation.reportError": ReportErrorCommand, } as const; export const events = { "SmartCardEmulation.establishContextRequested": EstablishContextRequestedEvent, diff --git a/js/src/types/generated/zod/Storage.ts b/js/src/types/generated/zod/Storage.ts index 637aafbb..14dc2333 100644 --- a/js/src/types/generated/zod/Storage.ts +++ b/js/src/types/generated/zod/Storage.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Browser from "./Browser.js"; import * as Network from "./Network.js"; import * as Page from "./Page.js"; @@ -29,72 +29,106 @@ export const StorageBucketInfo = withCdpMeta(z.object({ "bucket": z.lazy(() => S export const RelatedWebsiteSet = withCdpMeta(z.object({ "primarySites": z.array(z.string()), "associatedSites": z.array(z.string()), "serviceSites": z.array(z.string()) }).passthrough(), "Storage.RelatedWebsiteSet", "type"); export const GetStorageKeyForFrameParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId) }).passthrough(), "Storage.getStorageKeyForFrame.params", "commandParams", { method: "Storage.getStorageKeyForFrame" }); export const GetStorageKeyForFrameResult = withCdpMeta(z.object({ "storageKey": z.lazy(() => SerializedStorageKey) }).passthrough(), "Storage.getStorageKeyForFrame.result", "commandResult", { method: "Storage.getStorageKeyForFrame" }); +export const GetStorageKeyForFrameCommand = withCdpCommand("Storage.getStorageKeyForFrame", GetStorageKeyForFrameParams, GetStorageKeyForFrameResult); export const GetStorageKeyParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId).optional() }).passthrough(), "Storage.getStorageKey.params", "commandParams", { method: "Storage.getStorageKey" }); export const GetStorageKeyResult = withCdpMeta(z.object({ "storageKey": z.lazy(() => SerializedStorageKey) }).passthrough(), "Storage.getStorageKey.result", "commandResult", { method: "Storage.getStorageKey" }); +export const GetStorageKeyCommand = withCdpCommand("Storage.getStorageKey", GetStorageKeyParams, GetStorageKeyResult); export const ClearDataForOriginParams = withCdpMeta(z.object({ "origin": z.string(), "storageTypes": z.string() }).passthrough(), "Storage.clearDataForOrigin.params", "commandParams", { method: "Storage.clearDataForOrigin" }); export const ClearDataForOriginResult = withCdpMeta(z.object({ }).passthrough(), "Storage.clearDataForOrigin.result", "commandResult", { method: "Storage.clearDataForOrigin" }); +export const ClearDataForOriginCommand = withCdpCommand("Storage.clearDataForOrigin", ClearDataForOriginParams, ClearDataForOriginResult); export const ClearDataForStorageKeyParams = withCdpMeta(z.object({ "storageKey": z.string(), "storageTypes": z.string() }).passthrough(), "Storage.clearDataForStorageKey.params", "commandParams", { method: "Storage.clearDataForStorageKey" }); export const ClearDataForStorageKeyResult = withCdpMeta(z.object({ }).passthrough(), "Storage.clearDataForStorageKey.result", "commandResult", { method: "Storage.clearDataForStorageKey" }); +export const ClearDataForStorageKeyCommand = withCdpCommand("Storage.clearDataForStorageKey", ClearDataForStorageKeyParams, ClearDataForStorageKeyResult); export const GetCookiesParams = withCdpMeta(z.object({ "browserContextId": z.lazy(() => Browser.BrowserContextID).optional() }).passthrough(), "Storage.getCookies.params", "commandParams", { method: "Storage.getCookies" }); export const GetCookiesResult = withCdpMeta(z.object({ "cookies": z.array(z.lazy(() => Network.Cookie)) }).passthrough(), "Storage.getCookies.result", "commandResult", { method: "Storage.getCookies" }); +export const GetCookiesCommand = withCdpCommand("Storage.getCookies", GetCookiesParams, GetCookiesResult); export const SetCookiesParams = withCdpMeta(z.object({ "cookies": z.array(z.lazy(() => Network.CookieParam)), "browserContextId": z.lazy(() => Browser.BrowserContextID).optional() }).passthrough(), "Storage.setCookies.params", "commandParams", { method: "Storage.setCookies" }); export const SetCookiesResult = withCdpMeta(z.object({ }).passthrough(), "Storage.setCookies.result", "commandResult", { method: "Storage.setCookies" }); +export const SetCookiesCommand = withCdpCommand("Storage.setCookies", SetCookiesParams, SetCookiesResult); export const ClearCookiesParams = withCdpMeta(z.object({ "browserContextId": z.lazy(() => Browser.BrowserContextID).optional() }).passthrough(), "Storage.clearCookies.params", "commandParams", { method: "Storage.clearCookies" }); export const ClearCookiesResult = withCdpMeta(z.object({ }).passthrough(), "Storage.clearCookies.result", "commandResult", { method: "Storage.clearCookies" }); +export const ClearCookiesCommand = withCdpCommand("Storage.clearCookies", ClearCookiesParams, ClearCookiesResult); export const GetUsageAndQuotaParams = withCdpMeta(z.object({ "origin": z.string() }).passthrough(), "Storage.getUsageAndQuota.params", "commandParams", { method: "Storage.getUsageAndQuota" }); export const GetUsageAndQuotaResult = withCdpMeta(z.object({ "usage": z.number(), "quota": z.number(), "overrideActive": z.boolean(), "usageBreakdown": z.array(z.lazy(() => UsageForType)) }).passthrough(), "Storage.getUsageAndQuota.result", "commandResult", { method: "Storage.getUsageAndQuota" }); +export const GetUsageAndQuotaCommand = withCdpCommand("Storage.getUsageAndQuota", GetUsageAndQuotaParams, GetUsageAndQuotaResult); export const OverrideQuotaForOriginParams = withCdpMeta(z.object({ "origin": z.string(), "quotaSize": z.number().optional() }).passthrough(), "Storage.overrideQuotaForOrigin.params", "commandParams", { method: "Storage.overrideQuotaForOrigin" }); export const OverrideQuotaForOriginResult = withCdpMeta(z.object({ }).passthrough(), "Storage.overrideQuotaForOrigin.result", "commandResult", { method: "Storage.overrideQuotaForOrigin" }); +export const OverrideQuotaForOriginCommand = withCdpCommand("Storage.overrideQuotaForOrigin", OverrideQuotaForOriginParams, OverrideQuotaForOriginResult); export const TrackCacheStorageForOriginParams = withCdpMeta(z.object({ "origin": z.string() }).passthrough(), "Storage.trackCacheStorageForOrigin.params", "commandParams", { method: "Storage.trackCacheStorageForOrigin" }); export const TrackCacheStorageForOriginResult = withCdpMeta(z.object({ }).passthrough(), "Storage.trackCacheStorageForOrigin.result", "commandResult", { method: "Storage.trackCacheStorageForOrigin" }); +export const TrackCacheStorageForOriginCommand = withCdpCommand("Storage.trackCacheStorageForOrigin", TrackCacheStorageForOriginParams, TrackCacheStorageForOriginResult); export const TrackCacheStorageForStorageKeyParams = withCdpMeta(z.object({ "storageKey": z.string() }).passthrough(), "Storage.trackCacheStorageForStorageKey.params", "commandParams", { method: "Storage.trackCacheStorageForStorageKey" }); export const TrackCacheStorageForStorageKeyResult = withCdpMeta(z.object({ }).passthrough(), "Storage.trackCacheStorageForStorageKey.result", "commandResult", { method: "Storage.trackCacheStorageForStorageKey" }); +export const TrackCacheStorageForStorageKeyCommand = withCdpCommand("Storage.trackCacheStorageForStorageKey", TrackCacheStorageForStorageKeyParams, TrackCacheStorageForStorageKeyResult); export const TrackIndexedDBForOriginParams = withCdpMeta(z.object({ "origin": z.string() }).passthrough(), "Storage.trackIndexedDBForOrigin.params", "commandParams", { method: "Storage.trackIndexedDBForOrigin" }); export const TrackIndexedDBForOriginResult = withCdpMeta(z.object({ }).passthrough(), "Storage.trackIndexedDBForOrigin.result", "commandResult", { method: "Storage.trackIndexedDBForOrigin" }); +export const TrackIndexedDBForOriginCommand = withCdpCommand("Storage.trackIndexedDBForOrigin", TrackIndexedDBForOriginParams, TrackIndexedDBForOriginResult); export const TrackIndexedDBForStorageKeyParams = withCdpMeta(z.object({ "storageKey": z.string() }).passthrough(), "Storage.trackIndexedDBForStorageKey.params", "commandParams", { method: "Storage.trackIndexedDBForStorageKey" }); export const TrackIndexedDBForStorageKeyResult = withCdpMeta(z.object({ }).passthrough(), "Storage.trackIndexedDBForStorageKey.result", "commandResult", { method: "Storage.trackIndexedDBForStorageKey" }); +export const TrackIndexedDBForStorageKeyCommand = withCdpCommand("Storage.trackIndexedDBForStorageKey", TrackIndexedDBForStorageKeyParams, TrackIndexedDBForStorageKeyResult); export const UntrackCacheStorageForOriginParams = withCdpMeta(z.object({ "origin": z.string() }).passthrough(), "Storage.untrackCacheStorageForOrigin.params", "commandParams", { method: "Storage.untrackCacheStorageForOrigin" }); export const UntrackCacheStorageForOriginResult = withCdpMeta(z.object({ }).passthrough(), "Storage.untrackCacheStorageForOrigin.result", "commandResult", { method: "Storage.untrackCacheStorageForOrigin" }); +export const UntrackCacheStorageForOriginCommand = withCdpCommand("Storage.untrackCacheStorageForOrigin", UntrackCacheStorageForOriginParams, UntrackCacheStorageForOriginResult); export const UntrackCacheStorageForStorageKeyParams = withCdpMeta(z.object({ "storageKey": z.string() }).passthrough(), "Storage.untrackCacheStorageForStorageKey.params", "commandParams", { method: "Storage.untrackCacheStorageForStorageKey" }); export const UntrackCacheStorageForStorageKeyResult = withCdpMeta(z.object({ }).passthrough(), "Storage.untrackCacheStorageForStorageKey.result", "commandResult", { method: "Storage.untrackCacheStorageForStorageKey" }); +export const UntrackCacheStorageForStorageKeyCommand = withCdpCommand("Storage.untrackCacheStorageForStorageKey", UntrackCacheStorageForStorageKeyParams, UntrackCacheStorageForStorageKeyResult); export const UntrackIndexedDBForOriginParams = withCdpMeta(z.object({ "origin": z.string() }).passthrough(), "Storage.untrackIndexedDBForOrigin.params", "commandParams", { method: "Storage.untrackIndexedDBForOrigin" }); export const UntrackIndexedDBForOriginResult = withCdpMeta(z.object({ }).passthrough(), "Storage.untrackIndexedDBForOrigin.result", "commandResult", { method: "Storage.untrackIndexedDBForOrigin" }); +export const UntrackIndexedDBForOriginCommand = withCdpCommand("Storage.untrackIndexedDBForOrigin", UntrackIndexedDBForOriginParams, UntrackIndexedDBForOriginResult); export const UntrackIndexedDBForStorageKeyParams = withCdpMeta(z.object({ "storageKey": z.string() }).passthrough(), "Storage.untrackIndexedDBForStorageKey.params", "commandParams", { method: "Storage.untrackIndexedDBForStorageKey" }); export const UntrackIndexedDBForStorageKeyResult = withCdpMeta(z.object({ }).passthrough(), "Storage.untrackIndexedDBForStorageKey.result", "commandResult", { method: "Storage.untrackIndexedDBForStorageKey" }); +export const UntrackIndexedDBForStorageKeyCommand = withCdpCommand("Storage.untrackIndexedDBForStorageKey", UntrackIndexedDBForStorageKeyParams, UntrackIndexedDBForStorageKeyResult); export const GetTrustTokensParams = withCdpMeta(z.object({ }).passthrough(), "Storage.getTrustTokens.params", "commandParams", { method: "Storage.getTrustTokens" }); export const GetTrustTokensResult = withCdpMeta(z.object({ "tokens": z.array(z.lazy(() => TrustTokens)) }).passthrough(), "Storage.getTrustTokens.result", "commandResult", { method: "Storage.getTrustTokens" }); +export const GetTrustTokensCommand = withCdpCommand("Storage.getTrustTokens", GetTrustTokensParams, GetTrustTokensResult); export const ClearTrustTokensParams = withCdpMeta(z.object({ "issuerOrigin": z.string() }).passthrough(), "Storage.clearTrustTokens.params", "commandParams", { method: "Storage.clearTrustTokens" }); export const ClearTrustTokensResult = withCdpMeta(z.object({ "didDeleteTokens": z.boolean() }).passthrough(), "Storage.clearTrustTokens.result", "commandResult", { method: "Storage.clearTrustTokens" }); +export const ClearTrustTokensCommand = withCdpCommand("Storage.clearTrustTokens", ClearTrustTokensParams, ClearTrustTokensResult); export const GetInterestGroupDetailsParams = withCdpMeta(z.object({ "ownerOrigin": z.string(), "name": z.string() }).passthrough(), "Storage.getInterestGroupDetails.params", "commandParams", { method: "Storage.getInterestGroupDetails" }); export const GetInterestGroupDetailsResult = withCdpMeta(z.object({ "details": z.record(z.string(), z.unknown()) }).passthrough(), "Storage.getInterestGroupDetails.result", "commandResult", { method: "Storage.getInterestGroupDetails" }); +export const GetInterestGroupDetailsCommand = withCdpCommand("Storage.getInterestGroupDetails", GetInterestGroupDetailsParams, GetInterestGroupDetailsResult); export const SetInterestGroupTrackingParams = withCdpMeta(z.object({ "enable": z.boolean() }).passthrough(), "Storage.setInterestGroupTracking.params", "commandParams", { method: "Storage.setInterestGroupTracking" }); export const SetInterestGroupTrackingResult = withCdpMeta(z.object({ }).passthrough(), "Storage.setInterestGroupTracking.result", "commandResult", { method: "Storage.setInterestGroupTracking" }); +export const SetInterestGroupTrackingCommand = withCdpCommand("Storage.setInterestGroupTracking", SetInterestGroupTrackingParams, SetInterestGroupTrackingResult); export const SetInterestGroupAuctionTrackingParams = withCdpMeta(z.object({ "enable": z.boolean() }).passthrough(), "Storage.setInterestGroupAuctionTracking.params", "commandParams", { method: "Storage.setInterestGroupAuctionTracking" }); export const SetInterestGroupAuctionTrackingResult = withCdpMeta(z.object({ }).passthrough(), "Storage.setInterestGroupAuctionTracking.result", "commandResult", { method: "Storage.setInterestGroupAuctionTracking" }); +export const SetInterestGroupAuctionTrackingCommand = withCdpCommand("Storage.setInterestGroupAuctionTracking", SetInterestGroupAuctionTrackingParams, SetInterestGroupAuctionTrackingResult); export const GetSharedStorageMetadataParams = withCdpMeta(z.object({ "ownerOrigin": z.string() }).passthrough(), "Storage.getSharedStorageMetadata.params", "commandParams", { method: "Storage.getSharedStorageMetadata" }); export const GetSharedStorageMetadataResult = withCdpMeta(z.object({ "metadata": z.lazy(() => SharedStorageMetadata) }).passthrough(), "Storage.getSharedStorageMetadata.result", "commandResult", { method: "Storage.getSharedStorageMetadata" }); +export const GetSharedStorageMetadataCommand = withCdpCommand("Storage.getSharedStorageMetadata", GetSharedStorageMetadataParams, GetSharedStorageMetadataResult); export const GetSharedStorageEntriesParams = withCdpMeta(z.object({ "ownerOrigin": z.string() }).passthrough(), "Storage.getSharedStorageEntries.params", "commandParams", { method: "Storage.getSharedStorageEntries" }); export const GetSharedStorageEntriesResult = withCdpMeta(z.object({ "entries": z.array(z.lazy(() => SharedStorageEntry)) }).passthrough(), "Storage.getSharedStorageEntries.result", "commandResult", { method: "Storage.getSharedStorageEntries" }); +export const GetSharedStorageEntriesCommand = withCdpCommand("Storage.getSharedStorageEntries", GetSharedStorageEntriesParams, GetSharedStorageEntriesResult); export const SetSharedStorageEntryParams = withCdpMeta(z.object({ "ownerOrigin": z.string(), "key": z.string(), "value": z.string(), "ignoreIfPresent": z.boolean().optional() }).passthrough(), "Storage.setSharedStorageEntry.params", "commandParams", { method: "Storage.setSharedStorageEntry" }); export const SetSharedStorageEntryResult = withCdpMeta(z.object({ }).passthrough(), "Storage.setSharedStorageEntry.result", "commandResult", { method: "Storage.setSharedStorageEntry" }); +export const SetSharedStorageEntryCommand = withCdpCommand("Storage.setSharedStorageEntry", SetSharedStorageEntryParams, SetSharedStorageEntryResult); export const DeleteSharedStorageEntryParams = withCdpMeta(z.object({ "ownerOrigin": z.string(), "key": z.string() }).passthrough(), "Storage.deleteSharedStorageEntry.params", "commandParams", { method: "Storage.deleteSharedStorageEntry" }); export const DeleteSharedStorageEntryResult = withCdpMeta(z.object({ }).passthrough(), "Storage.deleteSharedStorageEntry.result", "commandResult", { method: "Storage.deleteSharedStorageEntry" }); +export const DeleteSharedStorageEntryCommand = withCdpCommand("Storage.deleteSharedStorageEntry", DeleteSharedStorageEntryParams, DeleteSharedStorageEntryResult); export const ClearSharedStorageEntriesParams = withCdpMeta(z.object({ "ownerOrigin": z.string() }).passthrough(), "Storage.clearSharedStorageEntries.params", "commandParams", { method: "Storage.clearSharedStorageEntries" }); export const ClearSharedStorageEntriesResult = withCdpMeta(z.object({ }).passthrough(), "Storage.clearSharedStorageEntries.result", "commandResult", { method: "Storage.clearSharedStorageEntries" }); +export const ClearSharedStorageEntriesCommand = withCdpCommand("Storage.clearSharedStorageEntries", ClearSharedStorageEntriesParams, ClearSharedStorageEntriesResult); export const ResetSharedStorageBudgetParams = withCdpMeta(z.object({ "ownerOrigin": z.string() }).passthrough(), "Storage.resetSharedStorageBudget.params", "commandParams", { method: "Storage.resetSharedStorageBudget" }); export const ResetSharedStorageBudgetResult = withCdpMeta(z.object({ }).passthrough(), "Storage.resetSharedStorageBudget.result", "commandResult", { method: "Storage.resetSharedStorageBudget" }); +export const ResetSharedStorageBudgetCommand = withCdpCommand("Storage.resetSharedStorageBudget", ResetSharedStorageBudgetParams, ResetSharedStorageBudgetResult); export const SetSharedStorageTrackingParams = withCdpMeta(z.object({ "enable": z.boolean() }).passthrough(), "Storage.setSharedStorageTracking.params", "commandParams", { method: "Storage.setSharedStorageTracking" }); export const SetSharedStorageTrackingResult = withCdpMeta(z.object({ }).passthrough(), "Storage.setSharedStorageTracking.result", "commandResult", { method: "Storage.setSharedStorageTracking" }); +export const SetSharedStorageTrackingCommand = withCdpCommand("Storage.setSharedStorageTracking", SetSharedStorageTrackingParams, SetSharedStorageTrackingResult); export const SetStorageBucketTrackingParams = withCdpMeta(z.object({ "storageKey": z.string(), "enable": z.boolean() }).passthrough(), "Storage.setStorageBucketTracking.params", "commandParams", { method: "Storage.setStorageBucketTracking" }); export const SetStorageBucketTrackingResult = withCdpMeta(z.object({ }).passthrough(), "Storage.setStorageBucketTracking.result", "commandResult", { method: "Storage.setStorageBucketTracking" }); +export const SetStorageBucketTrackingCommand = withCdpCommand("Storage.setStorageBucketTracking", SetStorageBucketTrackingParams, SetStorageBucketTrackingResult); export const DeleteStorageBucketParams = withCdpMeta(z.object({ "bucket": z.lazy(() => StorageBucket) }).passthrough(), "Storage.deleteStorageBucket.params", "commandParams", { method: "Storage.deleteStorageBucket" }); export const DeleteStorageBucketResult = withCdpMeta(z.object({ }).passthrough(), "Storage.deleteStorageBucket.result", "commandResult", { method: "Storage.deleteStorageBucket" }); +export const DeleteStorageBucketCommand = withCdpCommand("Storage.deleteStorageBucket", DeleteStorageBucketParams, DeleteStorageBucketResult); export const RunBounceTrackingMitigationsParams = withCdpMeta(z.object({ }).passthrough(), "Storage.runBounceTrackingMitigations.params", "commandParams", { method: "Storage.runBounceTrackingMitigations" }); export const RunBounceTrackingMitigationsResult = withCdpMeta(z.object({ "deletedSites": z.array(z.string()) }).passthrough(), "Storage.runBounceTrackingMitigations.result", "commandResult", { method: "Storage.runBounceTrackingMitigations" }); +export const RunBounceTrackingMitigationsCommand = withCdpCommand("Storage.runBounceTrackingMitigations", RunBounceTrackingMitigationsParams, RunBounceTrackingMitigationsResult); export const GetRelatedWebsiteSetsParams = withCdpMeta(z.object({ }).passthrough(), "Storage.getRelatedWebsiteSets.params", "commandParams", { method: "Storage.getRelatedWebsiteSets" }); export const GetRelatedWebsiteSetsResult = withCdpMeta(z.object({ "sets": z.array(z.lazy(() => RelatedWebsiteSet)) }).passthrough(), "Storage.getRelatedWebsiteSets.result", "commandResult", { method: "Storage.getRelatedWebsiteSets" }); +export const GetRelatedWebsiteSetsCommand = withCdpCommand("Storage.getRelatedWebsiteSets", GetRelatedWebsiteSetsParams, GetRelatedWebsiteSetsResult); export const SetProtectedAudienceKAnonymityParams = withCdpMeta(z.object({ "owner": z.string(), "name": z.string(), "hashes": z.array(z.string()) }).passthrough(), "Storage.setProtectedAudienceKAnonymity.params", "commandParams", { method: "Storage.setProtectedAudienceKAnonymity" }); export const SetProtectedAudienceKAnonymityResult = withCdpMeta(z.object({ }).passthrough(), "Storage.setProtectedAudienceKAnonymity.result", "commandResult", { method: "Storage.setProtectedAudienceKAnonymity" }); +export const SetProtectedAudienceKAnonymityCommand = withCdpCommand("Storage.setProtectedAudienceKAnonymity", SetProtectedAudienceKAnonymityParams, SetProtectedAudienceKAnonymityResult); export const CacheStorageContentUpdatedEvent = withCdpMeta(z.object({ "origin": z.string(), "storageKey": z.string(), "bucketId": z.string(), "cacheName": z.string() }).passthrough(), "Storage.cacheStorageContentUpdated", "event", { phase: "event" }); export const CacheStorageListUpdatedEvent = withCdpMeta(z.object({ "origin": z.string(), "storageKey": z.string(), "bucketId": z.string() }).passthrough(), "Storage.cacheStorageListUpdated", "event", { phase: "event" }); export const IndexedDBContentUpdatedEvent = withCdpMeta(z.object({ "origin": z.string(), "storageKey": z.string(), "bucketId": z.string(), "databaseName": z.string(), "objectStoreName": z.string() }).passthrough(), "Storage.indexedDBContentUpdated", "event", { phase: "event" }); @@ -209,40 +243,40 @@ export const zod = { StorageBucketDeletedEvent: StorageBucketDeletedEvent, } as const; export const commands = { - "Storage.getStorageKeyForFrame": { params: GetStorageKeyForFrameParams, result: GetStorageKeyForFrameResult }, - "Storage.getStorageKey": { params: GetStorageKeyParams, result: GetStorageKeyResult }, - "Storage.clearDataForOrigin": { params: ClearDataForOriginParams, result: ClearDataForOriginResult }, - "Storage.clearDataForStorageKey": { params: ClearDataForStorageKeyParams, result: ClearDataForStorageKeyResult }, - "Storage.getCookies": { params: GetCookiesParams, result: GetCookiesResult }, - "Storage.setCookies": { params: SetCookiesParams, result: SetCookiesResult }, - "Storage.clearCookies": { params: ClearCookiesParams, result: ClearCookiesResult }, - "Storage.getUsageAndQuota": { params: GetUsageAndQuotaParams, result: GetUsageAndQuotaResult }, - "Storage.overrideQuotaForOrigin": { params: OverrideQuotaForOriginParams, result: OverrideQuotaForOriginResult }, - "Storage.trackCacheStorageForOrigin": { params: TrackCacheStorageForOriginParams, result: TrackCacheStorageForOriginResult }, - "Storage.trackCacheStorageForStorageKey": { params: TrackCacheStorageForStorageKeyParams, result: TrackCacheStorageForStorageKeyResult }, - "Storage.trackIndexedDBForOrigin": { params: TrackIndexedDBForOriginParams, result: TrackIndexedDBForOriginResult }, - "Storage.trackIndexedDBForStorageKey": { params: TrackIndexedDBForStorageKeyParams, result: TrackIndexedDBForStorageKeyResult }, - "Storage.untrackCacheStorageForOrigin": { params: UntrackCacheStorageForOriginParams, result: UntrackCacheStorageForOriginResult }, - "Storage.untrackCacheStorageForStorageKey": { params: UntrackCacheStorageForStorageKeyParams, result: UntrackCacheStorageForStorageKeyResult }, - "Storage.untrackIndexedDBForOrigin": { params: UntrackIndexedDBForOriginParams, result: UntrackIndexedDBForOriginResult }, - "Storage.untrackIndexedDBForStorageKey": { params: UntrackIndexedDBForStorageKeyParams, result: UntrackIndexedDBForStorageKeyResult }, - "Storage.getTrustTokens": { params: GetTrustTokensParams, result: GetTrustTokensResult }, - "Storage.clearTrustTokens": { params: ClearTrustTokensParams, result: ClearTrustTokensResult }, - "Storage.getInterestGroupDetails": { params: GetInterestGroupDetailsParams, result: GetInterestGroupDetailsResult }, - "Storage.setInterestGroupTracking": { params: SetInterestGroupTrackingParams, result: SetInterestGroupTrackingResult }, - "Storage.setInterestGroupAuctionTracking": { params: SetInterestGroupAuctionTrackingParams, result: SetInterestGroupAuctionTrackingResult }, - "Storage.getSharedStorageMetadata": { params: GetSharedStorageMetadataParams, result: GetSharedStorageMetadataResult }, - "Storage.getSharedStorageEntries": { params: GetSharedStorageEntriesParams, result: GetSharedStorageEntriesResult }, - "Storage.setSharedStorageEntry": { params: SetSharedStorageEntryParams, result: SetSharedStorageEntryResult }, - "Storage.deleteSharedStorageEntry": { params: DeleteSharedStorageEntryParams, result: DeleteSharedStorageEntryResult }, - "Storage.clearSharedStorageEntries": { params: ClearSharedStorageEntriesParams, result: ClearSharedStorageEntriesResult }, - "Storage.resetSharedStorageBudget": { params: ResetSharedStorageBudgetParams, result: ResetSharedStorageBudgetResult }, - "Storage.setSharedStorageTracking": { params: SetSharedStorageTrackingParams, result: SetSharedStorageTrackingResult }, - "Storage.setStorageBucketTracking": { params: SetStorageBucketTrackingParams, result: SetStorageBucketTrackingResult }, - "Storage.deleteStorageBucket": { params: DeleteStorageBucketParams, result: DeleteStorageBucketResult }, - "Storage.runBounceTrackingMitigations": { params: RunBounceTrackingMitigationsParams, result: RunBounceTrackingMitigationsResult }, - "Storage.getRelatedWebsiteSets": { params: GetRelatedWebsiteSetsParams, result: GetRelatedWebsiteSetsResult }, - "Storage.setProtectedAudienceKAnonymity": { params: SetProtectedAudienceKAnonymityParams, result: SetProtectedAudienceKAnonymityResult }, + "Storage.getStorageKeyForFrame": GetStorageKeyForFrameCommand, + "Storage.getStorageKey": GetStorageKeyCommand, + "Storage.clearDataForOrigin": ClearDataForOriginCommand, + "Storage.clearDataForStorageKey": ClearDataForStorageKeyCommand, + "Storage.getCookies": GetCookiesCommand, + "Storage.setCookies": SetCookiesCommand, + "Storage.clearCookies": ClearCookiesCommand, + "Storage.getUsageAndQuota": GetUsageAndQuotaCommand, + "Storage.overrideQuotaForOrigin": OverrideQuotaForOriginCommand, + "Storage.trackCacheStorageForOrigin": TrackCacheStorageForOriginCommand, + "Storage.trackCacheStorageForStorageKey": TrackCacheStorageForStorageKeyCommand, + "Storage.trackIndexedDBForOrigin": TrackIndexedDBForOriginCommand, + "Storage.trackIndexedDBForStorageKey": TrackIndexedDBForStorageKeyCommand, + "Storage.untrackCacheStorageForOrigin": UntrackCacheStorageForOriginCommand, + "Storage.untrackCacheStorageForStorageKey": UntrackCacheStorageForStorageKeyCommand, + "Storage.untrackIndexedDBForOrigin": UntrackIndexedDBForOriginCommand, + "Storage.untrackIndexedDBForStorageKey": UntrackIndexedDBForStorageKeyCommand, + "Storage.getTrustTokens": GetTrustTokensCommand, + "Storage.clearTrustTokens": ClearTrustTokensCommand, + "Storage.getInterestGroupDetails": GetInterestGroupDetailsCommand, + "Storage.setInterestGroupTracking": SetInterestGroupTrackingCommand, + "Storage.setInterestGroupAuctionTracking": SetInterestGroupAuctionTrackingCommand, + "Storage.getSharedStorageMetadata": GetSharedStorageMetadataCommand, + "Storage.getSharedStorageEntries": GetSharedStorageEntriesCommand, + "Storage.setSharedStorageEntry": SetSharedStorageEntryCommand, + "Storage.deleteSharedStorageEntry": DeleteSharedStorageEntryCommand, + "Storage.clearSharedStorageEntries": ClearSharedStorageEntriesCommand, + "Storage.resetSharedStorageBudget": ResetSharedStorageBudgetCommand, + "Storage.setSharedStorageTracking": SetSharedStorageTrackingCommand, + "Storage.setStorageBucketTracking": SetStorageBucketTrackingCommand, + "Storage.deleteStorageBucket": DeleteStorageBucketCommand, + "Storage.runBounceTrackingMitigations": RunBounceTrackingMitigationsCommand, + "Storage.getRelatedWebsiteSets": GetRelatedWebsiteSetsCommand, + "Storage.setProtectedAudienceKAnonymity": SetProtectedAudienceKAnonymityCommand, } as const; export const events = { "Storage.cacheStorageContentUpdated": CacheStorageContentUpdatedEvent, diff --git a/js/src/types/generated/zod/SystemInfo.ts b/js/src/types/generated/zod/SystemInfo.ts index d66b96ad..b3d7883d 100644 --- a/js/src/types/generated/zod/SystemInfo.ts +++ b/js/src/types/generated/zod/SystemInfo.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const GPUDevice = withCdpMeta(z.object({ "vendorId": z.number(), "deviceId": z.number(), "subSysId": z.number().optional(), "revision": z.number().optional(), "vendorString": z.string(), "deviceString": z.string(), "driverVendor": z.string(), "driverVersion": z.string() }).passthrough(), "SystemInfo.GPUDevice", "type"); export const Size = withCdpMeta(z.object({ "width": z.number().int(), "height": z.number().int() }).passthrough(), "SystemInfo.Size", "type"); @@ -13,10 +13,13 @@ export const GPUInfo = withCdpMeta(z.object({ "devices": z.array(z.lazy(() => GP export const ProcessInfo = withCdpMeta(z.object({ "type": z.string(), "id": z.number().int(), "cpuTime": z.number() }).passthrough(), "SystemInfo.ProcessInfo", "type"); export const GetInfoParams = withCdpMeta(z.object({ }).passthrough(), "SystemInfo.getInfo.params", "commandParams", { method: "SystemInfo.getInfo" }); export const GetInfoResult = withCdpMeta(z.object({ "gpu": z.lazy(() => GPUInfo), "modelName": z.string(), "modelVersion": z.string(), "commandLine": z.string() }).passthrough(), "SystemInfo.getInfo.result", "commandResult", { method: "SystemInfo.getInfo" }); +export const GetInfoCommand = withCdpCommand("SystemInfo.getInfo", GetInfoParams, GetInfoResult); export const GetFeatureStateParams = withCdpMeta(z.object({ "featureState": z.string() }).passthrough(), "SystemInfo.getFeatureState.params", "commandParams", { method: "SystemInfo.getFeatureState" }); export const GetFeatureStateResult = withCdpMeta(z.object({ "featureEnabled": z.boolean() }).passthrough(), "SystemInfo.getFeatureState.result", "commandResult", { method: "SystemInfo.getFeatureState" }); +export const GetFeatureStateCommand = withCdpCommand("SystemInfo.getFeatureState", GetFeatureStateParams, GetFeatureStateResult); export const GetProcessInfoParams = withCdpMeta(z.object({ }).passthrough(), "SystemInfo.getProcessInfo.params", "commandParams", { method: "SystemInfo.getProcessInfo" }); export const GetProcessInfoResult = withCdpMeta(z.object({ "processInfo": z.array(z.lazy(() => ProcessInfo)) }).passthrough(), "SystemInfo.getProcessInfo.result", "commandResult", { method: "SystemInfo.getProcessInfo" }); +export const GetProcessInfoCommand = withCdpCommand("SystemInfo.getProcessInfo", GetProcessInfoParams, GetProcessInfoResult); export const zod = { GPUDevice: GPUDevice, @@ -35,9 +38,9 @@ export const zod = { GetProcessInfoResult: GetProcessInfoResult, } as const; export const commands = { - "SystemInfo.getInfo": { params: GetInfoParams, result: GetInfoResult }, - "SystemInfo.getFeatureState": { params: GetFeatureStateParams, result: GetFeatureStateResult }, - "SystemInfo.getProcessInfo": { params: GetProcessInfoParams, result: GetProcessInfoResult }, + "SystemInfo.getInfo": GetInfoCommand, + "SystemInfo.getFeatureState": GetFeatureStateCommand, + "SystemInfo.getProcessInfo": GetProcessInfoCommand, } as const; export const events = { } as const; diff --git a/js/src/types/generated/zod/Target.ts b/js/src/types/generated/zod/Target.ts index baeb0c2d..45232c19 100644 --- a/js/src/types/generated/zod/Target.ts +++ b/js/src/types/generated/zod/Target.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as Browser from "./Browser.js"; import * as Page from "./Page.js"; @@ -14,42 +14,61 @@ export const RemoteLocation = withCdpMeta(z.object({ "host": z.string(), "port": export const WindowState = withCdpMeta(z.enum(["normal", "minimized", "maximized", "fullscreen"]), "Target.WindowState", "type"); export const ActivateTargetParams = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID) }).passthrough(), "Target.activateTarget.params", "commandParams", { method: "Target.activateTarget" }); export const ActivateTargetResult = withCdpMeta(z.object({ }).passthrough(), "Target.activateTarget.result", "commandResult", { method: "Target.activateTarget" }); +export const ActivateTargetCommand = withCdpCommand("Target.activateTarget", ActivateTargetParams, ActivateTargetResult); export const AttachToTargetParams = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID), "flatten": z.boolean().optional() }).passthrough(), "Target.attachToTarget.params", "commandParams", { method: "Target.attachToTarget" }); export const AttachToTargetResult = withCdpMeta(z.object({ "sessionId": z.lazy(() => SessionID) }).passthrough(), "Target.attachToTarget.result", "commandResult", { method: "Target.attachToTarget" }); +export const AttachToTargetCommand = withCdpCommand("Target.attachToTarget", AttachToTargetParams, AttachToTargetResult); export const AttachToBrowserTargetParams = withCdpMeta(z.object({ }).passthrough(), "Target.attachToBrowserTarget.params", "commandParams", { method: "Target.attachToBrowserTarget" }); export const AttachToBrowserTargetResult = withCdpMeta(z.object({ "sessionId": z.lazy(() => SessionID) }).passthrough(), "Target.attachToBrowserTarget.result", "commandResult", { method: "Target.attachToBrowserTarget" }); +export const AttachToBrowserTargetCommand = withCdpCommand("Target.attachToBrowserTarget", AttachToBrowserTargetParams, AttachToBrowserTargetResult); export const CloseTargetParams = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID) }).passthrough(), "Target.closeTarget.params", "commandParams", { method: "Target.closeTarget" }); export const CloseTargetResult = withCdpMeta(z.object({ "success": z.boolean() }).passthrough(), "Target.closeTarget.result", "commandResult", { method: "Target.closeTarget" }); +export const CloseTargetCommand = withCdpCommand("Target.closeTarget", CloseTargetParams, CloseTargetResult); export const ExposeDevToolsProtocolParams = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID), "bindingName": z.string().optional(), "inheritPermissions": z.boolean().optional() }).passthrough(), "Target.exposeDevToolsProtocol.params", "commandParams", { method: "Target.exposeDevToolsProtocol" }); export const ExposeDevToolsProtocolResult = withCdpMeta(z.object({ }).passthrough(), "Target.exposeDevToolsProtocol.result", "commandResult", { method: "Target.exposeDevToolsProtocol" }); +export const ExposeDevToolsProtocolCommand = withCdpCommand("Target.exposeDevToolsProtocol", ExposeDevToolsProtocolParams, ExposeDevToolsProtocolResult); export const CreateBrowserContextParams = withCdpMeta(z.object({ "disposeOnDetach": z.boolean().optional(), "proxyServer": z.string().optional(), "proxyBypassList": z.string().optional(), "originsWithUniversalNetworkAccess": z.array(z.string()).optional() }).passthrough(), "Target.createBrowserContext.params", "commandParams", { method: "Target.createBrowserContext" }); export const CreateBrowserContextResult = withCdpMeta(z.object({ "browserContextId": z.lazy(() => Browser.BrowserContextID) }).passthrough(), "Target.createBrowserContext.result", "commandResult", { method: "Target.createBrowserContext" }); +export const CreateBrowserContextCommand = withCdpCommand("Target.createBrowserContext", CreateBrowserContextParams, CreateBrowserContextResult); export const GetBrowserContextsParams = withCdpMeta(z.object({ }).passthrough(), "Target.getBrowserContexts.params", "commandParams", { method: "Target.getBrowserContexts" }); export const GetBrowserContextsResult = withCdpMeta(z.object({ "browserContextIds": z.array(z.lazy(() => Browser.BrowserContextID)), "defaultBrowserContextId": z.lazy(() => Browser.BrowserContextID).optional() }).passthrough(), "Target.getBrowserContexts.result", "commandResult", { method: "Target.getBrowserContexts" }); +export const GetBrowserContextsCommand = withCdpCommand("Target.getBrowserContexts", GetBrowserContextsParams, GetBrowserContextsResult); export const CreateTargetParams = withCdpMeta(z.object({ "url": z.string(), "left": z.number().int().optional(), "top": z.number().int().optional(), "width": z.number().int().optional(), "height": z.number().int().optional(), "windowState": z.lazy(() => WindowState).optional(), "browserContextId": z.lazy(() => Browser.BrowserContextID).optional(), "enableBeginFrameControl": z.boolean().optional(), "newWindow": z.boolean().optional(), "background": z.boolean().optional(), "forTab": z.boolean().optional(), "hidden": z.boolean().optional(), "focus": z.boolean().optional() }).passthrough(), "Target.createTarget.params", "commandParams", { method: "Target.createTarget" }); export const CreateTargetResult = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID) }).passthrough(), "Target.createTarget.result", "commandResult", { method: "Target.createTarget" }); +export const CreateTargetCommand = withCdpCommand("Target.createTarget", CreateTargetParams, CreateTargetResult); export const DetachFromTargetParams = withCdpMeta(z.object({ "sessionId": z.lazy(() => SessionID).optional(), "targetId": z.lazy(() => TargetID).optional() }).passthrough(), "Target.detachFromTarget.params", "commandParams", { method: "Target.detachFromTarget" }); export const DetachFromTargetResult = withCdpMeta(z.object({ }).passthrough(), "Target.detachFromTarget.result", "commandResult", { method: "Target.detachFromTarget" }); +export const DetachFromTargetCommand = withCdpCommand("Target.detachFromTarget", DetachFromTargetParams, DetachFromTargetResult); export const DisposeBrowserContextParams = withCdpMeta(z.object({ "browserContextId": z.lazy(() => Browser.BrowserContextID) }).passthrough(), "Target.disposeBrowserContext.params", "commandParams", { method: "Target.disposeBrowserContext" }); export const DisposeBrowserContextResult = withCdpMeta(z.object({ }).passthrough(), "Target.disposeBrowserContext.result", "commandResult", { method: "Target.disposeBrowserContext" }); +export const DisposeBrowserContextCommand = withCdpCommand("Target.disposeBrowserContext", DisposeBrowserContextParams, DisposeBrowserContextResult); export const GetTargetInfoParams = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID).optional() }).passthrough(), "Target.getTargetInfo.params", "commandParams", { method: "Target.getTargetInfo" }); export const GetTargetInfoResult = withCdpMeta(z.object({ "targetInfo": z.lazy(() => TargetInfo) }).passthrough(), "Target.getTargetInfo.result", "commandResult", { method: "Target.getTargetInfo" }); +export const GetTargetInfoCommand = withCdpCommand("Target.getTargetInfo", GetTargetInfoParams, GetTargetInfoResult); export const GetTargetsParams = withCdpMeta(z.object({ "filter": z.lazy(() => TargetFilter).optional() }).passthrough(), "Target.getTargets.params", "commandParams", { method: "Target.getTargets" }); export const GetTargetsResult = withCdpMeta(z.object({ "targetInfos": z.array(z.lazy(() => TargetInfo)) }).passthrough(), "Target.getTargets.result", "commandResult", { method: "Target.getTargets" }); +export const GetTargetsCommand = withCdpCommand("Target.getTargets", GetTargetsParams, GetTargetsResult); export const SendMessageToTargetParams = withCdpMeta(z.object({ "message": z.string(), "sessionId": z.lazy(() => SessionID).optional(), "targetId": z.lazy(() => TargetID).optional() }).passthrough(), "Target.sendMessageToTarget.params", "commandParams", { method: "Target.sendMessageToTarget" }); export const SendMessageToTargetResult = withCdpMeta(z.object({ }).passthrough(), "Target.sendMessageToTarget.result", "commandResult", { method: "Target.sendMessageToTarget" }); +export const SendMessageToTargetCommand = withCdpCommand("Target.sendMessageToTarget", SendMessageToTargetParams, SendMessageToTargetResult); export const SetAutoAttachParams = withCdpMeta(z.object({ "autoAttach": z.boolean(), "waitForDebuggerOnStart": z.boolean(), "flatten": z.boolean().optional(), "filter": z.lazy(() => TargetFilter).optional() }).passthrough(), "Target.setAutoAttach.params", "commandParams", { method: "Target.setAutoAttach" }); export const SetAutoAttachResult = withCdpMeta(z.object({ }).passthrough(), "Target.setAutoAttach.result", "commandResult", { method: "Target.setAutoAttach" }); +export const SetAutoAttachCommand = withCdpCommand("Target.setAutoAttach", SetAutoAttachParams, SetAutoAttachResult); export const AutoAttachRelatedParams = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID), "waitForDebuggerOnStart": z.boolean(), "filter": z.lazy(() => TargetFilter).optional() }).passthrough(), "Target.autoAttachRelated.params", "commandParams", { method: "Target.autoAttachRelated" }); export const AutoAttachRelatedResult = withCdpMeta(z.object({ }).passthrough(), "Target.autoAttachRelated.result", "commandResult", { method: "Target.autoAttachRelated" }); +export const AutoAttachRelatedCommand = withCdpCommand("Target.autoAttachRelated", AutoAttachRelatedParams, AutoAttachRelatedResult); export const SetDiscoverTargetsParams = withCdpMeta(z.object({ "discover": z.boolean(), "filter": z.lazy(() => TargetFilter).optional() }).passthrough(), "Target.setDiscoverTargets.params", "commandParams", { method: "Target.setDiscoverTargets" }); export const SetDiscoverTargetsResult = withCdpMeta(z.object({ }).passthrough(), "Target.setDiscoverTargets.result", "commandResult", { method: "Target.setDiscoverTargets" }); +export const SetDiscoverTargetsCommand = withCdpCommand("Target.setDiscoverTargets", SetDiscoverTargetsParams, SetDiscoverTargetsResult); export const SetRemoteLocationsParams = withCdpMeta(z.object({ "locations": z.array(z.lazy(() => RemoteLocation)) }).passthrough(), "Target.setRemoteLocations.params", "commandParams", { method: "Target.setRemoteLocations" }); export const SetRemoteLocationsResult = withCdpMeta(z.object({ }).passthrough(), "Target.setRemoteLocations.result", "commandResult", { method: "Target.setRemoteLocations" }); +export const SetRemoteLocationsCommand = withCdpCommand("Target.setRemoteLocations", SetRemoteLocationsParams, SetRemoteLocationsResult); export const GetDevToolsTargetParams = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID) }).passthrough(), "Target.getDevToolsTarget.params", "commandParams", { method: "Target.getDevToolsTarget" }); export const GetDevToolsTargetResult = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID).optional() }).passthrough(), "Target.getDevToolsTarget.result", "commandResult", { method: "Target.getDevToolsTarget" }); +export const GetDevToolsTargetCommand = withCdpCommand("Target.getDevToolsTarget", GetDevToolsTargetParams, GetDevToolsTargetResult); export const OpenDevToolsParams = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID), "panelId": z.string().optional() }).passthrough(), "Target.openDevTools.params", "commandParams", { method: "Target.openDevTools" }); export const OpenDevToolsResult = withCdpMeta(z.object({ "targetId": z.lazy(() => TargetID) }).passthrough(), "Target.openDevTools.result", "commandResult", { method: "Target.openDevTools" }); +export const OpenDevToolsCommand = withCdpCommand("Target.openDevTools", OpenDevToolsParams, OpenDevToolsResult); export const AttachedToTargetEvent = withCdpMeta(z.object({ "sessionId": z.lazy(() => SessionID), "targetInfo": z.lazy(() => TargetInfo), "waitingForDebugger": z.boolean() }).passthrough(), "Target.attachedToTarget", "event", { phase: "event" }); export const DetachedFromTargetEvent = withCdpMeta(z.object({ "sessionId": z.lazy(() => SessionID), "targetId": z.lazy(() => TargetID).optional() }).passthrough(), "Target.detachedFromTarget", "event", { phase: "event" }); export const ReceivedMessageFromTargetEvent = withCdpMeta(z.object({ "sessionId": z.lazy(() => SessionID), "message": z.string(), "targetId": z.lazy(() => TargetID).optional() }).passthrough(), "Target.receivedMessageFromTarget", "event", { phase: "event" }); @@ -113,25 +132,25 @@ export const zod = { TargetInfoChangedEvent: TargetInfoChangedEvent, } as const; export const commands = { - "Target.activateTarget": { params: ActivateTargetParams, result: ActivateTargetResult }, - "Target.attachToTarget": { params: AttachToTargetParams, result: AttachToTargetResult }, - "Target.attachToBrowserTarget": { params: AttachToBrowserTargetParams, result: AttachToBrowserTargetResult }, - "Target.closeTarget": { params: CloseTargetParams, result: CloseTargetResult }, - "Target.exposeDevToolsProtocol": { params: ExposeDevToolsProtocolParams, result: ExposeDevToolsProtocolResult }, - "Target.createBrowserContext": { params: CreateBrowserContextParams, result: CreateBrowserContextResult }, - "Target.getBrowserContexts": { params: GetBrowserContextsParams, result: GetBrowserContextsResult }, - "Target.createTarget": { params: CreateTargetParams, result: CreateTargetResult }, - "Target.detachFromTarget": { params: DetachFromTargetParams, result: DetachFromTargetResult }, - "Target.disposeBrowserContext": { params: DisposeBrowserContextParams, result: DisposeBrowserContextResult }, - "Target.getTargetInfo": { params: GetTargetInfoParams, result: GetTargetInfoResult }, - "Target.getTargets": { params: GetTargetsParams, result: GetTargetsResult }, - "Target.sendMessageToTarget": { params: SendMessageToTargetParams, result: SendMessageToTargetResult }, - "Target.setAutoAttach": { params: SetAutoAttachParams, result: SetAutoAttachResult }, - "Target.autoAttachRelated": { params: AutoAttachRelatedParams, result: AutoAttachRelatedResult }, - "Target.setDiscoverTargets": { params: SetDiscoverTargetsParams, result: SetDiscoverTargetsResult }, - "Target.setRemoteLocations": { params: SetRemoteLocationsParams, result: SetRemoteLocationsResult }, - "Target.getDevToolsTarget": { params: GetDevToolsTargetParams, result: GetDevToolsTargetResult }, - "Target.openDevTools": { params: OpenDevToolsParams, result: OpenDevToolsResult }, + "Target.activateTarget": ActivateTargetCommand, + "Target.attachToTarget": AttachToTargetCommand, + "Target.attachToBrowserTarget": AttachToBrowserTargetCommand, + "Target.closeTarget": CloseTargetCommand, + "Target.exposeDevToolsProtocol": ExposeDevToolsProtocolCommand, + "Target.createBrowserContext": CreateBrowserContextCommand, + "Target.getBrowserContexts": GetBrowserContextsCommand, + "Target.createTarget": CreateTargetCommand, + "Target.detachFromTarget": DetachFromTargetCommand, + "Target.disposeBrowserContext": DisposeBrowserContextCommand, + "Target.getTargetInfo": GetTargetInfoCommand, + "Target.getTargets": GetTargetsCommand, + "Target.sendMessageToTarget": SendMessageToTargetCommand, + "Target.setAutoAttach": SetAutoAttachCommand, + "Target.autoAttachRelated": AutoAttachRelatedCommand, + "Target.setDiscoverTargets": SetDiscoverTargetsCommand, + "Target.setRemoteLocations": SetRemoteLocationsCommand, + "Target.getDevToolsTarget": GetDevToolsTargetCommand, + "Target.openDevTools": OpenDevToolsCommand, } as const; export const events = { "Target.attachedToTarget": AttachedToTargetEvent, diff --git a/js/src/types/generated/zod/Tethering.ts b/js/src/types/generated/zod/Tethering.ts index 4ae9eafc..a18e0fd5 100644 --- a/js/src/types/generated/zod/Tethering.ts +++ b/js/src/types/generated/zod/Tethering.ts @@ -1,12 +1,14 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const BindParams = withCdpMeta(z.object({ "port": z.number().int() }).passthrough(), "Tethering.bind.params", "commandParams", { method: "Tethering.bind" }); export const BindResult = withCdpMeta(z.object({ }).passthrough(), "Tethering.bind.result", "commandResult", { method: "Tethering.bind" }); +export const BindCommand = withCdpCommand("Tethering.bind", BindParams, BindResult); export const UnbindParams = withCdpMeta(z.object({ "port": z.number().int() }).passthrough(), "Tethering.unbind.params", "commandParams", { method: "Tethering.unbind" }); export const UnbindResult = withCdpMeta(z.object({ }).passthrough(), "Tethering.unbind.result", "commandResult", { method: "Tethering.unbind" }); +export const UnbindCommand = withCdpCommand("Tethering.unbind", UnbindParams, UnbindResult); export const AcceptedEvent = withCdpMeta(z.object({ "port": z.number().int(), "connectionId": z.string() }).passthrough(), "Tethering.accepted", "event", { phase: "event" }); export const zod = { @@ -17,8 +19,8 @@ export const zod = { AcceptedEvent: AcceptedEvent, } as const; export const commands = { - "Tethering.bind": { params: BindParams, result: BindResult }, - "Tethering.unbind": { params: UnbindParams, result: UnbindResult }, + "Tethering.bind": BindCommand, + "Tethering.unbind": UnbindCommand, } as const; export const events = { "Tethering.accepted": AcceptedEvent, diff --git a/js/src/types/generated/zod/Tracing.ts b/js/src/types/generated/zod/Tracing.ts index ec4c11c7..8634c260 100644 --- a/js/src/types/generated/zod/Tracing.ts +++ b/js/src/types/generated/zod/Tracing.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as IO from "./IO.js"; export const MemoryDumpConfig = withCdpMeta(z.record(z.string(), z.unknown()), "Tracing.MemoryDumpConfig", "type"); @@ -12,16 +12,22 @@ export const MemoryDumpLevelOfDetail = withCdpMeta(z.enum(["background", "light" export const TracingBackend = withCdpMeta(z.enum(["auto", "chrome", "system"]), "Tracing.TracingBackend", "type"); export const EndParams = withCdpMeta(z.object({ }).passthrough(), "Tracing.end.params", "commandParams", { method: "Tracing.end" }); export const EndResult = withCdpMeta(z.object({ }).passthrough(), "Tracing.end.result", "commandResult", { method: "Tracing.end" }); +export const EndCommand = withCdpCommand("Tracing.end", EndParams, EndResult); export const GetCategoriesParams = withCdpMeta(z.object({ }).passthrough(), "Tracing.getCategories.params", "commandParams", { method: "Tracing.getCategories" }); export const GetCategoriesResult = withCdpMeta(z.object({ "categories": z.array(z.string()) }).passthrough(), "Tracing.getCategories.result", "commandResult", { method: "Tracing.getCategories" }); +export const GetCategoriesCommand = withCdpCommand("Tracing.getCategories", GetCategoriesParams, GetCategoriesResult); export const GetTrackEventDescriptorParams = withCdpMeta(z.object({ }).passthrough(), "Tracing.getTrackEventDescriptor.params", "commandParams", { method: "Tracing.getTrackEventDescriptor" }); export const GetTrackEventDescriptorResult = withCdpMeta(z.object({ "descriptor": z.string() }).passthrough(), "Tracing.getTrackEventDescriptor.result", "commandResult", { method: "Tracing.getTrackEventDescriptor" }); +export const GetTrackEventDescriptorCommand = withCdpCommand("Tracing.getTrackEventDescriptor", GetTrackEventDescriptorParams, GetTrackEventDescriptorResult); export const RecordClockSyncMarkerParams = withCdpMeta(z.object({ "syncId": z.string() }).passthrough(), "Tracing.recordClockSyncMarker.params", "commandParams", { method: "Tracing.recordClockSyncMarker" }); export const RecordClockSyncMarkerResult = withCdpMeta(z.object({ }).passthrough(), "Tracing.recordClockSyncMarker.result", "commandResult", { method: "Tracing.recordClockSyncMarker" }); +export const RecordClockSyncMarkerCommand = withCdpCommand("Tracing.recordClockSyncMarker", RecordClockSyncMarkerParams, RecordClockSyncMarkerResult); export const RequestMemoryDumpParams = withCdpMeta(z.object({ "deterministic": z.boolean().optional(), "levelOfDetail": z.lazy(() => MemoryDumpLevelOfDetail).optional() }).passthrough(), "Tracing.requestMemoryDump.params", "commandParams", { method: "Tracing.requestMemoryDump" }); export const RequestMemoryDumpResult = withCdpMeta(z.object({ "dumpGuid": z.string(), "success": z.boolean() }).passthrough(), "Tracing.requestMemoryDump.result", "commandResult", { method: "Tracing.requestMemoryDump" }); +export const RequestMemoryDumpCommand = withCdpCommand("Tracing.requestMemoryDump", RequestMemoryDumpParams, RequestMemoryDumpResult); export const StartParams = withCdpMeta(z.object({ "categories": z.string().optional(), "options": z.string().optional(), "bufferUsageReportingInterval": z.number().optional(), "transferMode": z.enum(["ReportEvents", "ReturnAsStream"]).optional(), "streamFormat": z.lazy(() => StreamFormat).optional(), "streamCompression": z.lazy(() => StreamCompression).optional(), "traceConfig": z.lazy(() => TraceConfig).optional(), "perfettoConfig": z.string().optional(), "tracingBackend": z.lazy(() => TracingBackend).optional() }).passthrough(), "Tracing.start.params", "commandParams", { method: "Tracing.start" }); export const StartResult = withCdpMeta(z.object({ }).passthrough(), "Tracing.start.result", "commandResult", { method: "Tracing.start" }); +export const StartCommand = withCdpCommand("Tracing.start", StartParams, StartResult); export const BufferUsageEvent = withCdpMeta(z.object({ "percentFull": z.number().optional(), "eventCount": z.number().optional(), "value": z.number().optional() }).passthrough(), "Tracing.bufferUsage", "event", { phase: "event" }); export const DataCollectedEvent = withCdpMeta(z.object({ "value": z.array(z.record(z.string(), z.unknown())) }).passthrough(), "Tracing.dataCollected", "event", { phase: "event" }); export const TracingCompleteEvent = withCdpMeta(z.object({ "dataLossOccurred": z.boolean(), "stream": z.lazy(() => IO.StreamHandle).optional(), "traceFormat": z.lazy(() => StreamFormat).optional(), "streamCompression": z.lazy(() => StreamCompression).optional() }).passthrough(), "Tracing.tracingComplete", "event", { phase: "event" }); @@ -50,12 +56,12 @@ export const zod = { TracingCompleteEvent: TracingCompleteEvent, } as const; export const commands = { - "Tracing.end": { params: EndParams, result: EndResult }, - "Tracing.getCategories": { params: GetCategoriesParams, result: GetCategoriesResult }, - "Tracing.getTrackEventDescriptor": { params: GetTrackEventDescriptorParams, result: GetTrackEventDescriptorResult }, - "Tracing.recordClockSyncMarker": { params: RecordClockSyncMarkerParams, result: RecordClockSyncMarkerResult }, - "Tracing.requestMemoryDump": { params: RequestMemoryDumpParams, result: RequestMemoryDumpResult }, - "Tracing.start": { params: StartParams, result: StartResult }, + "Tracing.end": EndCommand, + "Tracing.getCategories": GetCategoriesCommand, + "Tracing.getTrackEventDescriptor": GetTrackEventDescriptorCommand, + "Tracing.recordClockSyncMarker": RecordClockSyncMarkerCommand, + "Tracing.requestMemoryDump": RequestMemoryDumpCommand, + "Tracing.start": StartCommand, } as const; export const events = { "Tracing.bufferUsage": BufferUsageEvent, diff --git a/js/src/types/generated/zod/WebAudio.ts b/js/src/types/generated/zod/WebAudio.ts index 31693479..f67e3bd4 100644 --- a/js/src/types/generated/zod/WebAudio.ts +++ b/js/src/types/generated/zod/WebAudio.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const GraphObjectId = withCdpMeta(z.string(), "WebAudio.GraphObjectId", "type"); export const ContextType = withCdpMeta(z.enum(["realtime", "offline"]), "WebAudio.ContextType", "type"); @@ -18,10 +18,13 @@ export const AudioNode = withCdpMeta(z.object({ "nodeId": z.lazy(() => GraphObje export const AudioParam = withCdpMeta(z.object({ "paramId": z.lazy(() => GraphObjectId), "nodeId": z.lazy(() => GraphObjectId), "contextId": z.lazy(() => GraphObjectId), "paramType": z.lazy(() => ParamType), "rate": z.lazy(() => AutomationRate), "defaultValue": z.number(), "minValue": z.number(), "maxValue": z.number() }).passthrough(), "WebAudio.AudioParam", "type"); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "WebAudio.enable.params", "commandParams", { method: "WebAudio.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "WebAudio.enable.result", "commandResult", { method: "WebAudio.enable" }); +export const EnableCommand = withCdpCommand("WebAudio.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "WebAudio.disable.params", "commandParams", { method: "WebAudio.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "WebAudio.disable.result", "commandResult", { method: "WebAudio.disable" }); +export const DisableCommand = withCdpCommand("WebAudio.disable", DisableParams, DisableResult); export const GetRealtimeDataParams = withCdpMeta(z.object({ "contextId": z.lazy(() => GraphObjectId) }).passthrough(), "WebAudio.getRealtimeData.params", "commandParams", { method: "WebAudio.getRealtimeData" }); export const GetRealtimeDataResult = withCdpMeta(z.object({ "realtimeData": z.lazy(() => ContextRealtimeData) }).passthrough(), "WebAudio.getRealtimeData.result", "commandResult", { method: "WebAudio.getRealtimeData" }); +export const GetRealtimeDataCommand = withCdpCommand("WebAudio.getRealtimeData", GetRealtimeDataParams, GetRealtimeDataResult); export const ContextCreatedEvent = withCdpMeta(z.object({ "context": z.lazy(() => BaseAudioContext) }).passthrough(), "WebAudio.contextCreated", "event", { phase: "event" }); export const ContextWillBeDestroyedEvent = withCdpMeta(z.object({ "contextId": z.lazy(() => GraphObjectId) }).passthrough(), "WebAudio.contextWillBeDestroyed", "event", { phase: "event" }); export const ContextChangedEvent = withCdpMeta(z.object({ "context": z.lazy(() => BaseAudioContext) }).passthrough(), "WebAudio.contextChanged", "event", { phase: "event" }); @@ -71,9 +74,9 @@ export const zod = { NodeParamDisconnectedEvent: NodeParamDisconnectedEvent, } as const; export const commands = { - "WebAudio.enable": { params: EnableParams, result: EnableResult }, - "WebAudio.disable": { params: DisableParams, result: DisableResult }, - "WebAudio.getRealtimeData": { params: GetRealtimeDataParams, result: GetRealtimeDataResult }, + "WebAudio.enable": EnableCommand, + "WebAudio.disable": DisableCommand, + "WebAudio.getRealtimeData": GetRealtimeDataCommand, } as const; export const events = { "WebAudio.contextCreated": ContextCreatedEvent, diff --git a/js/src/types/generated/zod/WebAuthn.ts b/js/src/types/generated/zod/WebAuthn.ts index 76755a96..dc4fb32d 100644 --- a/js/src/types/generated/zod/WebAuthn.ts +++ b/js/src/types/generated/zod/WebAuthn.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; export const AuthenticatorId = withCdpMeta(z.string(), "WebAuthn.AuthenticatorId", "type"); export const AuthenticatorProtocol = withCdpMeta(z.enum(["u2f", "ctap2"]), "WebAuthn.AuthenticatorProtocol", "type"); @@ -11,30 +11,43 @@ export const VirtualAuthenticatorOptions = withCdpMeta(z.object({ "protocol": z. export const Credential = withCdpMeta(z.object({ "credentialId": z.string(), "isResidentCredential": z.boolean(), "rpId": z.string().optional(), "privateKey": z.string(), "userHandle": z.string().optional(), "signCount": z.number().int(), "largeBlob": z.string().optional(), "backupEligibility": z.boolean().optional(), "backupState": z.boolean().optional(), "userName": z.string().optional(), "userDisplayName": z.string().optional() }).passthrough(), "WebAuthn.Credential", "type"); export const EnableParams = withCdpMeta(z.object({ "enableUI": z.boolean().optional() }).passthrough(), "WebAuthn.enable.params", "commandParams", { method: "WebAuthn.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.enable.result", "commandResult", { method: "WebAuthn.enable" }); +export const EnableCommand = withCdpCommand("WebAuthn.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.disable.params", "commandParams", { method: "WebAuthn.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.disable.result", "commandResult", { method: "WebAuthn.disable" }); +export const DisableCommand = withCdpCommand("WebAuthn.disable", DisableParams, DisableResult); export const AddVirtualAuthenticatorParams = withCdpMeta(z.object({ "options": z.lazy(() => VirtualAuthenticatorOptions) }).passthrough(), "WebAuthn.addVirtualAuthenticator.params", "commandParams", { method: "WebAuthn.addVirtualAuthenticator" }); export const AddVirtualAuthenticatorResult = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId) }).passthrough(), "WebAuthn.addVirtualAuthenticator.result", "commandResult", { method: "WebAuthn.addVirtualAuthenticator" }); +export const AddVirtualAuthenticatorCommand = withCdpCommand("WebAuthn.addVirtualAuthenticator", AddVirtualAuthenticatorParams, AddVirtualAuthenticatorResult); export const SetResponseOverrideBitsParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "isBogusSignature": z.boolean().optional(), "isBadUV": z.boolean().optional(), "isBadUP": z.boolean().optional() }).passthrough(), "WebAuthn.setResponseOverrideBits.params", "commandParams", { method: "WebAuthn.setResponseOverrideBits" }); export const SetResponseOverrideBitsResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.setResponseOverrideBits.result", "commandResult", { method: "WebAuthn.setResponseOverrideBits" }); +export const SetResponseOverrideBitsCommand = withCdpCommand("WebAuthn.setResponseOverrideBits", SetResponseOverrideBitsParams, SetResponseOverrideBitsResult); export const RemoveVirtualAuthenticatorParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId) }).passthrough(), "WebAuthn.removeVirtualAuthenticator.params", "commandParams", { method: "WebAuthn.removeVirtualAuthenticator" }); export const RemoveVirtualAuthenticatorResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.removeVirtualAuthenticator.result", "commandResult", { method: "WebAuthn.removeVirtualAuthenticator" }); +export const RemoveVirtualAuthenticatorCommand = withCdpCommand("WebAuthn.removeVirtualAuthenticator", RemoveVirtualAuthenticatorParams, RemoveVirtualAuthenticatorResult); export const AddCredentialParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "credential": z.lazy(() => Credential) }).passthrough(), "WebAuthn.addCredential.params", "commandParams", { method: "WebAuthn.addCredential" }); export const AddCredentialResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.addCredential.result", "commandResult", { method: "WebAuthn.addCredential" }); +export const AddCredentialCommand = withCdpCommand("WebAuthn.addCredential", AddCredentialParams, AddCredentialResult); export const GetCredentialParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "credentialId": z.string() }).passthrough(), "WebAuthn.getCredential.params", "commandParams", { method: "WebAuthn.getCredential" }); export const GetCredentialResult = withCdpMeta(z.object({ "credential": z.lazy(() => Credential) }).passthrough(), "WebAuthn.getCredential.result", "commandResult", { method: "WebAuthn.getCredential" }); +export const GetCredentialCommand = withCdpCommand("WebAuthn.getCredential", GetCredentialParams, GetCredentialResult); export const GetCredentialsParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId) }).passthrough(), "WebAuthn.getCredentials.params", "commandParams", { method: "WebAuthn.getCredentials" }); export const GetCredentialsResult = withCdpMeta(z.object({ "credentials": z.array(z.lazy(() => Credential)) }).passthrough(), "WebAuthn.getCredentials.result", "commandResult", { method: "WebAuthn.getCredentials" }); +export const GetCredentialsCommand = withCdpCommand("WebAuthn.getCredentials", GetCredentialsParams, GetCredentialsResult); export const RemoveCredentialParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "credentialId": z.string() }).passthrough(), "WebAuthn.removeCredential.params", "commandParams", { method: "WebAuthn.removeCredential" }); export const RemoveCredentialResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.removeCredential.result", "commandResult", { method: "WebAuthn.removeCredential" }); +export const RemoveCredentialCommand = withCdpCommand("WebAuthn.removeCredential", RemoveCredentialParams, RemoveCredentialResult); export const ClearCredentialsParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId) }).passthrough(), "WebAuthn.clearCredentials.params", "commandParams", { method: "WebAuthn.clearCredentials" }); export const ClearCredentialsResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.clearCredentials.result", "commandResult", { method: "WebAuthn.clearCredentials" }); +export const ClearCredentialsCommand = withCdpCommand("WebAuthn.clearCredentials", ClearCredentialsParams, ClearCredentialsResult); export const SetUserVerifiedParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "isUserVerified": z.boolean() }).passthrough(), "WebAuthn.setUserVerified.params", "commandParams", { method: "WebAuthn.setUserVerified" }); export const SetUserVerifiedResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.setUserVerified.result", "commandResult", { method: "WebAuthn.setUserVerified" }); +export const SetUserVerifiedCommand = withCdpCommand("WebAuthn.setUserVerified", SetUserVerifiedParams, SetUserVerifiedResult); export const SetAutomaticPresenceSimulationParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "enabled": z.boolean() }).passthrough(), "WebAuthn.setAutomaticPresenceSimulation.params", "commandParams", { method: "WebAuthn.setAutomaticPresenceSimulation" }); export const SetAutomaticPresenceSimulationResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.setAutomaticPresenceSimulation.result", "commandResult", { method: "WebAuthn.setAutomaticPresenceSimulation" }); +export const SetAutomaticPresenceSimulationCommand = withCdpCommand("WebAuthn.setAutomaticPresenceSimulation", SetAutomaticPresenceSimulationParams, SetAutomaticPresenceSimulationResult); export const SetCredentialPropertiesParams = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "credentialId": z.string(), "backupEligibility": z.boolean().optional(), "backupState": z.boolean().optional() }).passthrough(), "WebAuthn.setCredentialProperties.params", "commandParams", { method: "WebAuthn.setCredentialProperties" }); export const SetCredentialPropertiesResult = withCdpMeta(z.object({ }).passthrough(), "WebAuthn.setCredentialProperties.result", "commandResult", { method: "WebAuthn.setCredentialProperties" }); +export const SetCredentialPropertiesCommand = withCdpCommand("WebAuthn.setCredentialProperties", SetCredentialPropertiesParams, SetCredentialPropertiesResult); export const CredentialAddedEvent = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "credential": z.lazy(() => Credential) }).passthrough(), "WebAuthn.credentialAdded", "event", { phase: "event" }); export const CredentialDeletedEvent = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "credentialId": z.string() }).passthrough(), "WebAuthn.credentialDeleted", "event", { phase: "event" }); export const CredentialUpdatedEvent = withCdpMeta(z.object({ "authenticatorId": z.lazy(() => AuthenticatorId), "credential": z.lazy(() => Credential) }).passthrough(), "WebAuthn.credentialUpdated", "event", { phase: "event" }); @@ -79,19 +92,19 @@ export const zod = { CredentialAssertedEvent: CredentialAssertedEvent, } as const; export const commands = { - "WebAuthn.enable": { params: EnableParams, result: EnableResult }, - "WebAuthn.disable": { params: DisableParams, result: DisableResult }, - "WebAuthn.addVirtualAuthenticator": { params: AddVirtualAuthenticatorParams, result: AddVirtualAuthenticatorResult }, - "WebAuthn.setResponseOverrideBits": { params: SetResponseOverrideBitsParams, result: SetResponseOverrideBitsResult }, - "WebAuthn.removeVirtualAuthenticator": { params: RemoveVirtualAuthenticatorParams, result: RemoveVirtualAuthenticatorResult }, - "WebAuthn.addCredential": { params: AddCredentialParams, result: AddCredentialResult }, - "WebAuthn.getCredential": { params: GetCredentialParams, result: GetCredentialResult }, - "WebAuthn.getCredentials": { params: GetCredentialsParams, result: GetCredentialsResult }, - "WebAuthn.removeCredential": { params: RemoveCredentialParams, result: RemoveCredentialResult }, - "WebAuthn.clearCredentials": { params: ClearCredentialsParams, result: ClearCredentialsResult }, - "WebAuthn.setUserVerified": { params: SetUserVerifiedParams, result: SetUserVerifiedResult }, - "WebAuthn.setAutomaticPresenceSimulation": { params: SetAutomaticPresenceSimulationParams, result: SetAutomaticPresenceSimulationResult }, - "WebAuthn.setCredentialProperties": { params: SetCredentialPropertiesParams, result: SetCredentialPropertiesResult }, + "WebAuthn.enable": EnableCommand, + "WebAuthn.disable": DisableCommand, + "WebAuthn.addVirtualAuthenticator": AddVirtualAuthenticatorCommand, + "WebAuthn.setResponseOverrideBits": SetResponseOverrideBitsCommand, + "WebAuthn.removeVirtualAuthenticator": RemoveVirtualAuthenticatorCommand, + "WebAuthn.addCredential": AddCredentialCommand, + "WebAuthn.getCredential": GetCredentialCommand, + "WebAuthn.getCredentials": GetCredentialsCommand, + "WebAuthn.removeCredential": RemoveCredentialCommand, + "WebAuthn.clearCredentials": ClearCredentialsCommand, + "WebAuthn.setUserVerified": SetUserVerifiedCommand, + "WebAuthn.setAutomaticPresenceSimulation": SetAutomaticPresenceSimulationCommand, + "WebAuthn.setCredentialProperties": SetCredentialPropertiesCommand, } as const; export const events = { "WebAuthn.credentialAdded": CredentialAddedEvent, diff --git a/js/src/types/generated/zod/WebMCP.ts b/js/src/types/generated/zod/WebMCP.ts index 0ca06d39..5fe6bd05 100644 --- a/js/src/types/generated/zod/WebMCP.ts +++ b/js/src/types/generated/zod/WebMCP.ts @@ -1,7 +1,7 @@ // Generated by types/codegen.ts from devtools-protocol@0.0.1621552. Do not edit by hand. // @ts-nocheck -- recursive protocol schemas intentionally use lazy self/cross references. import { z } from "zod"; -import { withCdpMeta } from "./helpers.js"; +import { withCdpCommand, withCdpMeta } from "./helpers.js"; import * as DOM from "./DOM.js"; import * as Page from "./Page.js"; import * as Runtime from "./Runtime.js"; @@ -12,12 +12,16 @@ export const Tool = withCdpMeta(z.object({ "name": z.string(), "description": z. export const RemovedTool = withCdpMeta(z.object({ "name": z.string(), "frameId": z.lazy(() => Page.FrameId) }).passthrough(), "WebMCP.RemovedTool", "type"); export const EnableParams = withCdpMeta(z.object({ }).passthrough(), "WebMCP.enable.params", "commandParams", { method: "WebMCP.enable" }); export const EnableResult = withCdpMeta(z.object({ }).passthrough(), "WebMCP.enable.result", "commandResult", { method: "WebMCP.enable" }); +export const EnableCommand = withCdpCommand("WebMCP.enable", EnableParams, EnableResult); export const DisableParams = withCdpMeta(z.object({ }).passthrough(), "WebMCP.disable.params", "commandParams", { method: "WebMCP.disable" }); export const DisableResult = withCdpMeta(z.object({ }).passthrough(), "WebMCP.disable.result", "commandResult", { method: "WebMCP.disable" }); +export const DisableCommand = withCdpCommand("WebMCP.disable", DisableParams, DisableResult); export const InvokeToolParams = withCdpMeta(z.object({ "frameId": z.lazy(() => Page.FrameId), "toolName": z.string(), "input": z.record(z.string(), z.unknown()) }).passthrough(), "WebMCP.invokeTool.params", "commandParams", { method: "WebMCP.invokeTool" }); export const InvokeToolResult = withCdpMeta(z.object({ "invocationId": z.string() }).passthrough(), "WebMCP.invokeTool.result", "commandResult", { method: "WebMCP.invokeTool" }); +export const InvokeToolCommand = withCdpCommand("WebMCP.invokeTool", InvokeToolParams, InvokeToolResult); export const CancelInvocationParams = withCdpMeta(z.object({ "invocationId": z.string() }).passthrough(), "WebMCP.cancelInvocation.params", "commandParams", { method: "WebMCP.cancelInvocation" }); export const CancelInvocationResult = withCdpMeta(z.object({ }).passthrough(), "WebMCP.cancelInvocation.result", "commandResult", { method: "WebMCP.cancelInvocation" }); +export const CancelInvocationCommand = withCdpCommand("WebMCP.cancelInvocation", CancelInvocationParams, CancelInvocationResult); export const ToolsAddedEvent = withCdpMeta(z.object({ "tools": z.array(z.lazy(() => Tool)) }).passthrough(), "WebMCP.toolsAdded", "event", { phase: "event" }); export const ToolsRemovedEvent = withCdpMeta(z.object({ "tools": z.array(z.lazy(() => RemovedTool)) }).passthrough(), "WebMCP.toolsRemoved", "event", { phase: "event" }); export const ToolInvokedEvent = withCdpMeta(z.object({ "toolName": z.string(), "frameId": z.lazy(() => Page.FrameId), "invocationId": z.string(), "input": z.string() }).passthrough(), "WebMCP.toolInvoked", "event", { phase: "event" }); @@ -42,10 +46,10 @@ export const zod = { ToolRespondedEvent: ToolRespondedEvent, } as const; export const commands = { - "WebMCP.enable": { params: EnableParams, result: EnableResult }, - "WebMCP.disable": { params: DisableParams, result: DisableResult }, - "WebMCP.invokeTool": { params: InvokeToolParams, result: InvokeToolResult }, - "WebMCP.cancelInvocation": { params: CancelInvocationParams, result: CancelInvocationResult }, + "WebMCP.enable": EnableCommand, + "WebMCP.disable": DisableCommand, + "WebMCP.invokeTool": InvokeToolCommand, + "WebMCP.cancelInvocation": CancelInvocationCommand, } as const; export const events = { "WebMCP.toolsAdded": ToolsAddedEvent, diff --git a/js/src/types/generated/zod/helpers.ts b/js/src/types/generated/zod/helpers.ts index 805339ad..a73fe65d 100644 --- a/js/src/types/generated/zod/helpers.ts +++ b/js/src/types/generated/zod/helpers.ts @@ -2,6 +2,7 @@ import type { z } from "zod"; export type CdpNamedSchema = T & { readonly id: string; readonly name: string; readonly kind: string; meta(): { id: string; name: string; kind: string } }; +export type CdpCommandSchema> = z.ZodType>, Result extends z.ZodType> = z.ZodType>, Name extends string = string> = { readonly id: Name; readonly name: Name; readonly kind: "command"; readonly params: Params; readonly result: Result; meta(): { id: Name; name: Name; kind: "command" } }; export const withCdpMeta = (schema: T, id: string, kind: string, extra = {}): CdpNamedSchema => { const meta = { id, name: id, kind, ...extra }; const named = schema.meta(meta); @@ -12,3 +13,14 @@ export const withCdpMeta = (schema: T, id: string, kind: st }); return named as CdpNamedSchema; }; +export const withCdpCommand = >, Result extends z.ZodType>>(id: Name, params: Params, result: Result): CdpCommandSchema => { + const meta = { id, name: id, kind: "command" as const }; + return { + id, + name: id, + kind: "command", + params, + result, + meta: () => meta, + }; +}; diff --git a/js/test/test.AutoSessionRouter.ts b/js/test/test.AutoSessionRouter.ts index b5e74144..41537c34 100644 --- a/js/test/test.AutoSessionRouter.ts +++ b/js/test/test.AutoSessionRouter.ts @@ -1,142 +1,104 @@ -import { once } from "node:events"; -import WebSocket from "ws"; -import { expect, test } from "vitest"; +import assert from "node:assert/strict"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { test } from "vitest"; -import { LocalBrowserLauncher } from "../src/launcher/LocalBrowserLauncher.js"; -import { AutoSessionRouter } from "../src/router/AutoSessionRouter.js"; +import { ModCDPClient } from "../src/client/ModCDPClient.js"; -test("AutoSessionRouter rejects pending execution context waiters when a session detaches", async () => { - const router = new AutoSessionRouter( - async () => ({}), - () => 5_000, - ); - const wait = router.waitForExecutionContext("detached-session", { - timeout_ms: 5_000, - }); +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const EXTENSION_PATH = path.resolve(HERE, "..", "..", "dist", "extension"); - router.recordProtocolEvent( - "Target.attachedToTarget", - { - sessionId: "detached-session", - targetInfo: { targetId: "target-1", type: "page" }, +test("AutoSessionRouter tracks real target sessions and execution contexts from live CDP events", async () => { + const cdp = new ModCDPClient({ + launcher: { + launcher_mode: "local", + launcher_options: { headless: true }, }, - null, - ); - router.recordProtocolEvent("Target.detachedFromTarget", { sessionId: "detached-session" }, null); - router.recordProtocolEvent("Runtime.executionContextCreated", { context: { id: 42 } }, "detached-session"); - - await expect(wait).rejects.toThrow( - "Runtime execution context wait cancelled because session detached-session detached.", - ); - expect(router.sessionIdForTarget("target-1")).toBeNull(); - expect(router.execution_contexts.get("detached-session")).toBeUndefined(); -}, 5_000); - -test("AutoSessionRouter bounds detached session guards and clears them when a session reattaches", () => { - const router = new AutoSessionRouter( - async () => ({}), - () => 5_000, - ); - - for (let index = 0; index < 1034; index += 1) { - router.recordProtocolEvent("Target.detachedFromTarget", { sessionId: `detached-session-${index}` }, null); - } - - const detached_sessions = (router as unknown as { detached_sessions: Map }).detached_sessions; - expect(detached_sessions.size).toBeLessThanOrEqual(1024); - - const recent_session_id = "detached-session-1033"; - router.recordProtocolEvent("Runtime.executionContextCreated", { context: { id: 42 } }, recent_session_id); - expect(router.execution_contexts.get(recent_session_id)).toBeUndefined(); - - router.recordProtocolEvent( - "Target.attachedToTarget", - { - sessionId: recent_session_id, - targetInfo: { targetId: "target-reattached", type: "page" }, + upstream: { upstream_mode: "ws" }, + injector: { + injector_mode: "auto", + injector_extension_path: EXTENSION_PATH, + injector_service_worker_url_suffixes: ["/modcdp/service_worker.js"], + injector_trust_service_worker_target: true, + }, + client: { + client_routes: { + "Mod.*": "service_worker", + "Custom.*": "service_worker", + "*.*": "direct_cdp", + }, }, - null, - ); - router.recordProtocolEvent("Runtime.executionContextCreated", { context: { id: 43 } }, recent_session_id); - - expect(router.sessionIdForTarget("target-reattached")).toBe(recent_session_id); - expect(router.execution_contexts.get(recent_session_id)).toBe(43); -}); - -test("AutoSessionRouter tracks real target sessions and execution contexts", async () => { - const chrome = await new LocalBrowserLauncher({ - headless: true, - }).launch(); - const ws = new WebSocket(chrome.cdp_url!); - await once(ws, "open"); - let next_id = 1; - const pending = new Map) => void>(); - const router = new AutoSessionRouter( - (method, params = {}, session_id = null) => - send(method, params as Record, session_id) as Promise>, - () => 30_000, - ); - - function send(method: string, params: Record = {}, session_id: string | null = null) { - const id = next_id++; - ws.send( - JSON.stringify({ - id, - method, - params, - ...(session_id ? { sessionId: session_id } : {}), - }), - ); - return new Promise>((resolve, reject) => { - pending.set(id, (message) => { - if (message.error) reject(new Error(JSON.stringify(message.error))); - else resolve((message.result ?? {}) as Record); - }); - }); - } - - ws.on("message", (data) => { - const message = JSON.parse(data.toString()) as Record; - if (typeof message.id === "number") { - pending.get(message.id)?.(message); - pending.delete(message.id); - return; - } - if (typeof message.method !== "string") return; - router.recordProtocolEvent( - message.method, - message.params, - typeof message.sessionId === "string" ? message.sessionId : null, - ); }); + let targetId: string | null = null; + let pendingTargetId: string | null = null; try { - await send("Target.setAutoAttach", { - autoAttach: true, - waitForDebuggerOnStart: false, - flatten: true, - }); - await send("Target.setDiscoverTargets", { discover: true }); - const created = await send("Target.createTarget", { - url: "about:blank#modcdp-auto-session-router", + await cdp.connect(); + const created = await cdp.Target.createTarget({ url: "about:blank#modcdp-auto-session-router" }); + targetId = created.targetId; + await expectEventually(() => { + assert.equal(typeof cdp.auto_sessions.sessionId_from_targetId.get(targetId!), "string"); }); - const target_id = created.targetId as string; - await expect.poll(() => router.sessionIdForTarget(target_id), { timeout: 5_000 }).toEqual(expect.any(String)); - const session_id = router.sessionIdForTarget(target_id)!; + const sessionId = cdp.auto_sessions.sessionId_from_targetId.get(targetId); + assert.equal(typeof sessionId, "string"); - const context_promise = router.waitForExecutionContext(session_id, { + const contextPromise = cdp.auto_sessions.waitForExecutionContext(sessionId, { timeout_ms: 30_000, }); - await send("Runtime.enable", {}, session_id); - await expect(context_promise).resolves.toEqual(expect.any(Number)); - expect(router.execution_contexts.get(session_id)).toEqual(expect.any(Number)); + await cdp.send("Runtime.enable", {}, sessionId); + const contextId = await contextPromise; + assert.equal(typeof contextId, "number"); + assert.equal(cdp.auto_sessions.execution_contexts.get(sessionId), contextId); + + await cdp.Target.detachFromTarget({ sessionId }); + await expectEventually(() => { + assert.equal(cdp.auto_sessions.sessionId_from_targetId.get(targetId!), undefined); + }); + assert.equal(cdp.auto_sessions.execution_contexts.get(sessionId), undefined); + await cdp.Target.closeTarget({ targetId }).catch(() => ({})); + targetId = null; - await send("Target.detachFromTarget", { sessionId: session_id }); - await expect.poll(() => router.sessionIdForTarget(target_id), { timeout: 5_000 }).toBeNull(); - await send("Target.closeTarget", { targetId: target_id }).catch(() => ({})); + const pendingCreated = await cdp.Target.createTarget({ + url: "about:blank#modcdp-auto-session-router-pending-context", + }); + pendingTargetId = pendingCreated.targetId; + await expectEventually(() => { + assert.equal(typeof cdp.auto_sessions.sessionId_from_targetId.get(pendingTargetId!), "string"); + }); + const pendingSessionId = cdp.auto_sessions.sessionId_from_targetId.get(pendingTargetId); + assert.equal(typeof pendingSessionId, "string"); + const cancelledContextPromise = cdp.auto_sessions.waitForExecutionContext(pendingSessionId, { + timeout_ms: 30_000, + }); + const cancelledContextAssertion = assert.rejects( + cancelledContextPromise, + new RegExp(`Runtime execution context wait cancelled because session ${pendingSessionId} detached\\.`), + ); + await cdp.Target.detachFromTarget({ sessionId: pendingSessionId }); + await cancelledContextAssertion; + await expectEventually(() => { + assert.equal(cdp.auto_sessions.sessionId_from_targetId.get(pendingTargetId!), undefined); + }); + await cdp.Target.closeTarget({ targetId: pendingTargetId }).catch(() => ({})); + pendingTargetId = null; } finally { - ws.close(); - await once(ws, "close").catch(() => {}); - await chrome.close(); + if (targetId) await cdp.Target.closeTarget({ targetId }).catch(() => ({})); + if (pendingTargetId) await cdp.Target.closeTarget({ targetId: pendingTargetId }).catch(() => ({})); + await cdp.close(); } }, 60_000); + +async function expectEventually(assertion: () => void, timeoutMs = 10_000) { + const deadline = Date.now() + timeoutMs; + let lastError: unknown = null; + while (Date.now() < deadline) { + try { + assertion(); + return; + } catch (error) { + lastError = error; + await new Promise((resolve) => setTimeout(resolve, 100)); + } + } + throw lastError instanceof Error ? lastError : new Error(String(lastError)); +} diff --git a/js/test/test.ModCDPClient.ts b/js/test/test.ModCDPClient.ts index afb40e64..085bce6b 100644 --- a/js/test/test.ModCDPClient.ts +++ b/js/test/test.ModCDPClient.ts @@ -106,8 +106,8 @@ test("ModCDPClient normalizes nested config owners", () => { test("ModCDPClient dispatches root events before extension session is attached", () => { const cdp = new ModCDPClient(); const seen: string[] = []; - cdp.on("Target.targetCreated", (payload: { targetInfo?: { targetId?: string } }) => { - seen.push(String(payload.targetInfo?.targetId)); + cdp.on(cdp.Target.targetCreated, (payload) => { + seen.push(payload.targetInfo.targetId); }); cdp._onRecv({ @@ -130,10 +130,10 @@ test("ModCDPClient dispatches root events before extension session is attached", test("ModCDPClient event dispatch snapshots handlers when once removes itself", () => { const cdp = new ModCDPClient(); const seen: string[] = []; - cdp.once("Target.targetCreated", () => { + cdp.once(cdp.Target.targetCreated, () => { seen.push("once"); }); - cdp.on("Target.targetCreated", () => { + cdp.on(cdp.Target.targetCreated, () => { seen.push("persistent"); }); @@ -196,6 +196,7 @@ test("ModCDPClient connects with nested launch/upstream/extension/client/server launcher_mode: "local", launcher_options: { headless: true, + chrome_ready_timeout_ms: 60_000, }, }, upstream: { upstream_mode: "ws" }, @@ -407,15 +408,15 @@ test("ModCDPClient preserves explicit null server config", () => { assert.equal(cdp.server, null); }); -test("ModCDPClient only exposes injector attach after CDP send is available", () => { +test("ModCDPClient only exposes injector ensure after CDP send is available", () => { const cdp = new ModCDPClient(); const disconnected_config = cdp._baseInjectorConfig(null); assert.equal(disconnected_config.send, null); - assert.equal(disconnected_config.attachToTarget, null); + assert.equal(disconnected_config.ensureSessionForTarget, null); const connected_config = cdp._baseInjectorConfig(async () => ({})); assert.equal(typeof connected_config.send, "function"); - assert.equal(typeof connected_config.attachToTarget, "function"); + assert.equal(typeof connected_config.ensureSessionForTarget, "function"); }); test("ModCDPClient defaults launched ModCDP-server upstreams to extension auto", () => { diff --git a/js/test/test.ModCDPClientRoutedDefaultOverrides.ts b/js/test/test.ModCDPClientRoutedDefaultOverrides.ts index 24ba83a7..20551ce7 100644 --- a/js/test/test.ModCDPClientRoutedDefaultOverrides.ts +++ b/js/test/test.ModCDPClientRoutedDefaultOverrides.ts @@ -4,22 +4,16 @@ import path from "node:path"; import { fileURLToPath } from "node:url"; import { ModCDPClient } from "../src/client/ModCDPClient.js"; -import { events } from "../src/types/generated/zod.js"; +import type { cdp } from "../src/types/generated/cdp.js"; const HERE = path.dirname(fileURLToPath(import.meta.url)); const EXTENSION_PATH = path.resolve(HERE, "..", "..", "dist", "extension"); const DEFAULT_ROUTED_OVERRIDES_TEST_TIMEOUT_MS = 45_000; -function hasTargetInfo(value: unknown): value is { targetInfo: Record } { - if (value == null || typeof value !== "object" || Array.isArray(value)) return false; - const targetInfo = (value as Record).targetInfo; - return targetInfo != null && typeof targetInfo === "object" && !Array.isArray(targetInfo); -} - const getTargetsOverride = String.raw` async (params) => { const [upstream, tabs] = await Promise.all([ - ModCDP.sendLoopback("Target.getTargets", params), + cdp.upstream.send("Target.getTargets", params), chrome.tabs.query({}), ]); @@ -166,9 +160,8 @@ test( await cdp.Mod.addCustomEvent({ name: cdp.Target.targetCreated }); - const transformedEvents: unknown[] = []; - cdp.on("Target.targetCreated", (params) => { - if (!hasTargetInfo(params)) return; + const transformedEvents: cdp.types.ts.Target.TargetCreatedEvent[] = []; + cdp.on(cdp.Target.targetCreated, (params) => { if (!Object.hasOwn(params.targetInfo || {}, "tabId")) return; transformedEvents.push(params); }); @@ -181,16 +174,15 @@ test( const createdTarget = await cdp.Target.createTarget({ url: "about:blank#modcdp-target-created" }); await cdp.Target.getTargets(); assert.ok( - transformedEvents.some((params) => { - if (!hasTargetInfo(params)) return; - return params.targetInfo.targetId === createdTarget.targetId; - }), + transformedEvents.some((event) => event.targetInfo.targetId === createdTarget.targetId), `expected transformed Target.targetCreated for ${createdTarget.targetId}`, ); } - const event = events["Target.targetCreated"].parse(transformedEvents[0]); - assert.ok(Object.hasOwn(event.targetInfo, "tabId"), "transformed event targetInfo should include tabId"); + assert.ok( + transformedEvents.some((event) => Object.hasOwn(event.targetInfo, "tabId")), + "transformed event targetInfo should include tabId", + ); } finally { try { await cdp.Target.setDiscoverTargets({ discover: false }); diff --git a/js/test/test.ServerUpstreamTransport.ts b/js/test/test.ServerUpstreamTransport.ts new file mode 100644 index 00000000..958bbdab --- /dev/null +++ b/js/test/test.ServerUpstreamTransport.ts @@ -0,0 +1,136 @@ +import assert from "node:assert/strict"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import { test } from "vitest"; + +import { ModCDPClient } from "../src/client/ModCDPClient.js"; + +const HERE = path.dirname(fileURLToPath(import.meta.url)); +const EXTENSION_PATH = path.resolve(HERE, "..", "..", "dist", "extension"); + +test("loopback server upstream routes target commands through one transport", async () => { + const owner = new ModCDPClient({ + launcher: { + launcher_mode: "local", + launcher_options: { headless: true }, + }, + upstream: { upstream_mode: "ws" }, + injector: { + injector_mode: "auto", + injector_extension_path: EXTENSION_PATH, + injector_service_worker_url_suffixes: ["/modcdp/service_worker.js"], + injector_trust_service_worker_target: true, + }, + }); + await owner.connect(); + + const cdp = new ModCDPClient({ + launcher: { launcher_mode: "remote" }, + upstream: { upstream_mode: "ws", upstream_cdp_url: owner.cdp_url }, + injector: { + injector_mode: "discover", + injector_service_worker_url_suffixes: ["/modcdp/service_worker.js"], + injector_trust_service_worker_target: true, + }, + server: { + server_loopback_cdp_url: owner.cdp_url, + server_routes: { "*.*": "loopback_cdp" }, + }, + }); + + let targetId: string | null = null; + try { + await cdp.connect(); + const created = (await cdp.send("Target.createTarget", { url: targetTestUrl("loopback") })) as { + targetId?: string; + }; + assert.equal(typeof created.targetId, "string"); + targetId = created.targetId; + await assertPageMarker(cdp, targetId, "loopback"); + } finally { + if (targetId) await cdp.send("Target.closeTarget", { targetId }).catch(() => ({})); + await cdp.close(); + await owner.close(); + } +}, 90_000); + +test("chrome.debugger server upstream routes target commands through one transport", async () => { + const owner = new ModCDPClient({ + launcher: { + launcher_mode: "local", + launcher_options: { headless: true }, + }, + upstream: { upstream_mode: "ws" }, + injector: { + injector_mode: "auto", + injector_extension_path: EXTENSION_PATH, + injector_service_worker_url_suffixes: ["/modcdp/service_worker.js"], + injector_trust_service_worker_target: true, + }, + }); + await owner.connect(); + + const cdp = new ModCDPClient({ + launcher: { launcher_mode: "remote" }, + upstream: { upstream_mode: "ws", upstream_cdp_url: owner.cdp_url }, + injector: { + injector_mode: "discover", + injector_service_worker_url_suffixes: ["/modcdp/service_worker.js"], + injector_trust_service_worker_target: true, + }, + server: { + server_routes: { "*.*": "chrome_debugger" }, + }, + }); + + let targetId: string | null = null; + try { + await cdp.connect(); + const created = (await cdp.send("Target.createTarget", { url: targetTestUrl("debugger") })) as { + targetId?: string; + }; + assert.equal(typeof created.targetId, "string"); + targetId = created.targetId; + await assertPageMarker(cdp, targetId, "debugger"); + } finally { + if (targetId) await cdp.send("Target.closeTarget", { targetId }).catch(() => ({})); + await cdp.close(); + await owner.close(); + } +}, 90_000); + +async function assertPageMarker(cdp: ModCDPClient, targetId: string, label: string) { + await assert.doesNotReject(async () => { + await expectEventually(async () => { + const evaluated = (await cdp.send("Runtime.evaluate", { + targetId, + expression: "document.body?.dataset.modcdpMarker", + returnByValue: true, + })) as { result?: { value?: unknown } }; + assert.equal(evaluated.result?.value, label); + }); + }); +} + +function targetTestUrl(label: string) { + const html = ` + + + `; + return `data:text/html,${encodeURIComponent(html)}`; +} + +async function expectEventually(assertion: () => Promise | void, timeoutMs = 10_000) { + const deadline = Date.now() + timeoutMs; + let lastError: unknown = null; + while (Date.now() < deadline) { + try { + await assertion(); + return; + } catch (error) { + lastError = error; + await new Promise((resolve) => setTimeout(resolve, 100)); + } + } + throw lastError instanceof Error ? lastError : new Error(String(lastError)); +} diff --git a/js/test/test.translate.ts b/js/test/test.translate.ts index df9981fd..30d2a023 100644 --- a/js/test/test.translate.ts +++ b/js/test/test.translate.ts @@ -32,6 +32,10 @@ test("translate routes, wraps, and unwraps ModCDP protocol messages deterministi const configured = wrapCommandIfNeeded("Mod.configure", { server: { server_routes: { "*.*": "loopback_cdp" } } }); assert.equal(configured.steps[0]?.unwrap, "runtime_json"); + const ping = wrapCommandIfNeeded("Mod.ping", {}); + const ping_step_params = ping.steps[0]?.params as { arguments?: Array<{ value?: unknown }> } | undefined; + assert.deepEqual(JSON.parse(String(ping_step_params?.arguments?.[1]?.value)), {}); + const custom = wrapCommandIfNeeded( "Custom.echo", { secret: "x".repeat(100), nested: { ok: true } }, @@ -49,6 +53,16 @@ test("translate routes, wraps, and unwraps ModCDP protocol messages deterministi }); assert.equal(custom_step_params?.arguments?.[2]?.value, "session-1"); + const customWithSession = wrapCommandIfNeeded( + "Custom.echo", + { secret: "targeted" }, + { cdpSessionId: "target-session-1" }, + ); + const custom_with_session_params = customWithSession.steps[0]?.params as + | { arguments?: Array<{ value?: unknown }> } + | undefined; + assert.equal(custom_with_session_params?.arguments?.[2]?.value, "target-session-1"); + assert.deepEqual(unwrapResponseIfNeeded({ result: { type: "object", value: { ok: true } } }, "runtime"), { ok: true, }); diff --git a/python/examples/demo.py b/python/examples/demo.py index 6718ce99..3bea0f1b 100644 --- a/python/examples/demo.py +++ b/python/examples/demo.py @@ -18,16 +18,17 @@ import sys import threading import time -import urllib.request from pathlib import Path from typing import cast sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) from modcdp import ModCDPClient -from modcdp.types import JsonValue, ProtocolPayload +from modcdp.types import ProtocolPayload ROOT = Path(__file__).resolve().parent.parent.parent EXTENSION_PATH = ROOT / "dist" / "extension" +DEMO_CDP_SEND_TIMEOUT_MS = 60_000 +DEMO_EXECUTION_CONTEXT_TIMEOUT_MS = 60_000 REVERSE_TRANSPORT_WAIT_TIMEOUT_MS = 60_000 LIVE_DEVTOOLS_ACTIVE_PORTS = [ Path.home() / "Library" / "Application Support" / "Google" / "Chrome" / "DevToolsActivePort", @@ -45,17 +46,13 @@ def expect_object(value: object, label: str) -> ProtocolPayload: def server_routes_for(mode: str, upstream_mode: str) -> ProtocolPayload: + del upstream_mode route = "loopback_cdp" if mode == "loopback" else "chrome_debugger" if mode == "debugger" else "auto" - routes: ProtocolPayload = { + return { "Mod.*": "service_worker", "Custom.*": "service_worker", "*.*": route, } - if mode == "loopback" or upstream_mode in {"reversews", "nativemessaging", "nats"}: - routes["Target.setDiscoverTargets"] = "loopback_cdp" - routes["Target.createTarget"] = "loopback_cdp" - routes["Target.activateTarget"] = "loopback_cdp" - return routes def client_routes_for(mode: str) -> ProtocolPayload: @@ -63,10 +60,8 @@ def client_routes_for(mode: str) -> ProtocolPayload: "Mod.*": "service_worker", "Custom.*": "service_worker", "*.*": "direct_cdp" if mode == "direct" else "service_worker", - "Target.setDiscoverTargets": "direct_cdp", - "Target.createTarget": "direct_cdp", - "Target.activateTarget": "direct_cdp", } + routes["Runtime.*"] = "service_worker" return routes @@ -111,17 +106,26 @@ def client_options_for(mode, upstream_mode, cdp_url, launch_options=None): return { "launcher": {"launcher_mode": "remote" if cdp_url else "local", "launcher_options": launch_options or {}}, "upstream": upstream, - "injector": {"injector_mode": "auto", "injector_extension_path": str(EXTENSION_PATH)}, - "client": {"client_routes": client_routes_for(mode)}, + "injector": { + "injector_mode": "auto", + "injector_extension_path": str(EXTENSION_PATH), + "injector_execution_context_timeout_ms": DEMO_EXECUTION_CONTEXT_TIMEOUT_MS, + }, + "client": {"client_routes": client_routes_for(mode), "client_cdp_send_timeout_ms": DEMO_CDP_SEND_TIMEOUT_MS}, } server = { "server_routes": server_routes_for(mode, upstream_mode), + "server_loopback_execution_context_timeout_ms": DEMO_EXECUTION_CONTEXT_TIMEOUT_MS, } return { "launcher": {"launcher_mode": "remote" if cdp_url else "local", "launcher_options": launch_options or {}}, "upstream": upstream, - "injector": {"injector_mode": "auto", "injector_extension_path": str(EXTENSION_PATH)}, - "client": {"client_routes": client_routes_for(mode)}, + "injector": { + "injector_mode": "auto", + "injector_extension_path": str(EXTENSION_PATH), + "injector_execution_context_timeout_ms": DEMO_EXECUTION_CONTEXT_TIMEOUT_MS, + }, + "client": {"client_routes": client_routes_for(mode), "client_cdp_send_timeout_ms": DEMO_CDP_SEND_TIMEOUT_MS}, "server": server, } @@ -165,28 +169,16 @@ def main(): launch_options["executable_path"] = os.environ["CHROME_PATH"] cdp = ModCDPClient(**client_options_for(mode, upstream_mode, cdp_url, launch_options)) - page_target_events = [] - target_created_events = [] - events_lock = threading.Lock() - - def on_target_created(payload, *_): - print(f"Target.targetCreated -> {payload.get('targetInfo', {}).get('targetId')}") - with events_lock: - target_created_events.append(payload) - - def on_page_target_updated(payload, *_): - print(f"Custom.pageTargetUpdated -> {payload}") - with events_lock: - page_target_events.append(payload) - - cdp.on("Target.targetCreated", on_target_created) cdp.connect() print(f"upstream cdp: {cdp.cdp_url}") print(f"connected; ext {cdp.extension_id} session {cdp.ext_session_id}") print(f"connect timing -> {cdp.connect_timing}") - server_config: ProtocolPayload = {"server_routes": server_routes_for(mode, upstream_mode)} + server_config: ProtocolPayload = { + "server_routes": server_routes_for(mode, upstream_mode), + "server_loopback_execution_context_timeout_ms": DEMO_EXECUTION_CONTEXT_TIMEOUT_MS, + } configure_params: ProtocolPayload = { "upstream": {"upstream_mode": upstream_mode}, "client": {"client_routes": client_routes_for(mode)}, @@ -226,30 +218,27 @@ def on_pong(payload, *_): } print(f"ping latency -> {ping_latency}") - if mode == "debugger": - try: - version = expect_object(cdp.send("Browser.getVersion"), "Browser.getVersion") - if not isinstance(version.get("protocolVersion"), str) or not isinstance(version.get("product"), str): - raise RuntimeError(f"unexpected Browser.getVersion result {version}") - print(f"Browser.getVersion -> {version}") - except Exception as e: - print(f"Browser.getVersion -> (debugger route rejected: {str(e).splitlines()[0]} )") - runtime_eval = expect_object(cdp.send("Runtime.evaluate", {"expression": "(() => 42)()", "returnByValue": True}), "Runtime.evaluate") - result = expect_object(runtime_eval.get("result"), "Runtime.evaluate.result") - if result.get("value") != 42: - raise RuntimeError(f"unexpected Runtime.evaluate result {runtime_eval}") - print(f"Runtime.evaluate -> {runtime_eval}") - else: - version = expect_object(cdp.send("Browser.getVersion"), "Browser.getVersion") - if not isinstance(version.get("protocolVersion"), str) or not isinstance(version.get("product"), str): - raise RuntimeError(f"unexpected Browser.getVersion result {version}") - print(f"Browser.getVersion -> {version}") - modcdp_eval = expect_object(cdp.send("Mod.evaluate", {"expression": "({ extension_id: chrome.runtime.id })"}), "Mod.evaluate") if not isinstance(modcdp_eval.get("extension_id"), str) or (cdp.extension_id and modcdp_eval.get("extension_id") != cdp.extension_id): raise RuntimeError(f"unexpected Mod.evaluate result {modcdp_eval}") print(f"Mod.evaluate -> {modcdp_eval}") + response_middleware_registration = expect_object(cdp.send("Mod.addMiddleware", { + "name": "Custom.echo", + "phase": "response", + "expression": '''async (payload, next) => next({ ...payload, responseMiddleware: "ok" })''', + }), "Mod.addMiddleware response") + if response_middleware_registration.get("registered") is not True or response_middleware_registration.get("phase") != "response": + raise RuntimeError(f"unexpected response middleware registration {response_middleware_registration}") + + event_middleware_registration = expect_object(cdp.send("Mod.addMiddleware", { + "name": "Custom.demoEvent", + "phase": "event", + "expression": '''async (payload, next) => next({ ...payload, eventMiddleware: "ok" })''', + }), "Mod.addMiddleware event") + if event_middleware_registration.get("registered") is not True or event_middleware_registration.get("phase") != "event": + raise RuntimeError(f"unexpected event middleware registration {event_middleware_registration}") + echo_registration = expect_object(cdp.send("Mod.addCustomCommand", { "name": "Custom.echo", "expression": "async (params, method) => ({ echoed: params.value, method })", @@ -257,56 +246,14 @@ def on_pong(payload, *_): if echo_registration.get("registered") is not True or echo_registration.get("name") != "Custom.echo": raise RuntimeError(f"unexpected Custom.echo registration {echo_registration}") echo_result = expect_object(cdp.send("Custom.echo", {"value": "custom-command-ok"}), "Custom.echo") - if echo_result.get("echoed") != "custom-command-ok" or echo_result.get("method") != "Custom.echo": + if ( + echo_result.get("echoed") != "custom-command-ok" + or echo_result.get("method") != "Custom.echo" + or echo_result.get("responseMiddleware") != "ok" + ): raise RuntimeError(f"unexpected Custom.echo result {echo_result}") print(f"Custom.echo -> {echo_result}") - tab_command_registration = expect_object(cdp.send("Mod.addCustomCommand", { - "name": "Custom.TabIdFromTargetId", - "expression": '''async ({ targetId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.id === targetId); - return { tabId: target?.tabId ?? null }; - }''', - }), "Mod.addCustomCommand Custom.TabIdFromTargetId") - if tab_command_registration.get("registered") is not True: - raise RuntimeError(f"unexpected TabIdFromTargetId registration {tab_command_registration}") - target_command_registration = expect_object(cdp.send("Mod.addCustomCommand", { - "name": "Custom.targetIdFromTabId", - "expression": '''async ({ tabId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.type === "page" && target.tabId === tabId); - return { targetId: target?.id ?? null }; - }''', - }), "Mod.addCustomCommand Custom.targetIdFromTabId") - if target_command_registration.get("registered") is not True: - raise RuntimeError(f"unexpected targetIdFromTabId registration {target_command_registration}") - middleware_registered = False - for phase in ("response", "event"): - middleware_registration = expect_object(cdp.send("Mod.addMiddleware", { - "name": "*", - "phase": phase, - "expression": '''async (payload, next) => { - const seen = new WeakSet(); - const visit = async value => { - if (!value || typeof value !== "object" || seen.has(value)) return; - seen.add(value); - if (!Array.isArray(value) && typeof value.targetId === "string" && value.tabId == null) { - const { tabId } = await cdp.send("Custom.TabIdFromTargetId", { targetId: value.targetId }); - if (tabId != null) value.tabId = tabId; - } - for (const child of Array.isArray(value) ? value : Object.values(value)) await visit(child); - }; - await visit(payload); - return next(payload); - }''', - }), f"Mod.addMiddleware {phase}") - if middleware_registration.get("registered") is not True or middleware_registration.get("phase") != phase: - raise RuntimeError(f"unexpected {phase} middleware registration {middleware_registration}") - middleware_registered = True - if not middleware_registered: - raise RuntimeError("middleware registration loop did not run") - demo_events = [] demo_lock = threading.Lock() @@ -324,7 +271,7 @@ def on_demo_event(payload, *_): deadline = time.monotonic() + 3.0 while True: with demo_lock: - demo_event = next((event for event in demo_events if event.get("value") == "custom-event-ok"), None) + demo_event = next((event for event in demo_events if event.get("value") == "custom-event-ok" and event.get("eventMiddleware") == "ok"), None) if demo_event or time.monotonic() >= deadline: break time.sleep(0.02) @@ -332,63 +279,13 @@ def on_demo_event(payload, *_): raise RuntimeError("expected Custom.demoEvent") print(f"Custom.demoEvent -> {demo_event}") - page_target_event_registration = expect_object(cdp.send("Mod.addCustomEvent", {"name": "Custom.pageTargetUpdated"}), "Mod.addCustomEvent Custom.pageTargetUpdated") - if page_target_event_registration.get("registered") is not True: - raise RuntimeError(f"unexpected page target event registration {page_target_event_registration}") - cdp.on("Custom.pageTargetUpdated", on_page_target_updated) - - cdp.send("Target.setDiscoverTargets", {"discover": True}) - created_target = expect_object(cdp.send("Target.createTarget", {"url": "https://example.com", "background": True}), "Target.createTarget") - created_target_id = created_target.get("targetId") - if not created_target_id: - raise RuntimeError(f"Target.createTarget returned no targetId: {created_target}") - deadline = time.monotonic() + 3.0 - while True: - with events_lock: - matched_target_event = next((event for event in target_created_events if event.get("targetInfo", {}).get("targetId") == created_target_id), None) - if matched_target_event or time.monotonic() >= deadline: - break - time.sleep(0.02) - if not matched_target_event: - raise RuntimeError(f"expected Target.targetCreated for {created_target_id}") - print(f"normal event matched -> {created_target_id}") - - tab_from_target = expect_object(cdp.send("Custom.TabIdFromTargetId", {"targetId": created_target_id}), "Custom.TabIdFromTargetId") - if not isinstance(tab_from_target.get("tabId"), int | float): - raise RuntimeError(f"unexpected Custom.TabIdFromTargetId result {tab_from_target}") - print(f"Custom.TabIdFromTargetId -> {tab_from_target}") - - cdp.send("Target.activateTarget", {"targetId": created_target_id}) - page_target_emit_result = expect_object(cdp.send("Mod.evaluate", { - "params": {"targetId": created_target_id}, - "expression": '''async ({ targetId }) => { - const targets = await chrome.debugger.getTargets(); - const target = targets.find(target => target.id === targetId); - if (!target?.id) throw new Error(`target ${targetId} not found`); - await cdp.emit("Custom.pageTargetUpdated", { targetId: target.id, url: target.url ?? null }); - return { emitted: true, targetId: target.id }; - }''', - }), "Custom.pageTargetUpdated emit") - if page_target_emit_result.get("emitted") is not True or page_target_emit_result.get("targetId") != created_target_id: - raise RuntimeError(f"unexpected Custom.pageTargetUpdated emit result {page_target_emit_result}") - deadline = time.monotonic() + 3.0 - while True: - with events_lock: - page_target = next((event for event in page_target_events if event.get("targetId") == created_target_id), None) - if page_target or time.monotonic() >= deadline: - break - time.sleep(0.02) - if not page_target: - raise RuntimeError(f"expected Custom.pageTargetUpdated for {created_target_id}") - if tab_from_target.get("tabId") != page_target.get("tabId"): - raise RuntimeError(f"unexpected Custom.pageTargetUpdated result {page_target}") - - target_from_tab = expect_object(cdp.send("Custom.targetIdFromTabId", {"tabId": page_target["tabId"]}), "Custom.targetIdFromTabId") - if target_from_tab.get("targetId") != created_target_id or target_from_tab.get("tabId") != page_target.get("tabId"): - raise RuntimeError(f"unexpected Custom.targetIdFromTabId/middleware result {target_from_tab}") - print(f"Custom.targetIdFromTabId -> {target_from_tab}") + runtime_eval = expect_object(cdp.send("Runtime.evaluate", {"expression": "(() => 42)()", "returnByValue": True}), "Runtime.evaluate") + result = expect_object(runtime_eval.get("result"), "Runtime.evaluate.result") + if result.get("value") != 42: + raise RuntimeError(f"unexpected Runtime.evaluate result {runtime_eval}") + print(f"Runtime.evaluate -> {runtime_eval}") - print(f"\nSUCCESS ({mode}/{upstream_mode}): normal command, normal event, custom commands, custom event, and middleware all passed") + print(f"\nSUCCESS ({mode}/{upstream_mode}): native command, custom commands, custom event, and middleware all passed") # TTY-only: drop into a REPL where you can send live commands and # watch events as they print. Skip when run non-interactively so the @@ -410,7 +307,7 @@ def run_repl(cdp, mode): print("Enter commands as Domain.method({...JSON params...}). Examples:") print(' Browser.getVersion({})') print(' Mod.evaluate({"expression": "chrome.tabs.query({active: true})"})') - print(' Custom.TabIdFromTargetId({"targetId": "..."})') + print(' Runtime.evaluate({"expression": "document.title", "returnByValue": true})') print("Type exit or quit to disconnect (browser keeps running).") cmd_re = re.compile(r"^([A-Za-z_]\w*\.[A-Za-z_]\w*)(?:\((.*)\))?$") while True: diff --git a/python/modcdp/client/ModCDPClient.py b/python/modcdp/client/ModCDPClient.py index 6a0be9d4..4421e8b5 100644 --- a/python/modcdp/client/ModCDPClient.py +++ b/python/modcdp/client/ModCDPClient.py @@ -505,8 +505,7 @@ def _send_command( method, command_params, routes=cast(ModCDPRoutes, self.client["client_routes"]), - cdp_session_id=self.ext_session_id, - target_cdp_session_id=session_id, + cdp_session_id=session_id, ) result = self._send_raw(command) if should_validate_result and method != "Mod.addCustomCommand": @@ -718,27 +717,24 @@ def _stop_heartbeat(self) -> None: stop.set() self._heartbeat_thread = None - def _session_id_for_target(self, target_id: str, timeout: float = 0) -> str | None: + def _ensureSessionForTarget(self, target_id: str, timeout: float = 0, allow_attach: bool = False) -> str | None: + session_id = self.auto_sessions.sessionId_from_targetId.get(target_id) + if session_id: + return session_id + if allow_attach: + attached_session_id = self.auto_sessions.attachToTarget(target_id) + if attached_session_id: + return attached_session_id if timeout <= 0: - return self.auto_sessions.sessionIdForTarget(target_id) + return self.auto_sessions.sessionId_from_targetId.get(target_id) deadline = time.time() + timeout while time.time() <= deadline: - session_id = self.auto_sessions.sessionIdForTarget(target_id) + session_id = self.auto_sessions.sessionId_from_targetId.get(target_id) if session_id: return session_id time.sleep(self.injector["injector_target_session_poll_interval_ms"] / 1000) return None - def _ensure_session_id_for_target(self, target_id: str, timeout: float = 0, allow_attach: bool = False) -> str | None: - session_id = self.auto_sessions.sessionIdForTarget(target_id) - if session_id: - return session_id - if allow_attach: - attached_session_id = self.auto_sessions.attachToTarget(target_id) - if attached_session_id: - return attached_session_id - return self._session_id_for_target(target_id, timeout=timeout) - def _browser_launcher(self): if self.launcher.get("launcher_mode") == "local": return LocalBrowserLauncher(self._launch_options()) @@ -826,7 +822,7 @@ def _connect_upstream_transport(self) -> None: def _server_needs_loopback_cdp(self) -> bool: if self.server is None or self.server.get("server_loopback_cdp_url"): return False - return "loopback_cdp" in set((self.server.get("server_routes") or {}).values()) + return (self.server.get("server_routes") or {}).get("*.*") == "loopback_cdp" def _upstream_transport_config(self) -> dict[str, Any]: return { @@ -907,17 +903,17 @@ def send_cdp(method: str, params: ProtocolParams | None = None, session_id: str timeout=self.client["client_cdp_send_timeout_ms"] / 1000, ) - def attach_to_target(target_id: str) -> str | None: - return self._ensure_session_id_for_target( + def ensure_session_for_target(target_id: str, timeout_ms: int, allow_attach: bool) -> str | None: + return self._ensureSessionForTarget( target_id, - timeout=self.injector["injector_service_worker_probe_timeout_ms"] / 1000, - allow_attach=True, + timeout=timeout_ms / 1000, + allow_attach=allow_attach, ) return { "send": send_cdp if send is not None else None, - "sessionIdForTarget": self.auto_sessions.sessionIdForTarget, - "attachToTarget": attach_to_target if send is not None else None, + "sessionId_from_targetId": self.auto_sessions.sessionId_from_targetId, + "ensureSessionForTarget": ensure_session_for_target if send is not None else None, "waitForExecutionContext": self.auto_sessions.waitForExecutionContext, "injector_extension_path": cast(str | None, self.injector.get("injector_extension_path")), "injector_extension_id": cast(str | None, self.injector.get("injector_extension_id")), diff --git a/python/modcdp/extension.zip b/python/modcdp/extension.zip index 8032e35e8f67569bd6d299bcd5ea2782249d03ca..28d163a45b1277ec0a673e0052202034a7bc9667 100644 GIT binary patch delta 483024 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

  • d^4Dppl-DFez#YMUEZA9aapo2PZ_ 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

    >8t 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%0D#f9?y? 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 ExtensionInjectionResult | None: return borrowed[0] if borrowed else None def _bootstrapTarget(self, target) -> ExtensionInjectionResult | None: - session_id = self._ensureSessionIdForTarget( + session_id = self._ensureSessionForTarget( target["targetId"], self.options.get("injector_service_worker_probe_timeout_ms") or DEFAULT_SERVICE_WORKER_PROBE_TIMEOUT_MS, True, diff --git a/python/modcdp/injector/ExtensionInjector.py b/python/modcdp/injector/ExtensionInjector.py index 510abb3f..f4fe81f8 100644 --- a/python/modcdp/injector/ExtensionInjector.py +++ b/python/modcdp/injector/ExtensionInjector.py @@ -33,15 +33,14 @@ DEFAULT_TARGET_SESSION_POLL_INTERVAL_MS = 20 SendCDP = Callable[[str, ProtocolParams | None, str | None], ProtocolResult] -SessionIdForTarget = Callable[[str], str | None] -AttachToTarget = Callable[[str], str | None] +EnsureSessionForTarget = Callable[[str, int, bool], str | None] WaitForExecutionContext = Callable[[str, int], int] class ExtensionInjectorConfig(TypedDict, total=False): send: SendCDP | None - sessionIdForTarget: SessionIdForTarget | None - attachToTarget: AttachToTarget | None + sessionId_from_targetId: dict[str, str] | None + ensureSessionForTarget: EnsureSessionForTarget | None waitForExecutionContext: WaitForExecutionContext | None injector_extension_path: str | None injector_extension_id: str | None @@ -131,8 +130,8 @@ class ExtensionInjector: def __init__(self, options: ExtensionInjectorConfig | None = None) -> None: self.options = cast(ExtensionInjectorConfig, { "send": None, - "sessionIdForTarget": None, - "attachToTarget": None, + "sessionId_from_targetId": None, + "ensureSessionForTarget": None, "waitForExecutionContext": None, "injector_extension_path": None, "injector_extension_id": None, @@ -235,31 +234,16 @@ def runSend() -> None: raise error return result or {} - def _sessionIdForTarget(self, target_id: str, timeout_ms: int = 0) -> str | None: - deadline = time.monotonic() + timeout_ms / 1000 - while True: - session_id = self.options.get("sessionIdForTarget") - if session_id is not None: - value = session_id(target_id) - if value: - return value - if time.monotonic() >= deadline: - return None - time.sleep(_defaulted(self.options.get("injector_target_session_poll_interval_ms"), DEFAULT_TARGET_SESSION_POLL_INTERVAL_MS) / 1000) - - def _ensureSessionIdForTarget(self, target_id: str, timeout_ms: int = 0, allow_attach: bool = False) -> str | None: - session_id = self.options.get("sessionIdForTarget") - if session_id is not None: - value = session_id(target_id) - if value: - return value - if allow_attach: - attach_to_target = self.options.get("attachToTarget") - if attach_to_target is not None: - attached_session_id = attach_to_target(target_id) - if attached_session_id: - return attached_session_id - return self._sessionIdForTarget(target_id, timeout_ms) + def _ensureSessionForTarget(self, target_id: str, timeout_ms: int = 0, allow_attach: bool = False) -> str | None: + sessionId_from_targetId = self.options.get("sessionId_from_targetId") + if sessionId_from_targetId is not None: + session_id = sessionId_from_targetId.get(target_id) + if session_id: + return session_id + ensure_session_for_target = self.options.get("ensureSessionForTarget") + if ensure_session_for_target is None: + return None + return ensure_session_for_target(target_id, timeout_ms, allow_attach) def _targetInfos(self) -> list[TargetInfo]: result = self._sendWithTimeout("Target.getTargets") @@ -287,7 +271,7 @@ def _probeTarget( target_id = target["targetId"] if target_id in self.unusable_target_ids: return None - session_id = self._ensureSessionIdForTarget(target_id, session_timeout_ms, allow_attach) + session_id = self._ensureSessionForTarget(target_id, session_timeout_ms, allow_attach) if session_id is None: return None self._sendWithTimeout("Runtime.enable", {}, session_id) diff --git a/python/modcdp/router/AutoSessionRouter.py b/python/modcdp/router/AutoSessionRouter.py index adcc6162..64db2c0a 100644 --- a/python/modcdp/router/AutoSessionRouter.py +++ b/python/modcdp/router/AutoSessionRouter.py @@ -6,28 +6,23 @@ SendCDP = Callable[[str, dict[str, Any], str | None], dict[str, Any]] -max_detached_session_guards = 1024 class AutoSessionRouter: def __init__(self, send: SendCDP, defaultExecutionContextTimeoutMs: Callable[[], int]) -> None: self.send = send self.defaultExecutionContextTimeoutMs = defaultExecutionContextTimeoutMs - self.target_sessions: dict[str, str] = {} - self.session_targets: dict[str, dict[str, Any]] = {} + self.sessionId_from_targetId: dict[str, str] = {} + self.targetId_from_sessionId: dict[str, str] = {} self.execution_contexts: dict[str, int] = {} self._execution_context_waiters: dict[str, list[tuple[threading.Event, dict[str, Any]]]] = {} - self._detached_sessions: dict[str, None] = {} self._lock = threading.RLock() - def sessionIdForTarget(self, target_id: str) -> str | None: - with self._lock: - return self.target_sessions.get(target_id) - def attachToTarget(self, target_id: str) -> str | None: - existing_session_id = self.sessionIdForTarget(target_id) - if existing_session_id is not None: - return existing_session_id + with self._lock: + session_id = self.sessionId_from_targetId.get(target_id) + if session_id is not None: + return session_id result = self.send("Target.attachToTarget", {"targetId": target_id, "flatten": True}, None) session_id = result.get("sessionId") return session_id if isinstance(session_id, str) and session_id else None @@ -41,9 +36,8 @@ def recordProtocolEvent(self, method: str, data: object, session_id: str | None) target_id = target_info.get("targetId") if target_info else None if isinstance(attached_session_id, str) and isinstance(target_id, str) and target_info: with self._lock: - self._detached_sessions.pop(attached_session_id, None) - self.target_sessions[target_id] = attached_session_id - self.session_targets[attached_session_id] = target_info + self.sessionId_from_targetId[target_id] = attached_session_id + self.targetId_from_sessionId[attached_session_id] = target_id elif method == "Runtime.executionContextCreated": raw_context = event_data.get("context") context = raw_context if isinstance(raw_context, Mapping) else None @@ -80,7 +74,7 @@ def waitForExecutionContext(self, session_id: str | None, timeout_ms: int | None def _recordExecutionContext(self, session_id: str, context_id: int) -> None: with self._lock: - if session_id in self._detached_sessions: + if session_id not in self.targetId_from_sessionId: return self.execution_contexts[session_id] = context_id waiters = self._execution_context_waiters.pop(session_id, []) @@ -90,23 +84,12 @@ def _recordExecutionContext(self, session_id: str, context_id: int) -> None: def _forgetSession(self, session_id: str) -> None: with self._lock: - target_info = self.session_targets.pop(session_id, None) - target_id = target_info.get("targetId") if target_info else None - if isinstance(target_id, str): - self.target_sessions.pop(target_id, None) + target_id = self.targetId_from_sessionId.pop(session_id, None) + if target_id is not None: + self.sessionId_from_targetId.pop(target_id, None) self.execution_contexts.pop(session_id, None) - self._markDetachedSession(session_id) waiters = self._execution_context_waiters.pop(session_id, []) error = RuntimeError(f"Runtime execution context wait cancelled because session {session_id} detached.") for event, result in waiters: result["error"] = error event.set() - - def _markDetachedSession(self, session_id: str) -> None: - self._detached_sessions.pop(session_id, None) - self._detached_sessions[session_id] = None - while len(self._detached_sessions) > max_detached_session_guards: - oldest_session_id = next(iter(self._detached_sessions), None) - if oldest_session_id is None: - break - self._detached_sessions.pop(oldest_session_id, None) diff --git a/python/modcdp/translate/translate.py b/python/modcdp/translate/translate.py index 648ba165..594b1b6f 100644 --- a/python/modcdp/translate/translate.py +++ b/python/modcdp/translate/translate.py @@ -1,7 +1,6 @@ """Pure ModCDP <-> CDP translation helpers for the Python client.""" import json -import time from typing import cast from ..types.modcdp import ( @@ -77,16 +76,15 @@ def _call_function_params(function_declaration: str) -> RuntimeCallFunctionOnPar def _wrap_modcdp_evaluate( params: ProtocolParams, - session_id: str, - target_session_id: str | None = None, + cdp_session_id: str | None = None, ) -> RuntimeCallFunctionOnParams: expression = _required_string(params, "expression") user_params = params.get("params", {}) - cdp_session_id = target_session_id or _optional_string(params, "cdpSessionId") or session_id + resolved_cdp_session_id = _optional_string(params, "cdpSessionId") or cdp_session_id return _call_function_params( "async function() {\n" f" const params = {json.dumps(user_params)};\n" - f" const cdp = globalThis.ModCDP.attachToSession({json.dumps(cdp_session_id)});\n" + f" const cdp = globalThis.ModCDP.attachToSession({json.dumps(resolved_cdp_session_id)});\n" " const ModCDP = globalThis.ModCDP;\n" " const chrome = globalThis.chrome;\n" f" const value = ({expression});\n" @@ -151,7 +149,7 @@ def _wrap_modcdp_add_middleware(params: ProtocolParams) -> RuntimeCallFunctionOn ) -def _wrap_custom_command(method: str, params: ProtocolParams, session_id: str) -> RuntimeCallFunctionOnParams: +def _wrap_custom_command(method: str, params: ProtocolParams, session_id: str | None) -> RuntimeCallFunctionOnParams: runtime_params = _call_function_params( "async function(method, paramsJson, cdpSessionId) { " "return JSON.stringify(await globalThis.ModCDP.handleCommand(method, JSON.parse(paramsJson), cdpSessionId)); " @@ -164,12 +162,8 @@ def _wrap_custom_command(method: str, params: ProtocolParams, session_id: str) - def _wrap_service_worker_command( method: str, params: ProtocolParams, - session_id: str, - target_session_id: str | None = None, + cdp_session_id: str | None = None, ) -> list[TranslatedStep]: - if method == "Mod.ping" and "sent_at" not in params: - params = {**params, "sent_at": int(time.time() * 1000)} - if method == "Mod.addCustomEvent": return [ { @@ -180,13 +174,13 @@ def _wrap_service_worker_command( ] unwrap = "runtime" if method == "Mod.evaluate": - runtime_params = _wrap_modcdp_evaluate(params, session_id, target_session_id) + runtime_params = _wrap_modcdp_evaluate(params, cdp_session_id) elif method == "Mod.addCustomCommand": runtime_params = _wrap_modcdp_add_custom_command(params) elif method == "Mod.addMiddleware": runtime_params = _wrap_modcdp_add_middleware(params) else: - runtime_params = _wrap_custom_command(method, params, target_session_id or _optional_string(params, "cdpSessionId") or session_id) + runtime_params = _wrap_custom_command(method, params, _optional_string(params, "cdpSessionId") or cdp_session_id) unwrap = "runtime_json" return [{"method": "Runtime.callFunctionOn", "params": runtime_params, "unwrap": unwrap}] @@ -197,22 +191,19 @@ def wrap_command_if_needed( *, routes: ModCDPRoutes | None = None, cdp_session_id: str | None = None, - target_cdp_session_id: str | None = None, ) -> TranslatedCommand: params = params or {} route = route_for(method, routes or DEFAULT_CLIENT_ROUTES) if route == "direct_cdp": step: TranslatedStep = {"method": method, "params": params} - if target_cdp_session_id: - step["sessionId"] = target_cdp_session_id + if cdp_session_id: + step["sessionId"] = cdp_session_id return {"route": route, "target": "direct_cdp", "steps": [step]} if route == "service_worker": - if cdp_session_id is None: - raise RuntimeError(f"service_worker route requires a CDP session id for {method}") return { "route": route, "target": "service_worker", - "steps": _wrap_service_worker_command(method, params, cdp_session_id, target_cdp_session_id), + "steps": _wrap_service_worker_command(method, params, cdp_session_id), } raise RuntimeError(f"Unsupported client route '{route}' for {method}") diff --git a/python/tests/test_AutoSessionRouter.py b/python/tests/test_AutoSessionRouter.py index 0b9cd57c..219a7f4f 100644 --- a/python/tests/test_AutoSessionRouter.py +++ b/python/tests/test_AutoSessionRouter.py @@ -13,54 +13,6 @@ class AutoSessionRouterTests(unittest.TestCase): - def test_rejects_pending_execution_context_waiters_when_session_detaches(self) -> None: - router = AutoSessionRouter(lambda _method, _params, _session_id: {}, lambda: 5_000) - result: Queue[int | BaseException] = Queue() - threading.Thread( - target=lambda: _put_result(result, lambda: router.waitForExecutionContext("detached-session", 5_000)), - daemon=True, - ).start() - - router.recordProtocolEvent( - "Target.attachedToTarget", - {"sessionId": "detached-session", "targetInfo": {"targetId": "target-1", "type": "page"}}, - None, - ) - router.recordProtocolEvent("Target.detachedFromTarget", {"sessionId": "detached-session"}, None) - router.recordProtocolEvent( - "Runtime.executionContextCreated", - {"context": {"id": 42}}, - "detached-session", - ) - - error = result.get(timeout=1) - self.assertIsInstance(error, RuntimeError) - self.assertIn("Runtime execution context wait cancelled because session detached-session detached.", str(error)) - self.assertIsNone(router.sessionIdForTarget("target-1")) - self.assertNotIn("detached-session", router.execution_contexts) - - def test_bounds_detached_session_guards_and_clears_them_when_session_reattaches(self) -> None: - router = AutoSessionRouter(lambda _method, _params, _session_id: {}, lambda: 5_000) - - for index in range(1034): - router.recordProtocolEvent("Target.detachedFromTarget", {"sessionId": f"detached-session-{index}"}, None) - - self.assertLessEqual(len(router._detached_sessions), 1024) - - recent_session_id = "detached-session-1033" - router.recordProtocolEvent("Runtime.executionContextCreated", {"context": {"id": 42}}, recent_session_id) - self.assertNotIn(recent_session_id, router.execution_contexts) - - router.recordProtocolEvent( - "Target.attachedToTarget", - {"sessionId": recent_session_id, "targetInfo": {"targetId": "target-reattached", "type": "page"}}, - None, - ) - router.recordProtocolEvent("Runtime.executionContextCreated", {"context": {"id": 43}}, recent_session_id) - - self.assertEqual(router.sessionIdForTarget("target-reattached"), recent_session_id) - self.assertEqual(router.execution_contexts[recent_session_id], 43) - def test_tracks_real_target_sessions_and_execution_contexts(self) -> None: chrome = LocalBrowserLauncher({"headless": True}).launch() ws = create_connection(str(chrome["cdp_url"]), timeout=10) @@ -113,12 +65,14 @@ def reader() -> None: thread = threading.Thread(target=reader, daemon=True) thread.start() target_id: str | None = None + pending_target_id: str | None = None try: send("Target.setAutoAttach", {"autoAttach": True, "waitForDebuggerOnStart": False, "flatten": True}) send("Target.setDiscoverTargets", {"discover": True}) created = send("Target.createTarget", {"url": "about:blank#modcdp-auto-session-router"}) - target_id = str(created["targetId"]) - session_id = _wait_for(lambda: router.sessionIdForTarget(target_id)) + created_target_id = str(created["targetId"]) + target_id = created_target_id + session_id = _wait_for(lambda: router.sessionId_from_targetId.get(created_target_id)) context_result: Queue[int | BaseException] = Queue() threading.Thread( target=lambda: _put_result(context_result, lambda: router.waitForExecutionContext(session_id, 30_000)), @@ -132,13 +86,45 @@ def reader() -> None: self.assertEqual(router.execution_contexts[session_id], context_id) send("Target.detachFromTarget", {"sessionId": session_id}) - _wait_for(lambda: None if router.sessionIdForTarget(target_id) else "detached") + _wait_for(lambda: None if router.sessionId_from_targetId.get(created_target_id) else "detached") + self.assertNotIn(session_id, router.execution_contexts) + send("Target.closeTarget", {"targetId": created_target_id}) + target_id = None + + pending_created = send("Target.createTarget", {"url": "about:blank#modcdp-auto-session-router-pending-context"}) + created_pending_target_id = str(pending_created["targetId"]) + pending_target_id = created_pending_target_id + pending_session_id = _wait_for(lambda: router.sessionId_from_targetId.get(created_pending_target_id)) + pending_result: Queue[int | BaseException] = Queue() + threading.Thread( + target=lambda: _put_result( + pending_result, + lambda: router.waitForExecutionContext(pending_session_id, 30_000), + ), + daemon=True, + ).start() + send("Target.detachFromTarget", {"sessionId": pending_session_id}) + pending_error = pending_result.get(timeout=35) + self.assertIsInstance(pending_error, RuntimeError) + self.assertIn( + f"Runtime execution context wait cancelled because session {pending_session_id} detached.", + str(pending_error), + ) + _wait_for(lambda: None if router.sessionId_from_targetId.get(created_pending_target_id) else "detached") + self.assertNotIn(pending_session_id, router.execution_contexts) + send("Target.closeTarget", {"targetId": created_pending_target_id}) + pending_target_id = None finally: if target_id: try: send("Target.closeTarget", {"targetId": target_id}) except Exception: pass + if pending_target_id: + try: + send("Target.closeTarget", {"targetId": pending_target_id}) + except Exception: + pass closed = True ws.close() chrome["close"]() diff --git a/python/tests/test_ModCDPClient.py b/python/tests/test_ModCDPClient.py index cd2060c5..ac7364dc 100644 --- a/python/tests/test_ModCDPClient.py +++ b/python/tests/test_ModCDPClient.py @@ -159,15 +159,15 @@ def test_preserves_explicit_none_server_config(self) -> None: self.assertIsNone(cdp.server) - def test_only_exposes_injector_attach_after_cdp_send_is_available(self) -> None: + def test_only_exposes_injector_ensure_after_cdp_send_is_available(self) -> None: cdp = ModCDPClient() disconnected_config = cdp._base_extension_injector_config(None) self.assertIsNone(disconnected_config.get("send")) - self.assertIsNone(disconnected_config.get("attachToTarget")) + self.assertIsNone(disconnected_config.get("ensureSessionForTarget")) connected_config = cdp._base_extension_injector_config(lambda method, params=None, session_id=None: {}) self.assertTrue(callable(connected_config.get("send"))) - self.assertTrue(callable(connected_config.get("attachToTarget"))) + self.assertTrue(callable(connected_config.get("ensureSessionForTarget"))) def test_defaults_launched_modcdp_server_upstreams_to_extension_auto(self) -> None: for mode in ("nativemessaging", "reversews", "nats"): diff --git a/python/tests/test_ModCDPClientRoutedDefaultOverrides.py b/python/tests/test_ModCDPClientRoutedDefaultOverrides.py index 24db6c3a..a973fc86 100644 --- a/python/tests/test_ModCDPClientRoutedDefaultOverrides.py +++ b/python/tests/test_ModCDPClientRoutedDefaultOverrides.py @@ -14,7 +14,7 @@ GET_TARGETS_OVERRIDE = r""" async (params) => { const [upstream, tabs] = await Promise.all([ - ModCDP.sendLoopback("Target.getTargets", params), + cdp.upstream.send("Target.getTargets", params), chrome.tabs.query({}), ]); diff --git a/python/tests/test_translate.py b/python/tests/test_translate.py index fd9ff1cd..e3b08bc0 100644 --- a/python/tests/test_translate.py +++ b/python/tests/test_translate.py @@ -39,6 +39,10 @@ def test_routes_wraps_and_unwraps_modcdp_protocol_messages_deterministically(sel ) self.assertEqual(configured["steps"][0].get("unwrap"), "runtime_json") + ping = wrap_command_if_needed("Mod.ping", {}) + ping_arguments = cast("list[dict[str, object]]", ping["steps"][0].get("params", {}).get("arguments", [])) + self.assertEqual(json.loads(str(ping_arguments[1].get("value"))), {}) + custom = wrap_command_if_needed( "Custom.echo", {"secret": "x" * 100, "nested": {"ok": True}}, @@ -52,6 +56,14 @@ def test_routes_wraps_and_unwraps_modcdp_protocol_messages_deterministically(sel self.assertEqual(json.loads(str(custom_arguments[1].get("value"))), {"secret": "x" * 100, "nested": {"ok": True}}) self.assertEqual(custom_arguments[2].get("value"), "session-1") + custom_with_session = wrap_command_if_needed( + "Custom.echo", + {"secret": "targeted"}, + cdp_session_id="target-session-1", + ) + custom_with_session_arguments = cast("list[dict[str, object]]", custom_with_session["steps"][0].get("params", {}).get("arguments", [])) + self.assertEqual(custom_with_session_arguments[2].get("value"), "target-session-1") + self.assertEqual(unwrap_response_if_needed({"result": {"type": "object", "value": {"ok": True}}}, "runtime"), {"ok": True}) self.assertEqual(unwrap_response_if_needed({"product": "Chrome/1"}, None), {"product": "Chrome/1"})

  • ; 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