From d89ace1843117e710397744766855b7e96063264 Mon Sep 17 00:00:00 2001 From: Minh Vu Date: Tue, 19 May 2026 19:36:57 +0200 Subject: [PATCH] fix: tighten JSONL content type matching --- lib/openai/internal/util.rb | 2 +- rbi/openai/internal/util.rbi | 5 ++++- test/openai/internal/util_test.rb | 7 ++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/openai/internal/util.rb b/lib/openai/internal/util.rb index e254972b..d5529a75 100644 --- a/lib/openai/internal/util.rb +++ b/lib/openai/internal/util.rb @@ -501,7 +501,7 @@ def writable_enum(&blk) # @type [Regexp] JSON_CONTENT = %r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)} # @type [Regexp] - JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)} + JSONL_CONTENT = %r{\Aapplication/(?:x-(?:n|l)djson|(?:x-)?jsonl)(?:\s*;|\z)}i class << self # @api private diff --git a/rbi/openai/internal/util.rbi b/rbi/openai/internal/util.rbi index f80846be..0e1b1c43 100644 --- a/rbi/openai/internal/util.rbi +++ b/rbi/openai/internal/util.rbi @@ -306,7 +306,10 @@ module OpenAI JSON_CONTENT = T.let(%r{^application/(?:[a-zA-Z0-9.-]+\+)?json(?!l)}, Regexp) JSONL_CONTENT = - T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp) + T.let( + %r{\Aapplication/(?:x-(?:n|l)djson|(?:x-)?jsonl)(?:\s*;|\z)}i, + Regexp + ) class << self # @api private diff --git a/test/openai/internal/util_test.rb b/test/openai/internal/util_test.rb index 560d786d..62af5950 100644 --- a/test/openai/internal/util_test.rb +++ b/test/openai/internal/util_test.rb @@ -189,8 +189,13 @@ def test_jsonl_content "application/x-ldjson" => true, "application/jsonl" => true, "application/x-jsonl" => true, + "application/jsonl; charset=utf-8" => true, + "APPLICATION/JSONL" => true, "application/json" => false, - "application/vnd.api+json" => false + "application/vnd.api+json" => false, + "text/plain; name=jsonl" => false, + "foojsonlbar" => false, + "application/notjsonlbutjsonl" => false } cases.each do |header, verdict| assert_pattern do