@speclynx/apidom-ns-openapi-3-0 4.0.1 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/package.json +8 -9
- package/src/elements/Callback.cjs +15 -0
- package/src/elements/Callback.mjs +12 -0
- package/src/elements/Callback.ts +13 -0
- package/src/elements/Components.cjs +69 -0
- package/src/elements/Components.mjs +66 -0
- package/src/elements/Components.ts +85 -0
- package/src/elements/Contact.cjs +33 -0
- package/src/elements/Contact.mjs +30 -0
- package/src/elements/Contact.ts +42 -0
- package/src/elements/Discriminator.cjs +27 -0
- package/src/elements/Discriminator.mjs +24 -0
- package/src/elements/Discriminator.ts +34 -0
- package/src/elements/Encoding.cjs +45 -0
- package/src/elements/Encoding.mjs +42 -0
- package/src/elements/Encoding.ts +59 -0
- package/src/elements/Example.cjs +39 -0
- package/src/elements/Example.mjs +36 -0
- package/src/elements/Example.ts +51 -0
- package/src/elements/ExternalDocumentation.cjs +27 -0
- package/src/elements/ExternalDocumentation.mjs +24 -0
- package/src/elements/ExternalDocumentation.ts +34 -0
- package/src/elements/Header.cjs +90 -0
- package/src/elements/Header.mjs +86 -0
- package/src/elements/Header.ts +119 -0
- package/src/elements/Info.cjs +52 -0
- package/src/elements/Info.mjs +48 -0
- package/src/elements/Info.ts +70 -0
- package/src/elements/License.cjs +27 -0
- package/src/elements/License.mjs +24 -0
- package/src/elements/License.ts +34 -0
- package/src/elements/Link.cjs +63 -0
- package/src/elements/Link.mjs +59 -0
- package/src/elements/Link.ts +85 -0
- package/src/elements/MediaType.cjs +39 -0
- package/src/elements/MediaType.mjs +35 -0
- package/src/elements/MediaType.ts +48 -0
- package/src/elements/OAuthFlow.cjs +39 -0
- package/src/elements/OAuthFlow.mjs +36 -0
- package/src/elements/OAuthFlow.ts +50 -0
- package/src/elements/OAuthFlows.cjs +39 -0
- package/src/elements/OAuthFlows.mjs +35 -0
- package/src/elements/OAuthFlows.ts +47 -0
- package/src/elements/OpenApi3-0.cjs +65 -0
- package/src/elements/OpenApi3-0.mjs +61 -0
- package/src/elements/OpenApi3-0.ts +90 -0
- package/src/elements/Openapi.cjs +17 -0
- package/src/elements/Openapi.mjs +14 -0
- package/src/elements/Openapi.ts +15 -0
- package/src/elements/Operation.cjs +90 -0
- package/src/elements/Operation.mjs +86 -0
- package/src/elements/Operation.ts +124 -0
- package/src/elements/Parameter.cjs +102 -0
- package/src/elements/Parameter.mjs +98 -0
- package/src/elements/Parameter.ts +135 -0
- package/src/elements/PathItem.cjs +93 -0
- package/src/elements/PathItem.mjs +89 -0
- package/src/elements/PathItem.ts +125 -0
- package/src/elements/Paths.cjs +15 -0
- package/src/elements/Paths.mjs +12 -0
- package/src/elements/Paths.ts +13 -0
- package/src/elements/Reference.cjs +22 -0
- package/src/elements/Reference.mjs +19 -0
- package/src/elements/Reference.ts +27 -0
- package/src/elements/RequestBody.cjs +36 -0
- package/src/elements/RequestBody.mjs +33 -0
- package/src/elements/RequestBody.ts +46 -0
- package/src/elements/Response.cjs +39 -0
- package/src/elements/Response.mjs +36 -0
- package/src/elements/Response.ts +50 -0
- package/src/elements/Responses.cjs +21 -0
- package/src/elements/Responses.mjs +17 -0
- package/src/elements/Responses.ts +24 -0
- package/src/elements/Schema.cjs +170 -0
- package/src/elements/Schema.mjs +166 -0
- package/src/elements/Schema.ts +230 -0
- package/src/elements/SecurityRequirement.cjs +15 -0
- package/src/elements/SecurityRequirement.mjs +12 -0
- package/src/elements/SecurityRequirement.ts +13 -0
- package/src/elements/SecurityScheme.cjs +63 -0
- package/src/elements/SecurityScheme.mjs +59 -0
- package/src/elements/SecurityScheme.ts +84 -0
- package/src/elements/Server.cjs +33 -0
- package/src/elements/Server.mjs +30 -0
- package/src/elements/Server.ts +42 -0
- package/src/elements/ServerVariable.cjs +33 -0
- package/src/elements/ServerVariable.mjs +30 -0
- package/src/elements/ServerVariable.ts +43 -0
- package/src/elements/Tag.cjs +33 -0
- package/src/elements/Tag.mjs +29 -0
- package/src/elements/Tag.ts +44 -0
- package/src/elements/Xml.cjs +45 -0
- package/src/elements/Xml.mjs +42 -0
- package/src/elements/Xml.ts +59 -0
- package/src/elements/nces/ComponentsCallbacks.cjs +16 -0
- package/src/elements/nces/ComponentsCallbacks.mjs +13 -0
- package/src/elements/nces/ComponentsCallbacks.ts +15 -0
- package/src/elements/nces/ComponentsExamples.cjs +17 -0
- package/src/elements/nces/ComponentsExamples.mjs +14 -0
- package/src/elements/nces/ComponentsExamples.ts +16 -0
- package/src/elements/nces/ComponentsHeaders.cjs +16 -0
- package/src/elements/nces/ComponentsHeaders.mjs +13 -0
- package/src/elements/nces/ComponentsHeaders.ts +15 -0
- package/src/elements/nces/ComponentsLinks.cjs +16 -0
- package/src/elements/nces/ComponentsLinks.mjs +13 -0
- package/src/elements/nces/ComponentsLinks.ts +15 -0
- package/src/elements/nces/ComponentsParameters.cjs +17 -0
- package/src/elements/nces/ComponentsParameters.mjs +14 -0
- package/src/elements/nces/ComponentsParameters.ts +16 -0
- package/src/elements/nces/ComponentsRequestBodies.cjs +16 -0
- package/src/elements/nces/ComponentsRequestBodies.mjs +13 -0
- package/src/elements/nces/ComponentsRequestBodies.ts +15 -0
- package/src/elements/nces/ComponentsResponses.cjs +16 -0
- package/src/elements/nces/ComponentsResponses.mjs +13 -0
- package/src/elements/nces/ComponentsResponses.ts +15 -0
- package/src/elements/nces/ComponentsSchemas.cjs +16 -0
- package/src/elements/nces/ComponentsSchemas.mjs +13 -0
- package/src/elements/nces/ComponentsSchemas.ts +15 -0
- package/src/elements/nces/ComponentsSecuritySchemes.cjs +16 -0
- package/src/elements/nces/ComponentsSecuritySchemes.mjs +13 -0
- package/src/elements/nces/ComponentsSecuritySchemes.ts +15 -0
- package/src/elements/nces/DiscriminatorMapping.cjs +16 -0
- package/src/elements/nces/DiscriminatorMapping.mjs +13 -0
- package/src/elements/nces/DiscriminatorMapping.ts +15 -0
- package/src/elements/nces/EncodingHeaders.cjs +16 -0
- package/src/elements/nces/EncodingHeaders.mjs +13 -0
- package/src/elements/nces/EncodingHeaders.ts +15 -0
- package/src/elements/nces/HeaderContent.cjs +17 -0
- package/src/elements/nces/HeaderContent.mjs +14 -0
- package/src/elements/nces/HeaderContent.ts +16 -0
- package/src/elements/nces/HeaderExamples.cjs +17 -0
- package/src/elements/nces/HeaderExamples.mjs +14 -0
- package/src/elements/nces/HeaderExamples.ts +16 -0
- package/src/elements/nces/LinkParameters.cjs +16 -0
- package/src/elements/nces/LinkParameters.mjs +13 -0
- package/src/elements/nces/LinkParameters.ts +15 -0
- package/src/elements/nces/MediaTypeEncoding.cjs +16 -0
- package/src/elements/nces/MediaTypeEncoding.mjs +13 -0
- package/src/elements/nces/MediaTypeEncoding.ts +15 -0
- package/src/elements/nces/MediaTypeExamples.cjs +17 -0
- package/src/elements/nces/MediaTypeExamples.mjs +14 -0
- package/src/elements/nces/MediaTypeExamples.ts +16 -0
- package/src/elements/nces/OAuthFlowScopes.cjs +16 -0
- package/src/elements/nces/OAuthFlowScopes.mjs +13 -0
- package/src/elements/nces/OAuthFlowScopes.ts +15 -0
- package/src/elements/nces/OperationCallbacks.cjs +16 -0
- package/src/elements/nces/OperationCallbacks.mjs +13 -0
- package/src/elements/nces/OperationCallbacks.ts +15 -0
- package/src/elements/nces/OperationParameters.cjs +17 -0
- package/src/elements/nces/OperationParameters.mjs +14 -0
- package/src/elements/nces/OperationParameters.ts +16 -0
- package/src/elements/nces/OperationSecurity.cjs +17 -0
- package/src/elements/nces/OperationSecurity.mjs +14 -0
- package/src/elements/nces/OperationSecurity.ts +16 -0
- package/src/elements/nces/OperationServers.cjs +17 -0
- package/src/elements/nces/OperationServers.mjs +14 -0
- package/src/elements/nces/OperationServers.ts +16 -0
- package/src/elements/nces/OperationTags.cjs +16 -0
- package/src/elements/nces/OperationTags.mjs +13 -0
- package/src/elements/nces/OperationTags.ts +15 -0
- package/src/elements/nces/ParameterContent.cjs +17 -0
- package/src/elements/nces/ParameterContent.mjs +14 -0
- package/src/elements/nces/ParameterContent.ts +16 -0
- package/src/elements/nces/ParameterExamples.cjs +17 -0
- package/src/elements/nces/ParameterExamples.mjs +14 -0
- package/src/elements/nces/ParameterExamples.ts +16 -0
- package/src/elements/nces/PathItemParameters.cjs +17 -0
- package/src/elements/nces/PathItemParameters.mjs +14 -0
- package/src/elements/nces/PathItemParameters.ts +16 -0
- package/src/elements/nces/PathItemServers.cjs +17 -0
- package/src/elements/nces/PathItemServers.mjs +14 -0
- package/src/elements/nces/PathItemServers.ts +16 -0
- package/src/elements/nces/RequestBodyContent.cjs +17 -0
- package/src/elements/nces/RequestBodyContent.mjs +14 -0
- package/src/elements/nces/RequestBodyContent.ts +16 -0
- package/src/elements/nces/ResponseContent.cjs +17 -0
- package/src/elements/nces/ResponseContent.mjs +14 -0
- package/src/elements/nces/ResponseContent.ts +16 -0
- package/src/elements/nces/ResponseHeaders.cjs +16 -0
- package/src/elements/nces/ResponseHeaders.mjs +13 -0
- package/src/elements/nces/ResponseHeaders.ts +15 -0
- package/src/elements/nces/ResponseLinks.cjs +16 -0
- package/src/elements/nces/ResponseLinks.mjs +13 -0
- package/src/elements/nces/ResponseLinks.ts +15 -0
- package/src/elements/nces/Security.cjs +16 -0
- package/src/elements/nces/Security.mjs +13 -0
- package/src/elements/nces/Security.ts +15 -0
- package/src/elements/nces/ServerVariables.cjs +16 -0
- package/src/elements/nces/ServerVariables.mjs +13 -0
- package/src/elements/nces/ServerVariables.ts +15 -0
- package/src/elements/nces/Servers.cjs +16 -0
- package/src/elements/nces/Servers.mjs +13 -0
- package/src/elements/nces/Servers.ts +15 -0
- package/src/elements/nces/Tags.cjs +16 -0
- package/src/elements/nces/Tags.mjs +13 -0
- package/src/elements/nces/Tags.ts +15 -0
- package/src/index.cjs +205 -0
- package/src/index.mjs +54 -0
- package/src/index.ts +550 -0
- package/src/media-types.cjs +34 -0
- package/src/media-types.mjs +30 -0
- package/src/media-types.ts +52 -0
- package/src/namespace.cjs +79 -0
- package/src/namespace.mjs +74 -0
- package/src/namespace.ts +78 -0
- package/src/predicates.cjs +188 -0
- package/src/predicates.mjs +155 -0
- package/src/predicates.ts +185 -0
- package/src/refractor/index.cjs +358 -0
- package/src/refractor/index.mjs +321 -0
- package/src/refractor/index.ts +370 -0
- package/src/refractor/inspect.cjs +205 -0
- package/src/refractor/inspect.mjs +170 -0
- package/src/refractor/inspect.ts +239 -0
- package/src/refractor/plugins/replace-empty-element.cjs +633 -0
- package/src/refractor/plugins/replace-empty-element.mjs +625 -0
- package/src/refractor/plugins/replace-empty-element.ts +656 -0
- package/src/refractor/predicates.cjs +36 -0
- package/src/refractor/predicates.mjs +31 -0
- package/src/refractor/predicates.ts +39 -0
- package/src/refractor/specification.cjs +700 -0
- package/src/refractor/specification.mjs +695 -0
- package/src/refractor/specification.ts +557 -0
- package/src/refractor/toolbox.cjs +28 -0
- package/src/refractor/toolbox.mjs +21 -0
- package/src/refractor/toolbox.ts +24 -0
- package/src/refractor/visitors/FallbackVisitor.cjs +24 -0
- package/src/refractor/visitors/FallbackVisitor.mjs +18 -0
- package/src/refractor/visitors/FallbackVisitor.ts +24 -0
- package/src/refractor/visitors/SpecificationExtensionVisitor.cjs +18 -0
- package/src/refractor/visitors/SpecificationExtensionVisitor.mjs +13 -0
- package/src/refractor/visitors/SpecificationExtensionVisitor.ts +22 -0
- package/src/refractor/visitors/SpecificationVisitor.cjs +88 -0
- package/src/refractor/visitors/SpecificationVisitor.mjs +82 -0
- package/src/refractor/visitors/SpecificationVisitor.ts +112 -0
- package/src/refractor/visitors/Visitor.cjs +36 -0
- package/src/refractor/visitors/Visitor.mjs +33 -0
- package/src/refractor/visitors/Visitor.ts +47 -0
- package/src/refractor/visitors/generics/AlternatingVisitor.cjs +42 -0
- package/src/refractor/visitors/generics/AlternatingVisitor.mjs +35 -0
- package/src/refractor/visitors/generics/AlternatingVisitor.ts +45 -0
- package/src/refractor/visitors/generics/FixedFieldsVisitor.cjs +75 -0
- package/src/refractor/visitors/generics/FixedFieldsVisitor.mjs +68 -0
- package/src/refractor/visitors/generics/FixedFieldsVisitor.ts +110 -0
- package/src/refractor/visitors/generics/MapVisitor.cjs +21 -0
- package/src/refractor/visitors/generics/MapVisitor.mjs +15 -0
- package/src/refractor/visitors/generics/MapVisitor.ts +25 -0
- package/src/refractor/visitors/generics/MixedFieldsVisitor.cjs +67 -0
- package/src/refractor/visitors/generics/MixedFieldsVisitor.mjs +61 -0
- package/src/refractor/visitors/generics/MixedFieldsVisitor.ts +77 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.cjs +72 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.mjs +66 -0
- package/src/refractor/visitors/generics/PatternedFieldsVisitor.ts +99 -0
- package/src/refractor/visitors/open-api-3-0/ContentVisitor.cjs +23 -0
- package/src/refractor/visitors/open-api-3-0/ContentVisitor.mjs +18 -0
- package/src/refractor/visitors/open-api-3-0/ContentVisitor.ts +28 -0
- package/src/refractor/visitors/open-api-3-0/ExamplesVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-3-0/ExamplesVisitor.mjs +28 -0
- package/src/refractor/visitors/open-api-3-0/ExamplesVisitor.ts +48 -0
- package/src/refractor/visitors/open-api-3-0/OpenapiVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-3-0/OpenapiVisitor.mjs +19 -0
- package/src/refractor/visitors/open-api-3-0/OpenapiVisitor.ts +30 -0
- package/src/refractor/visitors/open-api-3-0/ParametersVisitor.cjs +36 -0
- package/src/refractor/visitors/open-api-3-0/ParametersVisitor.mjs +31 -0
- package/src/refractor/visitors/open-api-3-0/ParametersVisitor.ts +47 -0
- package/src/refractor/visitors/open-api-3-0/SecurityVisitor.cjs +35 -0
- package/src/refractor/visitors/open-api-3-0/SecurityVisitor.mjs +29 -0
- package/src/refractor/visitors/open-api-3-0/SecurityVisitor.ts +44 -0
- package/src/refractor/visitors/open-api-3-0/ServersVisitor.cjs +32 -0
- package/src/refractor/visitors/open-api-3-0/ServersVisitor.mjs +26 -0
- package/src/refractor/visitors/open-api-3-0/ServersVisitor.ts +40 -0
- package/src/refractor/visitors/open-api-3-0/TagsVisitor.cjs +32 -0
- package/src/refractor/visitors/open-api-3-0/TagsVisitor.mjs +26 -0
- package/src/refractor/visitors/open-api-3-0/TagsVisitor.ts +40 -0
- package/src/refractor/visitors/open-api-3-0/bases.cjs +72 -0
- package/src/refractor/visitors/open-api-3-0/bases.mjs +67 -0
- package/src/refractor/visitors/open-api-3-0/bases.ts +82 -0
- package/src/refractor/visitors/open-api-3-0/callback/index.cjs +38 -0
- package/src/refractor/visitors/open-api-3-0/callback/index.mjs +32 -0
- package/src/refractor/visitors/open-api-3-0/callback/index.ts +49 -0
- package/src/refractor/visitors/open-api-3-0/components/CallbacksVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-3-0/components/CallbacksVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-3-0/components/CallbacksVisitor.ts +45 -0
- package/src/refractor/visitors/open-api-3-0/components/ExamplesVisitor.cjs +34 -0
- package/src/refractor/visitors/open-api-3-0/components/ExamplesVisitor.mjs +28 -0
- package/src/refractor/visitors/open-api-3-0/components/ExamplesVisitor.ts +46 -0
- package/src/refractor/visitors/open-api-3-0/components/HeadersVisitor.cjs +41 -0
- package/src/refractor/visitors/open-api-3-0/components/HeadersVisitor.mjs +35 -0
- package/src/refractor/visitors/open-api-3-0/components/HeadersVisitor.ts +53 -0
- package/src/refractor/visitors/open-api-3-0/components/LinksVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-3-0/components/LinksVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-3-0/components/LinksVisitor.ts +45 -0
- package/src/refractor/visitors/open-api-3-0/components/ParametersVisitor.cjs +34 -0
- package/src/refractor/visitors/open-api-3-0/components/ParametersVisitor.mjs +28 -0
- package/src/refractor/visitors/open-api-3-0/components/ParametersVisitor.ts +46 -0
- package/src/refractor/visitors/open-api-3-0/components/RequestBodiesVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-3-0/components/RequestBodiesVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-3-0/components/RequestBodiesVisitor.ts +45 -0
- package/src/refractor/visitors/open-api-3-0/components/ResponsesVisitor.cjs +41 -0
- package/src/refractor/visitors/open-api-3-0/components/ResponsesVisitor.mjs +35 -0
- package/src/refractor/visitors/open-api-3-0/components/ResponsesVisitor.ts +53 -0
- package/src/refractor/visitors/open-api-3-0/components/SchemasVisitor.cjs +34 -0
- package/src/refractor/visitors/open-api-3-0/components/SchemasVisitor.mjs +28 -0
- package/src/refractor/visitors/open-api-3-0/components/SchemasVisitor.ts +46 -0
- package/src/refractor/visitors/open-api-3-0/components/SecuritySchemesVisitor.cjs +33 -0
- package/src/refractor/visitors/open-api-3-0/components/SecuritySchemesVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-3-0/components/SecuritySchemesVisitor.ts +45 -0
- package/src/refractor/visitors/open-api-3-0/components/index.cjs +25 -0
- package/src/refractor/visitors/open-api-3-0/components/index.mjs +19 -0
- package/src/refractor/visitors/open-api-3-0/components/index.ts +31 -0
- package/src/refractor/visitors/open-api-3-0/contact/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/contact/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/contact/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/distriminator/MappingVisitor.cjs +19 -0
- package/src/refractor/visitors/open-api-3-0/distriminator/MappingVisitor.mjs +14 -0
- package/src/refractor/visitors/open-api-3-0/distriminator/MappingVisitor.ts +24 -0
- package/src/refractor/visitors/open-api-3-0/distriminator/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/distriminator/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/distriminator/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/encoding/HeadersVisitor.cjs +43 -0
- package/src/refractor/visitors/open-api-3-0/encoding/HeadersVisitor.mjs +37 -0
- package/src/refractor/visitors/open-api-3-0/encoding/HeadersVisitor.ts +57 -0
- package/src/refractor/visitors/open-api-3-0/encoding/index.cjs +40 -0
- package/src/refractor/visitors/open-api-3-0/encoding/index.mjs +34 -0
- package/src/refractor/visitors/open-api-3-0/encoding/index.ts +49 -0
- package/src/refractor/visitors/open-api-3-0/example/ExternalValueVisitor.cjs +16 -0
- package/src/refractor/visitors/open-api-3-0/example/ExternalValueVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-0/example/ExternalValueVisitor.ts +20 -0
- package/src/refractor/visitors/open-api-3-0/example/index.cjs +29 -0
- package/src/refractor/visitors/open-api-3-0/example/index.mjs +24 -0
- package/src/refractor/visitors/open-api-3-0/example/index.ts +38 -0
- package/src/refractor/visitors/open-api-3-0/external-documentation/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/external-documentation/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/external-documentation/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/header/ContentVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/header/ContentVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/header/ContentVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/header/ExamplesVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/header/ExamplesVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/header/ExamplesVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/header/SchemaVisitor.cjs +32 -0
- package/src/refractor/visitors/open-api-3-0/header/SchemaVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-3-0/header/SchemaVisitor.ts +33 -0
- package/src/refractor/visitors/open-api-3-0/header/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/header/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/header/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/index.cjs +29 -0
- package/src/refractor/visitors/open-api-3-0/index.mjs +23 -0
- package/src/refractor/visitors/open-api-3-0/index.ts +39 -0
- package/src/refractor/visitors/open-api-3-0/info/VersionVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/info/VersionVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/info/VersionVisitor.ts +21 -0
- package/src/refractor/visitors/open-api-3-0/info/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/info/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/info/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/license/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/license/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/license/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/link/OperationIdVisitor.cjs +16 -0
- package/src/refractor/visitors/open-api-3-0/link/OperationIdVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-0/link/OperationIdVisitor.ts +20 -0
- package/src/refractor/visitors/open-api-3-0/link/OperationRefVisitor.cjs +16 -0
- package/src/refractor/visitors/open-api-3-0/link/OperationRefVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-0/link/OperationRefVisitor.ts +20 -0
- package/src/refractor/visitors/open-api-3-0/link/ParametersVisitor.cjs +19 -0
- package/src/refractor/visitors/open-api-3-0/link/ParametersVisitor.mjs +14 -0
- package/src/refractor/visitors/open-api-3-0/link/ParametersVisitor.ts +24 -0
- package/src/refractor/visitors/open-api-3-0/link/index.cjs +29 -0
- package/src/refractor/visitors/open-api-3-0/link/index.mjs +24 -0
- package/src/refractor/visitors/open-api-3-0/link/index.ts +38 -0
- package/src/refractor/visitors/open-api-3-0/media-type/EncodingVisitor.cjs +19 -0
- package/src/refractor/visitors/open-api-3-0/media-type/EncodingVisitor.mjs +14 -0
- package/src/refractor/visitors/open-api-3-0/media-type/EncodingVisitor.ts +24 -0
- package/src/refractor/visitors/open-api-3-0/media-type/ExamplesVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/media-type/ExamplesVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/media-type/ExamplesVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/media-type/SchemaVisitor.cjs +32 -0
- package/src/refractor/visitors/open-api-3-0/media-type/SchemaVisitor.mjs +27 -0
- package/src/refractor/visitors/open-api-3-0/media-type/SchemaVisitor.ts +33 -0
- package/src/refractor/visitors/open-api-3-0/media-type/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/media-type/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/media-type/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flow/ScopesVisitor.cjs +19 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flow/ScopesVisitor.mjs +14 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flow/ScopesVisitor.ts +24 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flow/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flow/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flow/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flows/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flows/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/oauth-flows/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/operation/CallbacksVisitor.cjs +34 -0
- package/src/refractor/visitors/open-api-3-0/operation/CallbacksVisitor.mjs +28 -0
- package/src/refractor/visitors/open-api-3-0/operation/CallbacksVisitor.ts +45 -0
- package/src/refractor/visitors/open-api-3-0/operation/ParametersVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/operation/ParametersVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/operation/ParametersVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/operation/RequestBodyVisitor.cjs +35 -0
- package/src/refractor/visitors/open-api-3-0/operation/RequestBodyVisitor.mjs +29 -0
- package/src/refractor/visitors/open-api-3-0/operation/RequestBodyVisitor.ts +39 -0
- package/src/refractor/visitors/open-api-3-0/operation/SecurityVisitor.cjs +32 -0
- package/src/refractor/visitors/open-api-3-0/operation/SecurityVisitor.mjs +26 -0
- package/src/refractor/visitors/open-api-3-0/operation/SecurityVisitor.ts +41 -0
- package/src/refractor/visitors/open-api-3-0/operation/ServersVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/operation/ServersVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/operation/ServersVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/operation/TagsVisitor.cjs +27 -0
- package/src/refractor/visitors/open-api-3-0/operation/TagsVisitor.mjs +21 -0
- package/src/refractor/visitors/open-api-3-0/operation/TagsVisitor.ts +32 -0
- package/src/refractor/visitors/open-api-3-0/operation/index.cjs +23 -0
- package/src/refractor/visitors/open-api-3-0/operation/index.mjs +17 -0
- package/src/refractor/visitors/open-api-3-0/operation/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/parameter/ContentVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/parameter/ContentVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/parameter/ContentVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/parameter/ExamplesVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/parameter/ExamplesVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/parameter/ExamplesVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/parameter/SchemaVisitor.cjs +36 -0
- package/src/refractor/visitors/open-api-3-0/parameter/SchemaVisitor.mjs +30 -0
- package/src/refractor/visitors/open-api-3-0/parameter/SchemaVisitor.ts +36 -0
- package/src/refractor/visitors/open-api-3-0/parameter/index.cjs +40 -0
- package/src/refractor/visitors/open-api-3-0/parameter/index.mjs +34 -0
- package/src/refractor/visitors/open-api-3-0/parameter/index.ts +49 -0
- package/src/refractor/visitors/open-api-3-0/path-item/$RefVisitor.cjs +16 -0
- package/src/refractor/visitors/open-api-3-0/path-item/$RefVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-0/path-item/$RefVisitor.ts +20 -0
- package/src/refractor/visitors/open-api-3-0/path-item/ParametersVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/path-item/ParametersVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/path-item/ParametersVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/path-item/ServersVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/path-item/ServersVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/path-item/ServersVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/path-item/index.cjs +42 -0
- package/src/refractor/visitors/open-api-3-0/path-item/index.mjs +36 -0
- package/src/refractor/visitors/open-api-3-0/path-item/index.ts +53 -0
- package/src/refractor/visitors/open-api-3-0/paths/index.cjs +40 -0
- package/src/refractor/visitors/open-api-3-0/paths/index.mjs +34 -0
- package/src/refractor/visitors/open-api-3-0/paths/index.ts +51 -0
- package/src/refractor/visitors/open-api-3-0/reference/$RefVisitor.cjs +16 -0
- package/src/refractor/visitors/open-api-3-0/reference/$RefVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-0/reference/$RefVisitor.ts +20 -0
- package/src/refractor/visitors/open-api-3-0/reference/index.cjs +33 -0
- package/src/refractor/visitors/open-api-3-0/reference/index.mjs +27 -0
- package/src/refractor/visitors/open-api-3-0/reference/index.ts +41 -0
- package/src/refractor/visitors/open-api-3-0/request-body/ContentVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/request-body/ContentVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/request-body/ContentVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/request-body/index.cjs +39 -0
- package/src/refractor/visitors/open-api-3-0/request-body/index.mjs +33 -0
- package/src/refractor/visitors/open-api-3-0/request-body/index.ts +46 -0
- package/src/refractor/visitors/open-api-3-0/response/ContentVisitor.cjs +17 -0
- package/src/refractor/visitors/open-api-3-0/response/ContentVisitor.mjs +12 -0
- package/src/refractor/visitors/open-api-3-0/response/ContentVisitor.ts +18 -0
- package/src/refractor/visitors/open-api-3-0/response/HeadersVisitor.cjs +42 -0
- package/src/refractor/visitors/open-api-3-0/response/HeadersVisitor.mjs +36 -0
- package/src/refractor/visitors/open-api-3-0/response/HeadersVisitor.ts +57 -0
- package/src/refractor/visitors/open-api-3-0/response/LinksVisitor.cjs +32 -0
- package/src/refractor/visitors/open-api-3-0/response/LinksVisitor.mjs +26 -0
- package/src/refractor/visitors/open-api-3-0/response/LinksVisitor.ts +45 -0
- package/src/refractor/visitors/open-api-3-0/response/index.cjs +47 -0
- package/src/refractor/visitors/open-api-3-0/response/index.mjs +41 -0
- package/src/refractor/visitors/open-api-3-0/response/index.ts +57 -0
- package/src/refractor/visitors/open-api-3-0/responses/DefaultVisitor.cjs +40 -0
- package/src/refractor/visitors/open-api-3-0/responses/DefaultVisitor.mjs +34 -0
- package/src/refractor/visitors/open-api-3-0/responses/DefaultVisitor.ts +39 -0
- package/src/refractor/visitors/open-api-3-0/responses/index.cjs +46 -0
- package/src/refractor/visitors/open-api-3-0/responses/index.mjs +40 -0
- package/src/refractor/visitors/open-api-3-0/responses/index.ts +64 -0
- package/src/refractor/visitors/open-api-3-0/schema/AllOfVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-3-0/schema/AllOfVisitor.mjs +21 -0
- package/src/refractor/visitors/open-api-3-0/schema/AllOfVisitor.ts +34 -0
- package/src/refractor/visitors/open-api-3-0/schema/AnyOfVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-3-0/schema/AnyOfVisitor.mjs +21 -0
- package/src/refractor/visitors/open-api-3-0/schema/AnyOfVisitor.ts +34 -0
- package/src/refractor/visitors/open-api-3-0/schema/ItemsVisitor.cjs +22 -0
- package/src/refractor/visitors/open-api-3-0/schema/ItemsVisitor.mjs +19 -0
- package/src/refractor/visitors/open-api-3-0/schema/ItemsVisitor.ts +31 -0
- package/src/refractor/visitors/open-api-3-0/schema/OneOfVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-3-0/schema/OneOfVisitor.mjs +21 -0
- package/src/refractor/visitors/open-api-3-0/schema/OneOfVisitor.ts +34 -0
- package/src/refractor/visitors/open-api-3-0/schema/PropertiesVisitor.cjs +25 -0
- package/src/refractor/visitors/open-api-3-0/schema/PropertiesVisitor.mjs +21 -0
- package/src/refractor/visitors/open-api-3-0/schema/PropertiesVisitor.ts +34 -0
- package/src/refractor/visitors/open-api-3-0/schema/SchemaOrReferenceVisitor.cjs +23 -0
- package/src/refractor/visitors/open-api-3-0/schema/SchemaOrReferenceVisitor.mjs +19 -0
- package/src/refractor/visitors/open-api-3-0/schema/SchemaOrReferenceVisitor.ts +36 -0
- package/src/refractor/visitors/open-api-3-0/schema/TypeVisitor.cjs +19 -0
- package/src/refractor/visitors/open-api-3-0/schema/TypeVisitor.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/schema/TypeVisitor.ts +26 -0
- package/src/refractor/visitors/open-api-3-0/schema/index.cjs +24 -0
- package/src/refractor/visitors/open-api-3-0/schema/index.mjs +18 -0
- package/src/refractor/visitors/open-api-3-0/schema/index.ts +30 -0
- package/src/refractor/visitors/open-api-3-0/security-requirement/index.cjs +19 -0
- package/src/refractor/visitors/open-api-3-0/security-requirement/index.mjs +14 -0
- package/src/refractor/visitors/open-api-3-0/security-requirement/index.ts +24 -0
- package/src/refractor/visitors/open-api-3-0/security-scheme/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/security-scheme/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/security-scheme/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/server/UrlVisitor.cjs +16 -0
- package/src/refractor/visitors/open-api-3-0/server/UrlVisitor.mjs +11 -0
- package/src/refractor/visitors/open-api-3-0/server/UrlVisitor.ts +20 -0
- package/src/refractor/visitors/open-api-3-0/server/VariablesVisitor.cjs +19 -0
- package/src/refractor/visitors/open-api-3-0/server/VariablesVisitor.mjs +14 -0
- package/src/refractor/visitors/open-api-3-0/server/VariablesVisitor.ts +24 -0
- package/src/refractor/visitors/open-api-3-0/server/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/server/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/server/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/server-variable/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/server-variable/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/server-variable/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/tag/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/tag/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/tag/index.ts +27 -0
- package/src/refractor/visitors/open-api-3-0/xml/index.cjs +20 -0
- package/src/refractor/visitors/open-api-3-0/xml/index.mjs +15 -0
- package/src/refractor/visitors/open-api-3-0/xml/index.ts +27 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { resolveSpecification, dispatchRefractorPlugins } from '@speclynx/apidom-core';
|
|
2
|
+
import { refract as baseRefract } from '@speclynx/apidom-datamodel';
|
|
3
|
+
import { traverse, getNodePrimitiveType } from '@speclynx/apidom-traverse';
|
|
4
|
+
import { path } from 'ramda';
|
|
5
|
+
import specification from "./specification.mjs";
|
|
6
|
+
import createToolbox from "./toolbox.mjs";
|
|
7
|
+
/**
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
const refract = (value, {
|
|
17
|
+
element = 'openApi3_0',
|
|
18
|
+
plugins = [],
|
|
19
|
+
specificationObj = specification,
|
|
20
|
+
consume = false
|
|
21
|
+
} = {}) => {
|
|
22
|
+
const genericElement = baseRefract(value);
|
|
23
|
+
const resolvedSpec = resolveSpecification(specificationObj);
|
|
24
|
+
const elementMap = resolvedSpec.elementMap;
|
|
25
|
+
const specPath = elementMap[element];
|
|
26
|
+
if (!specPath) {
|
|
27
|
+
throw new Error(`Unknown element type: "${element}"`);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
32
|
+
* We don't allow consumers to hook into this translation.
|
|
33
|
+
* Though we allow consumers to define their own plugins on already transformed ApiDOM.
|
|
34
|
+
*/
|
|
35
|
+
const RootVisitorClass = path(specPath, resolvedSpec);
|
|
36
|
+
const rootVisitor = new RootVisitorClass({
|
|
37
|
+
specObj: resolvedSpec,
|
|
38
|
+
consume
|
|
39
|
+
});
|
|
40
|
+
traverse(genericElement, rootVisitor, {
|
|
41
|
+
nodeTypeGetter: getNodePrimitiveType
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Running plugins visitors means extra single traversal === performance hit.
|
|
46
|
+
*/
|
|
47
|
+
return dispatchRefractorPlugins(rootVisitor.element, plugins, {
|
|
48
|
+
toolboxCreator: createToolbox
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Refracts a value into an OpenApi3_0Element.
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
export const refractOpenApi3_0 = (value, options = {}) => refract(value, {
|
|
57
|
+
...options,
|
|
58
|
+
element: 'openApi3_0'
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Refracts a value into an InfoElement.
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
export const refractInfo = (value, options = {}) => refract(value, {
|
|
66
|
+
...options,
|
|
67
|
+
element: 'info'
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Refracts a value into a ContactElement.
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
export const refractContact = (value, options = {}) => refract(value, {
|
|
75
|
+
...options,
|
|
76
|
+
element: 'contact'
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Refracts a value into a LicenseElement.
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
export const refractLicense = (value, options = {}) => refract(value, {
|
|
84
|
+
...options,
|
|
85
|
+
element: 'license'
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Refracts a value into a ServerElement.
|
|
90
|
+
* @public
|
|
91
|
+
*/
|
|
92
|
+
export const refractServer = (value, options = {}) => refract(value, {
|
|
93
|
+
...options,
|
|
94
|
+
element: 'server'
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Refracts a value into a ServerVariableElement.
|
|
99
|
+
* @public
|
|
100
|
+
*/
|
|
101
|
+
export const refractServerVariable = (value, options = {}) => refract(value, {
|
|
102
|
+
...options,
|
|
103
|
+
element: 'serverVariable'
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Refracts a value into a ComponentsElement.
|
|
108
|
+
* @public
|
|
109
|
+
*/
|
|
110
|
+
export const refractComponents = (value, options = {}) => refract(value, {
|
|
111
|
+
...options,
|
|
112
|
+
element: 'components'
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Refracts a value into a PathsElement.
|
|
117
|
+
* @public
|
|
118
|
+
*/
|
|
119
|
+
export const refractPaths = (value, options = {}) => refract(value, {
|
|
120
|
+
...options,
|
|
121
|
+
element: 'paths'
|
|
122
|
+
});
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Refracts a value into a PathItemElement.
|
|
126
|
+
* @public
|
|
127
|
+
*/
|
|
128
|
+
export const refractPathItem = (value, options = {}) => refract(value, {
|
|
129
|
+
...options,
|
|
130
|
+
element: 'pathItem'
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Refracts a value into an OperationElement.
|
|
135
|
+
* @public
|
|
136
|
+
*/
|
|
137
|
+
export const refractOperation = (value, options = {}) => refract(value, {
|
|
138
|
+
...options,
|
|
139
|
+
element: 'operation'
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Refracts a value into an ExternalDocumentationElement.
|
|
144
|
+
* @public
|
|
145
|
+
*/
|
|
146
|
+
export const refractExternalDocumentation = (value, options = {}) => refract(value, {
|
|
147
|
+
...options,
|
|
148
|
+
element: 'externalDocumentation'
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Refracts a value into a ParameterElement.
|
|
153
|
+
* @public
|
|
154
|
+
*/
|
|
155
|
+
export const refractParameter = (value, options = {}) => refract(value, {
|
|
156
|
+
...options,
|
|
157
|
+
element: 'parameter'
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Refracts a value into a RequestBodyElement.
|
|
162
|
+
* @public
|
|
163
|
+
*/
|
|
164
|
+
export const refractRequestBody = (value, options = {}) => refract(value, {
|
|
165
|
+
...options,
|
|
166
|
+
element: 'requestBody'
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Refracts a value into a MediaTypeElement.
|
|
171
|
+
* @public
|
|
172
|
+
*/
|
|
173
|
+
export const refractMediaType = (value, options = {}) => refract(value, {
|
|
174
|
+
...options,
|
|
175
|
+
element: 'mediaType'
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Refracts a value into an EncodingElement.
|
|
180
|
+
* @public
|
|
181
|
+
*/
|
|
182
|
+
export const refractEncoding = (value, options = {}) => refract(value, {
|
|
183
|
+
...options,
|
|
184
|
+
element: 'encoding'
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Refracts a value into a ResponsesElement.
|
|
189
|
+
* @public
|
|
190
|
+
*/
|
|
191
|
+
export const refractResponses = (value, options = {}) => refract(value, {
|
|
192
|
+
...options,
|
|
193
|
+
element: 'responses'
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Refracts a value into a ResponseElement.
|
|
198
|
+
* @public
|
|
199
|
+
*/
|
|
200
|
+
export const refractResponse = (value, options = {}) => refract(value, {
|
|
201
|
+
...options,
|
|
202
|
+
element: 'response'
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Refracts a value into a CallbackElement.
|
|
207
|
+
* @public
|
|
208
|
+
*/
|
|
209
|
+
export const refractCallback = (value, options = {}) => refract(value, {
|
|
210
|
+
...options,
|
|
211
|
+
element: 'callback'
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Refracts a value into an ExampleElement.
|
|
216
|
+
* @public
|
|
217
|
+
*/
|
|
218
|
+
export const refractExample = (value, options = {}) => refract(value, {
|
|
219
|
+
...options,
|
|
220
|
+
element: 'example'
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Refracts a value into a LinkElement.
|
|
225
|
+
* @public
|
|
226
|
+
*/
|
|
227
|
+
export const refractLink = (value, options = {}) => refract(value, {
|
|
228
|
+
...options,
|
|
229
|
+
element: 'link'
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Refracts a value into a HeaderElement.
|
|
234
|
+
* @public
|
|
235
|
+
*/
|
|
236
|
+
export const refractHeader = (value, options = {}) => refract(value, {
|
|
237
|
+
...options,
|
|
238
|
+
element: 'header'
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Refracts a value into a TagElement.
|
|
243
|
+
* @public
|
|
244
|
+
*/
|
|
245
|
+
export const refractTag = (value, options = {}) => refract(value, {
|
|
246
|
+
...options,
|
|
247
|
+
element: 'tag'
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Refracts a value into a ReferenceElement.
|
|
252
|
+
* @public
|
|
253
|
+
*/
|
|
254
|
+
export const refractReference = (value, options = {}) => refract(value, {
|
|
255
|
+
...options,
|
|
256
|
+
element: 'reference'
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Refracts a value into a SchemaElement.
|
|
261
|
+
* @public
|
|
262
|
+
*/
|
|
263
|
+
export const refractSchema = (value, options = {}) => refract(value, {
|
|
264
|
+
...options,
|
|
265
|
+
element: 'schema'
|
|
266
|
+
});
|
|
267
|
+
|
|
268
|
+
/**
|
|
269
|
+
* Refracts a value into a DiscriminatorElement.
|
|
270
|
+
* @public
|
|
271
|
+
*/
|
|
272
|
+
export const refractDiscriminator = (value, options = {}) => refract(value, {
|
|
273
|
+
...options,
|
|
274
|
+
element: 'discriminator'
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Refracts a value into an XmlElement.
|
|
279
|
+
* @public
|
|
280
|
+
*/
|
|
281
|
+
export const refractXml = (value, options = {}) => refract(value, {
|
|
282
|
+
...options,
|
|
283
|
+
element: 'xml'
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Refracts a value into a SecuritySchemeElement.
|
|
288
|
+
* @public
|
|
289
|
+
*/
|
|
290
|
+
export const refractSecurityScheme = (value, options = {}) => refract(value, {
|
|
291
|
+
...options,
|
|
292
|
+
element: 'securityScheme'
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Refracts a value into an OAuthFlowsElement.
|
|
297
|
+
* @public
|
|
298
|
+
*/
|
|
299
|
+
export const refractOAuthFlows = (value, options = {}) => refract(value, {
|
|
300
|
+
...options,
|
|
301
|
+
element: 'oAuthFlows'
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* Refracts a value into an OAuthFlowElement.
|
|
306
|
+
* @public
|
|
307
|
+
*/
|
|
308
|
+
export const refractOAuthFlow = (value, options = {}) => refract(value, {
|
|
309
|
+
...options,
|
|
310
|
+
element: 'oAuthFlow'
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Refracts a value into a SecurityRequirementElement.
|
|
315
|
+
* @public
|
|
316
|
+
*/
|
|
317
|
+
export const refractSecurityRequirement = (value, options = {}) => refract(value, {
|
|
318
|
+
...options,
|
|
319
|
+
element: 'securityRequirement'
|
|
320
|
+
});
|
|
321
|
+
export default refract;
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import { resolveSpecification, dispatchRefractorPlugins } from '@speclynx/apidom-core';
|
|
2
|
+
import { Element, refract as baseRefract } from '@speclynx/apidom-datamodel';
|
|
3
|
+
import { traverse, getNodePrimitiveType } from '@speclynx/apidom-traverse';
|
|
4
|
+
import { path } from 'ramda';
|
|
5
|
+
|
|
6
|
+
import type VisitorClass from './visitors/Visitor.ts';
|
|
7
|
+
import specification from './specification.ts';
|
|
8
|
+
import createToolbox, { type Toolbox } from './toolbox.ts';
|
|
9
|
+
import type CallbackElement from '../elements/Callback.ts';
|
|
10
|
+
import type ComponentsElement from '../elements/Components.ts';
|
|
11
|
+
import type ContactElement from '../elements/Contact.ts';
|
|
12
|
+
import type DiscriminatorElement from '../elements/Discriminator.ts';
|
|
13
|
+
import type EncodingElement from '../elements/Encoding.ts';
|
|
14
|
+
import type ExampleElement from '../elements/Example.ts';
|
|
15
|
+
import type ExternalDocumentationElement from '../elements/ExternalDocumentation.ts';
|
|
16
|
+
import type HeaderElement from '../elements/Header.ts';
|
|
17
|
+
import type InfoElement from '../elements/Info.ts';
|
|
18
|
+
import type LicenseElement from '../elements/License.ts';
|
|
19
|
+
import type LinkElement from '../elements/Link.ts';
|
|
20
|
+
import type MediaTypeElement from '../elements/MediaType.ts';
|
|
21
|
+
import type OAuthFlowElement from '../elements/OAuthFlow.ts';
|
|
22
|
+
import type OAuthFlowsElement from '../elements/OAuthFlows.ts';
|
|
23
|
+
import type OpenApi3_0Element from '../elements/OpenApi3-0.ts';
|
|
24
|
+
import type OperationElement from '../elements/Operation.ts';
|
|
25
|
+
import type ParameterElement from '../elements/Parameter.ts';
|
|
26
|
+
import type PathItemElement from '../elements/PathItem.ts';
|
|
27
|
+
import type PathsElement from '../elements/Paths.ts';
|
|
28
|
+
import type ReferenceElement from '../elements/Reference.ts';
|
|
29
|
+
import type RequestBodyElement from '../elements/RequestBody.ts';
|
|
30
|
+
import type ResponseElement from '../elements/Response.ts';
|
|
31
|
+
import type ResponsesElement from '../elements/Responses.ts';
|
|
32
|
+
import type SchemaElement from '../elements/Schema.ts';
|
|
33
|
+
import type SecurityRequirementElement from '../elements/SecurityRequirement.ts';
|
|
34
|
+
import type SecuritySchemeElement from '../elements/SecurityScheme.ts';
|
|
35
|
+
import type ServerElement from '../elements/Server.ts';
|
|
36
|
+
import type ServerVariableElement from '../elements/ServerVariable.ts';
|
|
37
|
+
import type TagElement from '../elements/Tag.ts';
|
|
38
|
+
import type XmlElement from '../elements/Xml.ts';
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
export type RefractorPlugin = (toolbox: Toolbox) => {
|
|
44
|
+
visitor?: object;
|
|
45
|
+
pre?: () => void;
|
|
46
|
+
post?: () => void;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
export interface RefractorOptions {
|
|
53
|
+
readonly element?: string;
|
|
54
|
+
readonly plugins?: RefractorPlugin[];
|
|
55
|
+
readonly specificationObj?: typeof specification;
|
|
56
|
+
readonly consume?: boolean;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @public
|
|
61
|
+
*/
|
|
62
|
+
const refract = <T extends Element>(
|
|
63
|
+
value: unknown,
|
|
64
|
+
{
|
|
65
|
+
element = 'openApi3_0',
|
|
66
|
+
plugins = [],
|
|
67
|
+
specificationObj = specification,
|
|
68
|
+
consume = false,
|
|
69
|
+
}: RefractorOptions = {},
|
|
70
|
+
): T => {
|
|
71
|
+
const genericElement = baseRefract(value);
|
|
72
|
+
const resolvedSpec = resolveSpecification(specificationObj);
|
|
73
|
+
const elementMap = resolvedSpec.elementMap as Record<string, string[]>;
|
|
74
|
+
const specPath = elementMap[element];
|
|
75
|
+
|
|
76
|
+
if (!specPath) {
|
|
77
|
+
throw new Error(`Unknown element type: "${element}"`);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* This is where generic ApiDOM becomes semantic (namespace applied).
|
|
82
|
+
* We don't allow consumers to hook into this translation.
|
|
83
|
+
* Though we allow consumers to define their own plugins on already transformed ApiDOM.
|
|
84
|
+
*/
|
|
85
|
+
const RootVisitorClass = path(specPath, resolvedSpec) as new (
|
|
86
|
+
options: Record<string, unknown>,
|
|
87
|
+
) => InstanceType<typeof VisitorClass>;
|
|
88
|
+
const rootVisitor = new RootVisitorClass({ specObj: resolvedSpec, consume });
|
|
89
|
+
|
|
90
|
+
traverse(genericElement, rootVisitor, { nodeTypeGetter: getNodePrimitiveType });
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Running plugins visitors means extra single traversal === performance hit.
|
|
94
|
+
*/
|
|
95
|
+
return dispatchRefractorPlugins(rootVisitor.element, plugins, {
|
|
96
|
+
toolboxCreator: createToolbox,
|
|
97
|
+
}) as T;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Refracts a value into an OpenApi3_0Element.
|
|
102
|
+
* @public
|
|
103
|
+
*/
|
|
104
|
+
export const refractOpenApi3_0 = <T extends Element = OpenApi3_0Element>(
|
|
105
|
+
value: unknown,
|
|
106
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
107
|
+
): T => refract(value, { ...options, element: 'openApi3_0' });
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Refracts a value into an InfoElement.
|
|
111
|
+
* @public
|
|
112
|
+
*/
|
|
113
|
+
export const refractInfo = <T extends Element = InfoElement>(
|
|
114
|
+
value: unknown,
|
|
115
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
116
|
+
): T => refract(value, { ...options, element: 'info' });
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Refracts a value into a ContactElement.
|
|
120
|
+
* @public
|
|
121
|
+
*/
|
|
122
|
+
export const refractContact = <T extends Element = ContactElement>(
|
|
123
|
+
value: unknown,
|
|
124
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
125
|
+
): T => refract(value, { ...options, element: 'contact' });
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Refracts a value into a LicenseElement.
|
|
129
|
+
* @public
|
|
130
|
+
*/
|
|
131
|
+
export const refractLicense = <T extends Element = LicenseElement>(
|
|
132
|
+
value: unknown,
|
|
133
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
134
|
+
): T => refract(value, { ...options, element: 'license' });
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Refracts a value into a ServerElement.
|
|
138
|
+
* @public
|
|
139
|
+
*/
|
|
140
|
+
export const refractServer = <T extends Element = ServerElement>(
|
|
141
|
+
value: unknown,
|
|
142
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
143
|
+
): T => refract(value, { ...options, element: 'server' });
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Refracts a value into a ServerVariableElement.
|
|
147
|
+
* @public
|
|
148
|
+
*/
|
|
149
|
+
export const refractServerVariable = <T extends Element = ServerVariableElement>(
|
|
150
|
+
value: unknown,
|
|
151
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
152
|
+
): T => refract(value, { ...options, element: 'serverVariable' });
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Refracts a value into a ComponentsElement.
|
|
156
|
+
* @public
|
|
157
|
+
*/
|
|
158
|
+
export const refractComponents = <T extends Element = ComponentsElement>(
|
|
159
|
+
value: unknown,
|
|
160
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
161
|
+
): T => refract(value, { ...options, element: 'components' });
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Refracts a value into a PathsElement.
|
|
165
|
+
* @public
|
|
166
|
+
*/
|
|
167
|
+
export const refractPaths = <T extends Element = PathsElement>(
|
|
168
|
+
value: unknown,
|
|
169
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
170
|
+
): T => refract(value, { ...options, element: 'paths' });
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Refracts a value into a PathItemElement.
|
|
174
|
+
* @public
|
|
175
|
+
*/
|
|
176
|
+
export const refractPathItem = <T extends Element = PathItemElement>(
|
|
177
|
+
value: unknown,
|
|
178
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
179
|
+
): T => refract(value, { ...options, element: 'pathItem' });
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Refracts a value into an OperationElement.
|
|
183
|
+
* @public
|
|
184
|
+
*/
|
|
185
|
+
export const refractOperation = <T extends Element = OperationElement>(
|
|
186
|
+
value: unknown,
|
|
187
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
188
|
+
): T => refract(value, { ...options, element: 'operation' });
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Refracts a value into an ExternalDocumentationElement.
|
|
192
|
+
* @public
|
|
193
|
+
*/
|
|
194
|
+
export const refractExternalDocumentation = <T extends Element = ExternalDocumentationElement>(
|
|
195
|
+
value: unknown,
|
|
196
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
197
|
+
): T => refract(value, { ...options, element: 'externalDocumentation' });
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Refracts a value into a ParameterElement.
|
|
201
|
+
* @public
|
|
202
|
+
*/
|
|
203
|
+
export const refractParameter = <T extends Element = ParameterElement>(
|
|
204
|
+
value: unknown,
|
|
205
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
206
|
+
): T => refract(value, { ...options, element: 'parameter' });
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Refracts a value into a RequestBodyElement.
|
|
210
|
+
* @public
|
|
211
|
+
*/
|
|
212
|
+
export const refractRequestBody = <T extends Element = RequestBodyElement>(
|
|
213
|
+
value: unknown,
|
|
214
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
215
|
+
): T => refract(value, { ...options, element: 'requestBody' });
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* Refracts a value into a MediaTypeElement.
|
|
219
|
+
* @public
|
|
220
|
+
*/
|
|
221
|
+
export const refractMediaType = <T extends Element = MediaTypeElement>(
|
|
222
|
+
value: unknown,
|
|
223
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
224
|
+
): T => refract(value, { ...options, element: 'mediaType' });
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Refracts a value into an EncodingElement.
|
|
228
|
+
* @public
|
|
229
|
+
*/
|
|
230
|
+
export const refractEncoding = <T extends Element = EncodingElement>(
|
|
231
|
+
value: unknown,
|
|
232
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
233
|
+
): T => refract(value, { ...options, element: 'encoding' });
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Refracts a value into a ResponsesElement.
|
|
237
|
+
* @public
|
|
238
|
+
*/
|
|
239
|
+
export const refractResponses = <T extends Element = ResponsesElement>(
|
|
240
|
+
value: unknown,
|
|
241
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
242
|
+
): T => refract(value, { ...options, element: 'responses' });
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Refracts a value into a ResponseElement.
|
|
246
|
+
* @public
|
|
247
|
+
*/
|
|
248
|
+
export const refractResponse = <T extends Element = ResponseElement>(
|
|
249
|
+
value: unknown,
|
|
250
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
251
|
+
): T => refract(value, { ...options, element: 'response' });
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Refracts a value into a CallbackElement.
|
|
255
|
+
* @public
|
|
256
|
+
*/
|
|
257
|
+
export const refractCallback = <T extends Element = CallbackElement>(
|
|
258
|
+
value: unknown,
|
|
259
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
260
|
+
): T => refract(value, { ...options, element: 'callback' });
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Refracts a value into an ExampleElement.
|
|
264
|
+
* @public
|
|
265
|
+
*/
|
|
266
|
+
export const refractExample = <T extends Element = ExampleElement>(
|
|
267
|
+
value: unknown,
|
|
268
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
269
|
+
): T => refract(value, { ...options, element: 'example' });
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Refracts a value into a LinkElement.
|
|
273
|
+
* @public
|
|
274
|
+
*/
|
|
275
|
+
export const refractLink = <T extends Element = LinkElement>(
|
|
276
|
+
value: unknown,
|
|
277
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
278
|
+
): T => refract(value, { ...options, element: 'link' });
|
|
279
|
+
|
|
280
|
+
/**
|
|
281
|
+
* Refracts a value into a HeaderElement.
|
|
282
|
+
* @public
|
|
283
|
+
*/
|
|
284
|
+
export const refractHeader = <T extends Element = HeaderElement>(
|
|
285
|
+
value: unknown,
|
|
286
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
287
|
+
): T => refract(value, { ...options, element: 'header' });
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Refracts a value into a TagElement.
|
|
291
|
+
* @public
|
|
292
|
+
*/
|
|
293
|
+
export const refractTag = <T extends Element = TagElement>(
|
|
294
|
+
value: unknown,
|
|
295
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
296
|
+
): T => refract(value, { ...options, element: 'tag' });
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Refracts a value into a ReferenceElement.
|
|
300
|
+
* @public
|
|
301
|
+
*/
|
|
302
|
+
export const refractReference = <T extends Element = ReferenceElement>(
|
|
303
|
+
value: unknown,
|
|
304
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
305
|
+
): T => refract(value, { ...options, element: 'reference' });
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Refracts a value into a SchemaElement.
|
|
309
|
+
* @public
|
|
310
|
+
*/
|
|
311
|
+
export const refractSchema = <T extends Element = SchemaElement>(
|
|
312
|
+
value: unknown,
|
|
313
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
314
|
+
): T => refract(value, { ...options, element: 'schema' });
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Refracts a value into a DiscriminatorElement.
|
|
318
|
+
* @public
|
|
319
|
+
*/
|
|
320
|
+
export const refractDiscriminator = <T extends Element = DiscriminatorElement>(
|
|
321
|
+
value: unknown,
|
|
322
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
323
|
+
): T => refract(value, { ...options, element: 'discriminator' });
|
|
324
|
+
|
|
325
|
+
/**
|
|
326
|
+
* Refracts a value into an XmlElement.
|
|
327
|
+
* @public
|
|
328
|
+
*/
|
|
329
|
+
export const refractXml = <T extends Element = XmlElement>(
|
|
330
|
+
value: unknown,
|
|
331
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
332
|
+
): T => refract(value, { ...options, element: 'xml' });
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Refracts a value into a SecuritySchemeElement.
|
|
336
|
+
* @public
|
|
337
|
+
*/
|
|
338
|
+
export const refractSecurityScheme = <T extends Element = SecuritySchemeElement>(
|
|
339
|
+
value: unknown,
|
|
340
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
341
|
+
): T => refract(value, { ...options, element: 'securityScheme' });
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
* Refracts a value into an OAuthFlowsElement.
|
|
345
|
+
* @public
|
|
346
|
+
*/
|
|
347
|
+
export const refractOAuthFlows = <T extends Element = OAuthFlowsElement>(
|
|
348
|
+
value: unknown,
|
|
349
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
350
|
+
): T => refract(value, { ...options, element: 'oAuthFlows' });
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Refracts a value into an OAuthFlowElement.
|
|
354
|
+
* @public
|
|
355
|
+
*/
|
|
356
|
+
export const refractOAuthFlow = <T extends Element = OAuthFlowElement>(
|
|
357
|
+
value: unknown,
|
|
358
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
359
|
+
): T => refract(value, { ...options, element: 'oAuthFlow' });
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* Refracts a value into a SecurityRequirementElement.
|
|
363
|
+
* @public
|
|
364
|
+
*/
|
|
365
|
+
export const refractSecurityRequirement = <T extends Element = SecurityRequirementElement>(
|
|
366
|
+
value: unknown,
|
|
367
|
+
options: Omit<RefractorOptions, 'element'> = {},
|
|
368
|
+
): T => refract(value, { ...options, element: 'securityRequirement' });
|
|
369
|
+
|
|
370
|
+
export default refract;
|