diff --git a/AGENTS.md b/AGENTS.md index d5c5226..4b0b95c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,7 +2,7 @@ // AGENTS.md // feather-openapi // -// Created by Binary Birds on 2026. 01. 20.. +// Created by Binary Birds on 2026. 01. 20. # Repository Guidelines diff --git a/README.md b/README.md index 49f603d..8af5896 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,11 @@ The FeatherOpenAPI library makes it easy to define OpenAPI specifications using Swift in a type-safe way. -[![Release: 1.0.0-beta.6](https://img.shields.io/badge/Release-1%2E0%2E0--beta%2E6-F05138)](https://github.com/feather-framework/feather-openapi/releases/tag/1.0.0-beta.6) +[ + ![Release: 1.0.0-beta.7](https://img.shields.io/badge/Release-1%2E0%2E0--beta%2E7-F05138) +]( + https://github.com/feather-framework/feather-openapi/releases/tag/1.0.0-beta.7 +) ## Features @@ -30,7 +34,7 @@ The FeatherOpenAPI library makes it easy to define OpenAPI specifications using Use Swift Package Manager; add the dependency to your `Package.swift` file: ```swift -.package(url: "https://github.com/feather-framework/feather-openapi", exact: "1.0.0-beta.6"), +.package(url: "https://github.com/feather-framework/feather-openapi", exact: "1.0.0-beta.7"), ``` Then add `FeatherOpenAPI` to your target dependencies: @@ -41,7 +45,11 @@ Then add `FeatherOpenAPI` to your target dependencies: ## Usage -[![DocC API documentation](https://img.shields.io/badge/DocC-API_documentation-F05138)](https://feather-framework.github.io/feather-openapi/) +[ + ![DocC API documentation](https://img.shields.io/badge/DocC-API_documentation-F05138) +]( + https://feather-framework.github.io/feather-openapi/ +) API documentation is available at the following link. diff --git a/Sources/FeatherOpenAPI/Callback/CallbackID.swift b/Sources/FeatherOpenAPI/Callback/CallbackID.swift index 677c9dc..29700cd 100644 --- a/Sources/FeatherOpenAPI/Callback/CallbackID.swift +++ b/Sources/FeatherOpenAPI/Callback/CallbackID.swift @@ -2,7 +2,7 @@ // CallbackID.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public struct CallbackID: Sendable, Equatable, Hashable, Codable { diff --git a/Sources/FeatherOpenAPI/Components/Components.swift b/Sources/FeatherOpenAPI/Components/Components.swift index b15daad..6178acb 100644 --- a/Sources/FeatherOpenAPI/Components/Components.swift +++ b/Sources/FeatherOpenAPI/Components/Components.swift @@ -2,7 +2,7 @@ // Components.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Components/ComponentsRepresentable.swift b/Sources/FeatherOpenAPI/Components/ComponentsRepresentable.swift index 5b7c250..e13dd99 100644 --- a/Sources/FeatherOpenAPI/Components/ComponentsRepresentable.swift +++ b/Sources/FeatherOpenAPI/Components/ComponentsRepresentable.swift @@ -2,7 +2,7 @@ // ComponentsRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Components/OpenAPIComponentsRepresentable.swift b/Sources/FeatherOpenAPI/Components/OpenAPIComponentsRepresentable.swift index c936cf4..1d67d1c 100644 --- a/Sources/FeatherOpenAPI/Components/OpenAPIComponentsRepresentable.swift +++ b/Sources/FeatherOpenAPI/Components/OpenAPIComponentsRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIComponentsRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Contact/ContactRepresentable.swift b/Sources/FeatherOpenAPI/Contact/ContactRepresentable.swift index c8bffc6..b27c368 100644 --- a/Sources/FeatherOpenAPI/Contact/ContactRepresentable.swift +++ b/Sources/FeatherOpenAPI/Contact/ContactRepresentable.swift @@ -2,7 +2,7 @@ // ContactRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Contact/OpenAPIContactRepresentable.swift b/Sources/FeatherOpenAPI/Contact/OpenAPIContactRepresentable.swift index 023cf1c..e604dcf 100644 --- a/Sources/FeatherOpenAPI/Contact/OpenAPIContactRepresentable.swift +++ b/Sources/FeatherOpenAPI/Contact/OpenAPIContactRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIContactRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Content/Content.swift b/Sources/FeatherOpenAPI/Content/Content.swift index 54aa6ca..0a33912 100644 --- a/Sources/FeatherOpenAPI/Content/Content.swift +++ b/Sources/FeatherOpenAPI/Content/Content.swift @@ -2,7 +2,7 @@ // Content.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Content/ContentMap.swift b/Sources/FeatherOpenAPI/Content/ContentMap.swift index 35e03dd..56c3c1e 100644 --- a/Sources/FeatherOpenAPI/Content/ContentMap.swift +++ b/Sources/FeatherOpenAPI/Content/ContentMap.swift @@ -2,7 +2,7 @@ // ContentMap.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Content/ContentRepresentable.swift b/Sources/FeatherOpenAPI/Content/ContentRepresentable.swift index a566fd7..6732d33 100644 --- a/Sources/FeatherOpenAPI/Content/ContentRepresentable.swift +++ b/Sources/FeatherOpenAPI/Content/ContentRepresentable.swift @@ -2,7 +2,7 @@ // ContentRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Content/OpenAPIContentRepresentable.swift b/Sources/FeatherOpenAPI/Content/OpenAPIContentRepresentable.swift index 4e2d695..cbefe1e 100644 --- a/Sources/FeatherOpenAPI/Content/OpenAPIContentRepresentable.swift +++ b/Sources/FeatherOpenAPI/Content/OpenAPIContentRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIContentRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Document/DocumentRepresentable.swift b/Sources/FeatherOpenAPI/Document/DocumentRepresentable.swift index 21ad032..a801375 100644 --- a/Sources/FeatherOpenAPI/Document/DocumentRepresentable.swift +++ b/Sources/FeatherOpenAPI/Document/DocumentRepresentable.swift @@ -2,7 +2,7 @@ // DocumentRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Document/OpenAPIDocumentRepresentable.swift b/Sources/FeatherOpenAPI/Document/OpenAPIDocumentRepresentable.swift index 1c0116e..e7fb743 100644 --- a/Sources/FeatherOpenAPI/Document/OpenAPIDocumentRepresentable.swift +++ b/Sources/FeatherOpenAPI/Document/OpenAPIDocumentRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIDocumentRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Example/ExampleID.swift b/Sources/FeatherOpenAPI/Example/ExampleID.swift index 8c776c3..85828cd 100644 --- a/Sources/FeatherOpenAPI/Example/ExampleID.swift +++ b/Sources/FeatherOpenAPI/Example/ExampleID.swift @@ -2,7 +2,7 @@ // ExampleID.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public struct ExampleID: Sendable, Equatable, Hashable, Codable { diff --git a/Sources/FeatherOpenAPI/Example/ExampleRepresentable.swift b/Sources/FeatherOpenAPI/Example/ExampleRepresentable.swift index 94a7a7e..3e47f3a 100644 --- a/Sources/FeatherOpenAPI/Example/ExampleRepresentable.swift +++ b/Sources/FeatherOpenAPI/Example/ExampleRepresentable.swift @@ -2,7 +2,7 @@ // ExampleRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Example/OpenAPIExampleRepresentable.swift b/Sources/FeatherOpenAPI/Example/OpenAPIExampleRepresentable.swift index ca8449a..978bdc6 100644 --- a/Sources/FeatherOpenAPI/Example/OpenAPIExampleRepresentable.swift +++ b/Sources/FeatherOpenAPI/Example/OpenAPIExampleRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIExampleRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/ExternalDocs/ExternalDocsRepresentable.swift b/Sources/FeatherOpenAPI/ExternalDocs/ExternalDocsRepresentable.swift index 3100e5a..bbd476c 100644 --- a/Sources/FeatherOpenAPI/ExternalDocs/ExternalDocsRepresentable.swift +++ b/Sources/FeatherOpenAPI/ExternalDocs/ExternalDocsRepresentable.swift @@ -2,7 +2,7 @@ // ExternalDocsRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/ExternalDocs/OpenAPIExternalDocsRepresentable.swift b/Sources/FeatherOpenAPI/ExternalDocs/OpenAPIExternalDocsRepresentable.swift index ce9e187..7177857 100644 --- a/Sources/FeatherOpenAPI/ExternalDocs/OpenAPIExternalDocsRepresentable.swift +++ b/Sources/FeatherOpenAPI/ExternalDocs/OpenAPIExternalDocsRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIExternalDocsRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Header/HeaderID.swift b/Sources/FeatherOpenAPI/Header/HeaderID.swift index 5e58fcc..435cfd9 100644 --- a/Sources/FeatherOpenAPI/Header/HeaderID.swift +++ b/Sources/FeatherOpenAPI/Header/HeaderID.swift @@ -2,7 +2,7 @@ // HeaderID.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public struct HeaderID: Sendable, Equatable, Hashable, Codable { diff --git a/Sources/FeatherOpenAPI/Header/HeaderMap.swift b/Sources/FeatherOpenAPI/Header/HeaderMap.swift index 9cdefc6..842b9f2 100644 --- a/Sources/FeatherOpenAPI/Header/HeaderMap.swift +++ b/Sources/FeatherOpenAPI/Header/HeaderMap.swift @@ -2,7 +2,7 @@ // HeaderMap.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Header/HeaderRepresentable.swift b/Sources/FeatherOpenAPI/Header/HeaderRepresentable.swift index 2b082e6..4359ff5 100644 --- a/Sources/FeatherOpenAPI/Header/HeaderRepresentable.swift +++ b/Sources/FeatherOpenAPI/Header/HeaderRepresentable.swift @@ -2,7 +2,7 @@ // HeaderRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Header/OpenAPIHeaderRepresentable.swift b/Sources/FeatherOpenAPI/Header/OpenAPIHeaderRepresentable.swift index 3557b30..814e8f5 100644 --- a/Sources/FeatherOpenAPI/Header/OpenAPIHeaderRepresentable.swift +++ b/Sources/FeatherOpenAPI/Header/OpenAPIHeaderRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIHeaderRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Identifiable.swift b/Sources/FeatherOpenAPI/Identifiable.swift index 34e3902..7430112 100644 --- a/Sources/FeatherOpenAPI/Identifiable.swift +++ b/Sources/FeatherOpenAPI/Identifiable.swift @@ -2,7 +2,7 @@ // Identifiable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // public protocol Identifiable: Sendable { diff --git a/Sources/FeatherOpenAPI/Info/InfoRepresentable.swift b/Sources/FeatherOpenAPI/Info/InfoRepresentable.swift index e0e32dc..5322071 100644 --- a/Sources/FeatherOpenAPI/Info/InfoRepresentable.swift +++ b/Sources/FeatherOpenAPI/Info/InfoRepresentable.swift @@ -2,7 +2,7 @@ // InfoRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Info/OpenAPIInfoRepresentable.swift b/Sources/FeatherOpenAPI/Info/OpenAPIInfoRepresentable.swift index 4ec2e9f..7197af7 100644 --- a/Sources/FeatherOpenAPI/Info/OpenAPIInfoRepresentable.swift +++ b/Sources/FeatherOpenAPI/Info/OpenAPIInfoRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIInfoRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/License/LicenseRepresentable.swift b/Sources/FeatherOpenAPI/License/LicenseRepresentable.swift index 5c65884..54f7677 100644 --- a/Sources/FeatherOpenAPI/License/LicenseRepresentable.swift +++ b/Sources/FeatherOpenAPI/License/LicenseRepresentable.swift @@ -2,7 +2,7 @@ // LicenseRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/License/OpenAPILicenseRepresentable.swift b/Sources/FeatherOpenAPI/License/OpenAPILicenseRepresentable.swift index b44fb37..b50c641 100644 --- a/Sources/FeatherOpenAPI/License/OpenAPILicenseRepresentable.swift +++ b/Sources/FeatherOpenAPI/License/OpenAPILicenseRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPILicenseRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Link/LinkID.swift b/Sources/FeatherOpenAPI/Link/LinkID.swift index 694c9cc..be61e10 100644 --- a/Sources/FeatherOpenAPI/Link/LinkID.swift +++ b/Sources/FeatherOpenAPI/Link/LinkID.swift @@ -2,7 +2,7 @@ // LinkID.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public struct LinkID: Sendable, Equatable, Hashable, Codable { diff --git a/Sources/FeatherOpenAPI/Link/OpenAPILinkRepresentable.swift b/Sources/FeatherOpenAPI/Link/OpenAPILinkRepresentable.swift index d7bd9d5..6b5792d 100644 --- a/Sources/FeatherOpenAPI/Link/OpenAPILinkRepresentable.swift +++ b/Sources/FeatherOpenAPI/Link/OpenAPILinkRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPILinkRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Location/LocationRepresentable.swift b/Sources/FeatherOpenAPI/Location/LocationRepresentable.swift index 58e6759..b931f23 100644 --- a/Sources/FeatherOpenAPI/Location/LocationRepresentable.swift +++ b/Sources/FeatherOpenAPI/Location/LocationRepresentable.swift @@ -2,7 +2,7 @@ // LocationRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // #if canImport(FoundationEssentials) diff --git a/Sources/FeatherOpenAPI/Location/OpenAPILocationRepresentable.swift b/Sources/FeatherOpenAPI/Location/OpenAPILocationRepresentable.swift index 213e165..141e2c5 100644 --- a/Sources/FeatherOpenAPI/Location/OpenAPILocationRepresentable.swift +++ b/Sources/FeatherOpenAPI/Location/OpenAPILocationRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPILocationRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // #if canImport(FoundationEssentials) diff --git a/Sources/FeatherOpenAPI/Operation/OpenAPIOperationRepresentable.swift b/Sources/FeatherOpenAPI/Operation/OpenAPIOperationRepresentable.swift index 9aebb06..67266af 100644 --- a/Sources/FeatherOpenAPI/Operation/OpenAPIOperationRepresentable.swift +++ b/Sources/FeatherOpenAPI/Operation/OpenAPIOperationRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIOperationRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Operation/OperationRepresentable.swift b/Sources/FeatherOpenAPI/Operation/OperationRepresentable.swift index 66ac92f..740ea2b 100644 --- a/Sources/FeatherOpenAPI/Operation/OperationRepresentable.swift +++ b/Sources/FeatherOpenAPI/Operation/OperationRepresentable.swift @@ -2,7 +2,7 @@ // OperationRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 @@ -62,24 +62,27 @@ extension OperationRepresentable { /// Default summary is `nil`. public var summary: String? { nil } - /// Default operation identifier is `nil`. - public var operationId: String? { nil } - /// Default parameters are empty. - public var parameters: [ParameterRepresentable] { [] } - /// Computes a default operation identifier from the type name. - public static var operationId: String { - var components = String(reflecting: self) + public var operationId: String? { + let suffix = "Operation" + let operationTypeName = String(reflecting: type(of: self)) .split(separator: ".") - .dropFirst() + .filter { $0.hasSuffix(suffix) } .map(String.init) + .joined(separator: "") + guard !operationTypeName.isEmpty else { + return nil + } - components.remove(at: 2) - if let last = components.popLast()?.lowercasedFirstLetter() { - components.insert(last, at: 0) + let typeName = operationTypeName.dropLast(suffix.count) + guard !typeName.isEmpty else { + return nil } - return components.joined(separator: "") + + return String(typeName).lowercasedFirstLetter() } + /// Default parameters are empty. + public var parameters: [ParameterRepresentable] { [] } /// Default request body is `nil`. public var requestBody: RequestBodyRepresentable? { nil } diff --git a/Sources/FeatherOpenAPI/OrderedDictionary+Merge.swift b/Sources/FeatherOpenAPI/OrderedDictionary+Merge.swift index 367141e..68d633e 100644 --- a/Sources/FeatherOpenAPI/OrderedDictionary+Merge.swift +++ b/Sources/FeatherOpenAPI/OrderedDictionary+Merge.swift @@ -2,7 +2,7 @@ // OrderedDictionary+Merge.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Parameter/Abstraction/OpenAPIParameterRepresentable.swift b/Sources/FeatherOpenAPI/Parameter/Abstraction/OpenAPIParameterRepresentable.swift index f4ac8d5..e5021bf 100644 --- a/Sources/FeatherOpenAPI/Parameter/Abstraction/OpenAPIParameterRepresentable.swift +++ b/Sources/FeatherOpenAPI/Parameter/Abstraction/OpenAPIParameterRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIParameterRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Parameter/Abstraction/ParameterID.swift b/Sources/FeatherOpenAPI/Parameter/Abstraction/ParameterID.swift index 7521ec4..066191f 100644 --- a/Sources/FeatherOpenAPI/Parameter/Abstraction/ParameterID.swift +++ b/Sources/FeatherOpenAPI/Parameter/Abstraction/ParameterID.swift @@ -2,7 +2,7 @@ // ParameterID.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public struct ParameterID: Sendable, Equatable, Hashable, Codable { diff --git a/Sources/FeatherOpenAPI/Parameter/Abstraction/ParameterRepresentable.swift b/Sources/FeatherOpenAPI/Parameter/Abstraction/ParameterRepresentable.swift index d381ecd..fad36e8 100644 --- a/Sources/FeatherOpenAPI/Parameter/Abstraction/ParameterRepresentable.swift +++ b/Sources/FeatherOpenAPI/Parameter/Abstraction/ParameterRepresentable.swift @@ -2,7 +2,7 @@ // ParameterRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Parameter/CookieParameterRepresentable.swift b/Sources/FeatherOpenAPI/Parameter/CookieParameterRepresentable.swift index 0d44959..7319b85 100644 --- a/Sources/FeatherOpenAPI/Parameter/CookieParameterRepresentable.swift +++ b/Sources/FeatherOpenAPI/Parameter/CookieParameterRepresentable.swift @@ -2,7 +2,7 @@ // CookieParameterRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Parameter/HeaderParameterRepresentable.swift b/Sources/FeatherOpenAPI/Parameter/HeaderParameterRepresentable.swift index e600dbe..a3ff255 100644 --- a/Sources/FeatherOpenAPI/Parameter/HeaderParameterRepresentable.swift +++ b/Sources/FeatherOpenAPI/Parameter/HeaderParameterRepresentable.swift @@ -2,7 +2,7 @@ // HeaderParameterRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Parameter/PathParameterRepresentable.swift b/Sources/FeatherOpenAPI/Parameter/PathParameterRepresentable.swift index 764bb54..5bfcf16 100644 --- a/Sources/FeatherOpenAPI/Parameter/PathParameterRepresentable.swift +++ b/Sources/FeatherOpenAPI/Parameter/PathParameterRepresentable.swift @@ -2,7 +2,7 @@ // PathParameterRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Parameter/QueryParameterRepresentable.swift b/Sources/FeatherOpenAPI/Parameter/QueryParameterRepresentable.swift index 9447b18..d53d0b4 100644 --- a/Sources/FeatherOpenAPI/Parameter/QueryParameterRepresentable.swift +++ b/Sources/FeatherOpenAPI/Parameter/QueryParameterRepresentable.swift @@ -2,7 +2,7 @@ // QueryParameterRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Path.swift b/Sources/FeatherOpenAPI/Path.swift index 767e229..1b1aa62 100644 --- a/Sources/FeatherOpenAPI/Path.swift +++ b/Sources/FeatherOpenAPI/Path.swift @@ -2,7 +2,7 @@ // Path.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. /// A lightweight OpenAPI path wrapper with composition helpers. public struct Path: ExpressibleByStringLiteral { diff --git a/Sources/FeatherOpenAPI/PathCollection/PathCollectionRepresentable.swift b/Sources/FeatherOpenAPI/PathCollection/PathCollectionRepresentable.swift index 9d8e41e..dc538ed 100644 --- a/Sources/FeatherOpenAPI/PathCollection/PathCollectionRepresentable.swift +++ b/Sources/FeatherOpenAPI/PathCollection/PathCollectionRepresentable.swift @@ -2,7 +2,7 @@ // PathCollectionRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/PathItem/OpenAPIPathItemRepresentable.swift b/Sources/FeatherOpenAPI/PathItem/OpenAPIPathItemRepresentable.swift index 37b0353..248ecb2 100644 --- a/Sources/FeatherOpenAPI/PathItem/OpenAPIPathItemRepresentable.swift +++ b/Sources/FeatherOpenAPI/PathItem/OpenAPIPathItemRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIPathItemRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/PathItem/PathItemRepresentable.swift b/Sources/FeatherOpenAPI/PathItem/PathItemRepresentable.swift index 557c95f..bcc62af 100644 --- a/Sources/FeatherOpenAPI/PathItem/PathItemRepresentable.swift +++ b/Sources/FeatherOpenAPI/PathItem/PathItemRepresentable.swift @@ -2,7 +2,7 @@ // PathItemRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/PathItem/PathMap.swift b/Sources/FeatherOpenAPI/PathItem/PathMap.swift index 0419e46..1900817 100644 --- a/Sources/FeatherOpenAPI/PathItem/PathMap.swift +++ b/Sources/FeatherOpenAPI/PathItem/PathMap.swift @@ -2,7 +2,7 @@ // PathMap.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Reference/ExampleReferenceRepresentable.swift b/Sources/FeatherOpenAPI/Reference/ExampleReferenceRepresentable.swift index e1eac36..8b6a110 100644 --- a/Sources/FeatherOpenAPI/Reference/ExampleReferenceRepresentable.swift +++ b/Sources/FeatherOpenAPI/Reference/ExampleReferenceRepresentable.swift @@ -2,7 +2,7 @@ // ExampleReferenceRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 24.. +// Created by Tibor Bödecs on 2026. 01. 24. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Reference/HeaderReferenceRepresentable.swift b/Sources/FeatherOpenAPI/Reference/HeaderReferenceRepresentable.swift index c531228..6a0ccf6 100644 --- a/Sources/FeatherOpenAPI/Reference/HeaderReferenceRepresentable.swift +++ b/Sources/FeatherOpenAPI/Reference/HeaderReferenceRepresentable.swift @@ -2,7 +2,7 @@ // HeaderReferenceRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Reference/ParameterReferenceRepresentable.swift b/Sources/FeatherOpenAPI/Reference/ParameterReferenceRepresentable.swift index 2c8feab..72b5d0b 100644 --- a/Sources/FeatherOpenAPI/Reference/ParameterReferenceRepresentable.swift +++ b/Sources/FeatherOpenAPI/Reference/ParameterReferenceRepresentable.swift @@ -2,7 +2,7 @@ // ParameterReferenceRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Reference/ReferencedSchemaMapRepresentable.swift b/Sources/FeatherOpenAPI/Reference/ReferencedSchemaMapRepresentable.swift index b79c122..3f2e2ec 100644 --- a/Sources/FeatherOpenAPI/Reference/ReferencedSchemaMapRepresentable.swift +++ b/Sources/FeatherOpenAPI/Reference/ReferencedSchemaMapRepresentable.swift @@ -2,7 +2,7 @@ // ReferencedSchemaMapRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Reference/RequestBodyReferenceRepresentable.swift b/Sources/FeatherOpenAPI/Reference/RequestBodyReferenceRepresentable.swift index bcb44df..bdb0e6f 100644 --- a/Sources/FeatherOpenAPI/Reference/RequestBodyReferenceRepresentable.swift +++ b/Sources/FeatherOpenAPI/Reference/RequestBodyReferenceRepresentable.swift @@ -2,7 +2,7 @@ // RequestBodyReferenceRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Reference/ResponseReferenceRepresentable.swift b/Sources/FeatherOpenAPI/Reference/ResponseReferenceRepresentable.swift index 5f0a5e2..2cdd0c7 100644 --- a/Sources/FeatherOpenAPI/Reference/ResponseReferenceRepresentable.swift +++ b/Sources/FeatherOpenAPI/Reference/ResponseReferenceRepresentable.swift @@ -2,7 +2,7 @@ // ResponseReferenceRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Reference/SchemaReference.swift b/Sources/FeatherOpenAPI/Reference/SchemaReference.swift index 0a220b1..c371977 100644 --- a/Sources/FeatherOpenAPI/Reference/SchemaReference.swift +++ b/Sources/FeatherOpenAPI/Reference/SchemaReference.swift @@ -2,7 +2,7 @@ // SchemaReference.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/RequestBody/Abstraction/OpenAPIRequestBodyRepresentable.swift b/Sources/FeatherOpenAPI/RequestBody/Abstraction/OpenAPIRequestBodyRepresentable.swift index 96d6f3c..6ebedf2 100644 --- a/Sources/FeatherOpenAPI/RequestBody/Abstraction/OpenAPIRequestBodyRepresentable.swift +++ b/Sources/FeatherOpenAPI/RequestBody/Abstraction/OpenAPIRequestBodyRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIRequestBodyRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/RequestBody/Abstraction/RequestBodyID.swift b/Sources/FeatherOpenAPI/RequestBody/Abstraction/RequestBodyID.swift index 28aecf8..aad43cb 100644 --- a/Sources/FeatherOpenAPI/RequestBody/Abstraction/RequestBodyID.swift +++ b/Sources/FeatherOpenAPI/RequestBody/Abstraction/RequestBodyID.swift @@ -2,7 +2,7 @@ // RequestBodyID.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // public struct RequestBodyID: Sendable, Equatable, Hashable, Codable { diff --git a/Sources/FeatherOpenAPI/RequestBody/Abstraction/RequestBodyRepresentable.swift b/Sources/FeatherOpenAPI/RequestBody/Abstraction/RequestBodyRepresentable.swift index a96f5a0..c95e6ec 100644 --- a/Sources/FeatherOpenAPI/RequestBody/Abstraction/RequestBodyRepresentable.swift +++ b/Sources/FeatherOpenAPI/RequestBody/Abstraction/RequestBodyRepresentable.swift @@ -2,7 +2,7 @@ // RequestBodyRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/RequestBody/BinaryRequestBodyRepresentable.swift b/Sources/FeatherOpenAPI/RequestBody/BinaryRequestBodyRepresentable.swift index 762750a..5bee62d 100644 --- a/Sources/FeatherOpenAPI/RequestBody/BinaryRequestBodyRepresentable.swift +++ b/Sources/FeatherOpenAPI/RequestBody/BinaryRequestBodyRepresentable.swift @@ -2,7 +2,7 @@ // BinaryRequestBodyRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/RequestBody/FormRequestBodyRepresentable.swift b/Sources/FeatherOpenAPI/RequestBody/FormRequestBodyRepresentable.swift index 769c183..3892394 100644 --- a/Sources/FeatherOpenAPI/RequestBody/FormRequestBodyRepresentable.swift +++ b/Sources/FeatherOpenAPI/RequestBody/FormRequestBodyRepresentable.swift @@ -2,7 +2,7 @@ // FormRequestBodyRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/RequestBody/JSONRequestBodyRepresentable.swift b/Sources/FeatherOpenAPI/RequestBody/JSONRequestBodyRepresentable.swift index 2e7cd16..7e8fbd1 100644 --- a/Sources/FeatherOpenAPI/RequestBody/JSONRequestBodyRepresentable.swift +++ b/Sources/FeatherOpenAPI/RequestBody/JSONRequestBodyRepresentable.swift @@ -2,7 +2,7 @@ // JSONRequestBodyRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Response/Abstraction/OpenAPIResponseRepresentable.swift b/Sources/FeatherOpenAPI/Response/Abstraction/OpenAPIResponseRepresentable.swift index 38204c6..09c1ddc 100644 --- a/Sources/FeatherOpenAPI/Response/Abstraction/OpenAPIResponseRepresentable.swift +++ b/Sources/FeatherOpenAPI/Response/Abstraction/OpenAPIResponseRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIResponseRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Response/Abstraction/ResponseID.swift b/Sources/FeatherOpenAPI/Response/Abstraction/ResponseID.swift index 6aae4bf..fd5541a 100644 --- a/Sources/FeatherOpenAPI/Response/Abstraction/ResponseID.swift +++ b/Sources/FeatherOpenAPI/Response/Abstraction/ResponseID.swift @@ -2,7 +2,7 @@ // ResponseID.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // public struct ResponseID: Sendable, Equatable, Hashable, Codable { diff --git a/Sources/FeatherOpenAPI/Response/Abstraction/ResponseMap.swift b/Sources/FeatherOpenAPI/Response/Abstraction/ResponseMap.swift index 7962a6a..72e0988 100644 --- a/Sources/FeatherOpenAPI/Response/Abstraction/ResponseMap.swift +++ b/Sources/FeatherOpenAPI/Response/Abstraction/ResponseMap.swift @@ -2,7 +2,7 @@ // ResponseMap.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Response/Abstraction/ResponseRepresentable.swift b/Sources/FeatherOpenAPI/Response/Abstraction/ResponseRepresentable.swift index ec5c156..6d4ddb1 100644 --- a/Sources/FeatherOpenAPI/Response/Abstraction/ResponseRepresentable.swift +++ b/Sources/FeatherOpenAPI/Response/Abstraction/ResponseRepresentable.swift @@ -2,7 +2,7 @@ // ResponseRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 @@ -37,10 +37,13 @@ extension ResponseRepresentable { public func openAPIResponse() -> Either< JSONReference, OpenAPI.Response > { - .init( + let responseHeaders: OpenAPI.Header.Map? = + headerMap.isEmpty ? nil : headerMap.mapValues { $0.openAPIHeader() } + + return .init( .init( description: description, - headers: headerMap.mapValues { $0.openAPIHeader() }, + headers: responseHeaders, content: contentMap.mapValues { $0.openAPIContent() }, links: [:], vendorExtensions: vendorExtensions diff --git a/Sources/FeatherOpenAPI/Response/BinaryResponseRepresentable.swift b/Sources/FeatherOpenAPI/Response/BinaryResponseRepresentable.swift index 6f8743e..2b9244d 100644 --- a/Sources/FeatherOpenAPI/Response/BinaryResponseRepresentable.swift +++ b/Sources/FeatherOpenAPI/Response/BinaryResponseRepresentable.swift @@ -2,7 +2,7 @@ // BinaryResponseRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Response/FormResponseRepresentable.swift b/Sources/FeatherOpenAPI/Response/FormResponseRepresentable.swift index ca00ede..37ba760 100644 --- a/Sources/FeatherOpenAPI/Response/FormResponseRepresentable.swift +++ b/Sources/FeatherOpenAPI/Response/FormResponseRepresentable.swift @@ -2,7 +2,7 @@ // FormResponseRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Response/JSONResponseRepresentable.swift b/Sources/FeatherOpenAPI/Response/JSONResponseRepresentable.swift index b338180..b1f46e1 100644 --- a/Sources/FeatherOpenAPI/Response/JSONResponseRepresentable.swift +++ b/Sources/FeatherOpenAPI/Response/JSONResponseRepresentable.swift @@ -2,7 +2,7 @@ // JSONResponseRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/Abstraction/OpenAPISchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/Abstraction/OpenAPISchemaRepresentable.swift index a0888a2..9fa9cec 100644 --- a/Sources/FeatherOpenAPI/Schema/Abstraction/OpenAPISchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/Abstraction/OpenAPISchemaRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPISchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaID.swift b/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaID.swift index 08c9133..8a91cc1 100644 --- a/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaID.swift +++ b/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaID.swift @@ -2,7 +2,7 @@ // SchemaID.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // public struct SchemaID: Sendable, Equatable, Hashable, Codable { diff --git a/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaMap.swift b/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaMap.swift index 6151b52..d018b05 100644 --- a/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaMap.swift +++ b/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaMap.swift @@ -2,7 +2,7 @@ // SchemaMap.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaRepresentable.swift index 7af88f9..1dd8952 100644 --- a/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/Abstraction/SchemaRepresentable.swift @@ -2,7 +2,7 @@ // SchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/ArraySchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/ArraySchemaRepresentable.swift index f257efe..b3ed01c 100644 --- a/Sources/FeatherOpenAPI/Schema/ArraySchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/ArraySchemaRepresentable.swift @@ -2,7 +2,7 @@ // ArraySchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/BinarySchema.swift b/Sources/FeatherOpenAPI/Schema/BinarySchema.swift index 2f86748..738070c 100644 --- a/Sources/FeatherOpenAPI/Schema/BinarySchema.swift +++ b/Sources/FeatherOpenAPI/Schema/BinarySchema.swift @@ -2,7 +2,7 @@ // BinarySchema.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 24.. +// Created by Tibor Bödecs on 2026. 01. 24. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/BoolSchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/BoolSchemaRepresentable.swift index 03f00eb..5f0f165 100644 --- a/Sources/FeatherOpenAPI/Schema/BoolSchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/BoolSchemaRepresentable.swift @@ -2,7 +2,7 @@ // BoolSchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/DoubleSchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/DoubleSchemaRepresentable.swift index b136a0d..09729fb 100644 --- a/Sources/FeatherOpenAPI/Schema/DoubleSchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/DoubleSchemaRepresentable.swift @@ -2,7 +2,7 @@ // DoubleSchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/FloatSchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/FloatSchemaRepresentable.swift index 923f708..724c85c 100644 --- a/Sources/FeatherOpenAPI/Schema/FloatSchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/FloatSchemaRepresentable.swift @@ -2,7 +2,7 @@ // FloatSchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/Int32SchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/Int32SchemaRepresentable.swift index ef446c9..b303422 100644 --- a/Sources/FeatherOpenAPI/Schema/Int32SchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/Int32SchemaRepresentable.swift @@ -2,7 +2,7 @@ // Int32SchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/Int64SchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/Int64SchemaRepresentable.swift index 1f01181..5c02678 100644 --- a/Sources/FeatherOpenAPI/Schema/Int64SchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/Int64SchemaRepresentable.swift @@ -2,7 +2,7 @@ // Int64SchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/IntSchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/IntSchemaRepresentable.swift index 1dc3bf8..c1c20ed 100644 --- a/Sources/FeatherOpenAPI/Schema/IntSchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/IntSchemaRepresentable.swift @@ -2,7 +2,7 @@ // IntSchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/ObjectSchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/ObjectSchemaRepresentable.swift index e159534..958a2af 100644 --- a/Sources/FeatherOpenAPI/Schema/ObjectSchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/ObjectSchemaRepresentable.swift @@ -2,7 +2,7 @@ // ObjectSchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Schema/StringSchemaRepresentable.swift b/Sources/FeatherOpenAPI/Schema/StringSchemaRepresentable.swift index a553c9d..d55dd3e 100644 --- a/Sources/FeatherOpenAPI/Schema/StringSchemaRepresentable.swift +++ b/Sources/FeatherOpenAPI/Schema/StringSchemaRepresentable.swift @@ -2,7 +2,7 @@ // StringSchemaRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/SecurityRequirement/OpenAPISecurityRequirementRepresentable.swift b/Sources/FeatherOpenAPI/SecurityRequirement/OpenAPISecurityRequirementRepresentable.swift index 1e0ff1c..07d558f 100644 --- a/Sources/FeatherOpenAPI/SecurityRequirement/OpenAPISecurityRequirementRepresentable.swift +++ b/Sources/FeatherOpenAPI/SecurityRequirement/OpenAPISecurityRequirementRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPISecurityRequirementRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/SecurityRequirement/SecurityRequirementRepresentable.swift b/Sources/FeatherOpenAPI/SecurityRequirement/SecurityRequirementRepresentable.swift index 962f7d9..0812e5e 100644 --- a/Sources/FeatherOpenAPI/SecurityRequirement/SecurityRequirementRepresentable.swift +++ b/Sources/FeatherOpenAPI/SecurityRequirement/SecurityRequirementRepresentable.swift @@ -2,7 +2,7 @@ // SecurityRequirementRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/SecurityScheme/OpenAPISecuritySchemeRepresentable.swift b/Sources/FeatherOpenAPI/SecurityScheme/OpenAPISecuritySchemeRepresentable.swift index ce29e15..545c9f0 100644 --- a/Sources/FeatherOpenAPI/SecurityScheme/OpenAPISecuritySchemeRepresentable.swift +++ b/Sources/FeatherOpenAPI/SecurityScheme/OpenAPISecuritySchemeRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPISecuritySchemeRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/SecurityScheme/SecuritySchemeRepresentable.swift b/Sources/FeatherOpenAPI/SecurityScheme/SecuritySchemeRepresentable.swift index 50481f9..5e72bd1 100644 --- a/Sources/FeatherOpenAPI/SecurityScheme/SecuritySchemeRepresentable.swift +++ b/Sources/FeatherOpenAPI/SecurityScheme/SecuritySchemeRepresentable.swift @@ -2,7 +2,7 @@ // SecuritySchemeRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Server/OpenAPIServerRepresentable.swift b/Sources/FeatherOpenAPI/Server/OpenAPIServerRepresentable.swift index e29b800..e6d0c1e 100644 --- a/Sources/FeatherOpenAPI/Server/OpenAPIServerRepresentable.swift +++ b/Sources/FeatherOpenAPI/Server/OpenAPIServerRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIServerRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Server/ServerRepresentable.swift b/Sources/FeatherOpenAPI/Server/ServerRepresentable.swift index f7c108a..5ca8447 100644 --- a/Sources/FeatherOpenAPI/Server/ServerRepresentable.swift +++ b/Sources/FeatherOpenAPI/Server/ServerRepresentable.swift @@ -2,7 +2,7 @@ // ServerRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Tag/OpenAPITagRepresentable.swift b/Sources/FeatherOpenAPI/Tag/OpenAPITagRepresentable.swift index 387c83f..23f55e9 100644 --- a/Sources/FeatherOpenAPI/Tag/OpenAPITagRepresentable.swift +++ b/Sources/FeatherOpenAPI/Tag/OpenAPITagRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPITagRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Tag/TagRepresentable.swift b/Sources/FeatherOpenAPI/Tag/TagRepresentable.swift index 44530dc..ffdf371 100644 --- a/Sources/FeatherOpenAPI/Tag/TagRepresentable.swift +++ b/Sources/FeatherOpenAPI/Tag/TagRepresentable.swift @@ -2,7 +2,7 @@ // TagRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Variable/OpenAPIVariableRepresentable.swift b/Sources/FeatherOpenAPI/Variable/OpenAPIVariableRepresentable.swift index e279064..c7873df 100644 --- a/Sources/FeatherOpenAPI/Variable/OpenAPIVariableRepresentable.swift +++ b/Sources/FeatherOpenAPI/Variable/OpenAPIVariableRepresentable.swift @@ -2,7 +2,7 @@ // OpenAPIVariableRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Variable/VariableMap.swift b/Sources/FeatherOpenAPI/Variable/VariableMap.swift index 865b640..b2a4621 100644 --- a/Sources/FeatherOpenAPI/Variable/VariableMap.swift +++ b/Sources/FeatherOpenAPI/Variable/VariableMap.swift @@ -2,7 +2,7 @@ // VariableMap.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/Variable/VariableRepresentable.swift b/Sources/FeatherOpenAPI/Variable/VariableRepresentable.swift index c5aa7a3..520604f 100644 --- a/Sources/FeatherOpenAPI/Variable/VariableRepresentable.swift +++ b/Sources/FeatherOpenAPI/Variable/VariableRepresentable.swift @@ -2,7 +2,7 @@ // VariableRepresentable.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/_Properties/AllowedValuesProperty.swift b/Sources/FeatherOpenAPI/_Properties/AllowedValuesProperty.swift index 3b3d953..aaabc96 100644 --- a/Sources/FeatherOpenAPI/_Properties/AllowedValuesProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/AllowedValuesProperty.swift @@ -2,7 +2,7 @@ // AllowedValuesProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/_Properties/DefaultValueProperty.swift b/Sources/FeatherOpenAPI/_Properties/DefaultValueProperty.swift index b56154f..af4351d 100644 --- a/Sources/FeatherOpenAPI/_Properties/DefaultValueProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/DefaultValueProperty.swift @@ -2,7 +2,7 @@ // DefaultValueProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/_Properties/DeprecatedProperty.swift b/Sources/FeatherOpenAPI/_Properties/DeprecatedProperty.swift index e14bd7f..d8626d0 100644 --- a/Sources/FeatherOpenAPI/_Properties/DeprecatedProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/DeprecatedProperty.swift @@ -2,7 +2,7 @@ // DeprecatedProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public protocol DeprecatedProperty { diff --git a/Sources/FeatherOpenAPI/_Properties/DescriptionProperty.swift b/Sources/FeatherOpenAPI/_Properties/DescriptionProperty.swift index 3e9a7a9..0680685 100644 --- a/Sources/FeatherOpenAPI/_Properties/DescriptionProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/DescriptionProperty.swift @@ -2,7 +2,7 @@ // DescriptionProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public protocol DescriptionProperty { diff --git a/Sources/FeatherOpenAPI/_Properties/ExampleProperty.swift b/Sources/FeatherOpenAPI/_Properties/ExampleProperty.swift index 517fcf2..9b772c0 100644 --- a/Sources/FeatherOpenAPI/_Properties/ExampleProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/ExampleProperty.swift @@ -2,7 +2,7 @@ // ExampleProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Sources/FeatherOpenAPI/_Properties/NullableProperty.swift b/Sources/FeatherOpenAPI/_Properties/NullableProperty.swift index ca66936..61a0a18 100644 --- a/Sources/FeatherOpenAPI/_Properties/NullableProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/NullableProperty.swift @@ -2,7 +2,7 @@ // NullableProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public protocol NullableProperty { diff --git a/Sources/FeatherOpenAPI/_Properties/RequiredProperty.swift b/Sources/FeatherOpenAPI/_Properties/RequiredProperty.swift index 30ce25e..085dffa 100644 --- a/Sources/FeatherOpenAPI/_Properties/RequiredProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/RequiredProperty.swift @@ -2,7 +2,7 @@ // RequiredProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // public protocol RequiredProperty { diff --git a/Sources/FeatherOpenAPI/_Properties/TitleProperty.swift b/Sources/FeatherOpenAPI/_Properties/TitleProperty.swift index 2609ef6..90acdde 100644 --- a/Sources/FeatherOpenAPI/_Properties/TitleProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/TitleProperty.swift @@ -2,7 +2,7 @@ // TitleProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // public protocol TitleProperty { diff --git a/Sources/FeatherOpenAPI/_Properties/VendorExtensionsProperty.swift b/Sources/FeatherOpenAPI/_Properties/VendorExtensionsProperty.swift index 66c0cf4..7cb4b42 100644 --- a/Sources/FeatherOpenAPI/_Properties/VendorExtensionsProperty.swift +++ b/Sources/FeatherOpenAPI/_Properties/VendorExtensionsProperty.swift @@ -2,7 +2,7 @@ // VendorExtensionsProperty.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 23.. +// Created by Tibor Bödecs on 2026. 01. 23. // import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Example/Components/Example.swift b/Tests/FeatherOpenAPITests/Example/Components/Example.swift index 11e9bbc..c30ee32 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/Example.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/Example.swift @@ -2,6 +2,6 @@ // Example.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. enum Example {} diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleDocument.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleDocument.swift index 5de9829..653d753 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleDocument.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleDocument.swift @@ -2,7 +2,7 @@ // ExampleDocument.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItem.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItem.swift index 786f0fd..042f1c9 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItem.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItem.swift @@ -2,6 +2,6 @@ // ExampleDuplicatedItem.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. enum ExampleDuplicatedItem {} diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemDocument.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemDocument.swift index d470039..bb427d2 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemDocument.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemDocument.swift @@ -2,7 +2,7 @@ // ExampleDuplicatedItemDocument.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemModel+Schemas.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemModel+Schemas.swift index dc750f8..d2ed143 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemModel+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemModel+Schemas.swift @@ -2,7 +2,7 @@ // ExampleDuplicatedItemModel+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemModel.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemModel.swift index 9d6c829..4c2abe1 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemModel.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleDuplicatedItemModel.swift @@ -2,7 +2,7 @@ // ExampleDuplicatedItemModel.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItem.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItem.swift index 06cc657..bf351af 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItem.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItem.swift @@ -2,6 +2,6 @@ // ExampleMissingParentItem.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. enum ExampleMissingParentItem {} diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemDocument.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemDocument.swift index d2218ce..caed9cf 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemDocument.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemDocument.swift @@ -2,7 +2,7 @@ // ExampleMissingParentItemDocument.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemModel+Schemas.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemModel+Schemas.swift index 8eb3fcd..746dc40 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemModel+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemModel+Schemas.swift @@ -2,7 +2,7 @@ // ExampleMissingParentItemModel+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemModel.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemModel.swift index ef57733..f7abc69 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemModel.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleMissingParentItemModel.swift @@ -2,7 +2,7 @@ // ExampleMissingParentItemModel.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Headers.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Headers.swift index e819bbe..96d90e6 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Headers.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Headers.swift @@ -2,7 +2,7 @@ // ExampleModel+Headers.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Operations.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Operations.swift index 6e5f17a..8510f25 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Operations.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Operations.swift @@ -2,7 +2,7 @@ // ExampleModel+Operations.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Parameters.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Parameters.swift index 0424378..14d3139 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Parameters.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Parameters.swift @@ -2,7 +2,7 @@ // ExampleModel+Parameters.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+PathItems.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+PathItems.swift index 5f90a47..b16dabe 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+PathItems.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+PathItems.swift @@ -2,7 +2,7 @@ // ExampleModel+PathItems.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+RequestBodies.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+RequestBodies.swift index 4754b08..5acae00 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+RequestBodies.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+RequestBodies.swift @@ -2,7 +2,7 @@ // ExampleModel+RequestBodies.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Responses.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Responses.swift index d2130ed..c96101c 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Responses.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Responses.swift @@ -2,7 +2,7 @@ // ExampleModel+Responses.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Schemas.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Schemas.swift index e937fe8..209dbd0 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Schemas.swift @@ -2,7 +2,7 @@ // ExampleModel+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+SecuritySchemes.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+SecuritySchemes.swift index 610ebc0..de0876d 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+SecuritySchemes.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+SecuritySchemes.swift @@ -2,7 +2,7 @@ // ExampleModel+SecuritySchemes.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Tags.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Tags.swift index 89b0478..a63254a 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Tags.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel+Tags.swift @@ -2,7 +2,7 @@ // ExampleModel+Tags.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel.swift b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel.swift index 934d6ba..c822a68 100644 --- a/Tests/FeatherOpenAPITests/Example/Components/ExampleModel.swift +++ b/Tests/FeatherOpenAPITests/Example/Components/ExampleModel.swift @@ -2,7 +2,7 @@ // ExampleModel.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Example/ExampleTestSuite.swift b/Tests/FeatherOpenAPITests/Example/ExampleTestSuite.swift index 8ca5449..a3fe76f 100644 --- a/Tests/FeatherOpenAPITests/Example/ExampleTestSuite.swift +++ b/Tests/FeatherOpenAPITests/Example/ExampleTestSuite.swift @@ -2,7 +2,7 @@ // ExampleTestSuite.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 25.. +// Created by Tibor Bödecs on 2026. 01. 25. import OpenAPIKit import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/FeatherOpenAPITestSuite.swift b/Tests/FeatherOpenAPITests/FeatherOpenAPITestSuite.swift index a8b7ede..5234d47 100644 --- a/Tests/FeatherOpenAPITests/FeatherOpenAPITestSuite.swift +++ b/Tests/FeatherOpenAPITests/FeatherOpenAPITestSuite.swift @@ -2,7 +2,7 @@ // FeatherOpenAPITestSuite.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 02. 05.. +// Created by Tibor Bödecs on 2026. 02. 05. // import OpenAPIKit diff --git a/Tests/FeatherOpenAPITests/OperationRepresentableTestSuite.swift b/Tests/FeatherOpenAPITests/OperationRepresentableTestSuite.swift new file mode 100644 index 0000000..4251064 --- /dev/null +++ b/Tests/FeatherOpenAPITests/OperationRepresentableTestSuite.swift @@ -0,0 +1,50 @@ +// +// OperationRepresentableTestSuite.swift +// feather-openapi +// +// Created by Codex on 2026. 03. 24. +// + +import OpenAPIKit30 +import Testing + +@testable import FeatherOpenAPI + +private enum OperationIdFixture { + + struct ListPetsOperation: OperationRepresentable { + var responseMap: ResponseMap { + [.default: EmptyResponse()] + } + } + + struct ListPets: OperationRepresentable { + var responseMap: ResponseMap { + [.default: EmptyResponse()] + } + } + + struct EmptyResponse: ResponseRepresentable { + let description = "ok" + let openAPIIdentifier = "OperationIdFixtureEmptyResponse" + var contentMap: ContentMap { [:] } + } +} + +@Suite +struct OperationRepresentableTestSuite { + + @Test + func defaultOperationIdUsesOperationTypeName() { + let operation = OperationIdFixture.ListPetsOperation() + + #expect(operation.operationId == "listPets") + } + + @Test + func defaultOperationIdIsNilWhenTypeHasNoOperationSuffix() { + let operation = OperationIdFixture.ListPets() + + #expect(operation.operationId == nil) + } +} diff --git a/Tests/FeatherOpenAPITests/PathComponentTestSuite.swift b/Tests/FeatherOpenAPITests/PathComponentTestSuite.swift index 3aaa289..2798a9e 100644 --- a/Tests/FeatherOpenAPITests/PathComponentTestSuite.swift +++ b/Tests/FeatherOpenAPITests/PathComponentTestSuite.swift @@ -2,7 +2,7 @@ // PathComponentTestSuite.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. import Testing diff --git a/Tests/FeatherOpenAPITests/Petstore/ApiResponse/ApiResponse+Schemas.swift b/Tests/FeatherOpenAPITests/Petstore/ApiResponse/ApiResponse+Schemas.swift index 96448cc..e7731ba 100644 --- a/Tests/FeatherOpenAPITests/Petstore/ApiResponse/ApiResponse+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Petstore/ApiResponse/ApiResponse+Schemas.swift @@ -2,7 +2,7 @@ // ApiResponse+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/ApiResponse/ApiResponse.swift b/Tests/FeatherOpenAPITests/Petstore/ApiResponse/ApiResponse.swift index 1939df3..f4bab52 100644 --- a/Tests/FeatherOpenAPITests/Petstore/ApiResponse/ApiResponse.swift +++ b/Tests/FeatherOpenAPITests/Petstore/ApiResponse/ApiResponse.swift @@ -2,7 +2,7 @@ // ApiResponse.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Category/Category+Schemas.swift b/Tests/FeatherOpenAPITests/Petstore/Category/Category+Schemas.swift index 9ced790..f32a794 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Category/Category+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Category/Category+Schemas.swift @@ -2,7 +2,7 @@ // Category+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Category/Category.swift b/Tests/FeatherOpenAPITests/Petstore/Category/Category.swift index 91849fc..d74ada8 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Category/Category.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Category/Category.swift @@ -2,7 +2,7 @@ // Category.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Operations.swift b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Operations.swift index d5bcc17..3c96dc4 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Operations.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Operations.swift @@ -2,7 +2,7 @@ // Pet+Operations.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Parameters.swift b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Parameters.swift index 1e26068..6d319d8 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Parameters.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Parameters.swift @@ -2,7 +2,7 @@ // Pet+Parameters.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+PathItems.swift b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+PathItems.swift index 07dcc69..24d3ff7 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+PathItems.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+PathItems.swift @@ -2,7 +2,7 @@ // Pet+PathItems.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+RequestBodies.swift b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+RequestBodies.swift index 9bf8732..1052eef 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+RequestBodies.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+RequestBodies.swift @@ -2,7 +2,7 @@ // Pet+RequestBodies.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Responses.swift b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Responses.swift index 85ea59f..d3544fc 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Responses.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Responses.swift @@ -2,7 +2,7 @@ // Pet+Responses.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Schemas.swift b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Schemas.swift index 027f202..d5c5234 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Schemas.swift @@ -2,7 +2,7 @@ // Pet+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Tags.swift b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Tags.swift index c6fa2eb..7a2443c 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Tags.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet+Tags.swift @@ -2,7 +2,7 @@ // Pet+Tags.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet.swift b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet.swift index 63d77ea..553821e 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Pet/Pet.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Pet/Pet.swift @@ -2,7 +2,7 @@ // Pet.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Petstore+Security.swift b/Tests/FeatherOpenAPITests/Petstore/Petstore+Security.swift index ab95a42..4be5742 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Petstore+Security.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Petstore+Security.swift @@ -2,7 +2,7 @@ // Petstore+Security.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Petstore.swift b/Tests/FeatherOpenAPITests/Petstore/Petstore.swift index 324ee94..3a3e3fe 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Petstore.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Petstore.swift @@ -2,7 +2,7 @@ // Petstore.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/PetstoreTestSuite.swift b/Tests/FeatherOpenAPITests/Petstore/PetstoreTestSuite.swift index 374495d..06a3f83 100644 --- a/Tests/FeatherOpenAPITests/Petstore/PetstoreTestSuite.swift +++ b/Tests/FeatherOpenAPITests/Petstore/PetstoreTestSuite.swift @@ -2,7 +2,7 @@ // PetstoreTestSuite.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import OpenAPIKit30 diff --git a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Operations.swift b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Operations.swift index e8fc46a..5a888d6 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Operations.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Operations.swift @@ -2,7 +2,7 @@ // Store+Operations.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Parameters.swift b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Parameters.swift index aad03d0..77ef154 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Parameters.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Parameters.swift @@ -2,7 +2,7 @@ // Store+Parameters.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Store/Store+PathItems.swift b/Tests/FeatherOpenAPITests/Petstore/Store/Store+PathItems.swift index e5ca791..0af16d6 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Store/Store+PathItems.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Store/Store+PathItems.swift @@ -2,7 +2,7 @@ // Store+PathItems.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Store/Store+RequestBodies.swift b/Tests/FeatherOpenAPITests/Petstore/Store/Store+RequestBodies.swift index 3daa84b..0e91c2e 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Store/Store+RequestBodies.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Store/Store+RequestBodies.swift @@ -2,7 +2,7 @@ // Store+RequestBodies.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Responses.swift b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Responses.swift index 37bcf59..4aff77b 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Responses.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Responses.swift @@ -2,7 +2,7 @@ // Store+Responses.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Schemas.swift b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Schemas.swift index 3b5fb7f..134db20 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Schemas.swift @@ -2,7 +2,7 @@ // Store+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Tags.swift b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Tags.swift index 15c7eb8..087516a 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Store/Store+Tags.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Store/Store+Tags.swift @@ -2,7 +2,7 @@ // Store+Tags.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Store/Store.swift b/Tests/FeatherOpenAPITests/Petstore/Store/Store.swift index 38c8164..b508a14 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Store/Store.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Store/Store.swift @@ -2,7 +2,7 @@ // Store.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Tag/Tag+Schemas.swift b/Tests/FeatherOpenAPITests/Petstore/Tag/Tag+Schemas.swift index 1b176ba..780b256 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Tag/Tag+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Tag/Tag+Schemas.swift @@ -2,7 +2,7 @@ // Tag+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/Tag/Tag.swift b/Tests/FeatherOpenAPITests/Petstore/Tag/Tag.swift index 2432e9c..c7df1ea 100644 --- a/Tests/FeatherOpenAPITests/Petstore/Tag/Tag.swift +++ b/Tests/FeatherOpenAPITests/Petstore/Tag/Tag.swift @@ -2,7 +2,7 @@ // Tag.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User+Headers.swift b/Tests/FeatherOpenAPITests/Petstore/User/User+Headers.swift index f8d4f9c..52b48c1 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User+Headers.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User+Headers.swift @@ -2,7 +2,7 @@ // User+Headers.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User+Operations.swift b/Tests/FeatherOpenAPITests/Petstore/User/User+Operations.swift index 5f57f1e..be2a84a 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User+Operations.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User+Operations.swift @@ -2,7 +2,7 @@ // User+Operations.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User+Parameters.swift b/Tests/FeatherOpenAPITests/Petstore/User/User+Parameters.swift index 314e929..13a8c0f 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User+Parameters.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User+Parameters.swift @@ -2,7 +2,7 @@ // User+Parameters.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User+PathItems.swift b/Tests/FeatherOpenAPITests/Petstore/User/User+PathItems.swift index 6a50c75..cf18989 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User+PathItems.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User+PathItems.swift @@ -2,7 +2,7 @@ // User+PathItems.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User+RequestBodies.swift b/Tests/FeatherOpenAPITests/Petstore/User/User+RequestBodies.swift index a2f7dd0..5973ff1 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User+RequestBodies.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User+RequestBodies.swift @@ -2,7 +2,7 @@ // User+RequestBodies.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User+Responses.swift b/Tests/FeatherOpenAPITests/Petstore/User/User+Responses.swift index 3fd2951..3a9641a 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User+Responses.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User+Responses.swift @@ -2,7 +2,7 @@ // User+Responses.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User+Schemas.swift b/Tests/FeatherOpenAPITests/Petstore/User/User+Schemas.swift index 4e26dd6..39ae8fe 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User+Schemas.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User+Schemas.swift @@ -2,7 +2,7 @@ // User+Schemas.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User+Tags.swift b/Tests/FeatherOpenAPITests/Petstore/User/User+Tags.swift index 9d89fe5..989933c 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User+Tags.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User+Tags.swift @@ -2,7 +2,7 @@ // User+Tags.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/Petstore/User/User.swift b/Tests/FeatherOpenAPITests/Petstore/User/User.swift index 110334a..f103218 100644 --- a/Tests/FeatherOpenAPITests/Petstore/User/User.swift +++ b/Tests/FeatherOpenAPITests/Petstore/User/User.swift @@ -2,7 +2,7 @@ // User.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 22.. +// Created by Tibor Bödecs on 2026. 01. 22. // import FeatherOpenAPI diff --git a/Tests/FeatherOpenAPITests/ResponseSerializationTestSuite.swift b/Tests/FeatherOpenAPITests/ResponseSerializationTestSuite.swift new file mode 100644 index 0000000..3f14dd0 --- /dev/null +++ b/Tests/FeatherOpenAPITests/ResponseSerializationTestSuite.swift @@ -0,0 +1,66 @@ +// +// ResponseSerializationTestSuite.swift +// feather-openapi +// +// Created by Codex on 2026. 03. 24. +// + +import OpenAPIKit30 +import Testing +import Yams + +@testable import FeatherOpenAPI + +private struct EmptyHeadersResponse: ResponseRepresentable { + let description = "Unauthorized" + let openAPIIdentifier = "EmptyHeadersResponse" + var contentMap: ContentMap { [:] } +} + +private struct CustomHeaderResponse: ResponseRepresentable { + let description = "Ok" + let openAPIIdentifier = "CustomHeaderResponse" + var contentMap: ContentMap { [:] } + var headerMap: HeaderMap { + [ + "x-request-id": RequestIdHeader() + ] + } +} + +private struct RequestIdHeader: HeaderRepresentable { + var schema: any OpenAPISchemaRepresentable { RequestIdSchema() } +} + +private struct RequestIdSchema: StringSchemaRepresentable {} + +@Suite +struct ResponseSerializationTestSuite { + + @Test + func emptyHeaderMapDoesNotSerializeHeadersField() throws { + let response = EmptyHeadersResponse().openAPIResponse() + guard case .b(let openAPIResponse) = response else { + Issue.record("Expected inline OpenAPI response") + return + } + + let yaml = try YAMLEncoder().encode(openAPIResponse) + + #expect(yaml.contains("headers:") == false) + } + + @Test + func nonEmptyHeaderMapStillSerializesHeadersField() throws { + let response = CustomHeaderResponse().openAPIResponse() + guard case .b(let openAPIResponse) = response else { + Issue.record("Expected inline OpenAPI response") + return + } + + let yaml = try YAMLEncoder().encode(openAPIResponse) + + #expect(yaml.contains("headers:")) + #expect(yaml.contains("x-request-id:")) + } +} diff --git a/Tests/FeatherOpenAPITests/SchemaSerializationTestSuite.swift b/Tests/FeatherOpenAPITests/SchemaSerializationTestSuite.swift index 255404c..8615ea8 100644 --- a/Tests/FeatherOpenAPITests/SchemaSerializationTestSuite.swift +++ b/Tests/FeatherOpenAPITests/SchemaSerializationTestSuite.swift @@ -1,3 +1,9 @@ +// +// SchemaSerializationTestSuite.swift +// feather-openapi +// +// Created by Binary Birds on 2026. 02. 24. + import OpenAPIKit30 import Testing import Yams diff --git a/Tests/FeatherOpenAPITests/TestObjects.swift b/Tests/FeatherOpenAPITests/TestObjects.swift index b0c17ff..cccb2e3 100644 --- a/Tests/FeatherOpenAPITests/TestObjects.swift +++ b/Tests/FeatherOpenAPITests/TestObjects.swift @@ -2,7 +2,7 @@ // TestObjects.swift // feather-openapi // -// Created by Tibor Bödecs on 2026. 01. 21.. +// Created by Tibor Bödecs on 2026. 01. 21. // import FeatherOpenAPI