From bff990628bc10e2c501c02af3e42213dd30be677 Mon Sep 17 00:00:00 2001 From: ywkj Date: Mon, 30 Mar 2026 12:08:41 +0800 Subject: [PATCH] fix: use localhost for CDP (IPv6), prevent null overwrite on dimensions - CDP discovery uses localhost instead of 127.0.0.1 (Chrome binds IPv6) - Only overwrite logistics fields when parsing succeeds, preventing later unparseable keys from nullifying valid parsed values Co-Authored-By: Claude Opus 4.6 --- src/index.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/index.ts b/src/index.ts index d589808..d5bf8e8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -81,7 +81,7 @@ class CdpSession { private pending = new Map void; reject: (e: Error) => void }>(); static async connect(port: number): Promise { - const resp = await fetch(`http://127.0.0.1:${port}/json`); + const resp = await fetch(`http://localhost:${port}/json`); const targets = (await resp.json()) as Array<{ webSocketDebuggerUrl: string; type: string }>; const page = targets.find(t => t.type === 'page'); if (!page) throw new Error('No Chrome page tab found. Open a tab first.'); @@ -414,12 +414,12 @@ export async function run( if (logistics.weight) logistics.weight.source = 'attributes'; } if (matchKey(key, DIMENSION_KEYS)) { - logistics.dimensions = parseDimensions(val); - if (logistics.dimensions) logistics.dimensions.source = 'attributes'; + const parsed = parseDimensions(val); + if (parsed) { parsed.source = 'attributes'; logistics.dimensions = parsed; } } if (matchKey(key, VOLUME_KEYS)) { - logistics.volume = parseVolume(val); - if (logistics.volume) logistics.volume.source = 'attributes'; + const parsed = parseVolume(val); + if (parsed) { parsed.source = 'attributes'; logistics.volume = parsed; } } if (matchKey(key, ['产地', '发货地', '所在地'])) { logistics.origin = val;