From 4902cbd4e7ec456cb090f9e8c19764cdbc6d1716 Mon Sep 17 00:00:00 2001 From: anish Date: Mon, 8 Jun 2026 09:48:49 +0000 Subject: [PATCH] fix: Use locale-invariant toLowerCase for header normalization ## Changes being requested Signed-off-by: anish --- src/internal/headers.ts | 2 +- tests/buildHeaders.test.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/internal/headers.ts b/src/internal/headers.ts index c724a9d225..4894a378dd 100644 --- a/src/internal/headers.ts +++ b/src/internal/headers.ts @@ -74,7 +74,7 @@ export const buildHeaders = (newHeaders: HeadersLike[]): NullableHeaders => { for (const headers of newHeaders) { const seenHeaders = new Set(); for (const [name, value] of iterateHeaders(headers)) { - const lowerName = name.toLowerCase(); + const lowerName = name.toLocaleLowerCase('en-US'); if (!seenHeaders.has(lowerName)) { targetHeaders.delete(name); seenHeaders.add(lowerName); diff --git a/tests/buildHeaders.test.ts b/tests/buildHeaders.test.ts index 3f8e4d28ec..2af2bf48ac 100644 --- a/tests/buildHeaders.test.ts +++ b/tests/buildHeaders.test.ts @@ -79,6 +79,25 @@ describe('buildHeaders', () => { ], [[undefined], `NullableHeaders { }`], [[null], `NullableHeaders { }`], + [ + [ + { + 'OpenAI-Organization': 'org-123', + }, + ], + `NullableHeaders { 'OpenAI-Organization': 'org-123' }`, + ], + [ + [ + { + 'OpenAI-Organization': 'org-123', + }, + { + 'openai-organization': 'org-456', + }, + ], + `NullableHeaders { 'openai-organization': 'org-456' }`, + ], ]; for (const [input, expected] of cases) { test(expected, () => {