From 5a017a732e324fbbc2cee64c14cf2547d8c3345d Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sun, 15 Feb 2026 04:47:10 +0000 Subject: [PATCH] Refactor baseURL validation into focused helpers Co-authored-by: Eric Allam --- packages/ai/src/chatTransport.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/ai/src/chatTransport.ts b/packages/ai/src/chatTransport.ts index 62fcbe367..0d73b4e8e 100644 --- a/packages/ai/src/chatTransport.ts +++ b/packages/ai/src/chatTransport.ts @@ -473,22 +473,32 @@ function normalizeBaseUrl(baseURL: string) { throw new Error("baseURL must be a valid absolute URL"); } + assertValidBaseUrlProtocol(parsedBaseUrl); + assertBaseUrlHasNoQueryOrHash(parsedBaseUrl); + assertBaseUrlHasNoCredentials(parsedBaseUrl); + + return normalizedBaseUrl; +} + +function assertValidBaseUrlProtocol(parsedBaseUrl: URL) { if ( parsedBaseUrl.protocol !== "http:" && parsedBaseUrl.protocol !== "https:" ) { throw new Error("baseURL must use http or https protocol"); } +} +function assertBaseUrlHasNoQueryOrHash(parsedBaseUrl: URL) { if (parsedBaseUrl.search.length > 0 || parsedBaseUrl.hash.length > 0) { throw new Error("baseURL must not include query parameters or hash fragments"); } +} +function assertBaseUrlHasNoCredentials(parsedBaseUrl: URL) { if (parsedBaseUrl.username.length > 0 || parsedBaseUrl.password.length > 0) { throw new Error("baseURL must not include username or password credentials"); } - - return normalizedBaseUrl; } function createTransportRequest(