From ca06abb4cc3399ea070c122be329a22f1c3b6800 Mon Sep 17 00:00:00 2001 From: Madison Rickert <3495636+madisonrickert@users.noreply.github.com> Date: Fri, 15 May 2026 03:03:58 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#74992=20[chrome-re?= =?UTF-8?q?mote-interface]=20expose=20CDP.ProtocolError=20for=20v0.34.0=20?= =?UTF-8?q?by=20@madisonrickert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Claude Opus 4.7 (1M context) --- .../chrome-remote-interface-tests.ts | 23 +++++++++++++++++++ types/chrome-remote-interface/index.d.ts | 14 +++++++++++ types/chrome-remote-interface/package.json | 2 +- 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/types/chrome-remote-interface/chrome-remote-interface-tests.ts b/types/chrome-remote-interface/chrome-remote-interface-tests.ts index 2b35fced6d8bea..ce2ec55644a9c3 100644 --- a/types/chrome-remote-interface/chrome-remote-interface-tests.ts +++ b/types/chrome-remote-interface/chrome-remote-interface-tests.ts @@ -408,3 +408,26 @@ CDP.Activate({ id: "CC46FBFA-3BDA-493B-B2E4-2BE6EB0D97EC" }, (err) => { CDP.Version((err, info) => { if (!err) {} }); + +(async () => { + const client = await CDP(); + try { + await client.send("Page.navigate", { url: "https://github.com" }); + } catch (err) { + if (err instanceof CDP.ProtocolError) { + // $ExpectType ProtocolErrorRequest + err.request; + // $ExpectType string + err.request.method; + // $ExpectType SendError + err.response; + // $ExpectType number + err.response.code; + // $ExpectType string + err.response.message; + } + } + + // @ts-expect-error + new CDP.ProtocolError({} as any, {} as any); +})(); diff --git a/types/chrome-remote-interface/index.d.ts b/types/chrome-remote-interface/index.d.ts index 6d479cea3d04cd..19a2d049af3eff 100644 --- a/types/chrome-remote-interface/index.d.ts +++ b/types/chrome-remote-interface/index.d.ts @@ -1,6 +1,12 @@ import type ProtocolMappingApi from "devtools-protocol/types/protocol-mapping"; import type ProtocolProxyApi from "devtools-protocol/types/protocol-proxy-api"; +declare class ProtocolError extends Error { + private constructor(); + readonly request: CDP.ProtocolErrorRequest; + readonly response: CDP.SendError; +} + declare namespace CDP { interface BaseOptions { host?: string | undefined; @@ -44,6 +50,12 @@ declare namespace CDP { data?: string | undefined; } + interface ProtocolErrorRequest { + method: string; + params?: object | undefined; + sessionId?: string | undefined; + } + interface SendCallback { (error: true, response: SendError): void; (error: false, response: ProtocolMappingApi.Commands[T]["returnType"]): void; @@ -430,6 +442,8 @@ declare const CDP: { Version(options: CDP.BaseOptions, callback: (err: Error | null, info: CDP.VersionResult) => void): void; Version(callback: (err: Error | null, info: CDP.VersionResult) => void): void; Version(options?: CDP.BaseOptions): Promise; + + readonly ProtocolError: typeof ProtocolError; }; export = CDP; diff --git a/types/chrome-remote-interface/package.json b/types/chrome-remote-interface/package.json index c31833ea4be8e5..f481914241399b 100644 --- a/types/chrome-remote-interface/package.json +++ b/types/chrome-remote-interface/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@types/chrome-remote-interface", - "version": "0.33.9999", + "version": "0.34.9999", "projects": [ "https://github.com/cyrus-and/chrome-remote-interface" ],