diff --git a/Sources/OpenAPIKit/JSONReference.swift b/Sources/OpenAPIKit/JSONReference.swift index 9d89efd83..bf7edef67 100644 --- a/Sources/OpenAPIKit/JSONReference.swift +++ b/Sources/OpenAPIKit/JSONReference.swift @@ -469,7 +469,13 @@ extension JSONReference: Decodable { } self = .internal(internalReference) } else { - guard let externalReference = URL(string: referenceString) else { + let externalReference: URL? + if #available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *) { + externalReference = URL(string: referenceString, encodingInvalidCharacters: false) + } else { + externalReference = URL(string: referenceString) + } + guard let externalReference = externalReference else { throw InconsistencyError( subjectName: "JSON Reference", details: "Failed to parse a valid URI for a JSON Reference from '\(referenceString)'", diff --git a/Sources/OpenAPIKit30/JSONReference.swift b/Sources/OpenAPIKit30/JSONReference.swift index a544ffd68..ddecc522f 100644 --- a/Sources/OpenAPIKit30/JSONReference.swift +++ b/Sources/OpenAPIKit30/JSONReference.swift @@ -333,7 +333,13 @@ extension JSONReference: Decodable { } self = .internal(internalReference) } else { - guard let externalReference = URL(string: referenceString) else { + let externalReference: URL? + if #available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *) { + externalReference = URL(string: referenceString, encodingInvalidCharacters: false) + } else { + externalReference = URL(string: referenceString) + } + guard let externalReference = externalReference else { throw InconsistencyError( subjectName: "JSON Reference", details: "Failed to parse a valid URI for a JSON Reference from '\(referenceString)'",