diff --git a/Sources/Helpers/Version.swift b/Sources/Helpers/Version.swift index 624f9f641..b6a8b557b 100644 --- a/Sources/Helpers/Version.swift +++ b/Sources/Helpers/Version.swift @@ -66,3 +66,25 @@ private let _platformVersion: String? = { #else package let platformVersion = _platformVersion #endif + +private let _runtimeVersion: String = { + #if swift(>=6.3) + return "6.3" + #elseif swift(>=6.2) + return "6.2" + #elseif swift(>=6.1) + return "6.1" + #elseif swift(>=6.0) + return "6.0" + #elseif swift(>=5.10) + return "5.10" + #else + return "unknown" + #endif +}() + +#if DEBUG + package let runtimeVersion = isTesting ? "0.0.0" : _runtimeVersion +#else + package let runtimeVersion = _runtimeVersion +#endif diff --git a/Sources/Supabase/Constants.swift b/Sources/Supabase/Constants.swift index 940378343..d1fd5e8b3 100644 --- a/Sources/Supabase/Constants.swift +++ b/Sources/Supabase/Constants.swift @@ -8,17 +8,18 @@ import Foundation let defaultHeaders: [String: String] = { - var headers = [ - "X-Client-Info": "supabase-swift/\(version)" - ] + var clientInfo = "supabase-swift/\(version)" if let platform { - headers["X-Supabase-Client-Platform"] = platform + clientInfo += "; platform=\(platform)" } if let platformVersion { - headers["X-Supabase-Client-Platform-Version"] = platformVersion + clientInfo += "; platform-version=\(platformVersion)" } - return headers + clientInfo += "; runtime=swift" + clientInfo += "; runtime-version=\(runtimeVersion)" + + return ["X-Client-Info": clientInfo] }() diff --git a/Tests/SupabaseTests/SupabaseClientTests.swift b/Tests/SupabaseTests/SupabaseClientTests.swift index 27a120f55..05d5523b8 100644 --- a/Tests/SupabaseTests/SupabaseClientTests.swift +++ b/Tests/SupabaseTests/SupabaseClientTests.swift @@ -69,9 +69,7 @@ final class SupabaseClientTests: XCTestCase { [ "Apikey": "PUBLISHABLE_KEY", "Authorization": "Bearer PUBLISHABLE_KEY", - "X-Client-Info": "supabase-swift/0.0.0", - "X-Supabase-Client-Platform": "macOS", - "X-Supabase-Client-Platform-Version": "0.0.0", + "X-Client-Info": "supabase-swift/0.0.0; platform=macOS; platform-version=0.0.0; runtime=swift; runtime-version=0.0.0", "header_field": "header_value" ] """