Copy disabled (too large)
Download .txt
Showing preview only (54,904K chars total). Download the full file to get everything.
Repository: RicoSuter/NSwag
Branch: master
Commit: eac9c1fbb054
Files: 890
Total size: 52.1 MB
Directory structure:
gitextract_kvs_iazl/
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ └── workflows/
│ ├── build.yml
│ └── pr.yml
├── .gitignore
├── .nuke/
│ ├── build.schema.json
│ └── parameters.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── Directory.Packages.props
├── LICENSE.md
├── README.md
├── assets/
│ ├── LayerDiagram.vsdx
│ ├── NSwagIcon.metrop
│ └── ToolchainDiagram.vsdx
├── azure-pipelines.yml
├── build/
│ ├── Build.CI.GitHubActions.cs
│ ├── Build.Pack.cs
│ ├── Build.Publish.cs
│ ├── Build.cs
│ ├── Configuration.cs
│ ├── Directory.Build.props
│ ├── Directory.Build.targets
│ └── _build.csproj
├── build.cmd
├── build.ps1
├── build.sh
├── docs/
│ └── tutorials/
│ └── GenerateProxyClientWithCLI/
│ ├── generate-proxy-client.md
│ └── sample.nswag
├── global.json
└── src/
├── NSwag.Annotations/
│ ├── NSwag.Annotations.csproj
│ ├── OpenApiBodyParameterAttribute.cs
│ ├── OpenApiControllerAttribute.cs
│ ├── OpenApiExtensionDataAttribute.cs
│ ├── OpenApiFileAttribute.cs
│ ├── OpenApiIgnoreAttribute.cs
│ ├── OpenApiOperationAttribute.cs
│ ├── OpenApiOperationProcessorAttribute.cs
│ ├── OpenApiTagAttribute.cs
│ ├── OpenApiTagsAttribute.cs
│ ├── ResponseTypeAttribute.cs
│ ├── SwaggerDefaultResponseAttribute.cs
│ ├── SwaggerResponseAttribute.cs
│ └── WillReadBodyAttribute.cs
├── NSwag.ApiDescription.Client/
│ ├── NSwag.ApiDescription.Client.nuspec
│ ├── NSwag.ApiDescription.Client.props
│ └── NSwag.ApiDescription.Client.targets
├── NSwag.AspNet.Owin/
│ ├── Middlewares/
│ │ ├── OpenApiDocumentMiddleware.cs
│ │ ├── RedirectToIndexMiddleware.cs
│ │ └── SwaggerUiIndexMiddleware.cs
│ ├── NSwag.AspNet.Owin.csproj
│ ├── ReDoc/
│ │ └── index.html
│ ├── SwaggerExtensions.cs
│ ├── SwaggerUi/
│ │ ├── index.css
│ │ ├── index.html
│ │ ├── oauth2-redirect.html
│ │ ├── swagger-ui-bundle.js
│ │ ├── swagger-ui-es-bundle-core.js
│ │ ├── swagger-ui-es-bundle.js
│ │ ├── swagger-ui-standalone-preset.js
│ │ ├── swagger-ui.css
│ │ └── swagger-ui.js
│ └── app.config
├── NSwag.AspNet.WebApi/
│ ├── JsonExceptionFilterAttribute.cs
│ └── NSwag.AspNet.WebApi.csproj
├── NSwag.AspNetCore/
│ ├── ApiverseUiSettings.cs
│ ├── Extensions/
│ │ ├── NSwagApplicationBuilderExtensions.cs
│ │ ├── NSwagServiceCollectionExtensions.cs
│ │ └── NSwagSwaggerGeneratorSettingsExtensions.cs
│ ├── HttpRequestExtension.cs
│ ├── IDocumentProvider.cs
│ ├── JsonExceptionFilterAttribute.cs
│ ├── Middlewares/
│ │ ├── OpenApiDocumentMiddleware.cs
│ │ ├── RedirectToIndexMiddleware.cs
│ │ └── SwaggerUiIndexMiddleware.cs
│ ├── NSwag.AspNetCore.csproj
│ ├── OAuth2ClientSettings.cs
│ ├── OpenApiConfigureMvcOptions.cs
│ ├── OpenApiDocumentMiddlewareSettings.cs
│ ├── OpenApiDocumentProvider.cs
│ ├── OpenApiDocumentRegistration.cs
│ ├── OpenApiMvcApplicationModelConvention.cs
│ ├── ReDoc/
│ │ └── index.html
│ ├── ReDocSettings.cs
│ ├── SwaggerSettings.cs
│ ├── SwaggerUi/
│ │ ├── index.css
│ │ ├── index.html
│ │ ├── oauth2-redirect.html
│ │ ├── swagger-ui-bundle.js
│ │ ├── swagger-ui-es-bundle-core.js
│ │ ├── swagger-ui-es-bundle.js
│ │ ├── swagger-ui-standalone-preset.js
│ │ ├── swagger-ui.css
│ │ └── swagger-ui.js
│ ├── SwaggerUiSettings.cs
│ ├── SwaggerUiSettingsBase.cs
│ ├── build/
│ │ ├── NSwag.AspNetCore.props
│ │ └── NSwag.AspNetCore.targets
│ └── buildMultiTargeting/
│ ├── NSwag.AspNetCore.props
│ └── NSwag.AspNetCore.targets
├── NSwag.AspNetCore.Launcher/
│ ├── NSwag.AspNetCore.Launcher.csproj
│ └── Program.cs
├── NSwag.AspNetCore.Launcher.x86/
│ └── NSwag.AspNetCore.Launcher.x86.csproj
├── NSwag.CodeGeneration/
│ ├── ClientGeneratorBase.cs
│ ├── ClientGeneratorBaseSettings.cs
│ ├── ClientGeneratorOutputType.cs
│ ├── ControllerGeneratorBaseSettings.cs
│ ├── DefaultParameterNameGenerator.cs
│ ├── DefaultTemplateFactory.cs
│ ├── IClientGenerator.cs
│ ├── IParameterNameGenerator.cs
│ ├── JsonSchemaExtensions.cs
│ ├── Models/
│ │ ├── IOperationModel.cs
│ │ ├── OperationModelBase.cs
│ │ ├── ParameterModelBase.cs
│ │ ├── PropertyModel.cs
│ │ └── ResponseModelBase.cs
│ ├── NSwag.CodeGeneration.csproj
│ ├── OperationNameGenerators/
│ │ ├── IOperationNameGenerator.cs
│ │ ├── MultipleClientsFromFirstTagAndOperationIdGenerator.cs
│ │ ├── MultipleClientsFromFirstTagAndOperationNameGenerator.cs
│ │ ├── MultipleClientsFromFirstTagAndPathSegmentsOperationNameGenerator.cs
│ │ ├── MultipleClientsFromOperationIdOperationNameGenerator.cs
│ │ ├── MultipleClientsFromPathSegmentsOperationNameGenerator.cs
│ │ ├── SingleClientFromOperationIdOperationNameGenerator.cs
│ │ └── SingleClientFromPathSegmentsOperationNameGenerator.cs
│ └── app.config
├── NSwag.CodeGeneration.CSharp/
│ ├── CSharpClientGenerator.cs
│ ├── CSharpClientGeneratorSettings.cs
│ ├── CSharpControllerGenerator.cs
│ ├── CSharpControllerGeneratorSettings.cs
│ ├── CSharpGeneratorBase.cs
│ ├── CSharpGeneratorBaseSettings.cs
│ ├── Models/
│ │ ├── CSharpClientTemplateModel.cs
│ │ ├── CSharpControllerOperationModel.cs
│ │ ├── CSharpControllerRouteNamingStrategy.cs
│ │ ├── CSharpControllerStyle.cs
│ │ ├── CSharpControllerTarget.cs
│ │ ├── CSharpControllerTemplateModel.cs
│ │ ├── CSharpExceptionDescriptionModel.cs
│ │ ├── CSharpFileTemplateModel.cs
│ │ ├── CSharpOperationModel.cs
│ │ ├── CSharpParameterModel.cs
│ │ ├── CSharpResponseModel.cs
│ │ └── CSharpTemplateModelBase.cs
│ ├── NSwag.CodeGeneration.CSharp.csproj
│ └── Templates/
│ ├── Client.Class.Annotations.liquid
│ ├── Client.Class.BeforeSend.liquid
│ ├── Client.Class.Body.liquid
│ ├── Client.Class.Constructor.liquid
│ ├── Client.Class.ConvertToString.liquid
│ ├── Client.Class.HeaderParameter.liquid
│ ├── Client.Class.PathParameter.liquid
│ ├── Client.Class.ProcessResponse.liquid
│ ├── Client.Class.QueryParameter.liquid
│ ├── Client.Class.ReadObjectResponse.liquid
│ ├── Client.Class.liquid
│ ├── Client.Interface.Annotations.liquid
│ ├── Client.Interface.Body.liquid
│ ├── Client.Interface.liquid
│ ├── Client.Method.Annotations.liquid
│ ├── Client.Method.Documentation.liquid
│ ├── Controller.AspNet.FromHeaderAttribute.liquid
│ ├── Controller.AspNet.FromHeaderBinding.liquid
│ ├── Controller.Class.Annotations.liquid
│ ├── Controller.Method.Annotations.liquid
│ ├── Controller.liquid
│ ├── File.Footer.liquid
│ ├── File.Header.liquid
│ ├── File.liquid
│ └── JsonExceptionConverter.liquid
├── NSwag.CodeGeneration.CSharp.Tests/
│ ├── AllowNullableBodyParametersTests.cs
│ ├── ArrayParameterTests.cs
│ ├── BinaryTests.cs
│ ├── CSharpClientSettingsTests.cs
│ ├── CSharpCompiler.cs
│ ├── ClientGenerationTests.cs
│ ├── CodeGenerationTests.cs
│ ├── ControllerGenerationFormatTests.cs
│ ├── Controllers/
│ │ ├── ControllerGenerationBasePathTests.cs
│ │ ├── ControllerGenerationDefaultParameterTests.cs
│ │ └── Snapshots/
│ │ ├── ControllerGenerationBasePathTests.When_custom_BasePath_is_not_specified_then_the_BasePath_from_document_is_used_as_Route.verified.txt
│ │ ├── ControllerGenerationBasePathTests.When_custom_BasePath_is_specified_then_that_is_used_as_Route.verified.txt
│ │ └── ControllerGenerationDefaultParameterTests.When_parameter_has_default_then_set_in_partial_controller.verified.txt
│ ├── FileDownloadTests.cs
│ ├── FileTests.cs
│ ├── FileUploadTests.cs
│ ├── FormParameterTests.cs
│ ├── HeadRequestTests.cs
│ ├── InheritanceTests.cs
│ ├── NSwag.CodeGeneration.CSharp.Tests.csproj
│ ├── ObjectParameterTests.cs
│ ├── OptionalParameterTests.cs
│ ├── ParameterTests.cs
│ ├── PlainResponseTests.cs
│ ├── PlainTextBodyTests.cs
│ ├── QueryParameterTests.cs
│ ├── RequiredParameterTests.cs
│ ├── ResponseTests.cs
│ ├── Snapshots/
│ │ ├── AllowNullableBodyParametersTests.TestNoGuardForOptionalBodyParameter.verified.txt
│ │ ├── AllowNullableBodyParametersTests.TestNullableBodyWithAllowNullableBodyParameters.verified.txt
│ │ ├── AllowNullableBodyParametersTests.TestNullableBodyWithoutAllowNullableBodyParameters.verified.txt
│ │ ├── ArrayParameterTests.When_CollectionFormat_is_csv_then_do_not_explode.verified.txt
│ │ ├── ArrayParameterTests.When_CollectionFormat_is_multi_then_explode.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_explicitly_or_implicitly_true_then_explode_explode=-explode-- true,.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_explicitly_or_implicitly_true_then_explode_explode=-style-- -form-, -explode-- true,.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_explicitly_or_implicitly_true_then_explode_explode=-style-- -form-,.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_explicitly_or_implicitly_true_then_explode_explode=.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_false_then_do_not_explode_explode=-explode-- false,.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_false_then_do_not_explode_explode=-style-- -form-, -explode-- false,.verified.txt
│ │ ├── ArrayParameterTests.When_parameter_is_array_then_CSharp_is_correct.verified.txt
│ │ ├── ArrayParameterTests.when_content_is_formdata_with_property_array_then_content_should_be_added_in_foreach_in_csharp.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInMultipartFileArray_ThenFormDataIsUsedInCSharp.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInNestedMultipartForm_ThenFormDataIsUsedInCSharp.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInSingleMultipartFile_ThenFormDataIsUsedInCSharp.verified.txt
│ │ ├── BinaryTests.When_body_is_binary_array_then_IFormFile_Collection_is_used_as_parameter_in_CSharp_ASPNETCore.verified.txt
│ │ ├── BinaryTests.When_body_is_binary_then_IFormFile_is_used_as_parameter_in_CSharp_ASPNETCore.verified.txt
│ │ ├── BinaryTests.When_body_is_binary_then_stream_is_used_as_parameter_in_CSharp.verified.txt
│ │ ├── BinaryTests.When_multipart_inline_schema.verified.txt
│ │ ├── BinaryTests.When_multipart_with_ref_should_read_schema.verified.txt
│ │ ├── BinaryTests.When_response_body_is_binary_then_IActionResult_is_used_as_return_type_in_CSharp_ASPNETCore.verified.txt
│ │ ├── CSharpClientSettingsTests.WhenUsingBaseUrl_ButNoProperty_ThenPropertyIsNotUsedAndFieldIsGenerated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_ConfigurationClass_is_set_then_correct_ctor_is_generated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_UseHttpRequestMessageCreationMethod_is_set_then_CreateRequestMessage_is_generated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_base_interface_is_not_specified_then_client_interface_should_have_no_base_interface.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_base_interface_is_not_specified_then_client_interface_should_have_no_base_interface_and_has_correct_access_modifier.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_base_interface_is_specified_then_client_interface_extends_it.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_base_interface_is_specified_with_access_modifier_then_client_interface_extends_it_and_has_correct_access_modifier.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_class_generation_is_enabled_and_suppressed_then_client_class_is_not_generated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_interface_generation_is_enabled_and_suppressed_then_client_interface_is_not_generated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_code_is_generated_then_by_default_the_system_httpclient_is_used.verified.txt
│ │ ├── CSharpClientSettingsTests.When_custom_http_client_type_is_specified_then_an_instance_of_that_type_is_used.verified.txt
│ │ ├── CSharpClientSettingsTests.When_exclude_operation_ids_is_provided_then_selected_operations_should_be_excluded_from_generated_code_excludedOperationIds=1.verified.txt
│ │ ├── CSharpClientSettingsTests.When_exclude_operation_ids_is_provided_then_selected_operations_should_be_excluded_from_generated_code_excludedOperationIds=2.verified.txt
│ │ ├── CSharpClientSettingsTests.When_exclude_operation_ids_is_provided_then_selected_operations_should_be_excluded_from_generated_code_excludedOperationIds=3.verified.txt
│ │ ├── CSharpClientSettingsTests.When_include_operation_ids_is_provided_then_only_selected_operations_are_included_in_generated_code_includedOperationIds=1.verified.txt
│ │ ├── CSharpClientSettingsTests.When_include_operation_ids_is_provided_then_only_selected_operations_are_included_in_generated_code_includedOperationIds=2.verified.txt
│ │ ├── CSharpClientSettingsTests.When_include_operation_ids_is_provided_then_only_selected_operations_are_included_in_generated_code_includedOperationIds=3.verified.txt
│ │ ├── CSharpClientSettingsTests.When_parameter_name_is_reserved_keyword_then_it_is_appended_with_at.verified.txt
│ │ ├── CodeGenerationTests.When_Success_Response_contains_multiple_content_types_prioritizes_json.verified.txt
│ │ ├── CodeGenerationTests.When_Success_Response_contains_multiple_content_types_prioritizes_wildcard.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_then_output_contains_expected_classes.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_NewtonsoftJson_and_JsonSerializerSettingsTransformationMethod_then_output_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_SystemTextJson_and_GenerateJsonMethods_and_JsonConverters_then_ToJson_and_FromJson_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_SystemTextJson_and_JsonConverters_then_output_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_SystemTextJson_and_JsonSerializerSettingsTransformationMethod_then_output_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_SystemTextJson_then_output_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_media_type_contains_quotes_can_generate_client.verified.txt
│ │ ├── CodeGenerationTests.When_path_starts_with_numeric_can_generate_client.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_aspnet_actiontype_inuse_with_abstract_then_actiontype_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_aspnet_actiontype_inuse_with_partial_then_actiontype_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operation_with_complextype_then_abstractcontroller_is_generated_with_frombody_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operation_with_complextype_then_partialcontroller_is_generated_with_frombody_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operation_with_header_parameter_then_partialcontroller_is_generated_with_fromheader_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operations_with_required_parameters_then_abstractcontroller_is_generated_with_bindrequired_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operations_with_required_parameters_then_partialcontroller_is_generated_with_bindrequired_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllergenerationformat_abstract_then_abstractcontroller_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllergenerationformat_notsetted_then_partialcontroller_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllergenerationformat_partial_then_partialcontroller_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllerroutenamingstrategy_none_then_route_attribute_name_not_specified.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllerroutenamingstrategy_operationid_then_route_attribute_name_specified.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllertarget_aspnet_and_multiple_controllers_then_only_single_custom_fromheader_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllertarget_aspnetcore_then_use_builtin_fromheader.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_the_generation_of_dto_classes_are_disabled_then_file_is_generated_without_any_dto_clasess.verified.txt
│ │ ├── FileDownloadTests.When_openapi3_contains_octet_stream_response_then_FileResponse_is_generated.verified.txt
│ │ ├── FileDownloadTests.When_response_is_file_and_stream_is_not_used_then_byte_array_is_returned.verified.txt
│ │ ├── FileTests.When_file_is_generated_system_alias_is_there.verified.txt
│ │ ├── FileUploadTests.When_openapi3_contains_octet_stream_response_then_FileResponse_is_generated.verified.txt
│ │ ├── FormParameterTests.When_action_has_file_parameter_then_Stream_is_generated_in_CSharp_code.verified.txt
│ │ ├── FormParameterTests.When_form_parameters_are_defined_then_FormUrlEncodedContent_is_generated.verified.txt
│ │ ├── FormParameterTests.When_form_parameters_are_defined_then_MultipartFormDataContent_is_generated.verified.txt
│ │ ├── HeadRequestTests.When_operation_is_HTTP_head_then_no_content_is_not_used.verified.txt
│ │ ├── InheritanceTests.When_generating_csharp_with_any_inheritance_then_inheritance_is_generated.verified.txt
│ │ ├── JIRA_OpenAPI.verified.txt
│ │ ├── NHS_SpineServices_OpenAPI.verified.txt
│ │ ├── ObjectParameterTests.when_content_is_formdata_with_property_object_then_content_should_be_json_csharp.verified.txt
│ │ ├── OptionalParameterTests.When_optional_parameter_comes_before_required.verified.txt
│ │ ├── OptionalParameterTests.When_setting_is_enabled_then_optional_parameters_have_null_optional_value.verified.txt
│ │ ├── OptionalParameterTests.When_setting_is_enabled_then_parameters_are_reordered.verified.txt
│ │ ├── OptionalParameterTests.When_setting_is_enabled_with_class_fromuri_should_make_enum_nullable.verified.txt
│ │ ├── OptionalParameterTests.When_setting_is_enabled_with_enum_fromuri_should_make_enum_nullable.verified.txt
│ │ ├── ParameterTests.Deep_object_properties_are_correctly_named.verified.txt
│ │ ├── ParameterTests.When_original_name_is_defined_then_csharp_parameter_is_the_same.verified.txt
│ │ ├── ParameterTests.When_parameter_is_array_and_should_not_be_exploded.verified.txt
│ │ ├── ParameterTests.When_parameters_have_same_name_then_they_are_renamed.verified.txt
│ │ ├── ParameterTests.When_parameters_names_have_differences_only_in_case_of_the_first_letter_then_they_are_renamed.verified.txt
│ │ ├── ParameterTests.When_parent_parameters_have_same_kind_then_they_are_included.verified.txt
│ │ ├── ParameterTests.When_swagger_contains_optional_parameters_then_they_are_rendered_in_CSharp.verified.txt
│ │ ├── PlainResponseTests.When_openapi3_reponse_contains_plain_text_string_array_then_ReadObjectResponseAsync_is_generated.verified.txt
│ │ ├── PlainResponseTests.When_openapi3_reponse_contains_plain_text_then_Convert_is_generated.verified.txt
│ │ ├── PlainResponseTests.When_swagger_reponse_contains_plain_text_string_array_then_ReadObjectResponseAsync_is_generated.verified.txt
│ │ ├── PlainResponseTests.When_swagger_reponse_contains_plain_text_then_Convert_is_generated.verified.txt
│ │ ├── PlainTextBodyTests.When_request_contains_plain_text_string_body_then_ReadObjectResponseAsync_is_generated.verified.txt
│ │ ├── QueryParameterTests.When_query_parameter_is_mixed_free_form_object_parameters_are_expanded.verified.txt
│ │ ├── QueryParameterTests.When_query_parameter_is_set_to_explode_and_style_is_form_object_parameters_are_expanded.verified.txt
│ │ ├── QueryParameterTests.When_query_parameter_is_typed_free_form_object_parameters_are_expanded.verified.txt
│ │ ├── QueryParameterTests.When_query_parameter_is_untyped_free_form_object_parameters_are_expanded.verified.txt
│ │ ├── ResponseTests.When_response_is_referenced_any_then_class_is_generated.verified.txt
│ │ ├── ResponseTests.When_response_references_object_in_inheritance_hierarchy_then_return_value_is_correct.verified.txt
│ │ ├── ResponseTests.When_responses_produce_multiple_types.verified.txt
│ │ ├── ResponseTests.When_responses_produce_primitive_types.verified.txt
│ │ ├── ResponseTests.When_same_response_is_referenced_multiple_times_in_operation_then_class_is_generated.verified.txt
│ │ ├── ShipBob_OpenAPI.verified.txt
│ │ ├── UseCancellationTokenTests.When_controllerstyleisabstract_and_usecancellationtokenistrue_and_requesthasnoparameter_then_cancellationtoken_is_added.verified.txt
│ │ ├── UseCancellationTokenTests.When_controllerstyleisabstract_and_usecancellationtokenistrue_and_requesthasparameter_then_cancellationtoken_is_added.verified.txt
│ │ ├── UseCancellationTokenTests.When_controllerstyleispartial_and_usecancellationtokenistrue_and_requesthasnoparameter_then_cancellationtoken_is_added.verified.txt
│ │ ├── UseCancellationTokenTests.When_controllerstyleispartial_and_usecancellationtokenistrue_and_requesthasparameter_then_cancellationtoken_is_added.verified.txt
│ │ ├── UseCancellationTokenTests.When_usecancellationtokenparameter_notsetted_then_cancellationtoken_isnot_added.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_disabled_properties_with_required_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_disabled_properties_with_required_keyword_and_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_disabled_properties_with_required_keyword_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_enabled_properties_with_required_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_enabled_properties_with_required_keyword_and_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_disabled_properties_with_required_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_disabled_properties_with_required_keyword_and_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_disabled_properties_with_required_keyword_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_enabled_properties_with_required_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_enabled_properties_with_required_keyword_and_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── WrapResponsesTests.When_success_responses_are_wrapped_then_SwaggerResponse_is_returned.verified.txt
│ │ ├── WrapResponsesTests.When_success_responses_are_wrapped_then_SwaggerResponse_is_returned_web_api.verified.txt
│ │ └── WrapResponsesTests.When_success_responses_are_wrapped_then_SwaggerResponse_is_returned_web_api_aspnetcore.verified.txt
│ ├── TestData/
│ │ ├── jira-open-api.json
│ │ ├── nhs-spineservices.json
│ │ └── shipbob-2025-07.json
│ ├── UseCancellationTokenTests.cs
│ └── WrapResponsesTests.cs
├── NSwag.CodeGeneration.Tests/
│ ├── CodeGenerationTests.cs
│ ├── NSwag.CodeGeneration.Tests.csproj
│ ├── Output.json
│ ├── VerifyChecksTests.cs
│ └── VerifyHelper.cs
├── NSwag.CodeGeneration.TypeScript/
│ ├── HttpClass.cs
│ ├── InjectionTokenType.cs
│ ├── Models/
│ │ ├── TypeScriptClientTemplateModel.cs
│ │ ├── TypeScriptFileTemplateModel.cs
│ │ ├── TypeScriptFrameworkAngularModel.cs
│ │ ├── TypeScriptFrameworkModel.cs
│ │ ├── TypeScriptFrameworkRxJsModel.cs
│ │ ├── TypeScriptOperationModel.cs
│ │ ├── TypeScriptParameterModel.cs
│ │ └── TypeScriptResponseModel.cs
│ ├── NSwag.CodeGeneration.TypeScript.csproj
│ ├── PromiseType.cs
│ ├── RequestCredentialsType.cs
│ ├── RequestModeType.cs
│ ├── Templates/
│ │ ├── AngularClient.liquid
│ │ ├── AngularJSClient.liquid
│ │ ├── AxiosClient.liquid
│ │ ├── Client.Method.Documentation.liquid
│ │ ├── Client.ProcessResponse.HandleStatusCode.liquid
│ │ ├── Client.ProcessResponse.ReadBodyEnd.liquid
│ │ ├── Client.ProcessResponse.ReadBodyStart.liquid
│ │ ├── Client.ProcessResponse.ReadHeaders.liquid
│ │ ├── Client.ProcessResponse.Return.liquid
│ │ ├── Client.ProcessResponse.liquid
│ │ ├── Client.RequestBody.liquid
│ │ ├── Client.RequestUrl.liquid
│ │ ├── FetchClient.liquid
│ │ ├── File.Header.liquid
│ │ ├── File.Utilities.liquid
│ │ ├── File.liquid
│ │ ├── JQueryCallbacksClient.liquid
│ │ ├── JQueryPromisesClient.liquid
│ │ └── K6Client.liquid
│ ├── TypeScriptClientGenerator.cs
│ ├── TypeScriptClientGeneratorSettings.cs
│ ├── TypeScriptTemplate.cs
│ └── TypeScriptTypeNameGenerator.cs
├── NSwag.CodeGeneration.TypeScript.Tests/
│ ├── AngularJSTests.cs
│ ├── AngularTests.cs
│ ├── ArrayParameterTests.cs
│ ├── AxiosTests.cs
│ ├── BinaryTests.cs
│ ├── ClientGenerationTests.cs
│ ├── CodeGenerationTests.cs
│ ├── FetchTests.cs
│ ├── InheritanceTests.cs
│ ├── JQueryCallbacksTests.cs
│ ├── JQueryPromisesTests.cs
│ ├── K6Tests.cs
│ ├── NSwag.CodeGeneration.TypeScript.Tests.csproj
│ ├── ObjectParameterTests.cs
│ ├── OperationParameterTests.cs
│ ├── OptionalParameterTests.cs
│ ├── Snapshots/
│ │ ├── AngularJSTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── AngularJSTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── AngularJSTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── AngularTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── AngularTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── AngularTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── AngularTests.When_generic_request.verified.txt
│ │ ├── AngularTests.When_return_value_is_void_then_client_returns_observable_of_void.verified.txt
│ │ ├── ArrayParameterTests.When_parameter_is_array_then_TypeScript_is_correct.verified.txt
│ │ ├── ArrayParameterTests.when_content_is_formdata_with_property_array_then_content_should_be_added_in_foreach_in_typescript.verified.txt
│ │ ├── AxiosTests.Add_cancel_token_to_every_call.verified.txt
│ │ ├── AxiosTests.When_abort_signal.verified.txt
│ │ ├── AxiosTests.When_abort_signal_and_generate_client_interfaces_contains_signal_param_in_both_interface_and_concrete_implementation.verified.txt
│ │ ├── AxiosTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── AxiosTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── AxiosTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInMultipartFileArray_ThenFormDataIsUsedInTypeScript.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInNestedMultipartForm_ThenFormDataIsUsedInTypeScript.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInSingleMultipartFile_ThenFormDataIsUsedInTypeScript.verified.txt
│ │ ├── BinaryTests.When_body_is_binary_then_blob_is_used_as_parameter_in_TypeScript.verified.txt
│ │ ├── CodeGenerationTests.When_generating_TypeScript_code_then_output_contains_expected_classes.verified.txt
│ │ ├── CodeGenerationTests.When_path_starts_with_numeric_can_generate_client.verified.txt
│ │ ├── FetchTests.When_abort_signal.verified.txt
│ │ ├── FetchTests.When_abort_signal_and_generate_client_interfaces_interface_contains_signal_param.verified.txt
│ │ ├── FetchTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── FetchTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── FetchTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── FetchTests.When_includeHttpContext.verified.txt
│ │ ├── FetchTests.When_include_RequestCredentialsType_Include.verified.txt
│ │ ├── FetchTests.When_include_RequestModeType_Cors.verified.txt
│ │ ├── FetchTests.When_no_abort_signal.verified.txt
│ │ ├── FetchTests.When_no_includeHttpContext.verified.txt
│ │ ├── InheritanceTests.When_generating_typescript_with_any_inheritance_then_inheritance_is_generated.verified.txt
│ │ ├── JIRA_OpenAPI_Angular.verified.txt
│ │ ├── JIRA_OpenAPI_AngularJS.verified.txt
│ │ ├── JIRA_OpenAPI_Aurelia.verified.txt
│ │ ├── JIRA_OpenAPI_Axios.verified.txt
│ │ ├── JIRA_OpenAPI_Fetch.verified.txt
│ │ ├── JIRA_OpenAPI_JQueryCallbacks.verified.txt
│ │ ├── JIRA_OpenAPI_JQueryPromises.verified.txt
│ │ ├── JQueryCallbacksTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── JQueryCallbacksTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── JQueryCallbacksTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── JQueryPromisesTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── JQueryPromisesTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── JQueryPromisesTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── K6Tests.When_abort_signal.verified.txt
│ │ ├── K6Tests.When_abort_signal_and_generate_client_interfaces_interface_contains_signal_param.verified.txt
│ │ ├── K6Tests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── K6Tests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── K6Tests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── K6Tests.When_generic_request.verified.txt
│ │ ├── K6Tests.When_includeHttpContext.verified.txt
│ │ ├── K6Tests.When_no_abort_signal.verified.txt
│ │ ├── K6Tests.When_no_includeHttpContext.verified.txt
│ │ ├── K6Tests.When_return_value_is_void_then_client_returns_observable_of_void.verified.txt
│ │ ├── ObjectParameterTests.when_content_is_formdata_with_property_object_then_content_should_be_json_typescript.verified.txt
│ │ ├── OperationParameterTests.When_query_parameter_is_enum_array_then_the_enum_is_referenced.verified.txt
│ │ ├── OptionalParameterTests.When_optional_parameter_comes_before_required.verified.txt
│ │ ├── TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union.verified.txt
│ │ ├── TypeScriptOperationParameterTests.When_parameter_is_nullable_and_ts20_then_it_is_a_union_type_with_undefined.verified.txt
│ │ ├── TypeScriptOperationParameterTests.When_parameter_is_nullable_and_ts20_then_it_is_not_included_in_query_string.verified.txt
│ │ ├── TypeScriptOperationParameterTests.When_parameter_is_nullable_optional_and_ts20_then_it_is_a_union_type_with_undefined.verified.txt
│ │ └── TypeScriptOperationParameterTests.When_parameter_is_nullable_optional_and_ts20_then_it_is_not_included_in_query_string.verified.txt
│ ├── TypeScriptCompiler.cs
│ ├── TypeScriptDiscriminatorTests.cs
│ ├── TypeScriptOperationParameterTests.cs
│ ├── package.json
│ ├── temp_7aa36f3f-17b9-44df-818f-20a51fb73bb5.ts
│ └── tsconfig.json
├── NSwag.Commands/
│ ├── CodeGeneratorCollection.cs
│ ├── Commands/
│ │ ├── CodeGeneration/
│ │ │ ├── CodeGeneratorCommandBase.cs
│ │ │ ├── JsonSchemaToCSharpCommand.cs
│ │ │ ├── JsonSchemaToOpenApiCommand.cs
│ │ │ ├── JsonSchemaToTypeScriptCommand.cs
│ │ │ ├── OpenApiToCSharpClientCommand.cs
│ │ │ ├── OpenApiToCSharpCommandBase.cs
│ │ │ ├── OpenApiToCSharpControllerCommand.cs
│ │ │ ├── OpenApiToTypeScriptClientCommand.cs
│ │ │ └── OperationGenerationMode.cs
│ │ ├── Document/
│ │ │ ├── CreateDocumentCommand.cs
│ │ │ └── ExecuteDocumentCommand.cs
│ │ ├── Generation/
│ │ │ ├── AspNetCore/
│ │ │ │ ├── AspNetCore.targets
│ │ │ │ ├── AspNetCoreToOpenApiCommand.cs
│ │ │ │ ├── AspNetCoreToOpenApiGeneratorCommandEntryPoint.cs
│ │ │ │ ├── Exe.cs
│ │ │ │ └── ProjectMetadata.cs
│ │ │ └── FromDocumentCommand.cs
│ │ ├── IOutputCommand.cs
│ │ ├── InputOutputCommandBase.cs
│ │ ├── OutputCommandBase.cs
│ │ ├── OutputCommandExtensions.cs
│ │ └── Tooling/
│ │ └── VersionCommand.cs
│ ├── HostApplication.cs
│ ├── HostFactoryResolver.cs
│ ├── NConsole/
│ │ ├── ArgumentAttribute.cs
│ │ ├── ArgumentAttributeBase.cs
│ │ ├── CommandAttribute.cs
│ │ ├── CommandLineProcessor.cs
│ │ ├── CommandResult.cs
│ │ ├── ConsoleHost.cs
│ │ ├── HelpCommand.cs
│ │ ├── IConsoleCommand.cs
│ │ ├── IConsoleHost.cs
│ │ ├── IDependencyResolver.cs
│ │ └── SwitchAttribute.cs
│ ├── NSwag.Commands.csproj
│ ├── NSwagCommandProcessor.cs
│ ├── NSwagDocument.cs
│ ├── NSwagDocumentBase.cs
│ ├── NewLineBehavior.cs
│ ├── OpenApiDocumentExecutionResult.cs
│ ├── OpenApiGeneratorCollection.cs
│ ├── OperationGenerationModeConverter.cs
│ ├── PathUtilities.cs
│ ├── Runtime.cs
│ └── RuntimeUtilities.cs
├── NSwag.Console/
│ ├── NSwag.Console.csproj
│ └── Program.cs
├── NSwag.Console.x86/
│ └── NSwag.Console.x86.csproj
├── NSwag.ConsoleCore/
│ ├── CoreConsoleHost.cs
│ ├── NSwag.ConsoleCore.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Publish.bat
│ └── runtimeconfig.template.json
├── NSwag.ConsoleCore.Tests/
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET100Minimal_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET100_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET80Minimal_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET90Minimal_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET100Minimal_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET100_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET70Minimal_targetFramework=net7.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET80Minimal_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET90Minimal_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET100Minimal_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET100_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET70Minimal_targetFramework=net7.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET80Minimal_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET90Minimal_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET100Minimal_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET100_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET60Minimal_targetFramework=net6.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET60_targetFramework=net6.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET70Minimal_targetFramework=net7.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET70_targetFramework=net7.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET80Minimal_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET90Minimal_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.cs
│ └── NSwag.ConsoleCore.Tests.csproj
├── NSwag.Core/
│ ├── Collections/
│ │ ├── Extensions.cs
│ │ └── ObservableDictionary.cs
│ ├── HttpUtilities.cs
│ ├── IsExternalInit.cs
│ ├── JsonExpectedSchema.cs
│ ├── NSwag.Core.csproj
│ ├── OpenApiCallback.cs
│ ├── OpenApiComponents.cs
│ ├── OpenApiContact.cs
│ ├── OpenApiDocument.Serialization.cs
│ ├── OpenApiDocument.cs
│ ├── OpenApiEncoding.cs
│ ├── OpenApiExample.cs
│ ├── OpenApiExternalDocumentation.cs
│ ├── OpenApiHeader.cs
│ ├── OpenApiHeaders.cs
│ ├── OpenApiInfo.cs
│ ├── OpenApiLicense.cs
│ ├── OpenApiLink.cs
│ ├── OpenApiMediaType.cs
│ ├── OpenApiOAuth2Flow.cs
│ ├── OpenApiOAuthFlow.cs
│ ├── OpenApiOAuthFlows.cs
│ ├── OpenApiOperation.cs
│ ├── OpenApiOperationDescription.cs
│ ├── OpenApiOperationMethod.cs
│ ├── OpenApiParameter.cs
│ ├── OpenApiParameterCollectionFormat.cs
│ ├── OpenApiParameterKind.cs
│ ├── OpenApiParameterStyle.cs
│ ├── OpenApiPathItem.cs
│ ├── OpenApiRequestBody.cs
│ ├── OpenApiResponse.cs
│ ├── OpenApiSchema.cs
│ ├── OpenApiSchemaResolver.cs
│ ├── OpenApiSecurityApiKeyLocation.cs
│ ├── OpenApiSecurityRequirement.cs
│ ├── OpenApiSecurityScheme.cs
│ ├── OpenApiSecuritySchemeType.cs
│ ├── OpenApiServer.cs
│ ├── OpenApiServerVariable.cs
│ ├── OpenApiTag.cs
│ └── Polyfills.cs
├── NSwag.Core.Tests/
│ ├── DocumentLoadingTests.cs
│ ├── DocumentReferenceTests.cs
│ ├── HttpLoadingTests.cs
│ ├── NSwag.Core.Tests.csproj
│ ├── OperationIdTests.cs
│ ├── Serialization/
│ │ ├── CallbacksSerializationTests.cs
│ │ ├── ComponentsSerializationTests.cs
│ │ ├── ExampleSerializationTests.cs
│ │ ├── ExternalReferenceTests.cs
│ │ ├── MediaTypesSerializationTests.cs
│ │ ├── NullDefinitionTests.cs
│ │ ├── PathItemTest/
│ │ │ ├── PathItemWithRef.json
│ │ │ └── refs/
│ │ │ └── PathItem.json
│ │ ├── PathItemTests.cs
│ │ ├── RequestBodySerializationTests.cs
│ │ ├── ServersSerializationTests.cs
│ │ └── SwaggerSecuritySchemeTests.cs
│ ├── SwaggerResponseTests.cs
│ └── TestFiles/
│ ├── common.json
│ ├── parameter-reference.json
│ ├── path-reference.json
│ ├── requestBody-reference.json
│ ├── response-reference.json
│ └── schema-reference.json
├── NSwag.Core.Yaml/
│ ├── NSwag.Core.Yaml.csproj
│ └── OpenApiYamlDocument.cs
├── NSwag.Core.Yaml.Tests/
│ ├── NSwag.Core.Yaml.Tests.csproj
│ ├── References/
│ │ ├── YamlReferencesTest/
│ │ │ ├── baseContract.json
│ │ │ ├── baseContract.yaml
│ │ │ ├── json_contract_with_json_reference.json
│ │ │ ├── json_contract_with_yaml_reference.json
│ │ │ ├── yaml_contract_with_json_reference.yaml
│ │ │ └── yaml_contract_with_yaml_reference.yaml
│ │ └── YamlReferencesTests.cs
│ └── YamlDocumentTests.cs
├── NSwag.Generation/
│ ├── Collections/
│ │ └── CollectionExtensions.cs
│ ├── GenericResultWrapperTypes.cs
│ ├── IOpenApiDocumentGenerator.cs
│ ├── NSwag.Generation.csproj
│ ├── OpenApiDocumentGenerator.cs
│ ├── OpenApiDocumentGeneratorSettings.cs
│ ├── OpenApiSchemaGenerator.cs
│ └── Processors/
│ ├── ActionDocumentProcessor.cs
│ ├── ApiVersionProcessor.cs
│ ├── Collections/
│ │ ├── DocumentProcessorCollection.cs
│ │ └── OperationProcessorCollection.cs
│ ├── Contexts/
│ │ ├── DocumentProcessorContext.cs
│ │ └── OperationProcessorContext.cs
│ ├── DocumentExtensionDataProcessor.cs
│ ├── DocumentTagsProcessor.cs
│ ├── IDocumentProcessor.cs
│ ├── IOperationProcessor.cs
│ ├── OperationExtensionDataProcessor.cs
│ ├── OperationProcessor.cs
│ ├── OperationResponseDescription.cs
│ ├── OperationResponseProcessorBase.cs
│ ├── OperationSummaryAndDescriptionProcessor.cs
│ ├── OperationTagsProcessor.cs
│ └── Security/
│ ├── OperationSecurityScopeProcessor.cs
│ └── SecurityDefinitionAppender.cs
├── NSwag.Generation.AspNetCore/
│ ├── AspNetCoreOpenApiDocumentGenerator.cs
│ ├── AspNetCoreOpenApiDocumentGeneratorSettings.cs
│ ├── AspNetCoreOperationProcessorContext.cs
│ ├── NSwag.Generation.AspNetCore.csproj
│ └── Processors/
│ ├── AspNetCoreOperationSecurityScopeProcessor.cs
│ ├── AspNetCoreOperationTagsProcessor.cs
│ ├── OperationParameterProcessor.cs
│ └── OperationResponseProcessor.cs
├── NSwag.Generation.AspNetCore.Tests/
│ ├── ApiVersionProcessorWithAspNetCoreTests.cs
│ ├── AspNetCoreTestsBase.cs
│ ├── AspNetCoreToSwaggerGenerationTests.cs
│ ├── ExtensionDataTests.cs
│ ├── Inheritance/
│ │ └── InheritanceControllerTests.cs
│ ├── LanguageParameterTests.cs
│ ├── NSwag.Generation.AspNetCore.Tests.csproj
│ ├── Operations/
│ │ └── PathTests.cs
│ ├── Parameters/
│ │ ├── BodyParametersTests.cs
│ │ ├── DefaultParametersTests.cs
│ │ ├── FormDataTests.cs
│ │ ├── HeaderParametersTests.cs
│ │ ├── NullablePathParameterTests.cs
│ │ ├── PathParameterWithModelBinderTests.cs
│ │ ├── QueryParametersTests.cs
│ │ └── Snapshots/
│ │ ├── FormDataTests.WhenOperationHasFormDataComplex_ThenItIsInRequestBody.verified.txt
│ │ └── FormDataTests.WhenOperationHasFormDataFile_ThenItIsInRequestBody.verified.txt
│ ├── Processors/
│ │ └── OperationResponseProcessorTest.cs
│ ├── Requests/
│ │ ├── ConsumesTests.cs
│ │ └── PostBodyTests.cs
│ ├── Responses/
│ │ ├── NullableResponseTests.cs
│ │ ├── ProducesTests.cs
│ │ ├── ResponseAttributesTests.cs
│ │ ├── Snapshots/
│ │ │ └── XmlDocsTests.When_operation_has_SwaggerResponseAttribute_with_description_it_is_in_the_spec.verified.txt
│ │ ├── WrappedResponseTests.cs
│ │ └── XmlDocsTests.cs
│ └── SystemTextJsonTests.cs
├── NSwag.Generation.AspNetCore.Tests.Web/
│ ├── Controllers/
│ │ ├── Inheritance/
│ │ │ ├── ActualController.cs
│ │ │ └── BaseController.cs
│ │ ├── LanguagesController.cs
│ │ ├── Parameters/
│ │ │ ├── BindNeverQueryParameterController.cs
│ │ │ ├── BodyParametersController.cs
│ │ │ ├── ComplexQueryParametersController.cs
│ │ │ ├── DefaultParametersController.cs
│ │ │ ├── EmptyPathController.cs
│ │ │ ├── FileUploadController.cs
│ │ │ ├── HeaderParametersController.cs
│ │ │ ├── NullablePathParameterController.cs
│ │ │ ├── PathParameterWithModelBinderController.cs
│ │ │ ├── RenamedQueryParameterController.cs
│ │ │ └── SimpleQueryParametersController.cs
│ │ ├── Requests/
│ │ │ ├── ConsumesController.cs
│ │ │ ├── MultipartConsumesController.cs
│ │ │ └── PostBodyController.cs
│ │ ├── Responses/
│ │ │ ├── JsonProducesController.cs
│ │ │ ├── NullableResponseController.cs
│ │ │ ├── TextProducesController.cs
│ │ │ └── WrappedResponseController.cs
│ │ ├── ResponsesController.cs
│ │ ├── SwaggerExtensionDataController.cs
│ │ ├── VersionedV3ValuesController.cs
│ │ ├── VersionedValuesController.cs
│ │ └── XmlDocsController.cs
│ ├── CustomTextInputFormatter.cs
│ ├── CustomTextOutputFormatter.cs
│ ├── NSwag.Generation.AspNetCore.Tests.Web.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ └── appsettings.json
├── NSwag.Generation.Tests/
│ ├── NSwag.Generation.Tests.csproj
│ ├── OpenApiDocumentGeneratorTests.cs
│ └── Processors/
│ ├── OperationSummaryAndDescriptionProcessorTests.cs
│ └── OperationTagsProcessorTests.cs
├── NSwag.Generation.WebApi/
│ ├── Infrastructure/
│ │ ├── RouteAttributeFacade.cs
│ │ └── RoutePrefixAttributeFacade.cs
│ ├── NSwag.Generation.WebApi.csproj
│ ├── Processors/
│ │ ├── OperationConsumesProcessor.cs
│ │ ├── OperationParameterProcessor.cs
│ │ └── OperationResponseProcessor.cs
│ ├── WebApiOpenApiDocumentGenerator.cs
│ └── WebApiOpenApiDocumentGeneratorSettings.cs
├── NSwag.Generation.WebApi.Tests/
│ ├── App_Start/
│ │ └── SwaggerConfig.cs
│ ├── Attributes/
│ │ ├── AcceptVerbsTests.cs
│ │ ├── ApiExplorerSettingsAttributeTests.cs
│ │ ├── ComplexParametersTests.cs
│ │ ├── ExtensionDataTests.cs
│ │ ├── ModelBinderQueryParametersTests.cs
│ │ ├── PrimitivePathParametersTests.cs
│ │ ├── PrimitiveQueryParametersTests.cs
│ │ ├── ResponseAttributeTests.cs
│ │ ├── RouteInheritanceTests.cs
│ │ ├── RoutePrefixTests.cs
│ │ ├── RouteTests.cs
│ │ ├── SwaggerIgnoreTests.cs
│ │ └── TagsTests.cs
│ ├── ControllerClassesTests.cs
│ ├── EnumTests.cs
│ ├── FileParameterTests.cs
│ ├── FileResponseTests.cs
│ ├── InheritanceTests.cs
│ ├── Integration/
│ │ ├── SwashbuckleAnnotationsTests.cs
│ │ └── TemplateRouteTests.cs
│ ├── NSwag.Generation.WebApi.Tests.csproj
│ ├── Nullability/
│ │ ├── ParameterNullabilityTests.cs
│ │ └── ResponseNullabilityTests.cs
│ ├── OperationIdTests.cs
│ ├── OperationNameGenerator/
│ │ ├── MultipleClientsFromFirstTagAndPathSegmentsOperationNameGeneratorTests.cs
│ │ ├── MultipleClientsFromOperationIdOperationNameGeneratorTests.cs
│ │ └── MultipleClientsFromPathSegmentsOperationNameGeneratorTests.cs
│ ├── OperationProcessors/
│ │ ├── ApiVersionProcessorWithWebApiTests.cs
│ │ ├── OpenApiQueryParametersOperationParameterProcessorTests.cs
│ │ ├── SwaggerOperationProcessorAttributeTests.cs
│ │ └── SwaggerQueryParametersOperationParameterProcessorTests.cs
│ ├── ParameterTests.cs
│ ├── ResponeAttributeTests.cs
│ ├── RouteAttributeTests.cs
│ ├── RouteTests.cs
│ ├── TypesToSwaggerTests.cs
│ ├── WebApiToSwaggerGeneratorTests.cs
│ ├── WrappedResponseTests.cs
│ └── XmlTests.cs
├── NSwag.MSBuild/
│ ├── NSwag.MSBuild.nuspec
│ ├── NSwag.MSBuild.props
│ └── build.bat
├── NSwag.NoInstaller.slnf
├── NSwag.Npm/
│ ├── README.md
│ └── package.json
├── NSwag.Sample.Common/
│ ├── ExtensionData.cs
│ ├── FileType.cs
│ ├── NSwag.Sample.Common.csproj
│ ├── Station.cs
│ └── WeatherForecast.cs
├── NSwag.Sample.NET100/
│ ├── Controllers/
│ │ └── ValuesController.cs
│ ├── NSwag.Sample.NET100.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET100Minimal/
│ ├── NSwag.Sample.NET100Minimal.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET80/
│ ├── Controllers/
│ │ └── ValuesController.cs
│ ├── NSwag.Sample.NET80.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET80Minimal/
│ ├── NSwag.Sample.NET80Minimal.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET90/
│ ├── Controllers/
│ │ └── ValuesController.cs
│ ├── NSwag.Sample.NET90.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET90Minimal/
│ ├── NSwag.Sample.NET90Minimal.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.VersionMissmatchTest/
│ ├── App.config
│ ├── NSwag.VersionMissmatchTest.csproj
│ ├── Program.cs
│ └── nswag.json
├── NSwag.sln
├── NSwag.snk
├── NSwagStudio/
│ ├── App.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Controls/
│ │ ├── AvalonEditBehavior.cs
│ │ └── TabContent.cs
│ ├── Converters/
│ │ ├── IsValueToVisibilityConverter.cs
│ │ ├── NumberAdditionConverter.cs
│ │ └── StringArrayConverter.cs
│ ├── ISwaggerGeneratorView.cs
│ ├── NSwagStudio.csproj
│ ├── Properties/
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── ViewModels/
│ │ ├── CodeGeneratorModel.cs
│ │ ├── CodeGenerators/
│ │ │ ├── SwaggerOutputViewModel.cs
│ │ │ ├── SwaggerToCSharpClientGeneratorViewModel.cs
│ │ │ ├── SwaggerToCSharpControllerGeneratorViewModel.cs
│ │ │ └── SwaggerToTypeScriptClientGeneratorViewModel.cs
│ │ ├── DocumentModel.cs
│ │ ├── DocumentViewModel.cs
│ │ ├── MainWindowModel.cs
│ │ ├── SwaggerGenerators/
│ │ │ ├── AspNetCoreToSwaggerGeneratorViewModel.cs
│ │ │ └── SwaggerInputViewModel.cs
│ │ └── ViewModelBase.cs
│ ├── Views/
│ │ ├── CodeGenerators/
│ │ │ ├── CodeGeneratorViewBase.cs
│ │ │ ├── SwaggerOutputView.xaml
│ │ │ ├── SwaggerOutputView.xaml.cs
│ │ │ ├── SwaggerToCSharpClientGeneratorView.xaml
│ │ │ ├── SwaggerToCSharpClientGeneratorView.xaml.cs
│ │ │ ├── SwaggerToCSharpControllerGeneratorView.xaml
│ │ │ ├── SwaggerToCSharpControllerGeneratorView.xaml.cs
│ │ │ ├── SwaggerToTypeScriptClientGeneratorView.xaml
│ │ │ ├── SwaggerToTypeScriptClientGeneratorView.xaml.cs
│ │ │ └── Views/
│ │ │ ├── CSharpSettingsView.xaml
│ │ │ └── CSharpSettingsView.xaml.cs
│ │ ├── DocumentView.xaml
│ │ ├── DocumentView.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ └── SwaggerGenerators/
│ │ ├── AspNetCoreToSwaggerGeneratorView.xaml
│ │ ├── AspNetCoreToSwaggerGeneratorView.xaml.cs
│ │ ├── JsonSchemaInputView.xaml
│ │ ├── JsonSchemaInputView.xaml.cs
│ │ ├── SwaggerInputView.xaml
│ │ └── SwaggerInputView.xaml.cs
│ └── nswag.cmd
├── NSwagStudio.Chocolatey/
│ ├── LICENSE.txt
│ ├── NSwagStudio.nuspec
│ ├── VERIFICATION.txt
│ ├── build.bat
│ ├── chocolateyInstall.ps1
│ └── chocolateyUninstall.ps1
├── NSwagStudio.Installer/
│ ├── NSwagStudio.Installer.wixproj
│ └── Product.wxs
├── NuGet.Config
├── UpgradeLog.htm
├── libs/
│ ├── System.IO.txt
│ └── System.Runtime.txt
└── switcher.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
* text=auto
*.cs diff=csharp
*.tt text eol=crlf
*.sln text eol=crlf
*.csproj text eol=crlf
*.vbproj text eol=crlf
*.vcxproj text eol=crlf
*.vcproj text eol=crlf
*.dbproj text eol=crlf
*.fsproj text eol=crlf
*.lsproj text eol=crlf
*.wixproj text eol=crlf
*.modelproj text eol=crlf
*.sqlproj text eol=crlf
*.wmaproj text eol=crlf
*.xproj text eol=crlf
*.props text eol=crlf
*.filters text eol=crlf
*.vcxitems text eol=crlf
*.bat text
*.coffee text
*.css text
*.htm text
*.html text
*.inc text
*.ini text
*.js text
nswag.js text eol=lf
*.jsx text
*.json text
*.less text
*.php text
*.pl text
*.py text
*.rb text
*.sass text
*.scm text
*.scss text
*.sh text eol=lf
*.sql text
*.styl text
*.tpl text
*.ts text
*.twig text
*.xml text
*.xhtml text
*.markdown text
*.md text
*.mdwn text
*.mdown text
*.mkd text
*.mkdn text
*.mdtxt text
*.mdtext text
*.txt text
AUTHORS text
CHANGELOG text
CHANGES text
CONTRIBUTING text
COPYING text
INSTALL text
license text
LICENSE text
NEWS text
readme text
*README* text
TODO text
*.dot text
*.ejs text
*.haml text
*.handlebars text
*.hbs text
*.hbt text
*.jade text
*.latte text
*.mustache text
*.phtml text
*.tmpl text
.csslintrc text
.eslintrc text
.jscsrc text
.jshintrc text
.jshintignore text
.stylelintrc text
*.bowerrc text
*.cnf text
*.conf text
*.config text
.editorconfig text
.gitattributes text
.gitconfig text
.gitignore text
.htaccess text
*.npmignore text
*.yaml text
*.yml text
Makefile text
makefile text
*.ai binary
*.bmp binary
*.eps binary
*.gif binary
*.ico binary
*.jng binary
*.jp2 binary
*.jpg binary
*.jpeg binary
*.jpx binary
*.jxr binary
*.pdf binary
*.png binary
*.psb binary
*.psd binary
*.svg text
*.svgz binary
*.tif binary
*.tiff binary
*.wbmp binary
*.webp binary
*.kar binary
*.m4a binary
*.mid binary
*.midi binary
*.mp3 binary
*.ogg binary
*.ra binary
*.3gpp binary
*.3gp binary
*.as binary
*.asf binary
*.asx binary
*.fla binary
*.flv binary
*.m4v binary
*.mng binary
*.mov binary
*.mp4 binary
*.mpeg binary
*.mpg binary
*.swc binary
*.swf binary
*.webm binary
*.7z binary
*.gz binary
*.rar binary
*.tar binary
*.zip binary
*.ttf binary
*.eot binary
*.otf binary
*.woff binary
*.woff2 binary
*.exe binary
*.pyc binary
src/NSwag.AspNetCore/SwaggerUi/**/* linguist-vendored
src/NSwag.AspNet.Owin/SwaggerUi/**/* linguist-vendored
src/NSwag.Integration.*/**/* linguist-vendored
# Verify
*.verified.txt text eol=lf working-tree-encoding=UTF-8
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: RicoSuter
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**Version of NSwag toolchain, computer and .NET runtime used**
With which versions did you encounter this behavior.
**To Reproduce**
Ideally code samples or event unit test.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Additional context**
Add any other context about the problem here.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
================================================
FILE: .github/workflows/build.yml
================================================
# ------------------------------------------------------------------------------
# <auto-generated>
#
# This code was generated.
#
# - To turn off auto-generation set:
#
# [CustomGitHubActions (AutoGenerate = false)]
#
# - To trigger manual generation invoke:
#
# nuke --generate-configuration GitHubActions_build --host GitHubActions
#
# </auto-generated>
# ------------------------------------------------------------------------------
name: build
on:
push:
branches:
- master
- main
tags:
- 'v*.*.*'
paths:
- '**/*.*'
- '!**/*.md'
jobs:
windows-latest:
name: windows-latest
runs-on: windows-latest
steps:
- name: 'Allow long file path'
run: git config --system core.longpaths true
- if: ${{ runner.os == 'Windows' }}
name: 'Use GNU tar'
shell: cmd
run: |
echo "Adding GNU tar to PATH"
echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%"
- uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0
- uses: actions/checkout@v6
- name: 'Run: Compile, Test, Pack, Publish'
run: ./build.cmd Compile Test Pack Publish
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
MYGET_API_KEY: ${{ secrets.MYGET_API_KEY }}
CHOCO_API_KEY: ${{ secrets.CHOCO_API_KEY }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
- name: 'Publish: NSwag.zip'
uses: actions/upload-artifact@v5
with:
name: NSwag.zip
path: artifacts/NSwag.zip
- name: 'Publish: NSwag.Npm.zip'
uses: actions/upload-artifact@v5
with:
name: NSwag.Npm.zip
path: artifacts/NSwag.Npm.zip
- name: 'Publish: NSwagStudio.msi'
uses: actions/upload-artifact@v5
with:
name: NSwagStudio.msi
path: artifacts/NSwagStudio.msi
- name: 'Publish: NuGet Packages'
uses: actions/upload-artifact@v5
with:
name: NuGet Packages
path: artifacts/*.nupkg
ubuntu-latest:
name: ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0
- uses: actions/checkout@v6
- name: 'Run: Compile, Test, Pack, Publish'
run: ./build.cmd Compile Test Pack Publish
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
MYGET_API_KEY: ${{ secrets.MYGET_API_KEY }}
CHOCO_API_KEY: ${{ secrets.CHOCO_API_KEY }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
macos-latest:
name: macos-latest
runs-on: macos-latest
steps:
- uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0
- uses: actions/checkout@v6
- name: 'Run: Compile, Test, Pack, Publish'
run: ./build.cmd Compile Test Pack Publish
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
MYGET_API_KEY: ${{ secrets.MYGET_API_KEY }}
CHOCO_API_KEY: ${{ secrets.CHOCO_API_KEY }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
================================================
FILE: .github/workflows/pr.yml
================================================
# ------------------------------------------------------------------------------
# <auto-generated>
#
# This code was generated.
#
# - To turn off auto-generation set:
#
# [CustomGitHubActions (AutoGenerate = false)]
#
# - To trigger manual generation invoke:
#
# nuke --generate-configuration GitHubActions_pr --host GitHubActions
#
# </auto-generated>
# ------------------------------------------------------------------------------
name: pr
on:
pull_request:
branches:
- master
- main
paths:
- '**/*.*'
- '!**/*.md'
concurrency:
group: ${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
windows-latest:
name: windows-latest
runs-on: windows-latest
steps:
- name: 'Allow long file path'
run: git config --system core.longpaths true
- if: ${{ runner.os == 'Windows' }}
name: 'Use GNU tar'
shell: cmd
run: |
echo "Adding GNU tar to PATH"
echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%"
- uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0
- uses: actions/checkout@v6
- name: 'Run: Compile, Test, Pack'
run: ./build.cmd Compile Test Pack
- name: 'Publish: NSwag.zip'
uses: actions/upload-artifact@v5
with:
name: NSwag.zip
path: artifacts/NSwag.zip
- name: 'Publish: NSwag.Npm.zip'
uses: actions/upload-artifact@v5
with:
name: NSwag.Npm.zip
path: artifacts/NSwag.Npm.zip
- name: 'Publish: NSwagStudio.msi'
uses: actions/upload-artifact@v5
with:
name: NSwagStudio.msi
path: artifacts/NSwagStudio.msi
- name: 'Publish: NuGet Packages'
uses: actions/upload-artifact@v5
with:
name: NuGet Packages
path: artifacts/*.nupkg
ubuntu-latest:
name: ubuntu-latest
runs-on: ubuntu-latest
steps:
- uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0
- uses: actions/checkout@v6
- name: 'Run: Compile, Test, Pack'
run: ./build.cmd Compile Test Pack
macos-latest:
name: macos-latest
runs-on: macos-latest
steps:
- uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0
- uses: actions/checkout@v6
- name: 'Run: Compile, Test, Pack'
run: ./build.cmd Compile Test Pack
================================================
FILE: .gitignore
================================================
src/**/bin/**
src/**/obj/**
src/packages/**
**.suo
**.user
**.DotSettings
**.sln.ide/**
**.vs/**
.vs/**
[Bb]in/
[Oo]bj/
*.nugetreferenceswitcher
/src/.vs/config
**/project.lock.json
/src/NSwag.AspNetCore/Output
/src/Chocolatey/Output
/src/NSwagStudio.Installer/Generated.wxs
/src/NSwagStudio.Chocolatey/Output
/src/NSwag.Integration.TypeScriptWeb/node_modules
/src/NSwag.Integration.TypeScriptWeb/scripts/build
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsAngularJS.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsAngularJS.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryCallbacks.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryCallbacks.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromises.extensions.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromises.extensions.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromises.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromises.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromisesKO.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromisesKO.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromisesKO.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsAngularJS.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryCallbacks.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromises.extensions.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromises.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromisesKO.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsAngularJS.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryCallbacks.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromises.extensions.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsJQueryPromises.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsFetch.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsFetch.js
/build/Packages
/src/.vs
/src/NSwag.ConsoleCore/Output
/src/NSwag.Npm/node_modules
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsUberFetch.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsUberFetch.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsPetStoreFetch.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsPetStoreFetch.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsPetStoreFetch.js
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsPetStoreFetch.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsAngular2.extensions.js.map
/src/NSwag.Integration.TypeScriptWeb/scripts/serviceClientsAngular2.extensions.js
/src/dist
*.nupkg
/src/NSwagStudio.Installer/Generated.wxs
/samples/.vs/config
/samples/WithoutMiddleware/Sample.AspNetCore20/.vs/Sample.AspNetCore20/v15/Server/sqlite3
/samples/WithoutMiddleware/Sample.AspNetCore20/.vs/Sample.AspNetCore20/DesignTimeBuild
/samples/.vs/*
.vscode/
/src/.cr/*
/samples/WithMiddleware/Sample.AspNetCore21.Nginx/.vs
/samples/WithMiddleware/Sample.AspNetCore21.Nginx/Properties
.editorconfig
/samples/packages
/src/NSwag.Console/Properties/launchSettings.json
# Ignore files from JetBrainds Rider
.idea/
_ReSharper.Caches/
# NUKE build temp files
.nuke/temp
/artifacts
*.binlog
*.gen
node_modules
# Verify
*.received.*
*.received/
================================================
FILE: .nuke/build.schema.json
================================================
{
"$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
"Host": {
"type": "string",
"enum": [
"AppVeyor",
"AzurePipelines",
"Bamboo",
"Bitbucket",
"Bitrise",
"GitHubActions",
"GitLab",
"Jenkins",
"Rider",
"SpaceAutomation",
"TeamCity",
"Terminal",
"TravisCI",
"VisualStudio",
"VSCode"
]
},
"ExecutableTarget": {
"type": "string",
"enum": [
"Clean",
"Compile",
"Pack",
"Publish",
"Restore",
"Test"
]
},
"Verbosity": {
"type": "string",
"description": "",
"enum": [
"Verbose",
"Normal",
"Minimal",
"Quiet"
]
},
"NukeBuild": {
"properties": {
"Continue": {
"type": "boolean",
"description": "Indicates to continue a previously failed build attempt"
},
"Help": {
"type": "boolean",
"description": "Shows the help text for this build assembly"
},
"Host": {
"description": "Host for execution. Default is 'automatic'",
"$ref": "#/definitions/Host"
},
"NoLogo": {
"type": "boolean",
"description": "Disables displaying the NUKE logo"
},
"Partition": {
"type": "string",
"description": "Partition to use on CI"
},
"Plan": {
"type": "boolean",
"description": "Shows the execution plan (HTML)"
},
"Profile": {
"type": "array",
"description": "Defines the profiles to load",
"items": {
"type": "string"
}
},
"Root": {
"type": "string",
"description": "Root directory during build execution"
},
"Skip": {
"type": "array",
"description": "List of targets to be skipped. Empty list skips all dependencies",
"items": {
"$ref": "#/definitions/ExecutableTarget"
}
},
"Target": {
"type": "array",
"description": "List of targets to be invoked. Default is '{default_target}'",
"items": {
"$ref": "#/definitions/ExecutableTarget"
}
},
"Verbosity": {
"description": "Logging verbosity during build execution. Default is 'Normal'",
"$ref": "#/definitions/Verbosity"
}
}
}
},
"allOf": [
{
"properties": {
"ChocoApiKey": {
"type": "string",
"default": "Secrets must be entered via 'nuke :secrets [profile]'"
},
"Configuration": {
"type": "string",
"description": "Configuration to build - Default is 'Debug' (local) or 'Release' (server)",
"enum": [
"Debug",
"Release"
]
},
"MyGetApiKey": {
"type": "string",
"default": "Secrets must be entered via 'nuke :secrets [profile]'"
},
"NpmAuthToken": {
"type": "string",
"default": "Secrets must be entered via 'nuke :secrets [profile]'"
},
"NuGetApiKey": {
"type": "string",
"default": "Secrets must be entered via 'nuke :secrets [profile]'"
},
"Solution": {
"type": "string",
"description": "Path to a solution file that is automatically loaded"
}
}
},
{
"$ref": "#/definitions/NukeBuild"
}
]
}
================================================
FILE: .nuke/parameters.json
================================================
{
"$schema": "./build.schema.json",
"Solution": "src/NSwag.sln"
}
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## Release v11.3
See https://github.com/RicoSuter/NSwag/releases/tag/NSwag-Build-841
## Release v11.0
See https://github.com/RicoSuter/NSwag/releases/tag/NSwag-Build-829
## Release v10.0
See https://github.com/RicoSuter/NSwag/releases/tag/NSwag-Build-813
================================================
FILE: CONTRIBUTING.md
================================================
# Contributor License Agreement
By contributing your code to NSwag you grant Rico Suter a non-exclusive, irrevocable, worldwide,
royalty-free, sublicenseable, transferable license under all of Your relevant intellectual property rights
(including copyright, patent, and any other rights), to use, copy, prepare derivative works of, distribute and
publicly perform and display the Contributions on any licensing terms, including without limitation:
(a) open source licenses like the MIT license; and (b) binary, proprietary, or commercial licenses. Except for the
licenses granted herein, You reserve all right, title, and interest in and to the Contribution.
You confirm that you are able to grant us these rights. You represent that You are legally entitled to grant the
above license. If Your employer has rights to intellectual property that You create, You represent that You have
received permission to make the Contributions on behalf of that employer, or that Your employer has waived such
rights for the Contributions.
You represent that the Contributions are Your original works of authorship, and to Your knowledge, no other person
claims, or has the right to claim, any right in any invention or patent related to the Contributions. You also
represent that You are not legally obligated, whether by entering into an agreement or otherwise, in any way that
conflicts with the terms of this license.
Rico Suter acknowledges that, except as explicitly described in this Agreement, any Contribution which
you provide is on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS
FOR A PARTICULAR PURPOSE.
================================================
FILE: Directory.Build.props
================================================
<Project>
<PropertyGroup>
<VersionPrefix>14.6.3</VersionPrefix>
<Authors>Rico Suter</Authors>
<Copyright>Copyright © Rico Suter, 2025</Copyright>
<Description>NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript</Description>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>http://NSwag.org</PackageProjectUrl>
<PackageTags>OpenAPI Swagger AspNetCore Documentation CodeGen TypeScript WebApi AspNet</PackageTags>
<PackageIcon>NuGetIcon.png</PackageIcon>
<Company />
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>../NSwag.snk</AssemblyOriginatorKeyFile>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/RicoSuter/NSwag.git</RepositoryUrl>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<!-- suppress NuGet audit checks being errors -->
<WarningsNotAsErrors>NU1901,NU1902,NU1903,NU1904</WarningsNotAsErrors>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<DebugSymbols>true</DebugSymbols>
<!-- reduce package size by only including english resources -->
<SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
<UseArtifactsOutput>true</UseArtifactsOutput>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\assets\NuGetIcon.png" Pack="true" Visible="false" PackagePath="" />
</ItemGroup>
<PropertyGroup Label="Analyzer settings">
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-Recommended</AnalysisLevel>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<!--
[CA1200] Avoid using cref tags with a prefix
[CA1510] Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance
[CA1716] rename parameter property so that it no longer conflicts with the reserved language keyword
[CA1720] Identifier 'xxx' contains type name
[CA1725] Overriden parameter name mismatch
[CA1845] Use span-based 'string.Concat' and 'AsSpan' instead of 'Substring'
[SYSLIB0012] 'Assembly.CodeBase' is obsolete
-->
<NoWarn>$(NoWarn);CA1200;CA1510;CA1716;CA1720;CA1725;CA1845;SYSLIB0012</NoWarn>
<!-- Calls to methods which accept CancellationToken should use TestContext.Current.CancellationToken -->
<NoWarn>$(NoWarn);xUnit1051</NoWarn>
</PropertyGroup>
</Project>
================================================
FILE: Directory.Packages.props
================================================
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AvalonEdit" Version="5.0.3" />
<PackageVersion Include="Expression.Interaction" Version="3.0.40218" />
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1" />
<PackageVersion Include="Microsoft.AspNet.WebApi.Client" Version="5.2.3" />
<PackageVersion Include="Microsoft.AspNet.WebApi.Core" Version="5.2.3" />
<PackageVersion Include="Microsoft.AspNetCore" Version="2.3.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Version="2.3.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="2.3.0" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="5.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.StaticFiles" Version="2.3.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.1.1" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageVersion Include="Microsoft.Owin.StaticFiles" Version="4.2.3" />
<PackageVersion Include="Moq" Version="4.20.72" />
<PackageVersion Include="MyToolkit" Version="2.5.16" />
<PackageVersion Include="MyToolkit.Extended" Version="2.5.16" />
<PackageVersion Include="Namotion.Reflection" Version="3.4.3" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="NJsonSchema" Version="11.5.2" />
<PackageVersion Include="NJsonSchema.CodeGeneration" Version="11.5.2" />
<PackageVersion Include="NJsonSchema.CodeGeneration.CSharp" Version="11.5.2" />
<PackageVersion Include="NJsonSchema.CodeGeneration.TypeScript" Version="11.5.2" />
<PackageVersion Include="NJsonSchema.NewtonsoftJson" Version="11.5.2" />
<PackageVersion Include="NJsonSchema.Yaml" Version="11.5.2" />
<PackageVersion Include="System.Runtime.Loader" Version="4.0.0" />
<PackageVersion Include="Verify.XunitV3" Version="30.5.0" />
<PackageVersion Include="xunit.v3" Version="3.0.0" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.3" />
<PackageVersion Include="WixToolset.Util.wixext" Version="6.0.1" />
<PackageVersion Include="WixToolset.UI.wixext" Version="6.0.1" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net462' OR '$(TargetFramework)' == 'netstandard2.0' ">
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="2.3.0" />
<PackageVersion Include="Microsoft.AspNetCore.Server.Kestrel.Core" Version="2.3.6" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="8.0.21" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.21" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="9.0.10" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="9.0.10" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="10.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="10.0.0" />
</ItemGroup>
</Project>
================================================
FILE: LICENSE.md
================================================
The MIT License (MIT)
Copyright (c) 2021 Rico Suter
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: README.md
================================================
## NSwag: The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript
NSwag | [NJsonSchema](http://njsonschema.org) | [Apimundo](https://apimundo.com) | [Namotion.Reflection](https://github.com/RicoSuter/Namotion.Reflection)
[](https://www.nuget.org/packages?q=NSwag)
[](https://www.npmjs.com/package/nswag)
[](https://www.nuget.org/packages?q=NSwag)
[](https://github.com/RicoSuter/NSwag/actions/workflows/build.yml)
[](https://discord.gg/BxQNy25WF6)
[](http://stackoverflow.com/questions/tagged/nswag)
[](https://github.com/RicoSuter/nswag/wiki)
[](#backers)
[](#sponsors)
:point_right: [**Announcing Apimundo:** An API documentation system based on NSwag and NJsonSchema](https://github.com/RicoSuter/NSwag/issues/3077) :point_left:
NSwag is a Swagger/OpenAPI 2.0 and 3.0 toolchain for .NET, .NET Core, Web API, ASP.NET Core, TypeScript (jQuery, AngularJS, Angular 2+, Aurelia, KnockoutJS and more) and other platforms, written in C#. The [OpenAPI/Swagger specification](https://github.com/OAI/OpenAPI-Specification) uses JSON and JSON Schema to describe a RESTful web API. The NSwag project provides tools to generate OpenAPI specifications from existing ASP.NET Web API controllers and client code from these OpenAPI specifications.
The project combines the functionality of Swashbuckle (OpenAPI/Swagger generation) and AutoRest (client generation) in one toolchain (these two libs are not needed). This way a lot of incompatibilites can be avoided and features which are not well described by the OpenAPI specification or JSON Schema are better supported (e.g. [inheritance](https://github.com/NJsonSchema/NJsonSchema/wiki/Inheritance), [enum](https://github.com/NJsonSchema/NJsonSchema/wiki/Enums) and reference handling). The NSwag project heavily uses [NJsonSchema for .NET](http://njsonschema.org) for JSON Schema handling and C#/TypeScript class/interface generation.

The project is developed and maintained by [Rico Suter](http://rsuter.com) and other contributors.
### Features
- [Generate Swagger 2.0 and OpenAPI 3.0 specifications from C# ASP.NET (Core) controllers](https://github.com/RicoSuter/NSwag/wiki/Middlewares)
- Serve the specs via ASP.NET (Core) middleware, optionally with [Swagger UI](https://github.com/swagger-api/swagger-ui) or [ReDoc](https://github.com/Rebilly/ReDoc)
- Generate C# or TypeScript clients/proxies from these specs
- Everything can be automated via CLI (distributed via NuGet tool or build target; or NPM)
- CLI configured via JSON file or NSwagStudio Windows UI
### Ways to use the toolchain
- Simple to use Windows GUI, [NSwagStudio](https://github.com/RicoSuter/NSwag/wiki/NSwagStudio)
- By using the [OpenAPI or OpenAPI UI OWIN and ASP.NET Core Middlewares](https://github.com/RicoSuter/NSwag/wiki/Middlewares) (also serves the [Swagger UI](https://github.com/swagger-api/swagger-ui)) (recommended)
- Via [command line](https://github.com/RicoSuter/NSwag/wiki/CommandLine) (Windows, Mac and Linux support through [Mono](http://www.mono-project.com/) or .NET Core console binary, also via [NPM package](https://www.npmjs.com/package/nswag))
- In your C# code, via [NuGet](https://www.nuget.org/packages?q=NSwag)
- In your [MSBuild targets](https://github.com/RicoSuter/NSwag/wiki/NSwag.MSBuild)
- With [ServiceProjectReference](https://github.com/RicoSuter/NSwag/wiki/ServiceProjectReference) tags in your .csproj (preview)
- In your [Azure V2 Functions](https://github.com/Jusas/NSwag.AzureFunctionsV2) (external project, might not use latest NSwag version)
### Tutorials
- [Add NSwag to your ASP.NET Core app](https://github.com/RicoSuter/NSwag/wiki/AspNetCore-Middleware)
- [Integrate the NSwag toolchain into your ASP.NET Web API project](https://blog.rsuter.com/nswag-tutorial-integrate-the-nswag-toolchain-into-your-asp-net-web-api-project/)
- [Generate an Angular TypeScript client from an existing ASP.NET Web API web assembly](https://blog.rsuter.com/nswag-tutorial-generate-an-angular-2-typescript-client-from-an-existing-asp-net-web-api-web-assembly/)
- [Video Tutorial: How to integrate NSwag into your ASP.NET Core Web API project (5 mins)](https://www.youtube.com/watch?v=lF9ZZ8p2Ciw)
### OpenAPI/Swagger Generators
- ASP.NET Web API assembly to OpenAPI (supports .NET Core)
- [AspNetCoreOpenApiDocumentGenerator](https://github.com/RicoSuter/NSwag/wiki/AspNetCoreOpenApiDocumentGenerator)
- [WebApiOpenApiDocumentGenerator](https://github.com/RicoSuter/NSwag/wiki/WebApiOpenApiDocumentGenerator)
- Generates an OpenAPI specification for Web API controllers
- [WebApiToOpenApiCommand](https://github.com/RicoSuter/NSwag/wiki/WebApiToOpenApiCommand)
- Generates an OpenAPI specification for controllers in an external Web API assembly
- [Also supports loading of .NET Core assemblies](https://github.com/RicoSuter/NSwag/wiki/Assembly-loading)
- [TypesToOpenApiCommand](https://github.com/RicoSuter/NSwag/wiki/TypesToOpenApiCommand)
- Generates an OpenAPI specification containing only types from .NET assemblies
### Code Generators
- **CSharp Client**
- [CSharpClientGenerator](https://github.com/RicoSuter/NSwag/wiki/CSharpClientGenerator)
- Generates C# clients from an OpenAPI specification
- Generates POCOs or classes implementing [INotifyPropertyChanged](https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v=vs.110).aspx) supporting DTOs
- The generated clients can be used with full .NET, .NET Core, Xamarin and .NET Standard 1.4 in general
- **CSharp Controllers** (contract first/schema first development)
- [CSharpControllerGenerator](https://github.com/RicoSuter/NSwag/wiki/CSharpControllerGenerator)
- Generates Web API Controllers based on an OpenAPI specification (ASP.NET Web API and ASP.NET Core)
- **TypeScript Client**
- [TypeScriptClientGenerator](https://github.com/RicoSuter/NSwag/wiki/TypeScriptClientGenerator)
- Generates TypeScript clients from an OpenAPI specification
- Available templates/supported libraries:
- JQuery with Callbacks, `JQueryCallbacks`
- JQuery with promises `JQueryPromises`
- AngularJS using $http, `AngularJS`
- Angular (v2+) using the http service, `Angular`
- window.fetch API and ES6 promises, `Fetch` (use this template in your React/Redux app)
- Aurelia using the HttpClient from aurelia-fetch-client, `Aurelia` (based on the Fetch template)
- `Axios` (preview)
### Downloads
- [Download latest **NSwagStudio MSI installer (NSwagStudio.msi)**](https://github.com/RicoSuter/NSwag/releases) (Windows Desktop application)
- [Download latest **NSwag command line tools** and NSwagStudio (NSwag.zip)](https://github.com/RicoSuter/NSwag/releases)
### NPM Packages
- [NSwag](https://www.npmjs.com/package/nswag): Command line tools (.NET and .NET Core) distributed as NPM package
### NuGet Packages
#### Specification
- **[NSwag.Core](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.Core/versions/latest)**
- The OpenAPI/Swagger reader and writer classes, see [OpenApiDocument](https://github.com/RicoSuter/NSwag/wiki/OpenApiDocument) (.NET Standard 1.0 / 2.0 and .NET 4.5)
- **[NSwag.Core.Yaml](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.Core.Yaml/versions/latest)** (.NET Standard 1.3 / 2.0 and .NET 4.5)
- Extensions to read and write YAML OpenAPI specifications
- **[NSwag.Annotations](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.Annotations/versions/latest)** (.NET Standard 1.0 / 2.0 and .NET 4.5)
- Attributes to decorate Web API controllers to control the OpenAPI generation
#### OpenAPI generation
- **[NSwag.Generation](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.Generation/versions/latest/)** (.NET Standard 1.0 / 2.0 and .NET 4.5)
- Classes to generate OpenAPI specifications
- **[NSwag.Generation.WebApi](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.Generation.WebApi/versions/latest)** (.NET Standard 1.0 / 2.0 and .NET 4.5)
- Classes to generate OpenAPI specifications from Web API controllers, see [WebApiOpenApiDocumentGenerator](https://github.com/RicoSuter/NSwag/wiki/WebApiOpenApiDocumentGenerator)
- **[NSwag.Generation.AspNetCore](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.Generation.AspNetCore/versions/latest)** (.NET Standard 1.6 / 2.0 and .NET 4.5.1)
- (Experimental) Classes to generate OpenAPI specifications from ASP.NET Core MVC controllers using the ApiExplorer
#### Code generation
- **[NSwag.CodeGeneration](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.CodeGeneration/versions/latest)** (.NET Standard 1.3 / 2.0 / .NET 4.5.1)
- Base classes to generate clients from OpenAPI specifications
- **[NSwag.CodeGeneration.CSharp](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.CodeGeneration.CSharp/versions/latest)** (.NET Standard 1.3 and .NET 4.5.1)
- Classes to generate C# clients from OpenAPI specifications, see [CSharpClientGenerator](https://github.com/RicoSuter/NSwag/wiki/CSharpClientGenerator) and [CSharpControllerGenerator](https://github.com/RicoSuter/NSwag/wiki/CSharpControllerGenerator)
- **[NSwag.CodeGeneration.TypeScript](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.CodeGeneration.TypeScript/versions/latest)** (.NET Standard 1.3 and .NET 4.5.1)
- Classes to generate TypeScript clients from OpenAPI specifications, see [TypeScriptClientGenerator](https://github.com/RicoSuter/NSwag/wiki/TypeScriptClientGenerator)
#### ASP.NET and ASP.NET Core
- **[NSwag.AspNetCore](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.AspNetCore/versions/latest)** (.NET Standard 1.6 / 2.0 and .NET 4.5.1+)
- **[NSwag.AspNet.Owin](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.AspNet.Owin/versions/latest)** (.NET 4.5+)
- [ASP.NET Core/OWIN middlewares](https://github.com/RicoSuter/NSwag/wiki/Middlewares) for serving OpenAPI specifications and Swagger UI
- **[NSwag.AspNet.WebApi](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.AspNet.WebApi/versions/latest)** (.NET 4.5+)
- ASP.NET Web API filter which serializes exceptions ([JsonExceptionFilterAttribute](https://github.com/RicoSuter/NSwag/wiki/JsonExceptionFilterAttribute))
#### Frontends
- **[NSwag.AssemblyLoader](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.AssemblyLoader/versions/latest)** (.NET Standard 1.6 / 2.0 and .NET 4.5.1):
- Classes to load assemblies in an isolated AppDomain and generate OpenAPI specs from Web API controllers
- **[NSwag.Commands](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.Commands/versions/latest)** (.NET Standard 1.6 / 2.0 and .NET 4.5.1+):
- Commands for the command line tool implementations and UI
- **[NSwag.MSBuild](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.MSBuild/versions/latest)** (MSBuild .targets):
- Adds a .targets file to your Visual Studio project, so that you can run the NSwag command line tool in an MSBuild target, see [MSBuild](https://github.com/RicoSuter/NSwag/wiki/MSBuild)
- **[NSwag.ConsoleCore](https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.ConsoleCore/versions/latest)** (.NET Core 1.0, 1.1, 2.0, 2.1 and 2.2):
- Command line tool for .NET Core (`dotnet nswag`)
- `<DotNetCliToolReference Include="NSwag.ConsoleCore" Version="..." />`
- **[NSwagStudio](https://chocolatey.org/packages/nswagstudio)** (Chocolatey, Windows):
- Package to install the NSwagStudio and command line tools via Chocolatey
#### CI NuGet Feed
https://www.myget.org/F/nswag/api/v3/index.json
The NuGet packages may require the **Microsoft.NETCore.Portable.Compatibility** package on .NET Core/UWP targets (if mscorlib is missing).

### Usage in C#
To register the [middlewares](https://github.com/RicoSuter/NSwag/wiki/AspNetCore-Middleware) to generate an OpenAPI spec and render the UI, register NSwag in `Startup.cs`:
```csharp
public class Startup
{
...
public void ConfigureServices(IServiceCollection services)
{
services.AddOpenApiDocument(); // add OpenAPI v3 document
// services.AddSwaggerDocument(); // add Swagger v2 document
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
...
app.UseOpenApi(); // serve OpenAPI/Swagger documents
app.UseSwaggerUi(); // serve Swagger UI
app.UseReDoc(); // serve ReDoc UI
}
}
```
The following code shows how to read an OpenAPI/Swagger specification and generate C# client classes to call the described web services:
```cs
var document = await OpenApiDocument.FromFileAsync("openapi.json");
var clientSettings = new CSharpClientGeneratorSettings
{
ClassName = "MyClass",
CSharpGeneratorSettings =
{
Namespace = "MyNamespace"
}
};
var clientGenerator = new CSharpClientGenerator(document, clientSettings);
var code = clientGenerator.GenerateFile();
```
Check out the [project Wiki](https://github.com/RicoSuter/NSwag/wiki) for more information.
### NSwagStudio
The generators can be used in a comfortable and simple Windows GUI called [NSwagStudio](https://github.com/RicoSuter/NSwag/wiki/NSwagStudio):
[](https://raw.githubusercontent.com/RicoSuter/NSwag/master/assets/screenshots/03_WebAPI_CSharp.png)
## Sponsors, support and consulting
Companies or individuals which paid a substantial amount for implementing, fixing issues, support or sponsoring are listed below. Thank you for supporting this project! You can also become a financial contributor:
- [Sponsor main contributor Rico Suter via GitHub](https://github.com/sponsors/RicoSuter)
- [Sponsor project via Open Collective for NSwag](https://opencollective.com/nswag)
Please contact [Rico Suter](https://rsuter.com) for paid consulting and support.
## Contributors
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
<a href="https://github.com/RicoSuter/NSwag/graphs/contributors"><img src="https://opencollective.com/NSwag/contributors.svg?width=890&button=false" /></a>
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
**Top sponsors:**
[](https://picturepark.com)
**Sponsors:**
<a href="https://opencollective.com/NSwag/sponsor/0/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/1/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/2/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/3/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/4/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/5/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/6/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/7/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/8/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/NSwag/sponsor/9/website" target="_blank"><img src="https://opencollective.com/NSwag/sponsor/9/avatar.svg"></a>
## Backers
Thank you to all our backers!
<a href="https://opencollective.com/NSwag#backers" target="_blank"><img src="https://opencollective.com/NSwag/backers.svg?width=890"></a>
================================================
FILE: assets/NSwagIcon.metrop
================================================
<?xml version="1.0" encoding="utf-8"?>
<IconProject Version="2.0" Name="NSwagIcon">
<Icon Name="NSwagIcon" HasCharacterMap="false" GroupName="Science and Technology" IsDirty="true" ExportCommand="MetroGraphicsPackage.IconCommand" Data="M44.6230001449585,0L49.6660003662109,0 49.6660003662109,7.8328161239624 64,7.8328161239624 64,17.9335794448853 50.2140102386475,17.9335794448853 50.2140102386475,24.8710021972656 49.6660003662109,24.8710021972656 49.6660003662109,25.1484107971191 64,25.1484107971191 64,35.2481746673584 49.6660003662109,35.2481746673584 49.6660003662109,43.0819911956787 44.6230001449585,43.0819911956787C34.4850001335144,43.0819911956787,25.9850001335144,36.0381565093994,23.706000328064,26.6033773422241L16.2250003814697,26.6033773422241 10.4699993133545,26.6033773422241 0,26.6033773422241 0,21.5364961624146 0,16.4906139373779 16.2250003814697,16.4906139373779 23.706000328064,16.4906139373779C25.9850001335144,7.0438346862793,34.4850001335144,0,44.6230001449585,0z">
<Settings MainWidth="256" MainHeight="256" FlipX="1" FlipY="1" CustomSize="256" IconShape="Square" BackgroundBrush="#FF2D680E" ContentWidth="160" ContentHeight="160" Angle="0" IsRect="false" SizeIndex="6" CustomWidth="256" CustomHeight="256" IsLinked="false" Padding="48" MaximumPadding="79" SldierValueChanged="MetroGraphicsPackage.IconCommand" IconBrush="#FFFFFFFF" FontFamily="Webdings" Character=">" FlipCommand="MetroGraphicsPackage.IconCommand" IsBackgroundVisible="true" />
</Icon>
</IconProject>
================================================
FILE: azure-pipelines.yml
================================================
trigger:
branches:
include:
- master
- release
- refs/tags/*
pr:
- master
pool:
vmImage: 'windows-2019'
variables:
BuildConfiguration: Release
Projects: 'src/NSwag.sln'
steps:
- task: CmdLine@2
displayName: 'Allow long file path'
inputs:
script: 'git config --system core.longpaths true'
- checkout: self
# Install required SDKs and tools
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
packageType: 'sdk'
version: '6.0.0'
includePreviewVersions: true
performMultiLevelLookup: true
useGlobalJson: true
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
packageType: 'sdk'
version: '7.0.x'
includePreviewVersions: true
performMultiLevelLookup: true
useGlobalJson: true
- task: UseDotNet@2
displayName: 'Install .NET Core SDK'
inputs:
packageType: 'sdk'
version: '8.0.100'
includePreviewVersions: true
performMultiLevelLookup: true
useGlobalJson: true
- task: CmdLine@2
displayName: 'Install DNT'
inputs:
script: 'npm i -g dotnettools'
- task: CmdLine@2
displayName: 'Install WiX Toolset'
inputs:
script: 'choco install wixtoolset'
- task: CmdLine@2
displayName: 'Patch project version (preview)'
condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/release'))
inputs:
script: 'dnt bump-versions preview "$(Build.BuildNumber)"'
failOnStderr: true
- task: DotNetCoreCLI@2
displayName: 'Restore packages'
inputs:
command: 'restore'
projects: '$(Projects)'
includeNuGetOrg: true
# Build and test
- task: MSBuild@1
displayName: 'Build solution'
inputs:
solution: '$(Projects)'
msbuildArchitecture: 'x86'
configuration: '$(BuildConfiguration)'
- task: VSTest@2
displayName: 'Run tests'
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\*test*.dll
!**\*TestAdapter.dll
!**\*Integration*.dll
!**\obj\**
searchFolder: '$(System.DefaultWorkingDirectory)'
configuration: '$(BuildConfiguration)'
# Publish artifacts
- task: CopyFiles@2
displayName: 'Copy packages'
# condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
Contents: '**/*.nupkg'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
flattenFolders: true
- task: CopyFiles@2
displayName: 'Copy MSI'
# condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
Contents: '**/*.msi'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
flattenFolders: true
- task: PublishBuildArtifacts@1
displayName: 'Publish artifacts'
# condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
================================================
FILE: build/Build.CI.GitHubActions.cs
================================================
using System;
using System.Collections.Generic;
using Nuke.Common.CI.GitHubActions;
using Nuke.Common.CI.GitHubActions.Configuration;
using Nuke.Common.Execution;
using Nuke.Common.Utilities;
[CustomGitHubActions(
"pr",
GitHubActionsImage.WindowsLatest,
GitHubActionsImage.UbuntuLatest,
GitHubActionsImage.MacOsLatest,
OnPullRequestBranches = ["master", "main"],
OnPullRequestIncludePaths = ["**/*.*"],
OnPullRequestExcludePaths = ["**/*.md"],
PublishArtifacts = true,
InvokedTargets = [nameof(Compile), nameof(Test), nameof(Pack)],
CacheKeyFiles = [],
ConcurrencyCancelInProgress = true),
]
[CustomGitHubActions(
"build",
GitHubActionsImage.WindowsLatest,
GitHubActionsImage.UbuntuLatest,
GitHubActionsImage.MacOsLatest,
OnPushBranches = ["master", "main"],
OnPushTags = ["v*.*.*"],
OnPushIncludePaths = ["**/*.*"],
OnPushExcludePaths = ["**/*.md"],
PublishArtifacts = true,
InvokedTargets = [nameof(Compile), nameof(Test), nameof(Pack), nameof(Publish)],
ImportSecrets = ["NUGET_API_KEY", "MYGET_API_KEY", "CHOCO_API_KEY", "NPM_AUTH_TOKEN"],
CacheKeyFiles = [])
]
public partial class Build;
class CustomGitHubActionsAttribute : GitHubActionsAttribute
{
public CustomGitHubActionsAttribute(string name, GitHubActionsImage image, params GitHubActionsImage[] images) : base(name, image, images)
{
}
protected override GitHubActionsJob GetJobs(GitHubActionsImage image, IReadOnlyCollection<ExecutableTarget> relevantTargets)
{
var job = base.GetJobs(image, relevantTargets);
var newSteps = new List<GitHubActionsStep>(job.Steps);
newSteps.Insert(0, new GitHubActionsSetupDotNetStep(["10.0"]));
var onWindows = image.ToString().StartsWith("windows", StringComparison.OrdinalIgnoreCase);
if (onWindows)
{
newSteps.Insert(0, new GitHubActionsUseGnuTarStep());
newSteps.Insert(0, new GitHubActionsConfigureLongPathsStep());
}
// add artifacts manually as they would otherwise by hard to configure via attributes
if (PublishArtifacts && onWindows)
{
newSteps.Add(new GitHubActionsArtifactStep { Name = "NSwag.zip", Path = "artifacts/NSwag.zip" });
newSteps.Add(new GitHubActionsArtifactStep { Name = "NSwag.Npm.zip", Path = "artifacts/NSwag.Npm.zip" });
newSteps.Add(new GitHubActionsArtifactStep { Name = "NSwagStudio.msi", Path = "artifacts/NSwagStudio.msi" });
newSteps.Add(new GitHubActionsArtifactStep { Name = "NuGet Packages", Path = "artifacts/*.nupkg" });
}
job.Steps = newSteps.ToArray();
return job;
}
}
class GitHubActionsConfigureLongPathsStep : GitHubActionsStep
{
public override void Write(CustomFileWriter writer)
{
writer.WriteLine("- name: 'Allow long file path'");
using (writer.Indent())
{
writer.WriteLine("run: git config --system core.longpaths true");
}
}
}
class GitHubActionsSetupDotNetStep : GitHubActionsStep
{
public GitHubActionsSetupDotNetStep(string[] versions)
{
Versions = versions;
}
string[] Versions { get; }
public override void Write(CustomFileWriter writer)
{
writer.WriteLine("- uses: actions/setup-dotnet@v5");
using (writer.Indent())
{
writer.WriteLine("with:");
using (writer.Indent())
{
writer.WriteLine("dotnet-version: |");
using (writer.Indent())
{
foreach (var version in Versions)
{
writer.WriteLine(version);
}
}
}
}
}
}
class GitHubActionsUseGnuTarStep : GitHubActionsStep
{
public override void Write(CustomFileWriter writer)
{
writer.WriteLine("- if: ${{ runner.os == 'Windows' }}");
using (writer.Indent())
{
writer.WriteLine("name: 'Use GNU tar'");
writer.WriteLine("shell: cmd");
writer.WriteLine("run: |");
using (writer.Indent())
{
writer.WriteLine("echo \"Adding GNU tar to PATH\"");
writer.WriteLine("echo C:\\Program Files\\Git\\usr\\bin>>\"%GITHUB_PATH%\"");
}
}
}
}
================================================
FILE: build/Build.Pack.cs
================================================
using System;
using System.IO.Compression;
using System.Linq;
using System.Text.RegularExpressions;
using Microsoft.Build.Definition;
using Nuke.Common;
using Nuke.Common.IO;
using Nuke.Common.Tooling;
using Nuke.Common.Tools.DotNet;
using Nuke.Common.Tools.NuGet;
using static Nuke.Common.Tools.DotNet.DotNetTasks;
using static Nuke.Common.Tools.NuGet.NuGetTasks;
using Project = Microsoft.Build.Evaluation.Project;
public partial class Build
{
// logic from 01_Build.bat
Target Pack => _ => _
.DependsOn(Compile)
.After(Test)
.OnlyWhenDynamic(() => IsRunningOnWindows)
.Executes(() =>
{
if (Configuration != Configuration.Release)
{
throw new InvalidOperationException("Cannot pack if compilation hasn't been done in Release mode, use --configuration Release");
}
var nugetVersion = VersionPrefix;
if (!string.IsNullOrWhiteSpace(VersionSuffix))
{
nugetVersion += "-" + VersionSuffix;
}
// it seems to cause some headache with publishing, so let's dotnet pack only files we know are suitable
var projects = SourceDirectory.GlobFiles("**/*.csproj")
.Where(x => !x.ToString().Contains("_build") &&
!x.ToString().Contains("NSwag.Console.csproj") && // legacy .net tool is not published as nuget package
!x.ToString().Contains("NSwagStudio") &&
!x.ToString().Contains("Test") &&
!x.ToString().Contains("Demo") &&
!x.ToString().Contains("Integration") &&
!x.ToString().Contains("x86") &&
!x.ToString().Contains("Launcher") &&
!x.ToString().Contains("Sample"))
.Select(x => Project.FromFile(x, new ProjectOptions()));
foreach (var project in projects)
{
DotNetPack(s => s
.SetProcessWorkingDirectory(SourceDirectory)
.SetProject(project.FullPath)
.SetAssemblyVersion(VersionPrefix)
.SetFileVersion(VersionPrefix)
.SetInformationalVersion(VersionPrefix)
.SetVersion(nugetVersion)
.SetConfiguration(Configuration)
.SetOutputDirectory(ArtifactsDirectory)
.EnableNoRestore()
.EnableNoBuild()
);
}
Serilog.Log.Information("Build WiX installer");
(SourceDirectory / "NSwagStudio.Installer" / "bin").CreateOrCleanDirectory();
DotNetBuild(x => x
.SetProjectFile(GetProject("NSwagStudio.Installer"))
.SetConfiguration(Configuration)
.EnableNoRestore()
.SetVerbosity(DotNetVerbosity.minimal)
);
// gather relevant artifacts
Serilog.Log.Information("Package nuspecs");
var apiDescriptionClientNuSpec = SourceDirectory / "NSwag.ApiDescription.Client" / "NSwag.ApiDescription.Client.nuspec";
var content = apiDescriptionClientNuSpec.ReadAllText();
content = content.Replace("<dependency id=\"NSwag.MSBuild\" version=\"1.0.0\" />", "<dependency id=\"NSwag.MSBuild\" version=\"" + nugetVersion + "\" />");
apiDescriptionClientNuSpec.WriteAllText(content);
var nuspecs = new[]
{
apiDescriptionClientNuSpec,
SourceDirectory / "NSwag.MSBuild" / "NSwag.MSBuild.nuspec",
SourceDirectory / "NSwagStudio.Chocolatey" / "NSwagStudio.nuspec"
};
foreach (var nuspec in nuspecs)
{
NuGetPack(x => x
.SetOutputDirectory(ArtifactsDirectory)
.SetConfiguration(Configuration)
.SetVersion(nugetVersion)
.SetTargetPath(nuspec)
);
}
var artifacts = Array.Empty<AbsolutePath>()
.Concat(RootDirectory.GlobFiles("**/Release/**/NSwag*.nupkg"))
.Concat(SourceDirectory.GlobFiles("**/Release/**/NSwagStudio.msi"));
foreach (var artifact in artifacts)
{
artifact.CopyToDirectory(ArtifactsDirectory);
}
// patch npm version
var npmPackagesFile = SourceDirectory / "NSwag.Npm" / "package.json";
content = npmPackagesFile.ReadAllText();
content = Regex.Replace(content, @"""version"": "".*""", @"""version"": """ + nugetVersion + @"""");
npmPackagesFile.WriteAllText(content);
// ZIP directories
ZipFile.CreateFromDirectory(NSwagNpmBinaries, ArtifactsDirectory / "NSwag.Npm.zip");
ZipFile.CreateFromDirectory(NSwagStudioBinaries, ArtifactsDirectory / "NSwag.zip");
// NSwagStudio.msi
(ArtifactsDirectory / "bin" / "NSwagStudio.Installer" / Configuration / "NSwagStudio.msi").CopyToDirectory(ArtifactsDirectory);
});
}
================================================
FILE: build/Build.Publish.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using Nuke.Common;
using Nuke.Common.Git;
using Nuke.Common.IO;
using Nuke.Common.Tooling;
using Nuke.Common.Tools.Chocolatey;
using Nuke.Common.Tools.DotNet;
using Nuke.Common.Tools.GitHub;
using static Nuke.Common.Tools.Chocolatey.ChocolateyTasks;
using static Nuke.Common.Tools.DotNet.DotNetTasks;
using static Nuke.Common.Tools.Npm.NpmTasks;
public partial class Build
{
string NuGetSource => "https://api.nuget.org/v3/index.json";
[Parameter] [Secret] string NuGetApiKey;
string MyGetGetSource => "https://www.myget.org/F/nswag/api/v2/package";
[Parameter] [Secret] string MyGetApiKey;
[Parameter] [Secret] string ChocoApiKey;
[Parameter] [Secret] string NpmAuthToken;
string ApiKeyToUse => IsTaggedBuild ? NuGetApiKey : MyGetApiKey;
string SourceToUse => IsTaggedBuild ? NuGetSource : MyGetGetSource;
Target Publish => _ => _
.OnlyWhenDynamic(() => IsRunningOnWindows && (GitRepository.IsOnMainOrMasterBranch() || IsTaggedBuild) && GitRepository.GetGitHubOwner() == "RicoSuter")
.DependsOn(Pack)
.Requires(() => NuGetApiKey, () => MyGetApiKey, () => ChocoApiKey, () => NpmAuthToken)
.Executes(() =>
{
if (IsTaggedBuild)
{
ChocolateyPush(_ => _
.SetApiKey(ChocoApiKey)
.SetPathToNuGetPackage(ArtifactsDirectory.GlobFiles("NSwagStudio.*.nupkg").Single())
.SetSource("https://push.chocolatey.org/")
);
try
{
var userDirectory = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
File.WriteAllText(
Path.Combine(userDirectory, ".npmrc"),
"//registry.npmjs.org/:_authToken=" + NpmAuthToken + "\n");
// do not publish preview packages to npm
if (string.IsNullOrEmpty(VersionSuffix))
{
var outputs = Npm("publish", SourceDirectory / "NSwag.Npm", logOutput: false);
foreach (var output in outputs.Where(o => !o.Text.Contains("npm notice")))
{
if (output.Type == OutputType.Std)
{
Serilog.Log.Information(output.Text);
}
else
{
Serilog.Log.Error(output.Text);
}
}
}
}
catch (Exception ex)
{
Console.Error.WriteLine("NPM PUBLISH FAILED: " + ex.Message);
}
}
try
{
DotNetNuGetPush(_ => _
.Apply(PushSettingsBase)
.Apply(PushSettings)
.CombineWith(PushPackageFiles, (_, v) => _
.SetTargetPath(v))
.Apply(PackagePushSettings),
PushDegreeOfParallelism,
PushCompleteOnFailure);
}
catch (Exception e)
{
if (IsTaggedBuild)
{
// fatal
throw;
}
Serilog.Log.Error("Could not push: {Message}", e.Message);
}
});
Configure<DotNetNuGetPushSettings> PushSettingsBase => _ => _
.SetSource(SourceToUse)
.SetApiKey(ApiKeyToUse)
.SetSkipDuplicate(true);
Configure<DotNetNuGetPushSettings> PushSettings => _ => _;
Configure<DotNetNuGetPushSettings> PackagePushSettings => _ => _;
IEnumerable<AbsolutePath> PushPackageFiles =>
ArtifactsDirectory.GlobFiles("*.nupkg")
.Where(x => !x.ToString().Contains("NSwagStudio", StringComparison.OrdinalIgnoreCase));
bool PushCompleteOnFailure => true;
int PushDegreeOfParallelism => 1;
}
================================================
FILE: build/Build.cs
================================================
using System;
using System.Linq;
using System.Runtime.InteropServices;
using System.Xml.Linq;
using Microsoft.Build.Evaluation;
using Microsoft.Build.Locator;
using Nuke.Common;
using Nuke.Common.CI.GitHubActions;
using Nuke.Common.Git;
using Nuke.Common.IO;
using Nuke.Common.ProjectModel;
using Nuke.Common.Tooling;
using Nuke.Common.Tools.DotNet;
using Nuke.Common.Utilities;
using Nuke.Common.Utilities.Collections;
using static Nuke.Common.Tools.DotNet.DotNetTasks;
using static Nuke.Common.Tools.Npm.NpmTasks;
using Project = Nuke.Common.ProjectModel.Project;
partial class Build : NukeBuild
{
public Build()
{
var msBuildExtensionPath = Environment.GetEnvironmentVariable("MSBuildExtensionsPath");
var msBuildExePath = Environment.GetEnvironmentVariable("MSBUILD_EXE_PATH");
var msBuildSdkPath = Environment.GetEnvironmentVariable("MSBuildSDKsPath");
MSBuildLocator.RegisterDefaults();
TriggerAssemblyResolution();
Environment.SetEnvironmentVariable("MSBuildExtensionsPath", msBuildExtensionPath);
Environment.SetEnvironmentVariable("MSBUILD_EXE_PATH", msBuildExePath);
Environment.SetEnvironmentVariable("MSBuildSDKsPath", msBuildSdkPath);
}
static void TriggerAssemblyResolution() => _ = new ProjectCollection();
/// Support plugins are available for:
/// - JetBrains ReSharper https://nuke.build/resharper
/// - JetBrains Rider https://nuke.build/rider
/// - Microsoft VisualStudio https://nuke.build/visualstudio
/// - Microsoft VSCode https://nuke.build/vscode
public static int Main() => Execute<Build>(x => x.Compile);
[Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;
[Solution] readonly Solution Solution;
// the file we want to build, can be either full solution on Windows or a filtered one on other platforms
AbsolutePath SolutionFile;
[GitRepository] readonly GitRepository GitRepository;
AbsolutePath SourceDirectory => RootDirectory / "src";
AbsolutePath ArtifactsDirectory => RootDirectory / "artifacts";
AbsolutePath NSwagStudioBinaries => ArtifactsDirectory / "bin" / "NSwagStudio" / Configuration;
AbsolutePath NSwagNpmBinaries => SourceDirectory / "NSwag.Npm";
static bool IsRunningOnWindows => RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
bool IsTaggedBuild;
string VersionPrefix;
string VersionSuffix;
string DetermineVersionPrefix()
{
var versionPrefix = GitRepository.Tags.SingleOrDefault(x => x.StartsWith("v"))?[1..];
if (!string.IsNullOrWhiteSpace(versionPrefix))
{
IsTaggedBuild = true;
Serilog.Log.Information($"Tag version {VersionPrefix} from Git found, using it as version prefix", versionPrefix);
}
else
{
var propsDocument = XDocument.Parse((RootDirectory / "Directory.Build.props").ReadAllText());
versionPrefix = propsDocument.Element("Project").Element("PropertyGroup").Element("VersionPrefix").Value;
Serilog.Log.Information("Version prefix {VersionPrefix} read from Directory.Build.props", versionPrefix);
}
return versionPrefix;
}
protected override void OnBuildInitialized()
{
SolutionFile = IsRunningOnWindows ? Solution.Path : SourceDirectory / "NSwag.NoInstaller.slnf";
VersionPrefix = DetermineVersionPrefix();
var versionParts = VersionPrefix.Split('-');
if (versionParts.Length == 2)
{
VersionPrefix = versionParts[0];
VersionSuffix = versionParts[1];
}
else
{
VersionSuffix = !IsTaggedBuild
? $"preview-{DateTime.UtcNow:yyyyMMdd-HHmm}"
: "";
}
if (IsLocalBuild)
{
VersionSuffix = $"dev-{DateTime.UtcNow:yyyyMMdd-HHmm}";
}
Serilog.Log.Information("BUILD SETUP");
Serilog.Log.Information("Configuration:\t{Configuration}", Configuration);
Serilog.Log.Information("Version prefix:\t{VersionPrefix}", VersionPrefix);
Serilog.Log.Information("Version suffix:\t{VersionSuffix}",VersionSuffix);
Serilog.Log.Information("Tagged build:\t{IsTaggedBuild}", IsTaggedBuild);
}
Target Clean => _ => _
.Before(Restore)
.Executes(() =>
{
SourceDirectory.GlobDirectories("**/bin", "**/obj").ForEach(x => x.DeleteDirectory());
ArtifactsDirectory.CreateOrCleanDirectory();
});
Target Restore => _ => _
.Executes(() =>
{
NpmInstall(x => x
.SetProcessWorkingDirectory(SourceDirectory / "NSwag.Npm")
);
NpmInstall(x => x
.SetProcessWorkingDirectory(GetProject("NSwag.CodeGeneration.TypeScript.Tests").Directory)
);
DotNetRestore(x => x
.SetProjectFile(SolutionFile)
.SetVerbosity(DotNetVerbosity.minimal)
.AddProperty("BuildWithNetFrameworkHostedCompiler", "true")
);
});
// logic from 01_Build.bat
Target Compile => _ => _
.DependsOn(Restore)
.Executes(() =>
{
(SourceDirectory / "NSwag.Npm" / "bin" / "binaries").CreateOrCleanDirectory();
NSwagStudioBinaries.CreateOrCleanDirectory();
Serilog.Log.Information("Build and copy full .NET command line with configuration {Configuration}", Configuration);
DotNetBuild(x => x
.SetProjectFile(SolutionFile)
.SetAssemblyVersion(VersionPrefix)
.SetFileVersion(VersionPrefix)
.SetInformationalVersion(VersionPrefix)
.SetConfiguration(Configuration)
.SetVerbosity(DotNetVerbosity.minimal)
.SetDeterministic(IsServerBuild)
.SetContinuousIntegrationBuild(IsServerBuild)
// ensure we don't generate too much output in CI run
// 0 Turns off emission of all warning messages
// 1 Displays severe warning messages
.SetWarningLevel(IsServerBuild ? 0 : 1)
.EnableNoRestore()
);
// later steps need to have binaries in correct places
PublishAndCopyConsoleProjects();
});
Target Test => _ => _
.DependsOn(Compile)
.Executes(() =>
{
foreach (var project in Solution.AllProjects.Where(p => p.Name.EndsWith(".Tests")))
{
DotNetTest(x => x
.SetProjectFile(project)
.EnableNoRestore()
.EnableNoBuild()
.SetConfiguration(Configuration)
.When(GitHubActions.Instance is not null, x => x.SetLoggers("GitHubActions"))
);
}
});
void PublishAndCopyConsoleProjects()
{
var consoleCoreProject = GetProject("NSwag.ConsoleCore");
var consoleX86Project = GetProject("NSwag.Console.x86");
var consoleProject = GetProject("NSwag.Console");
Serilog.Log.Information("Publish command line projects");
void PublishConsoleProject(Project project, string[] targetFrameworks)
{
foreach (var targetFramework in targetFrameworks)
{
DotNetPublish(s => s
.SetProject(project)
.SetFramework(targetFramework)
.SetAssemblyVersion(VersionPrefix)
.SetFileVersion(VersionPrefix)
.SetInformationalVersion(VersionPrefix)
.SetConfiguration(Configuration)
.SetDeterministic(IsServerBuild)
.SetContinuousIntegrationBuild(IsServerBuild)
// ensure we don't generate too much output in CI run
// 0 Turns off emission of all warning messages
// 1 Displays severe warning messages
.SetWarningLevel(IsServerBuild ? 0 : 1)
.EnableNoRestore()
.EnableNoBuild()
);
}
}
if (IsRunningOnWindows)
{
PublishConsoleProject(consoleX86Project, ["net462"]);
PublishConsoleProject(consoleProject, ["net462"]);
}
PublishConsoleProject(consoleCoreProject, ["net8.0", "net9.0", "net10.0"]);
void CopyConsoleBinaries(AbsolutePath target)
{
// take just exe from X86 as other files are shared with console project
var configuration = Configuration.ToString().ToLowerInvariant();
if (IsRunningOnWindows)
{
var consoleX86Directory = ArtifactsDirectory / "publish" / consoleX86Project.Name / configuration;
(consoleX86Directory / "NSwag.x86.exe").CopyToDirectory(target / "Win");
(consoleX86Directory / "NSwag.x86.exe.config").CopyToDirectory(target / "Win");
(ArtifactsDirectory / "publish" / consoleProject.Name / configuration).Copy(target / "Win", ExistsPolicy.DirectoryMerge);
}
(ArtifactsDirectory / "publish" / consoleCoreProject.Name / (configuration + "_net8.0")).Copy(target / "Net80");
(ArtifactsDirectory / "publish" / consoleCoreProject.Name / (configuration + "_net9.0")).Copy(target / "Net90");
(ArtifactsDirectory / "publish" / consoleCoreProject.Name / (configuration + "_net10.0")).Copy(target / "Net100");
}
if (IsRunningOnWindows)
{
Serilog.Log.Information("Copy published Console for NSwagStudio");
CopyConsoleBinaries(target: NSwagStudioBinaries);
}
Serilog.Log.Information("Copy published Console for NPM");
CopyConsoleBinaries(target: SourceDirectory / "NSwag.Npm" / "bin" / "binaries");
}
DotNetBuildSettings BuildDefaults(DotNetBuildSettings s)
{
return s
.SetAssemblyVersion(VersionPrefix)
.SetFileVersion(VersionPrefix)
.SetInformationalVersion(VersionPrefix)
.SetConfiguration(Configuration)
.SetDeterministic(IsServerBuild)
.SetContinuousIntegrationBuild(IsServerBuild);
}
// Solution.GetProject only returns solution's direct descendants since NUKE 7.0.1
private Project GetProject(string projectName) =>
Solution.AllProjects.FirstOrDefault(x => x.Name == projectName) ?? throw new ArgumentException($"Could not find project {projectName} from solution");
}
================================================
FILE: build/Configuration.cs
================================================
using System.ComponentModel;
using Nuke.Common.Tooling;
[TypeConverter(typeof(TypeConverter<Configuration>))]
public class Configuration : Enumeration
{
public static Configuration Debug = new Configuration { Value = nameof(Debug) };
public static Configuration Release = new Configuration { Value = nameof(Release) };
public static implicit operator string(Configuration configuration)
{
return configuration.Value;
}
}
================================================
FILE: build/Directory.Build.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- This file prevents unintended imports of unrelated MSBuild files -->
<!-- Uncomment to include parent Directory.Build.props file -->
<!--<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />-->
</Project>
================================================
FILE: build/Directory.Build.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- This file prevents unintended imports of unrelated MSBuild files -->
<!-- Uncomment to include parent Directory.Build.targets file -->
<!--<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />-->
</Project>
================================================
FILE: build/_build.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<RootNamespace></RootNamespace>
<NoWarn>CS0649;CS0169</NoWarn>
<NukeRootDirectory>..</NukeRootDirectory>
<NukeScriptDirectory>..</NukeScriptDirectory>
<NukeTelemetryVersion>1</NukeTelemetryVersion>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
<UseArtifactsOutput>false</UseArtifactsOutput>
<NukeExcludeConfig>true</NukeExcludeConfig>
<NukeExcludeDirectoryBuild>true</NukeExcludeDirectoryBuild>
<NukeExcludeLogs>true</NukeExcludeLogs>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Nuke.Common" Version="10.1.0" />
</ItemGroup>
<ItemGroup>
<PackageDownload Include="NuGet.CommandLine" Version="[6.13.2]" />
</ItemGroup>
</Project>
================================================
FILE: build.cmd
================================================
:; set -eo pipefail
:; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
:; ${SCRIPT_DIR}/build.sh "$@"
:; exit $?
@ECHO OFF
powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %*
================================================
FILE: build.ps1
================================================
[CmdletBinding()]
Param(
[Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
[string[]]$BuildArguments
)
Write-Output "PowerShell $($PSVersionTable.PSEdition) version $($PSVersionTable.PSVersion)"
Set-StrictMode -Version 2.0; $ErrorActionPreference = "Stop"; $ConfirmPreference = "None"; trap { Write-Error $_ -ErrorAction Continue; exit 1 }
$PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
###########################################################################
# CONFIGURATION
###########################################################################
$BuildProjectFile = "$PSScriptRoot\build\_build.csproj"
$TempDirectory = "$PSScriptRoot\\.nuke\temp"
$DotNetGlobalFile = "$PSScriptRoot\\global.json"
$DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1"
$DotNetChannel = "STS"
$env:DOTNET_CLI_TELEMETRY_OPTOUT = 1
$env:DOTNET_NOLOGO = 1
###########################################################################
# EXECUTION
###########################################################################
function ExecSafe([scriptblock] $cmd) {
& $cmd
if ($LASTEXITCODE) { exit $LASTEXITCODE }
}
# If dotnet CLI is installed globally and it matches requested version, use for execution
if ($null -ne (Get-Command "dotnet" -ErrorAction SilentlyContinue) -and `
$(dotnet --version) -and $LASTEXITCODE -eq 0) {
$env:DOTNET_EXE = (Get-Command "dotnet").Path
}
else {
# Download install script
$DotNetInstallFile = "$TempDirectory\dotnet-install.ps1"
New-Item -ItemType Directory -Path $TempDirectory -Force | Out-Null
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
(New-Object System.Net.WebClient).DownloadFile($DotNetInstallUrl, $DotNetInstallFile)
# If global.json exists, load expected version
if (Test-Path $DotNetGlobalFile) {
$DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json)
if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) {
$DotNetVersion = $DotNetGlobal.sdk.version
}
}
# Install by channel or version
$DotNetDirectory = "$TempDirectory\dotnet-win"
if (!(Test-Path variable:DotNetVersion)) {
ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Channel $DotNetChannel -NoPath }
} else {
ExecSafe { & powershell $DotNetInstallFile -InstallDir $DotNetDirectory -Version $DotNetVersion -NoPath }
}
$env:DOTNET_EXE = "$DotNetDirectory\dotnet.exe"
$env:PATH = "$DotNetDirectory;$env:PATH"
}
Write-Output "Microsoft (R) .NET SDK version $(& $env:DOTNET_EXE --version)"
if (Test-Path env:NUKE_ENTERPRISE_TOKEN) {
& $env:DOTNET_EXE nuget remove source "nuke-enterprise" > $null
& $env:DOTNET_EXE nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password $env:NUKE_ENTERPRISE_TOKEN > $null
}
ExecSafe { & $env:DOTNET_EXE build $BuildProjectFile /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet }
ExecSafe { & $env:DOTNET_EXE run --project $BuildProjectFile --no-build -- $BuildArguments }
================================================
FILE: build.sh
================================================
#!/usr/bin/env bash
bash --version 2>&1 | head -n 1
set -eo pipefail
SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)
###########################################################################
# CONFIGURATION
###########################################################################
BUILD_PROJECT_FILE="$SCRIPT_DIR/build/_build.csproj"
TEMP_DIRECTORY="$SCRIPT_DIR//.nuke/temp"
DOTNET_GLOBAL_FILE="$SCRIPT_DIR//global.json"
DOTNET_INSTALL_URL="https://dot.net/v1/dotnet-install.sh"
DOTNET_CHANNEL="STS"
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export DOTNET_NOLOGO=1
###########################################################################
# EXECUTION
###########################################################################
function FirstJsonValue {
perl -nle 'print $1 if m{"'"$1"'": "([^"]+)",?}' <<< "${@:2}"
}
# If dotnet CLI is installed globally and it matches requested version, use for execution
if [ -x "$(command -v dotnet)" ] && dotnet --version &>/dev/null; then
export DOTNET_EXE="$(command -v dotnet)"
else
# Download install script
DOTNET_INSTALL_FILE="$TEMP_DIRECTORY/dotnet-install.sh"
mkdir -p "$TEMP_DIRECTORY"
curl -Lsfo "$DOTNET_INSTALL_FILE" "$DOTNET_INSTALL_URL"
chmod +x "$DOTNET_INSTALL_FILE"
# If global.json exists, load expected version
if [[ -f "$DOTNET_GLOBAL_FILE" ]]; then
DOTNET_VERSION=$(FirstJsonValue "version" "$(cat "$DOTNET_GLOBAL_FILE")")
if [[ "$DOTNET_VERSION" == "" ]]; then
unset DOTNET_VERSION
fi
fi
# Install by channel or version
DOTNET_DIRECTORY="$TEMP_DIRECTORY/dotnet-unix"
if [[ -z ${DOTNET_VERSION+x} ]]; then
"$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --channel "$DOTNET_CHANNEL" --no-path
else
"$DOTNET_INSTALL_FILE" --install-dir "$DOTNET_DIRECTORY" --version "$DOTNET_VERSION" --no-path
fi
export DOTNET_EXE="$DOTNET_DIRECTORY/dotnet"
export PATH="$DOTNET_DIRECTORY:$PATH"
fi
echo "Microsoft (R) .NET SDK version $("$DOTNET_EXE" --version)"
if [[ ! -z ${NUKE_ENTERPRISE_TOKEN+x} && "$NUKE_ENTERPRISE_TOKEN" != "" ]]; then
"$DOTNET_EXE" nuget remove source "nuke-enterprise" &>/dev/null || true
"$DOTNET_EXE" nuget add source "https://f.feedz.io/nuke/enterprise/nuget" --name "nuke-enterprise" --username "PAT" --password "$NUKE_ENTERPRISE_TOKEN" --store-password-in-clear-text &>/dev/null || true
fi
"$DOTNET_EXE" build "$BUILD_PROJECT_FILE" /nodeReuse:false /p:UseSharedCompilation=false -nologo -clp:NoSummary --verbosity quiet
"$DOTNET_EXE" run --project "$BUILD_PROJECT_FILE" --no-build -- "$@"
================================================
FILE: docs/tutorials/GenerateProxyClientWithCLI/generate-proxy-client.md
================================================
# A How-To: Generating the Service Client Proxy code
## The Sample Problem
You've recently joined a large project, with a distributed team, collaborating on building a Client Application - which could be a Mobile, Desktop, or Web App - and the application being built needs to integrate with a 3rd-Party Service that you don't have much visibility into, or little ability to change.
The 3rd-Party Service does have well defined contracts, deployed to integration-test endpoints, and the Specs are shared with you via an [OpenAPI Spec](https://swagger.io/specification/).
You are asked to find a repeatable approach to generate interfaces and DTOs from the spec, based on the above constraints.
Also, since you've come to this repo, we'll assume you want to use NSwag as part of your solution.
## Prerequisites
- `NSwag` - This process we'll cover requires the `NSwag` commandline tool to help automate generation of a service client, an interface definition and DTOs. Follow [install instructions](https://github.com/RicoSuter/NSwag/wiki/CommandLine) to install the command line version of nswag.
- [OpenAPI Swagger Editor VS Code Extension](https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi) *(optional)* - This Visual Studio Code (VS Code) extension adds rich support for the OpenAPI Specification (OAS) (formerly known as Swagger Specification) in JSON or YAML format. The features include, for example, SwaggerUI and ReDoc preview, IntelliSense, linting, schema enforcement, code navigation, definition links, snippets, static security analysis, and more!
- If in later steps you choose to download the 3rd-Party Service's Open API Spec, this plugin makes it easy visualize
**Notes**:
- You may need to specify runtime version `nswag version /runtime:Net50` to run nswag on your local machine, since the sample [nswag config](https://github.com/RicoSuter/NSwag/wiki/NSwag-Configuration-Document) we'll use specifies `runtime` as `Net50`.
- If you chose to download NSwag as a ZIP Archive, you may see dotnet version errors when trying to execute commands. If you are not able to resolve the issues, you may opt to install via Chocolatey or the MSI from the install instructions page provided above.
- For this sample, we'll use the public [Swagger Petstore](https://petstore.swagger.io/) as the sample 3rd-Party Service, later referred to as `[YourRemoteService]`.
## Creating Client Interface, DTOs and Proxy classes
### **OPTION 1**: The sample process for (re)creating the service client, interface definition and DTOs, using an existing nswag configuration file, is as follows
- Use an existing [nswag config document](https://github.com/RicoSuter/NSwag/wiki/NSwag-Configuration-Document), similar to [sample.nswag](./sample.nswag) from this sample folder.
- In your App codebase, check for folders similar to `MainApp > Services > [YourRemoteService]`, and `MainApp > Contracts > [YourRemoteService]`, if they are missing, create them
- If `[YourRemoteService]` has a public unauthenticated Open API Spec endpoint, one that gets appropriately versioned before changes are published, you can use it directly.
- Otherwise, I recommend downloading the desired version (typically current version) of your [Service Swagger](https://petstore.swagger.io/v2/swagger.json) from the Cloud and place the file in the same directory as the [sample.nswag](./sample.nswag).
- If you downloaded a copy of the OpenAPI-Spec, you may want to include it along side with the nswag generated files, for reference and ad-hoc version tracking.
- Generate the service client, interface definitions and DTOs by running the `nswag` CLI:
```
nswag run sample.nswag /runtime:Net50
```
- Take the output from the above command, an update files, if needed, in your `MainApp > Services > [YourRemoteService]`, and `MainApp > Contracts > [YourRemoteService]` folders
- Check if any updates are needed to service instances (or mock instances) that you may have registered with a Dependency Injection container used in your App, if any.
### **OPTION 2**: To customize the outputs, follow these additional steps
- Create your own `sample.nswag` configuration based on the starter sample below.
- Check for folders similar to `MainApp > Services > [YourRemoteService]`, and `MainApp > Contracts > [YourRemoteService]`, if missing, create them
- Update the location of the OpenAPI spec to the `documentGenerator.fromDocument.url` parameter in the `nswag` config file. The parameter can point to the local Yaml or Json file you downloaded, or an http address.
- Update the class name `codeGenerators.openApiToCSharpClient.className` parameter in the `nswag` config file, to something other than *`SampleService`*
- Update the namespace `codeGenerators.openApiToCSharpClient.namespace` parameter in the `nswag` config file, to something other than *`MainApp.Services.SampleService`*
- Update the location of the generated C# code file `codeGenerators.openApiToCSharpClient.output` parameter in the `nswag` config file.
- If you want the interface definition and DTOs as a separate file, ensure `codeGenerators.openApiToCSharpClient.generateContractsOutput` is set to **`true`**, and
- Update the contractsNamespace `codeGenerators.openApiToCSharpClient.contractsNamespace` parameter in the `nswag` config file, to something other than *`MainApp.Services.SampleService.Contracts`*
- Update the location of the generated C# contracts code file `codeGenerators.openApiToCSharpClient.contractsOutputFilePath` parameter in the `nswag` config file.
- If you do not use a BaseClass beyond the generated interface, then set `codeGenerators.openApiToCSharpClient.clientBaseClass` to **`null`**, and `codeGenerators.openApiToCSharpClient.useHttpRequestMessageCreationMethod` to **`false`**
- Generate the service client, interface definitions and DTOs by running the `nswag` CLI:
```
nswag run sample.nswag /runtime:Net50
```
- Update files, if needed, in your `MainApp > Services > [YourRemoteService]`, and `MainApp > Contracts > [YourRemoteService]` folders
- Check if any updates are needed to service instances (or mock instances) registered with a Dependency Injection container in your App, if any.
## Sample NSwag config
```
{
"runtime": "Net50",
"documentGenerator": {
"fromDocument": {
"json": "",
"url": "YOUR_OPENAPI_SPEC_LOCATION_HERE",
"output": null,
"newLineBehavior": "Auto"
}
},
"codeGenerators": {
"openApiToCSharpClient": {
"generateClientClasses": true,
"suppressClientClassesOutput": false,
"generateClientInterfaces": true,
"suppressClientInterfacesOutput": false,
"generateDtoTypes": true,
"injectHttpClient": true,
"disposeHttpClient": true,
"generateExceptionClasses": true,
"exceptionClass": "ServiceException",
"wrapDtoExceptions": false,
"useHttpClientCreationMethod": false,
"httpClientType": "System.Net.Http.HttpClient",
"useHttpRequestMessageCreationMethod": true,
"useBaseUrl": true,
"generateBaseUrlProperty": true,
"generateSyncMethods": false,
"exposeJsonSerializerSettings": false,
"clientClassAccessModifier": "public",
"clientBaseClass": "MainApp.Services.BaseService",
"typeAccessModifier": "public",
"generateContractsOutput": true,
"contractsNamespace": "MainApp.Services.SampleService.Contracts",
"contractsOutputFilePath": "GENERATEDCONTRACTS.cs",
"parameterDateTimeFormat": "s",
"generateUpdateJsonSerializerSettingsMethod": true,
"serializeTypeInformation": false,
"queryNullValue": "",
"className": "SampleService",
"operationGenerationMode": "MultipleClientsFromOperationId",
"includedOperationIds": [ "SampleOperationId" ],
"excludedOperationIds": [],
"generateOptionalParameters": false,
"generateJsonMethods": true,
"parameterArrayType": "System.Collections.Generic.IEnumerable",
"parameterDictionaryType": "System.Collections.Generic.IDictionary",
"responseArrayType": "System.Collections.ObjectModel.ObservableCollection",
"responseDictionaryType": "System.Collections.Generic.Dictionary",
"wrapResponses": false,
"generateResponseClasses": true,
"responseClass": "SwaggerResponse",
"namespace": "MainApp.Services.SampleService",
"requiredPropertiesMustBeDefined": true,
"dateType": "System.DateTime",
"dateTimeType": "System.DateTime",
"timeType": "System.TimeSpan",
"timeSpanType": "System.TimeSpan",
"arrayType": "System.Collections.ObjectModel.ObservableCollection",
"arrayInstanceType": "System.Collections.ObjectModel.ObservableCollection",
"dictionaryType": "System.Collections.Generic.Dictionary",
"arrayBaseType": "System.Collections.ObjectModel.ObservableCollection",
"dictionaryBaseType": "System.Collections.Generic.Dictionary",
"classStyle": "poco",
"generateDefaultValues": true,
"generateDataAnnotations": false,
"excludedTypeNames": [],
"handleReferences": false,
"generateImmutableArrayProperties": false,
"generateImmutableDictionaryProperties": false,
"output": "GENERATEDCODE.cs"
}
}
}
```
================================================
FILE: global.json
================================================
{
"sdk": {
"version": "10.0.100",
"rollForward": "latestMinor"
}
}
================================================
FILE: src/NSwag.Annotations/NSwag.Annotations.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net462;netstandard2.0</TargetFrameworks>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
</Project>
================================================
FILE: src/NSwag.Annotations/OpenApiBodyParameterAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="OpenApiBodyParameterAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Specifies that the operation consumes the POST body.</summary>
[AttributeUsage(AttributeTargets.Method)]
public class OpenApiBodyParameterAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="OpenApiBodyParameterAttribute"/> class with the 'application/json' mime type.</summary>
public OpenApiBodyParameterAttribute()
{
MimeTypes = ["application/json"];
}
/// <summary>Initializes a new instance of the <see cref="OpenApiBodyParameterAttribute"/> class.</summary>
/// <param name="mimeTypes">The expected mime types.</param>
public OpenApiBodyParameterAttribute(params string[] mimeTypes)
{
MimeTypes = mimeTypes;
}
/// <summary>
/// Gets the expected body mime type.
/// </summary>
public string[] MimeTypes { get; }
}
}
================================================
FILE: src/NSwag.Annotations/OpenApiControllerAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="OpenApiControllerAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Describes the controller.</summary>
[AttributeUsage(AttributeTargets.Class)]
public class OpenApiControllerAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="OpenApiOperationAttribute"/> class.</summary>
/// <param name="name">The controller name used in OpenAPI specs (will be the generated client class name in NSwag).</param>
public OpenApiControllerAttribute(string name)
{
Name = name;
}
/// <summary>Gets or sets the controller name used in OpenAPI specs (will be the generated client class name in NSwag).</summary>
public string Name { get; private set; }
}
}
================================================
FILE: src/NSwag.Annotations/OpenApiExtensionDataAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerTagAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Indicates extension data to be added to the Swagger definition.</summary>
/// <remarks>Requires the SwaggerExtensionDataOperationProcessor to be used in the Swagger definition generation.</remarks>
/// <seealso cref="Attribute" />
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Parameter, AllowMultiple = true)]
#pragma warning disable 618
public sealed class OpenApiExtensionDataAttribute : SwaggerExtensionDataAttribute
#pragma warning restore 618
{
/// <summary>Initializes a new instance of the <see cref="SwaggerExtensionDataAttribute"/> class.</summary>
/// <param name="key">The key.</param>
/// <param name="value">The value.</param>
public OpenApiExtensionDataAttribute(string key, string value) : base(key, value)
{
}
}
/// <summary>Indicates extension data to be added to the Swagger definition.</summary>
/// <remarks>Requires the SwaggerExtensionDataOperationProcessor to be used in the Swagger definition generation.</remarks>
/// <seealso cref="Attribute" />
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | AttributeTargets.Parameter, AllowMultiple = true)]
[Obsolete("Use " + nameof(OpenApiExtensionDataAttribute) + " instead.")]
public class SwaggerExtensionDataAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="SwaggerExtensionDataAttribute"/> class.</summary>
/// <param name="key">The key.</param>
/// <param name="value">The value.</param>
public SwaggerExtensionDataAttribute(string key, string value)
{
Key = key;
Value = value;
}
/// <summary>Gets the key.</summary>
public string Key { get; }
/// <summary>Gets the value.</summary>
public string Value { get; }
}
}
================================================
FILE: src/NSwag.Annotations/OpenApiFileAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerFileAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Specifies a parameter or class to be handled as file.</summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Parameter)]
#pragma warning disable 618
public class OpenApiFileAttribute : SwaggerFileAttribute
#pragma warning restore 618
{
}
/// <summary>Specifies a parameter or class to be handled as file.</summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Parameter)]
[Obsolete("Use " + nameof(OpenApiFileAttribute) + " instead.")]
public class SwaggerFileAttribute : Attribute
{
}
}
================================================
FILE: src/NSwag.Annotations/OpenApiIgnoreAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerIgnoreAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Excludes an action method from the generated Swagger specification.</summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Parameter)]
#pragma warning disable 618
public class OpenApiIgnoreAttribute : SwaggerIgnoreAttribute
#pragma warning restore 618
{
}
/// <summary>Excludes an action method from the generated Swagger specification.</summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Parameter)]
[Obsolete("Use " + nameof(OpenApiIgnoreAttribute) + " instead.")]
public class SwaggerIgnoreAttribute : Attribute
{
}
}
================================================
FILE: src/NSwag.Annotations/OpenApiOperationAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerOperationAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Specifies the operation id, summary and description</summary>
[AttributeUsage(AttributeTargets.Method)]
#pragma warning disable 618
public class OpenApiOperationAttribute : SwaggerOperationAttribute
#pragma warning restore 618
{
/// <summary>Initializes a new instance of the <see cref="OpenApiOperationAttribute"/> class.</summary>
/// <param name="operationId">The operation ID.</param>
public OpenApiOperationAttribute(string operationId) : base(operationId)
{
}
/// <summary>Initializes a new instance of the <see cref="OpenApiOperationAttribute"/> class.</summary>
/// <param name="summary">The operation summary.</param>
/// /// <param name="description">The operation description.</param>
public OpenApiOperationAttribute(string summary, string description) : base(null)
{
Summary = summary;
Description = description;
}
/// <summary>Initializes a new instance of the <see cref="OpenApiOperationAttribute"/> class.</summary>
/// /// <param name="operationId">The operation ID.</param>
/// <param name="summary">The operation summary.</param>
/// /// <param name="description">The operation description.</param>
public OpenApiOperationAttribute(string operationId, string summary, string description) : base(operationId)
{
Summary = summary;
Description = description;
}
/// <summary>Gets or sets the operation summary.</summary>
public string Summary { get; private set; }
/// <summary>Gets or sets the operation description.</summary>
public string Description { get; private set; }
}
/// <summary>Specifies the operation ID.</summary>
[AttributeUsage(AttributeTargets.Method)]
[Obsolete("Use " + nameof(OpenApiOperationAttribute) + " instead.")]
public class SwaggerOperationAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="SwaggerOperationAttribute"/> class.</summary>
/// <param name="operationId">The operation ID.</param>
public SwaggerOperationAttribute(string operationId)
{
OperationId = operationId;
}
/// <summary>Gets or sets the operation ID.</summary>
public string OperationId { get; private set; }
}
}
================================================
FILE: src/NSwag.Annotations/OpenApiOperationProcessorAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerOperationProcessorAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Registers an operation processor for the given method or class.</summary>
/// <seealso cref="System.Attribute" />
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
#pragma warning disable 618
public class OpenApiOperationProcessorAttribute : SwaggerOperationProcessorAttribute
#pragma warning restore 618
{
/// <summary>Initializes a new instance of the <see cref="SwaggerOperationProcessorAttribute"/> class.</summary>
/// <param name="type">The operation processor type (must implement IOperationProcessor).</param>
/// <param name="parameters">The parameters.</param>
public OpenApiOperationProcessorAttribute(Type type, params object[] parameters) : base(type, parameters)
{
}
}
/// <summary>Registers an operation processor for the given method or class.</summary>
/// <seealso cref="System.Attribute" />
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
[Obsolete("Use " + nameof(OpenApiOperationProcessorAttribute) + " instead.")]
public class SwaggerOperationProcessorAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="SwaggerOperationProcessorAttribute"/> class.</summary>
/// <param name="type">The operation processor type (must implement IOperationProcessor).</param>
/// <param name="parameters">The parameters.</param>
public SwaggerOperationProcessorAttribute(Type type, params object[] parameters)
{
Type = type;
Parameters = parameters;
}
/// <summary>Gets or sets the type of the operation processor (must implement IOperationProcessor).</summary>
public Type Type { get; set; }
/// <summary>Gets or sets the type of the constructor parameters.</summary>
public object[] Parameters { get; set; }
}
}
================================================
FILE: src/NSwag.Annotations/OpenApiTagAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerTagAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Specifies the tags for an operation.</summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
#pragma warning disable 618
public class OpenApiTagAttribute : SwaggerTagAttribute
#pragma warning restore 618
{
/// <summary>Initializes a new instance of the <see cref="SwaggerTagAttribute"/> class.</summary>
public OpenApiTagAttribute(string name) : base(name)
{
}
}
/// <summary>Specifies the tags for an operation.</summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
[Obsolete("Use " + nameof(OpenApiTagAttribute) + " instead.")]
public class SwaggerTagAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="SwaggerTagAttribute"/> class.</summary>
public SwaggerTagAttribute(string name)
{
Name = name;
}
/// <summary>Gets or sets the name.</summary>
public string Name { get; set; }
/// <summary>Gets or sets the description.</summary>
public string Description { get; set; }
/// <summary>Gets or sets the external documentation description.</summary>
public string DocumentationDescription { get; set; }
/// <summary>Gets or sets the external documentation URL.</summary>
public string DocumentationUrl { get; set; }
/// <summary>Gets or sets a value indicating whether the tags should be added to document's 'tags' property (only needed on operation methods, default: false).</summary>
public bool AddToDocument { get; set; }
}
}
================================================
FILE: src/NSwag.Annotations/OpenApiTagsAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerTagsAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Specifies the tags for an operation or a document.</summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
#pragma warning disable 618
public class OpenApiTagsAttribute : SwaggerTagsAttribute
#pragma warning restore 618
{
/// <summary>Initializes a new instance of the <see cref="SwaggerTagsAttribute"/> class.</summary>
/// <param name="tags">The tags.</param>
public OpenApiTagsAttribute(params string[] tags)
: base(tags)
{
}
}
/// <summary>Specifies the tags for an operation or a document.</summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
[Obsolete("Use " + nameof(OpenApiTagsAttribute) + " instead.")]
public class SwaggerTagsAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="SwaggerTagsAttribute"/> class.</summary>
/// <param name="tags">The tags.</param>
public SwaggerTagsAttribute(params string[] tags)
{
Tags = tags;
}
/// <summary>Gets the tags.</summary>
public string[] Tags { get; private set; }
/// <summary>Gets or sets a value indicating whether the tags should be added to document's 'tags' property (only needed on operation methods, default: false).</summary>
public bool AddToDocument { get; set; }
}
}
================================================
FILE: src/NSwag.Annotations/ResponseTypeAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="ResponseTypeAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
using System.Globalization;
using System.Net;
namespace NSwag.Annotations
{
/// <summary>Specifies the result type of a HTTP operation to correctly generate a Swagger definition.</summary>
/// <remarks>Use <see cref="SwaggerResponseAttribute"/>, this attribute will be obsolete soon.</remarks>
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
[Obsolete("Use SwaggerResponseAttribute or ASP.NET Core attributes instead.")]
public class ResponseTypeAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="ResponseTypeAttribute"/> class.</summary>
/// <param name="responseType">The JSON result type of the MVC or Web API action method.</param>
public ResponseTypeAttribute(Type responseType)
{
ResponseType = responseType;
}
/// <summary>Initializes a new instance of the <see cref="ResponseTypeAttribute"/> class.</summary>
/// <param name="httpStatusCode">The HTTP status code for which the result type applies.</param>
/// <param name="responseType">The JSON result type of the MVC or Web API action method.</param>
public ResponseTypeAttribute(string httpStatusCode, Type responseType)
{
HttpStatusCode = httpStatusCode;
ResponseType = responseType;
}
/// <summary>Initializes a new instance of the <see cref="SwaggerResponseAttribute"/> class.</summary>
/// <param name="httpStatusCode">The HTTP status code for which the result type applies.</param>
/// <param name="responseType">The JSON result type of the MVC or Web API action method.</param>
public ResponseTypeAttribute(int httpStatusCode, Type responseType)
{
HttpStatusCode = httpStatusCode.ToString(CultureInfo.InvariantCulture);
ResponseType = responseType;
}
/// <summary>Initializes a new instance of the <see cref="SwaggerResponseAttribute"/> class.</summary>
/// <param name="httpStatusCode">The HTTP status code for which the result type applies.</param>
/// <param name="responseType">The JSON result type of the MVC or Web API action method.</param>
public ResponseTypeAttribute(HttpStatusCode httpStatusCode, Type responseType)
{
HttpStatusCode = ((int)httpStatusCode).ToString(CultureInfo.InvariantCulture);
ResponseType = responseType;
}
/// <summary>Gets or sets the HTTP status code for which the result type applies.</summary>
public string HttpStatusCode { get; set; }
/// <summary>Gets or sets the JSON result type of the MVC or Web API action method.</summary>
public Type ResponseType { get; set; }
/// <summary>Gets or sets the description of the response.</summary>
public string Description { get; set; }
}
}
================================================
FILE: src/NSwag.Annotations/SwaggerDefaultResponseAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerDefaultResponseAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Specifies that a default response (HTTP 200/204) should be generated from the return type of the operation method
/// (not needed if no response type attributes are available).</summary>
/// <remarks>Use ASP.NET Core native attributes (ProducesDefaultResponseType) instead of this attribute.</remarks>
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true)]
public class SwaggerDefaultResponseAttribute : Attribute
{
/// <remarks>Use ASP.NET Core native attributes (ProducesResponseType) instead of this attribute.</remarks>
public SwaggerDefaultResponseAttribute()
{
}
}
}
================================================
FILE: src/NSwag.Annotations/SwaggerResponseAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerResponseAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
using System.Globalization;
using System.Net;
namespace NSwag.Annotations
{
/// <summary>Specifies the result type of a HTTP operation to correctly generate a Swagger definition.</summary>
/// <remarks>Use ASP.NET Core native attributes (ProducesResponseType) instead of this attribute.</remarks>
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowMultiple = true)]
public class SwaggerResponseAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="SwaggerResponseAttribute"/> class.</summary>
/// <remarks>Use ASP.NET Core native attributes (ProducesResponseType) instead of this attribute.</remarks>
/// <param name="responseType">The JSON result type of the MVC or Web API action method.</param>
public SwaggerResponseAttribute(Type responseType)
{
Type = responseType;
}
/// <summary>Initializes a new instance of the <see cref="SwaggerResponseAttribute"/> class.</summary>
/// <param name="httpStatusCode">The HTTP status code for which the result type applies.</param>
/// <param name="responseType">The JSON result type of the MVC or Web API action method.</param>
public SwaggerResponseAttribute(string httpStatusCode, Type responseType)
{
StatusCode = httpStatusCode;
Type = responseType;
}
/// <summary>Initializes a new instance of the <see cref="SwaggerResponseAttribute"/> class.</summary>
/// <param name="httpStatusCode">The HTTP status code for which the result type applies.</param>
/// <param name="responseType">The JSON result type of the MVC or Web API action method.</param>
public SwaggerResponseAttribute(int httpStatusCode, Type responseType)
{
StatusCode = httpStatusCode.ToString(CultureInfo.InvariantCulture);
Type = responseType;
}
/// <summary>Initializes a new instance of the <see cref="SwaggerResponseAttribute"/> class.</summary>
/// <param name="httpStatusCode">The HTTP status code for which the result type applies.</param>
/// <param name="responseType">The JSON result type of the MVC or Web API action method.</param>
public SwaggerResponseAttribute(HttpStatusCode httpStatusCode, Type responseType)
{
StatusCode = ((int)httpStatusCode).ToString(CultureInfo.InvariantCulture);
Type = responseType;
}
/// <summary>Gets the HTTP status code.</summary>
public string StatusCode { get; private set; }
/// <summary>Gets or sets the response description.</summary>
public string Description { get; set; }
/// <summary>Gets or sets the response type.</summary>
public Type Type { get; set; }
/// <summary>Gets or sets a value indicating whether the response can be null; the property is ignored if the specified type is not nullable (default: true).</summary>
public bool IsNullable { get; set; } = true;
}
}
================================================
FILE: src/NSwag.Annotations/WillReadBodyAttribute.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="WillReadBodyAttribute.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
namespace NSwag.Annotations
{
/// <summary>Specifies whether the parameter or class reads the body.</summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Parameter)]
public class WillReadBodyAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="WillReadBodyAttribute"/> class.</summary>
/// <param name="willReadBody">Specifies whether the parameter or class reads the body.</param>
public WillReadBodyAttribute(bool willReadBody)
{
WillReadBody = willReadBody;
}
/// <summary>Gets or sets a value indicating whether the parameter or class reads the body.</summary>
public bool WillReadBody { get; }
}
}
================================================
FILE: src/NSwag.ApiDescription.Client/NSwag.ApiDescription.Client.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>NSwag.ApiDescription.Client</id>
<version>1.0.0</version>
<authors>Rico Suter</authors>
<owners>Rico Suter</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<projectUrl>https://github.com/RicoSuter/NSwag</projectUrl>
<iconUrl>https://raw.githubusercontent.com/RicoSuter/NSwag/master/assets/NuGetIcon.png</iconUrl>
<description>NSwag: The OpenAPI/Swagger API toolchain for .NET and TypeScript</description>
<tags>OpenAPI Swagger AspNetCore Documentation CodeGen TypeScript WebApi AspNet</tags>
<copyright>Copyright © Rico Suter, 2020</copyright>
<repository type="git" url="https://github.com/RicoSuter/NSwag.git"/>
<developmentDependency>true</developmentDependency>
<dependencies>
<dependency id="Microsoft.Extensions.ApiDescription.Client" version="8.0.14" />
<dependency id="NSwag.MSBuild" version="1.0.0" />
</dependencies>
<references />
</metadata>
<files>
<file src="NSwag.ApiDescription.Client.props" target="build" />
<file src="NSwag.ApiDescription.Client.targets" target="build" />
</files>
</package>
================================================
FILE: src/NSwag.ApiDescription.Client/NSwag.ApiDescription.Client.props
================================================
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project>
<!-- Reset well-known metadata of the code generator item groups to make NSwag C# generator the default. -->
<ItemDefinitionGroup>
<OpenApiReference>
<CodeGenerator>NSwagCSharp</CodeGenerator>
<NSwagClientBaseClass>$(NSwagClientBaseClass)</NSwagClientBaseClass>
<NSwagConfigurationClass>$(NSwagConfigurationClass)</NSwagConfigurationClass>
<NSwagGenerateClientClasses>$(NSwagGenerateClientClasses)</NSwagGenerateClientClasses>
<NSwagSuppressClientClassesOutput>$(NSwagSuppressClientClassesOutput)</NSwagSuppressClientClassesOutput>
<NSwagGenerateClientInterfaces>$(NSwagGenerateClientInterfaces)</NSwagGenerateClientInterfaces>
<NSwagSuppressClientInterfacesOutput>$(NSwagSuppressClientInterfacesOutput)</NSwagSuppressClientInterfacesOutput>
<NSwagClientBaseInterface>$(NSwagClientBaseInterface)</NSwagClientBaseInterface>
<NSwagInjectHttpClient>$(NSwagInjectHttpClient)</NSwagInjectHttpClient>
<NSwagDisposeHttpClient>$(NSwagDisposeHttpClient)</NSwagDisposeHttpClient>
<NSwagProtectedMethods>$(NSwagProtectedMethods)</NSwagProtectedMethods>
<NSwagGenerateExceptionClasses>$(NSwagGenerateExceptionClasses)</NSwagGenerateExceptionClasses>
<NSwagExceptionClass>$(NSwagExceptionClass)</NSwagExceptionClass>
<NSwagWrapDtoExceptions>$(NSwagWrapDtoExceptions)</NSwagWrapDtoExceptions>
<NSwagUseHttpClientCreationMethod>$(NSwagUseHttpClientCreationMethod)</NSwagUseHttpClientCreationMethod>
<NSwagHttpClientType>$(NSwagHttpClientType)</NSwagHttpClientType>
<NSwagUseHttpRequestMessageCreationMethod>$(NSwagUseHttpRequestMessageCreationMethod)</NSwagUseHttpRequestMessageCreationMethod>
<NSwagUseBaseUrl>$(NSwagUseBaseUrl)</NSwagUseBaseUrl>
<NSwagGenerateBaseUrlProperty>$(NSwagGenerateBaseUrlProperty)</NSwagGenerateBaseUrlProperty>
<NSwagGenerateSyncMethods>$(NSwagGenerateSyncMethods)</NSwagGenerateSyncMethods>
<NSwagGeneratePrepareRequestAndProcessResponseAsAsyncMethods>$(NSwagGeneratePrepareRequestAndProcessResponseAsAsyncMethods)</NSwagGeneratePrepareRequestAndProcessResponseAsAsyncMethods>
<NSwagExposeJsonSerializerSettings>$(NSwagExposeJsonSerializerSettings)</NSwagExposeJsonSerializerSettings>
<NSwagClientClassAccessModifier>$(NSwagClientClassAccessModifier)</NSwagClientClassAccessModifier>
<NSwagTypeAccessModifier>$(NSwagTypeAccessModifier)</NSwagTypeAccessModifier>
<NSwagGenerateContractsOutput>$(NSwagGenerateContractsOutput)</NSwagGenerateContractsOutput>
<NSwagContractsNamespace>$(NSwagContractsNamespace)</NSwagContractsNamespace>
<NSwagContractsOutputFilePath>$(NSwagContractsOutputFilePath)</NSwagContractsOutputFilePath>
<NSwagParameterDateTimeFormat>$(NSwagParameterDateTimeFormat)</NSwagParameterDateTimeFormat>
<NSwagParameterDateFormat>$(NSwagParameterDateFormat)</NSwagParameterDateFormat>
<NSwagGenerateUpdateJsonSerializerSettingsMethod>$(NSwagGenerateUpdateJsonSerializerSettingsMethod)</NSwagGenerateUpdateJsonSerializerSettingsMethod>
<NSwagUseRequestAndResponseSerializationSettings>$(NSwagUseRequestAndResponseSerializationSettings)</NSwagUseRequestAndResponseSerializationSettings>
<NSwagSerializeTypeInformation>$(NSwagSerializeTypeInformation)</NSwagSerializeTypeInformation>
<NSwagQueryNullValue>$(NSwagQueryNullValue)</NSwagQueryNullValue>
<NSwagOperationGenerationMode>$(NSwagOperationGenerationMode)</NSwagOperationGenerationMode>
<NSwagIncludedOperationIds>$(NSwagIncludedOperationIds)</NSwagIncludedOperationIds>
<NSwagExcludedOperationIds>$(NSwagExcludedOperationIds)</NSwagExcludedOperationIds>
<NSwagAdditionalNamespaceUsages>$(NSwagAdditionalNamespaceUsages)</NSwagAdditionalNamespaceUsages>
<NSwagAdditionalContractNamespaceUsages>$(NSwagAdditionalContractNamespaceUsages)</NSwagAdditionalContractNamespaceUsages>
<NSwagGenerateOptionalParameters>$(NSwagGenerateOptionalParameters)</NSwagGenerateOptionalParameters>
<NSwagGenerateJsonMethods>$(NSwagGenerateJsonMethods)</NSwagGenerateJsonMethods>
<NSwagEnforceFlagEnums>$(NSwagEnforceFlagEnums)</NSwagEnforceFlagEnums>
<NSwagParameterArrayType>$(NSwagParameterArrayType)</NSwagParameterArrayType>
<NSwagParameterDictionaryType>$(NSwagParameterDictionaryType)</NSwagParameterDictionaryType>
<NSwagResponseArrayType>$(NSwagResponseArrayType)</NSwagResponseArrayType>
<NSwagResponseDictionaryType>$(NSwagResponseDictionaryType)</NSwagResponseDictionaryType>
<NSwagWrapResponses>$(NSwagWrapResponses)</NSwagWrapResponses>
<NSwagWrapResponseMethods>$(NSwagWrapResponseMethods)</NSwagWrapResponseMethods>
<NSwagGenerateResponseClasses>$(NSwagGenerateResponseClasses)</NSwagGenerateResponseClasses>
<NSwagResponseClass>$(NSwagResponseClass)</NSwagResponseClass>
<NSwagNamespace>$(NSwagNamespace)</NSwagNamespace>
<NSwagRequiredPropertiesMustBeDefined>$(NSwagRequiredPropertiesMustBeDefined)</NSwagRequiredPropertiesMustBeDefined>
<NSwagDateType>$(NSwagDateType)</NSwagDateType>
<NSwagJsonConverters>$(NSwagJsonConverters)</NSwagJsonConverters>
<NSwagAnyType>$(NSwagAnyType)</NSwagAnyType>
<NSwagDateTimeType>$(NSwagDateTimeType)</NSwagDateTimeType>
<NSwagTimeType>$(NSwagTimeType)</NSwagTimeType>
<NSwagTimeSpanType>$(NSwagTimeSpanType)</NSwagTimeSpanType>
<NSwagArrayType>$(NSwagArrayType)</NSwagArrayType>
<NSwagArrayInstanceType>$(NSwagArrayInstanceType)</NSwagArrayInstanceType>
<NSwagDictionaryType>$(NSwagDictionaryType)</NSwagDictionaryType>
<NSwagDictionaryInstanceType>$(NSwagDictionaryInstanceType)</NSwagDictionaryInstanceType>
<NSwagArrayBaseType>$(NSwagArrayBaseType)</NSwagArrayBaseType>
<NSwagDictionaryBaseType>$(NSwagDictionaryBaseType)</NSwagDictionaryBaseType>
<NSwagClassStyle>$(NSwagClassStyle)</NSwagClassStyle>
<NSwagJsonLibrary>$(NSwagJsonLibrary)</NSwagJsonLibrary>
<NSwagJsonPolymorphicSerializationStyle>$(NSwagJsonPolymorphicSerializationStyle)</NSwagJsonPolymorphicSerializationStyle>
<NSwagGenerateDefaultValues>$(NSwagGenerateDefaultValues)</NSwagGenerateDefaultValues>
<NSwagGenerateDataAnnotations>$(NSwagGenerateDataAnnotations)</NSwagGenerateDataAnnotations>
<NSwagExcludedTypeNames>$(NSwagExcludedTypeNames)</NSwagExcludedTypeNames>
<NSwagExcludedParameterNames>$(NSwagExcludedParameterNames)</NSwagExcludedParameterNames>
<NSwagHandleReferences>$(NSwagHandleReferences)</NSwagHandleReferences>
<NSwagGenerateImmutableArrayProperties>$(NSwagGenerateImmutableArrayProperties)</NSwagGenerateImmutableArrayProperties>
<NSwagGenerateImmutableDictionaryProperties>$(NSwagGenerateImmutableDictionaryProperties)</NSwagGenerateImmutableDictionaryProperties>
<NSwagJsonSerializerSettingsTransformationMethod>$(NSwagJsonSerializerSettingsTransformationMethod)</NSwagJsonSerializerSettingsTransformationMethod>
<NSwagInlineNamedArrays>$(NSwagInlineNamedArrays)</NSwagInlineNamedArrays>
<NSwagInlineNamedDictionaries>$(NSwagInlineNamedDictionaries)</NSwagInlineNamedDictionaries>
<NSwagInlineNamedTuples>$(NSwagInlineNamedTuples)</NSwagInlineNamedTuples>
<NSwagInlineNamedAny>$(NSwagInlineNamedAny)</NSwagInlineNamedAny>
<NSwagGenerateDtoTypes>$(NSwagGenerateDtoTypes)</NSwagGenerateDtoTypes>
<NSwagGenerateOptionalPropertiesAsNullable>$(NSwagGenerateOptionalPropertiesAsNullable)</NSwagGenerateOptionalPropertiesAsNullable>
<NSwagGenerateNullableReferenceTypes>$(NSwagGenerateNullableReferenceTypes)</NSwagGenerateNullableReferenceTypes>
<NSwagTemplateDirectory>$(NSwagTemplateDirectory)</NSwagTemplateDirectory>
<NSwagTypeNameGeneratorType>$(NSwagTypeNameGeneratorType)</NSwagTypeNameGeneratorType>
<NSwagPropertyNameGeneratorType>$(NSwagPropertyNameGeneratorType)</NSwagPropertyNameGeneratorType>
<NSwagEnumNameGeneratorType>$(NSwagEnumNameGeneratorType)</NSwagEnumNameGeneratorType>
<NSwagServiceHost>$(NSwagServiceHost)</NSwagServiceHost>
<NSwagServiceSchemes>$(NSwagServiceSchemes)</NSwagServiceSchemes>
<NSwagOutput>$(NSwagOutput)</NSwagOutput>
<NSwagNewLineBehavior>$(NSwagNewLineBehavior)</NSwagNewLineBehavior>
</OpenApiReference>
<OpenApiProjectReference>
<CodeGenerator>NSwagCSharp</CodeGenerator>
<NSwagClientBaseClass>$(NSwagClientBaseClass)</NSwagClientBaseClass>
<NSwagConfigurationClass>$(NSwagConfigurationClass)</NSwagConfigurationClass>
<NSwagGenerateClientClasses>$(NSwagGenerateClientClasses)</NSwagGenerateClientClasses>
<NSwagSuppressClientClassesOutput>$(NSwagSuppressClientClassesOutput)</NSwagSuppressClientClassesOutput>
<NSwagGenerateClientInterfaces>$(NSwagGenerateClientInterfaces)</NSwagGenerateClientInterfaces>
<NSwagSuppressClientInterfacesOutput>$(NSwagSuppressClientInterfacesOutput)</NSwagSuppressClientInterfacesOutput>
<NSwagClientBaseInterface>$(NSwagClientBaseInterface)</NSwagClientBaseInterface>
<NSwagInjectHttpClient>$(NSwagInjectHttpClient)</NSwagInjectHttpClient>
<NSwagDisposeHttpClient>$(NSwagDisposeHttpClient)</NSwagDisposeHttpClient>
<NSwagProtectedMethods>$(NSwagProtectedMethods)</NSwagProtectedMethods>
<NSwagGenerateExceptionClasses>$(NSwagGenerateExceptionClasses)</NSwagGenerateExceptionClasses>
<NSwagExceptionClass>$(NSwagExceptionClass)</NSwagExceptionClass>
<NSwagWrapDtoExceptions>$(NSwagWrapDtoExceptions)</NSwagWrapDtoExceptions>
<NSwagUseHttpClientCreationMethod>$(NSwagUseHttpClientCreationMethod)</NSwagUseHttpClientCreationMethod>
<NSwagHttpClientType>$(NSwagHttpClientType)</NSwagHttpClientType>
<NSwagUseHttpRequestMessageCreationMethod>$(NSwagUseHttpRequestMessageCreationMethod)</NSwagUseHttpRequestMessageCreationMethod>
<NSwagUseBaseUrl>$(NSwagUseBaseUrl)</NSwagUseBaseUrl>
<NSwagGenerateBaseUrlProperty>$(NSwagGenerateBaseUrlProperty)</NSwagGenerateBaseUrlProperty>
<NSwagGenerateSyncMethods>$(NSwagGenerateSyncMethods)</NSwagGenerateSyncMethods>
<NSwagGeneratePrepareRequestAndProcessResponseAsAsyncMethods>$(NSwagGeneratePrepareRequestAndProcessResponseAsAsyncMethods)</NSwagGeneratePrepareRequestAndProcessResponseAsAsyncMethods>
<NSwagExposeJsonSerializerSettings>$(NSwagExposeJsonSerializerSettings)</NSwagExposeJsonSerializerSettings>
<NSwagClientClassAccessModifier>$(NSwagClientClassAccessModifier)</NSwagClientClassAccessModifier>
<NSwagTypeAccessModifier>$(NSwagTypeAccessModifier)</NSwagTypeAccessModifier>
<NSwagGenerateContractsOutput>$(NSwagGenerateContractsOutput)</NSwagGenerateContractsOutput>
<NSwagContractsNamespace>$(NSwagContractsNamespace)</NSwagContractsNamespace>
<NSwagContractsOutputFilePath>$(NSwagContractsOutputFilePath)</NSwagContractsOutputFilePath>
<NSwagParameterDateTimeFormat>$(NSwagParameterDateTimeFormat)</NSwagParameterDateTimeFormat>
<NSwagParameterDateFormat>$(NSwagParameterDateFormat)</NSwagParameterDateFormat>
<NSwagGenerateUpdateJsonSerializerSettingsMethod>$(NSwagGenerateUpdateJsonSerializerSettingsMethod)</NSwagGenerateUpdateJsonSerializerSettingsMethod>
<NSwagUseRequestAndResponseSerializationSettings>$(NSwagUseRequestAndResponseSerializationSettings)</NSwagUseRequestAndResponseSerializationSettings>
<NSwagSerializeTypeInformation>$(NSwagSerializeTypeInformation)</NSwagSerializeTypeInformation>
<NSwagQueryNullValue>$(NSwagQueryNullValue)</NSwagQueryNullValue>
<NSwagOperationGenerationMode>$(NSwagOperationGenerationMode)</NSwagOperationGenerationMode>
<NSwagIncludedOperationIds>$(NSwagIncludedOperationIds)</NSwagIncludedOperationIds>
<NSwagExcludedOperationIds>$(NSwagExcludedOperationIds)</NSwagExcludedOperationIds>
<NSwagAdditionalNamespaceUsages>$(NSwagAdditionalNamespaceUsages)</NSwagAdditionalNamespaceUsages>
<NSwagAdditionalContractNamespaceUsages>$(NSwagAdditionalContractNamespaceUsages)</NSwagAdditionalContractNamespaceUsages>
<NSwagGenerateOptionalParameters>$(NSwagGenerateOptionalParameters)</NSwagGenerateOptionalParameters>
<NSwagGenerateJsonMethods>$(NSwagGenerateJsonMethods)</NSwagGenerateJsonMethods>
<NSwagEnforceFlagEnums>$(NSwagEnforceFlagEnums)</NSwagEnforceFlagEnums>
<NSwagParameterArrayType>$(NSwagParameterArrayType)</NSwagParameterArrayType>
<NSwagParameterDictionaryType>$(NSwagParameterDictionaryType)</NSwagParameterDictionaryType>
<NSwagResponseArrayType>$(NSwagResponseArrayType)</NSwagResponseArrayType>
<NSwagResponseDictionaryType>$(NSwagResponseDictionaryType)</NSwagResponseDictionaryType>
<NSwagWrapResponses>$(NSwagWrapResponses)</NSwagWrapResponses>
<NSwagWrapResponseMethods>$(NSwagWrapResponseMethods)</NSwagWrapResponseMethods>
<NSwagGenerateResponseClasses>$(NSwagGenerateResponseClasses)</NSwagGenerateResponseClasses>
<NSwagResponseClass>$(NSwagResponseClass)</NSwagResponseClass>
<NSwagNamespace>$(NSwagNamespace)</NSwagNamespace>
<NSwagRequiredPropertiesMustBeDefined>$(NSwagRequiredPropertiesMustBeDefined)</NSwagRequiredPropertiesMustBeDefined>
<NSwagDateType>$(NSwagDateType)</NSwagDateType>
<NSwagJsonConverters>$(NSwagJsonConverters)</NSwagJsonConverters>
<NSwagAnyType>$(NSwagAnyType)</NSwagAnyType>
<NSwagDateTimeType>$(NSwagDateTimeType)</NSwagDateTimeType>
<NSwagTimeType>$(NSwagTimeType)</NSwagTimeType>
<NSwagTimeSpanType>$(NSwagTimeSpanType)</NSwagTimeSpanType>
<NSwagArrayType>$(NSwagArrayType)</NSwagArrayType>
<NSwagArrayInstanceType>$(NSwagArrayInstanceType)</NSwagArrayInstanceType>
<NSwagDictionaryType>$(NSwagDictionaryType)</NSwagDictionaryType>
<NSwagDictionaryInstanceType>$(NSwagDictionaryInstanceType)</NSwagDictionaryInstanceType>
<NSwagArrayBaseType>$(NSwagArrayBaseType)</NSwagArrayBaseType>
<NSwagDictionaryBaseType>$(NSwagDictionaryBaseType)</NSwagDictionaryBaseType>
<NSwagClassStyle>$(NSwagClassStyle)</NSwagClassStyle>
<NSwagJsonLibrary>$(NSwagJsonLibrary)</NSwagJsonLibrary>
<NSwagJsonPolymorphicSerializationStyle>$(NSwagJsonPolymorphicSerializationStyle)</NSwagJsonPolymorphicSerializationStyle>
<NSwagGenerateDefaultValues>$(NSwagGenerateDefaultValues)</NSwagGenerateDefaultValues>
<NSwagGenerateDataAnnotations>$(NSwagGenerateDataAnnotations)</NSwagGenerateDataAnnotations>
<NSwagExcludedTypeNames>$(NSwagExcludedTypeNames)</NSwagExcludedTypeNames>
<NSwagExcludedParameterNames>$(NSwagExcludedParameterNames)</NSwagExcludedParameterNames>
<NSwagHandleReferences>$(NSwagHandleReferences)</NSwagHandleReferences>
<NSwagGenerateImmutableArrayProperties>$(NSwagGenerateImmutableArrayProperties)</NSwagGenerateImmutableArrayProperties>
<NSwagGenerateImmutableDictionaryProperties>$(NSwagGenerateImmutableDictionaryProperties)</NSwagGenerateImmutableDictionaryProperties>
<NSwagJsonSerializerSettingsTransformationMethod>$(NSwagJsonSerializerSettingsTransformationMethod)</NSwagJsonSerializerSettingsTransformationMethod>
<NSwagInlineNamedArrays>$(NSwagInlineNamedArrays)</NSwagInlineNamedArrays>
<NSwagInlineNamedDictionaries>$(NSwagInlineNamedDictionaries)</NSwagInlineNamedDictionaries>
<NSwagInlineNamedTuples>$(NSwagInlineNamedTuples)</NSwagInlineNamedTuples>
<NSwagInlineNamedAny>$(NSwagInlineNamedAny)</NSwagInlineNamedAny>
<NSwagGenerateDtoTypes>$(NSwagGenerateDtoTypes)</NSwagGenerateDtoTypes>
<NSwagGenerateOptionalPropertiesAsNullable>$(NSwagGenerateOptionalPropertiesAsNullable)</NSwagGenerateOptionalPropertiesAsNullable>
<NSwagGenerateNullableReferenceTypes>$(NSwagGenerateNullableReferenceTypes)</NSwagGenerateNullableReferenceTypes>
<NSwagTemplateDirectory>$(NSwagTemplateDirectory)</NSwagTemplateDirectory>
<NSwagTypeNameGeneratorType>$(NSwagTypeNameGeneratorType)</NSwagTypeNameGeneratorType>
<NSwagPropertyNameGeneratorType>$(NSwagPropertyNameGeneratorType)</NSwagPropertyNameGeneratorType>
<NSwagEnumNameGeneratorType>$(NSwagEnumNameGeneratorType)</NSwagEnumNameGeneratorType>
<NSwagServiceHost>$(NSwagServiceHost)</NSwagServiceHost>
<NSwagServiceSchemes>$(NSwagServiceSchemes)</NSwagServiceSchemes>
<NSwagOutput>$(NSwagOutput)</NSwagOutput>
<NSwagNewLineBehavior>$(NSwagNewLineBehavior)</NSwagNewLineBehavior>
</OpenApiProjectReference>
</ItemDefinitionGroup>
</Project>
================================================
FILE: src/NSwag.ApiDescription.Client/NSwag.ApiDescription.Client.targets
================================================
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project>
<PropertyGroup>
<_NSwagCommand>$(NSwagExe)</_NSwagCommand>
<_NSwagCommand
Condition="'$(MSBuildRuntimeType)' == 'Core'">dotnet --roll-forward-on-no-candidate-fx 2 "$(NSwagDir_Net80)/dotnet-nswag.dll"</_NSwagCommand>
<_NSwagCommand
Condition="'$(TargetFramework)' == 'net8.0'">dotnet --roll-forward-on-no-candidate-fx 2 "$(NSwagDir_Net80)/dotnet-nswag.dll"</_NSwagCommand>
<_NSwagCommand
Condition="'$(TargetFramework)' == 'net9.0'">dotnet --roll-forward-on-no-candidate-fx 2 "$(NSwagDir_Net90)/dotnet-nswag.dll"</_NSwagCommand>
</PropertyGroup>
<!-- OpenApiReference support for C# -->
<Target Name="GenerateNSwagCSharp">
<ItemGroup>
<!-- @(CurrentOpenApiReference) item group will never contain more than one item. -->
<CurrentOpenApiReference>
<Command>$(_NSwagCommand) openapi2csclient /className:%(ClassName) /namespace:%(Namespace)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="!%(FirstForGenerator) AND ('%(NSwagGenerateExceptionClasses)' == '')">%(Command) /generateExceptionClasses:false</Command>
<Command Condition="'%(NSwagGenerateExceptionClasses)' != ''">%(Command) /generateExceptionClasses:%(NSwagGenerateExceptionClasses)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command>%(Command) /input:"%(FullPath)" /output:"%(OutputPath)" %(Options)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagClientBaseClass)' != ''">%(Command) /clientBaseClass:%(NSwagClientBaseClass)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagConfigurationClass)' != ''">%(Command) /configurationClass:%(NSwagConfigurationClass)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateClientClasses)' != ''">%(Command) /generateClientClasses:%(NSwagGenerateClientClasses)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagSuppressClientClassesOutput)' != ''">%(Command) /suppressClientClassesOutput:%(NSwagSuppressClientClassesOutput)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateClientInterfaces)' != ''">%(Command) /generateClientInterfaces:%(NSwagGenerateClientInterfaces)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagSuppressClientInterfacesOutput)' != ''">%(Command) /suppressClientInterfacesOutput:%(NSwagSuppressClientInterfacesOutput)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagClientBaseInterface)' != ''">%(Command) /clientBaseInterface:%(NSwagClientBaseInterface)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagInjectHttpClient)' != ''">%(Command) /injectHttpClient:%(NSwagInjectHttpClient)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagDisposeHttpClient)' != ''">%(Command) /disposeHttpClient:%(NSwagDisposeHttpClient)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagProtectedMethods)' != ''">%(Command) /protectedMethods:%(NSwagProtectedMethods)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagExceptionClass)' != ''">%(Command) /exceptionClass:%(NSwagExceptionClass)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagWrapDtoExceptions)' != ''">%(Command) /wrapDtoExceptions:%(NSwagWrapDtoExceptions)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagUseHttpClientCreationMethod)' != ''">%(Command) /useHttpClientCreationMethod:%(NSwagUseHttpClientCreationMethod)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagHttpClientType)' != ''">%(Command) /httpClientType:%(NSwagHttpClientType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagUseHttpRequestMessageCreationMethod)' != ''">%(Command) /useHttpRequestMessageCreationMethod:%(NSwagUseHttpRequestMessageCreationMethod)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagUseBaseUrl)' != ''">%(Command) /useBaseUrl:%(NSwagUseBaseUrl)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateBaseUrlProperty)' != ''">%(Command) /generateBaseUrlProperty:%(NSwagGenerateBaseUrlProperty)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateSyncMethods)' != ''">%(Command) /generateSyncMethods:%(NSwagGenerateSyncMethods)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGeneratePrepareRequestAndProcessResponseAsAsyncMethods)' != ''">%(Command) /generatePrepareRequestAndProcessResponseAsAsyncMethods:%(NSwagGeneratePrepareRequestAndProcessResponseAsAsyncMethods)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagExposeJsonSerializerSettings)' != ''">%(Command) /exposeJsonSerializerSettings:%(NSwagExposeJsonSerializerSettings)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagClientClassAccessModifier)' != ''">%(Command) /clientClassAccessModifier:%(NSwagClientClassAccessModifier)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagTypeAccessModifier)' != ''">%(Command) /typeAccessModifier:%(NSwagTypeAccessModifier)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateContractsOutput)' != ''">%(Command) /generateContractsOutput:%(NSwagGenerateContractsOutput)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagContractsNamespace)' != ''">%(Command) /contractsNamespace:%(NSwagContractsNamespace)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagContractsOutputFilePath)' != ''">%(Command) /contractsOutputFilePath:%(NSwagContractsOutputFilePath)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagParameterDateTimeFormat)' != ''">%(Command) /parameterDateTimeFormat:%(NSwagParameterDateTimeFormat)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagParameterDateFormat)' != ''">%(Command) /parameterDateFormat:%(NSwagParameterDateFormat)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateUpdateJsonSerializerSettingsMethod)' != ''">%(Command) /generateUpdateJsonSerializerSettingsMethod:%(NSwagGenerateUpdateJsonSerializerSettingsMethod)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagUseRequestAndResponseSerializationSettings)' != ''">%(Command) /useRequestAndResponseSerializationSettings:%(NSwagUseRequestAndResponseSerializationSettings)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagSerializeTypeInformation)' != ''">%(Command) /serializeTypeInformation:%(NSwagSerializeTypeInformation)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagQueryNullValue)' != ''">%(Command) /queryNullValue:%(NSwagQueryNullValue)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagOperationGenerationMode)' != ''">%(Command) /operationGenerationMode:%(NSwagOperationGenerationMode)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagIncludedOperationIds)' != ''">%(Command) /includedOperationIds:%(NSwagIncludedOperationIds)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagExcludedOperationIds)' != ''">%(Command) /excludedOperationIds:%(NSwagExcludedOperationIds)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagAdditionalNamespaceUsages)' != ''">%(Command) /additionalNamespaceUsages:%(NSwagAdditionalNamespaceUsages)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagAdditionalContractNamespaceUsages)' != ''">%(Command) /additionalContractNamespaceUsages:%(NSwagAdditionalContractNamespaceUsages)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateOptionalParameters)' != ''">%(Command) /generateOptionalParameters:%(NSwagGenerateOptionalParameters)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateJsonMethods)' != ''">%(Command) /generateJsonMethods:%(NSwagGenerateJsonMethods)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagEnforceFlagEnums)' != ''">%(Command) /enforceFlagEnums:%(NSwagEnforceFlagEnums)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagParameterArrayType)' != ''">%(Command) /parameterArrayType:%(NSwagParameterArrayType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagParameterDictionaryType)' != ''">%(Command) /parameterDictionaryType:%(NSwagParameterDictionaryType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagResponseArrayType)' != ''">%(Command) /responseArrayType:%(NSwagResponseArrayType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagResponseDictionaryType)' != ''">%(Command) /responseDictionaryType:%(NSwagResponseDictionaryType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagWrapResponses)' != ''">%(Command) /wrapResponses:%(NSwagWrapResponses)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagWrapResponseMethods)' != ''">%(Command) /wrapResponseMethods:%(NSwagWrapResponseMethods)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="!%(FirstForGenerator) AND ('%(NSwagGenerateResponseClasses)' == '')">%(Command) /generateResponseClasses:false</Command>
<Command Condition="'%(NSwagGenerateResponseClasses)' != ''">%(Command) /generateResponseClasses:%(NSwagGenerateResponseClasses)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagResponseClass)' != ''">%(Command) /responseClass:%(NSwagResponseClass)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagNamespace)' != ''">%(Command) /namespace:%(NSwagNamespace)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagRequiredPropertiesMustBeDefined)' != ''">%(Command) /requiredPropertiesMustBeDefined:%(NSwagRequiredPropertiesMustBeDefined)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagDateType)' != ''">%(Command) /dateType:%(NSwagDateType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagJsonConverters)' != ''">%(Command) /jsonConverters:%(NSwagJsonConverters)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagAnyType)' != ''">%(Command) /anyType:%(NSwagAnyType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagDateTimeType)' != ''">%(Command) /dateTimeType:%(NSwagDateTimeType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagTimeType)' != ''">%(Command) /timeType:%(NSwagTimeType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagTimeSpanType)' != ''">%(Command) /timeSpanType:%(NSwagTimeSpanType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagArrayType)' != ''">%(Command) /arrayType:%(NSwagArrayType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagArrayInstanceType)' != ''">%(Command) /arrayInstanceType:%(NSwagArrayInstanceType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagDictionaryType)' != ''">%(Command) /dictionaryType:%(NSwagDictionaryType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagDictionaryInstanceType)' != ''">%(Command) /dictionaryInstanceType:%(NSwagDictionaryInstanceType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagArrayBaseType)' != ''">%(Command) /arrayBaseType:%(NSwagArrayBaseType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagDictionaryBaseType)' != ''">%(Command) /dictionaryBaseType:%(NSwagDictionaryBaseType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagClassStyle)' != ''">%(Command) /classStyle:%(NSwagClassStyle)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagJsonLibrary)' != ''">%(Command) /jsonLibrary:%(NSwagJsonLibrary)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagJsonPolymorphicSerializationStyle)' != ''">%(Command) /jsonPolymorphicSerializationStyle:%(NSwagJsonPolymorphicSerializationStyle)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateDefaultValues)' != ''">%(Command) /generateDefaultValues:%(NSwagGenerateDefaultValues)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateDataAnnotations)' != ''">%(Command) /generateDataAnnotations:%(NSwagGenerateDataAnnotations)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagExcludedTypeNames)' != ''">%(Command) /excludedTypeNames:%(NSwagExcludedTypeNames)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagExcludedParameterNames)' != ''">%(Command) /excludedParameterNames:%(NSwagExcludedParameterNames)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagHandleReferences)' != ''">%(Command) /handleReferences:%(NSwagHandleReferences)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateImmutableArrayProperties)' != ''">%(Command) /generateImmutableArrayProperties:%(NSwagGenerateImmutableArrayProperties)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateImmutableDictionaryProperties)' != ''">%(Command) /generateImmutableDictionaryProperties:%(NSwagGenerateImmutableDictionaryProperties)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagJsonSerializerSettingsTransformationMethod)' != ''">%(Command) /jsonSerializerSettingsTransformationMethod:%(NSwagJsonSerializerSettingsTransformationMethod)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagInlineNamedArrays)' != ''">%(Command) /inlineNamedArrays:%(NSwagInlineNamedArrays)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagInlineNamedDictionaries)' != ''">%(Command) /inlineNamedDictionaries:%(NSwagInlineNamedDictionaries)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagInlineNamedTuples)' != ''">%(Command) /inlineNamedTuples:%(NSwagInlineNamedTuples)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagInlineNamedAny)' != ''">%(Command) /inlineNamedAny:%(NSwagInlineNamedAny)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateDtoTypes)' != ''">%(Command) /generateDtoTypes:%(NSwagGenerateDtoTypes)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateOptionalPropertiesAsNullable)' != ''">%(Command) /generateOptionalPropertiesAsNullable:%(NSwagGenerateOptionalPropertiesAsNullable)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagGenerateNullableReferenceTypes)' != ''">%(Command) /generateNullableReferenceTypes:%(NSwagGenerateNullableReferenceTypes)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagTemplateDirectory)' != ''">%(Command) /templateDirectory:%(NSwagTemplateDirectory)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagTypeNameGeneratorType)' != ''">%(Command) /typeNameGeneratorType:%(NSwagTypeNameGeneratorType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagPropertyNameGeneratorType)' != ''">%(Command) /propertyNameGeneratorType:%(NSwagPropertyNameGeneratorType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagEnumNameGeneratorType)' != ''">%(Command) /enumNameGeneratorType:%(NSwagEnumNameGeneratorType)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagServiceHost)' != ''">%(Command) /serviceHost:%(NSwagServiceHost)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagServiceSchemes)' != ''">%(Command) /serviceSchemes:%(NSwagServiceSchemes)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagOutput)' != ''">%(Command) /output:%(NSwagOutput)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command Condition="'%(NSwagNewLineBehavior)' != ''">%(Command) /newLineBehavior:%(NSwagNewLineBehavior)</Command>
</CurrentOpenApiReference>
</ItemGroup>
<Message Importance="high" Text="%0AGenerateNSwagCSharp:" />
<Message Importance="high" Text=" %(CurrentOpenApiReference.Command)" />
<Exec Command="%(CurrentOpenApiReference.Command)" LogStandardErrorAsError="true" />
</Target>
<!-- OpenApiReference support for TypeScript -->
<Target Name="GenerateNSwagTypeScript">
<ItemGroup>
<!-- @(CurrentOpenApiReference) item group will never contain more than one item. -->
<CurrentOpenApiReference>
<Command>$(_NSwagCommand) openapi2tsclient /className:%(ClassName) /namespace:%(Namespace)</Command>
</CurrentOpenApiReference>
<CurrentOpenApiReference>
<Command>%(Command) /input:"%(FullPath)" /output:"%(OutputPath)" %(Options)</Command>
</CurrentOpenApiReference>
</ItemGroup>
<Message Importance="high" Text="%0AGenerateNSwagTypeScript:" />
<Message Importance="high" Text=" %(CurrentOpenApiReference.Command)" />
<Exec Command="%(CurrentOpenApiReference.Command)" LogStandardErrorAsError="true" />
</Target>
</Project>
================================================
FILE: src/NSwag.AspNet.Owin/Middlewares/OpenApiDocumentMiddleware.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerMiddleware.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
using System.Runtime.ExceptionServices;
using Microsoft.Owin;
using NSwag.Generation.WebApi;
namespace NSwag.AspNet.Owin.Middlewares
{
/// <summary>Generates a Swagger specification on a given path.</summary>
public class OpenApiDocumentMiddleware : OwinMiddleware
{
private readonly string _path;
private readonly SwaggerSettings<WebApiOpenApiDocumentGeneratorSettings> _settings;
private readonly IEnumerable<Type> _controllerTypes;
private string _schemaJson;
private ExceptionDispatchInfo _schemaException;
private DateTimeOffset _schemaTimestamp;
/// <summary>Initializes a new instance of the <see cref="OpenApiDocumentMiddleware"/> class.</summary>
/// <param name="next">The next middleware.</param>
/// <param name="path">The path.</param>
/// <param name="controllerTypes">The controller types.</param>
/// <param name="settings">The settings.</param>
public OpenApiDocumentMiddleware(OwinMiddleware next, string path, IEnumerable<Type> controllerTypes, SwaggerSettings<WebApiOpenApiDocumentGeneratorSettings> settings)
: base(next)
{
_path = path.StartsWith('/') ? path : '/' + path;
_controllerTypes = controllerTypes;
_settings = settings;
}
/// <summary>Process an individual request.</summary>
/// <param name="context">The context.</param>
/// <returns>The task.</returns>
public override async Task Invoke(IOwinContext context)
{
if (context.Request.Path.HasValue && string.Equals(context.Request.Path.Value, _path, StringComparison.OrdinalIgnoreCase))
{
var schemaJson = await GetDocumentAsync(context);
context.Response.StatusCode = 200;
context.Response.Headers["Content-Type"] = "application/json; charset=utf-8";
context.Response.Write(schemaJson);
}
else
{
await Next.Invoke(context);
}
}
/// <summary>Generates or gets the cached Swagger specification.</summary>
/// <param name="context">The context.</param>
/// <returns>The Swagger specification.</returns>
protected virtual async Task<string> GetDocumentAsync(IOwinContext context)
{
if (_schemaException != null && _schemaTimestamp + _settings.ExceptionCacheTime > DateTimeOffset.UtcNow)
{
_schemaException.Throw();
}
if (_schemaJson == null)
{
try
{
_schemaJson = await GenerateDocumentAsync(context);
_schemaException = null;
_schemaTimestamp = DateTimeOffset.UtcNow;
}
catch (Exception exception)
{
_schemaJson = null;
_schemaException = ExceptionDispatchInfo.Capture(exception);
_schemaTimestamp = DateTimeOffset.UtcNow;
throw;
}
}
return _schemaJson;
}
/// <summary>Generates the Swagger specification.</summary>
/// <param name="context">The context.</param>
/// <returns>The Swagger specification.</returns>
protected virtual async Task<string> GenerateDocumentAsync(IOwinContext context)
{
var settings = _settings.CreateGeneratorSettings(null);
var generator = new WebApiOpenApiDocumentGenerator(settings);
var document = await generator.GenerateForControllersAsync(_controllerTypes);
if (_settings.MiddlewareBasePath != null)
{
document.Host = context.Request.Host.Value ?? "";
document.Schemes.Add(context.Request.Scheme == "http" ? OpenApiSchema.Http : OpenApiSchema.Https);
document.BasePath = context.Request.PathBase.Value?.Substring(0, context.Request.PathBase.Value.Length - (_settings.MiddlewareBasePath?.Length ?? 0)) ?? "";
}
else
{
document.Servers.Clear();
document.Servers.Add(new OpenApiServer
{
Url = context.Request.GetServerUrl()
});
}
_settings.PostProcess?.Invoke(document);
var schemaJson = document.ToJson();
return schemaJson;
}
}
}
================================================
FILE: src/NSwag.AspNet.Owin/Middlewares/RedirectToIndexMiddleware.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="RedirectMiddleware.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
using Microsoft.Owin;
namespace NSwag.AspNet.Owin.Middlewares
{
internal sealed class RedirectToIndexMiddleware : OwinMiddleware
{
private readonly string _internalUiRoute;
private readonly string _internalSwaggerRoute;
private readonly Func<string, IOwinRequest, string> _transformToExternal;
public RedirectToIndexMiddleware(OwinMiddleware next, string internalUiRoute, string internalSwaggerRoute, Func<string, IOwinRequest, string> transformToExternal)
: base(next)
{
_internalUiRoute = internalUiRoute;
_internalSwaggerRoute = internalSwaggerRoute;
_transformToExternal = transformToExternal;
}
public override async Task Invoke(IOwinContext context)
{
if (context.Request.Path.HasValue &&
string.Equals(context.Request.Path.Value.Trim('/'), _internalUiRoute.Trim('/'), StringComparison.OrdinalIgnoreCase))
{
context.Response.StatusCode = 302;
var suffix = !string.IsNullOrWhiteSpace(_internalSwaggerRoute) ? "?url=" + _transformToExternal(_internalSwaggerRoute, context.Request) : "";
var path = _transformToExternal(_internalUiRoute, context.Request);
context.Response.Headers.Set("Location", (path != "/" ? path : "") + "/index.html" + suffix);
}
else
{
await Next.Invoke(context);
}
}
}
}
================================================
FILE: src/NSwag.AspNet.Owin/Middlewares/SwaggerUiIndexMiddleware.cs
================================================
using Microsoft.Owin;
using NSwag.Generation;
namespace NSwag.AspNet.Owin.Middlewares
{
internal sealed class SwaggerUiIndexMiddleware<T> : OwinMiddleware
where T : OpenApiDocumentGeneratorSettings, new()
{
private readonly string _indexPath;
private readonly SwaggerUiSettingsBase<T> _settings;
private readonly string _resourcePath;
public SwaggerUiIndexMiddleware(OwinMiddleware next, string indexPath, SwaggerUiSettingsBase<T> settings, string resourcePath)
: base(next)
{
_indexPath = indexPath;
_settings = settings;
_resourcePath = resourcePath;
}
public override async Task Invoke(IOwinContext context)
{
if (context.Request.Path.HasValue && string.Equals(context.Request.Path.Value.Trim('/'), _indexPath.Trim('/'), StringComparison.OrdinalIgnoreCase))
{
var stream = typeof(SwaggerUiIndexMiddleware<T>).Assembly.GetManifestResourceStream(_resourcePath);
using var reader = new StreamReader(stream);
context.Response.Headers["Content-Type"] = "text/html; charset=utf-8";
context.Response.StatusCode = 200;
await context.Response.WriteAsync(await _settings.TransformHtmlAsync(reader.ReadToEnd(), context.Request, CancellationToken.None));
}
else
{
await Next.Invoke(context);
}
}
}
}
================================================
FILE: src/NSwag.AspNet.Owin/NSwag.AspNet.Owin.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<DefineConstants>$(DefineConstants);AspNetOwin</DefineConstants>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="ReDoc\**\*" Exclude="bin\**;obj\**;**\*.xproj;packages\**;@(EmbeddedResource)" />
<EmbeddedResource Include="SwaggerUi\**\*" Exclude="**\swagger-ui-es-*.js;bin\**;obj\**;**\*.xproj;packages\**;@(EmbeddedResource)" />
</ItemGroup>
<ItemGroup>
<Compile Include="..\NSwag.AspNetCore\HttpRequestExtension.cs" Link="HttpRequestExtension.cs" />
<Compile Include="..\NSwag.AspNetCore\OAuth2ClientSettings.cs" Link="OAuth2ClientSettings.cs" />
<Compile Include="..\NSwag.AspNetCore\ReDocSettings.cs" Link="ReDocSettings.cs" />
<Compile Include="..\NSwag.AspNetCore\SwaggerSettings.cs" Link="SwaggerSettings.cs" />
<Compile Include="..\NSwag.AspNetCore\SwaggerUiSettings.cs" Link="SwaggerUiSettings.cs" />
<Compile Include="..\NSwag.AspNetCore\SwaggerUiSettingsBase.cs" Link="SwaggerUiSettingsBase.cs" />
<Compile Include="..\NSwag.Core\Polyfills.cs" Link="Polyfills.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Owin.StaticFiles" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NSwag.Generation.WebApi\NSwag.Generation.WebApi.csproj" />
</ItemGroup>
</Project>
================================================
FILE: src/NSwag.AspNet.Owin/ReDoc/index.html
================================================
<!DOCTYPE html>
<html>
<head>
<title>{DocumentTitle}</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700|Roboto:300,400,700" rel="stylesheet">
{CustomStyle}
<style>
body {
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="redoc-container"></div>
<script src="https://cdn.jsdelivr.net/npm/redoc/bundles/redoc.standalone.js"></script>
<script>
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = undefined;
}
var options = {
{AdditionalSettings}
};
Redoc.init(url, options, document.getElementById('redoc-container'));
</script>
{CustomScript}
</body>
</html>
================================================
FILE: src/NSwag.AspNet.Owin/SwaggerExtensions.cs
================================================
//-----------------------------------------------------------------------
// <copyright file="SwaggerExtensions.cs" company="NSwag">
// Copyright (c) Rico Suter. All rights reserved.
// </copyright>
// <license>https://github.com/RicoSuter/NSwag/blob/master/LICENSE.md</license>
// <author>Rico Suter, mail@rsuter.com</author>
//-----------------------------------------------------------------------
using System.Reflection;
using Microsoft.Owin;
using Microsoft.Owin.Extensions;
using Microsoft.Owin.FileSystems;
using Microsoft.Owin.StaticFiles;
using NSwag.AspNet.Owin.Middlewares;
using NSwag.Generation.WebApi;
using Owin;
namespace NSwag.AspNet.Owin
{
/// <summary>Provides OWIN extensions to enable Swagger UI.</summary>
public static class SwaggerExtensions
{
#region Swagger
/// <summary>Adds the OpenAPI/Swagger generator to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="webApiAssembly">The Web API assembly to search for controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseOpenApi(
this IAppBuilder app,
Assembly webApiAssembly,
Action<SwaggerSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
return app.UseOpenApi([webApiAssembly], configure);
}
/// <summary>Adds the OpenAPI/Swagger generator to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="webApiAssemblies">The Web API assemblies to search for controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseOpenApi(
this IAppBuilder app,
IEnumerable<Assembly> webApiAssemblies,
Action<SwaggerSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
var controllerTypes = webApiAssemblies.SelectMany(WebApiOpenApiDocumentGenerator.GetControllerClasses);
return app.UseOpenApi(controllerTypes, configure);
}
/// <summary>Adds the OpenAPI/Swagger generator to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="controllerTypes">The Web API controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseOpenApi(
this IAppBuilder app,
IEnumerable<Type> controllerTypes,
Action<SwaggerSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
var settings = new SwaggerSettings<WebApiOpenApiDocumentGeneratorSettings>();
configure?.Invoke(settings);
app.Use<OpenApiDocumentMiddleware>(settings.ActualSwaggerDocumentPath, controllerTypes, settings);
app.UseStageMarker(PipelineStage.MapHandler);
return app;
}
#endregion
#region SwaggerUi
/// <summary>Adds the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="webApiAssembly">The Web API assembly to search for controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseSwaggerUi(
this IAppBuilder app,
Assembly webApiAssembly,
Action<SwaggerUiSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
return app.UseSwaggerUi([webApiAssembly], configure);
}
/// <summary>Adds the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="webApiAssemblies">The Web API assemblies to search for controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseSwaggerUi(
this IAppBuilder app,
IEnumerable<Assembly> webApiAssemblies,
Action<SwaggerUiSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
var controllerTypes = webApiAssemblies.SelectMany(WebApiOpenApiDocumentGenerator.GetControllerClasses);
return app.UseSwaggerUi(controllerTypes, configure);
}
/// <summary>Adds the Swagger UI (only) to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseSwaggerUi(
this IAppBuilder app,
Action<SwaggerUiSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
return app.UseSwaggerUi((IEnumerable<Type>)null, configure);
}
/// <summary>Adds the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="controllerTypes">The Web API controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseSwaggerUi(
this IAppBuilder app,
IEnumerable<Type> controllerTypes,
Action<SwaggerUiSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
var settings = new SwaggerUiSettings<WebApiOpenApiDocumentGeneratorSettings>();
configure?.Invoke(settings);
if (controllerTypes != null)
{
app.Use<OpenApiDocumentMiddleware>(settings.ActualSwaggerDocumentPath, controllerTypes, settings);
}
app.Use<RedirectToIndexMiddleware>(settings.ActualSwaggerUiPath, settings.ActualSwaggerDocumentPath, settings.TransformToExternalPath);
app.Use<SwaggerUiIndexMiddleware<WebApiOpenApiDocumentGeneratorSettings>>(settings.ActualSwaggerUiPath + "/index.html", settings, "NSwag.AspNet.Owin.SwaggerUi.index.html");
app.UseFileServer(new FileServerOptions
{
RequestPath = new PathString(settings.ActualSwaggerUiPath),
FileSystem = new EmbeddedResourceFileSystem(typeof(SwaggerExtensions).Assembly, "NSwag.AspNet.Owin.SwaggerUi")
});
app.UseStageMarker(PipelineStage.MapHandler);
return app;
}
#endregion
#region ReDoc
/// <summary>Adds the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="webApiAssembly">The Web API assembly to search for controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseSwaggerReDoc(
this IAppBuilder app,
Assembly webApiAssembly,
Action<ReDocSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
return app.UseSwaggerReDoc([webApiAssembly], configure);
}
/// <summary>Adds the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="webApiAssemblies">The Web API assemblies to search for controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseSwaggerReDoc(
this IAppBuilder app,
IEnumerable<Assembly> webApiAssemblies,
Action<ReDocSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
var controllerTypes = webApiAssemblies.SelectMany(WebApiOpenApiDocumentGenerator.GetControllerClasses);
return app.UseSwaggerReDoc(controllerTypes, configure);
}
/// <summary>Adds the Swagger UI (only) to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseSwaggerReDoc(
this IAppBuilder app,
Action<ReDocSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
return app.UseSwaggerReDoc((IEnumerable<Type>)null, configure);
}
/// <summary>Adds the Swagger generator and Swagger UI to the OWIN pipeline.</summary>
/// <param name="app">The app.</param>
/// <param name="controllerTypes">The Web API controller types.</param>
/// <param name="configure">Configure the Swagger settings.</param>
/// <returns>The app builder.</returns>
public static IAppBuilder UseSwaggerReDoc(
this IAppBuilder app,
IEnumerable<Type> controllerTypes,
Action<ReDocSettings<WebApiOpenApiDocumentGeneratorSettings>> configure = null)
{
var settings = new ReDocSettings<WebApiOpenApiDocumentGeneratorSettings>();
configure?.Invoke(settings);
if (controllerTypes != null)
{
app.Use<OpenApiDocumentMiddleware>(settings.ActualSwaggerDocumentPath, controllerTypes, settings);
}
app.Use<RedirectToIndexMiddleware>(settings.ActualSwaggerUiPath, settings.ActualSwaggerDocumentPath, settings.TransformToExternalPath);
app.Use<SwaggerUiIndexMiddleware<WebApiOpenApiDocumentGeneratorSettings>>(settings.ActualSwaggerUiPath + "/index.html", settings, "NSwag.AspNet.Owin.ReDoc.index.html");
app.UseFileServer(new FileServerOptions
{
RequestPath = new PathString(settings.ActualSwaggerUiPath),
FileSystem = new EmbeddedResourceFileSystem(typeof(SwaggerExtensions).Assembly, "NSwag.AspNet.Owin.ReDoc")
});
app.UseStageMarker(PipelineStage.MapHandler);
return app;
}
#endregion
}
}
================================================
FILE: src/NSwag.AspNet.Owin/SwaggerUi/index.css
================================================
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
background: #fafafa;
}
================================================
FILE: src/NSwag.AspNet.Owin/SwaggerUi/index.html
================================================
<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{DocumentTitle}</title>
<link rel="stylesheet" type="text/css" href="./swagger-ui.css">
<link rel="stylesheet" type="text/css" href="index.css" />
<link rel="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
{CustomStyle}
{CustomHeadContent}
</head>
<body>
<div id="swagger-ui"></div>
<script src="./swagger-ui-bundle.js" charset="UTF-8"> </script>
<script src="./swagger-ui-standalone-preset.js" charset="UTF-8"> </script>
<script>
window.onload = function() {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = undefined;
}
var urls = {Urls};
// Build a system
var ui = SwaggerUIBundle({
url: url,
urls: urls,
validatorUrl: {ValidatorUrl},
oauth2RedirectUrl: {RedirectUrl},
{AdditionalSettings}
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
});
if ("{ClientId}") {
var clientSecret = "{ClientSecret}";
ui.initOAuth({
clientId: "{ClientId}",
clientSecret: clientSecret ? clientSecret : undefined,
realm: "{Realm}",
appName: "{AppName}",
scopeSeparator: "{ScopeSeparator}",
scopes: {Scopes},
additionalQueryStringParams: {AdditionalQueryStringParameters},
usePkceWithAuthorizationCodeGrant: {UsePkceWithAuthorizationCodeGrant}
});
}
window.ui = ui;
}
</script>
{CustomScript}
</body>
</html>
================================================
FILE: src/NSwag.AspNet.Owin/SwaggerUi/oauth2-redirect.html
================================================
<!doctype html>
<html lang="en-US">
<head>
<title>Swagger UI: OAuth2 Redirect</title>
</head>
<body>
<script>
'use strict';
function run () {
var oauth2 = window.opener.swaggerUIRedirectOauth2;
var sentState = oauth2.state;
var redirectUrl = oauth2.redirectUrl;
var isValid, qp, arr;
if (/code|token|error/.test(window.location.hash)) {
qp = window.location.hash.substring(1).replace('?', '&');
} else {
qp = location.search.substring(1);
}
arr = qp.split("&");
arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';});
qp = qp ? JSON.parse('{' + arr.join() + '}',
function (key, value) {
return key === "" ? value : decodeURIComponent(value);
}
) : {};
isValid = qp.state === sentState;
if ((
oauth2.auth.schema.get("flow") === "accessCode" ||
oauth2.auth.schema.get("flow") === "authorizationCode" ||
oauth2.auth.schema.get("flow") === "authorization_code"
) && !oauth2.auth.code) {
if (!isValid) {
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "warning",
message: "Authorization may be unsafe, passed state was changed in server. The passed state wasn't returned from auth server."
});
}
if (qp.code) {
delete oauth2.state;
oauth2.auth.code = qp.code;
oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
} else {
let oauthErrorMsg;
if (qp.error) {
oauthErrorMsg = "["+qp.error+"]: " +
(qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
(qp.error_uri ? "More info: "+qp.error_uri : "");
}
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "error",
message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server."
});
}
} else {
oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
}
window.close();
}
if (document.readyState !== 'loading') {
run();
} else {
document.addEventListener('DOMContentLoaded', function () {
run();
});
}
</script>
</body>
</html>
================================================
FILE: src/NSwag.AspNet.Owin/SwaggerUi/swagger-ui-bundle.js
================================================
/*! For license information please see swagger-ui-bundle.js.LICENSE.txt */
!function webpackUniversalModuleDefinition(s,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define([],o):"object"==typeof exports?exports.SwaggerUIBundle=o():s.SwaggerUIBundle=o()}(this,(()=>(()=>{var s={251:(s,o)=>{o.read=function(s,o,i,a,u){var _,w,x=8*u-a-1,C=(1<<x)-1,j=C>>1,L=-7,B=i?u-1:0,$=i?-1:1,V=s[o+B];for(B+=$,_=V&(1<<-L)-1,V>>=-L,L+=x;L>0;_=256*_+s[o+B],B+=$,L-=8);for(w=_&(1<<-L)-1,_>>=-L,L+=a;L>0;w=256*w+s[o+B],B+=$,L-=8);if(0===_)_=1-j;else{if(_===C)return w?NaN:1/0*(V?-1:1);w+=Math.pow(2,a),_-=j}return(V?-1:1)*w*Math.pow(2,_-a)},o.write=function(s,o,i,a,u,_){var w,x,C,j=8*_-u-1,L=(1<<j)-1,B=L>>1,$=23===u?Math.pow(2,-24)-Math.pow(2,-77):0,V=a?0:_-1,U=a?1:-1,z=o<0||0===o&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(x=isNaN(o)?1:0,w=L):(w=Math.floor(Math.log(o)/Math.LN2),o*(C=Math.pow(2,-w))<1&&(w--,C*=2),(o+=w+B>=1?$/C:$*Math.pow(2,1-B))*C>=2&&(w++,C/=2),w+B>=L?(x=0,w=L):w+B>=1?(x=(o*C-1)*Math.pow(2,u),w+=B):(x=o*Math.pow(2,B-1)*Math.pow(2,u),w=0));u>=8;s[i+V]=255&x,V+=U,x/=256,u-=8);for(w=w<<u|x,j+=u;j>0;s[i+V]=255&w,V+=U,w/=256,j-=8);s[i+V-U]|=128*z}},462:(s,o,i)=>{"use strict";var a=i(40975);s.exports=a},659:(s,o,i)=>{var a=i(51873),u=Object.prototype,_=u.hasOwnProperty,w=u.toString,x=a?a.toStringTag:void 0;s.exports=function getRawTag(s){var o=_.call(s,x),i=s[x];try{s[x]=void 0;var a=!0}catch(s){}var u=w.call(s);return a&&(o?s[x]=i:delete s[x]),u}},694:(s,o,i)=>{"use strict";i(91599);var a=i(37257);i(12560),s.exports=a},953:(s,o,i)=>{"use strict";s.exports=i(53375)},1733:s=>{var o=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;s.exports=function asciiWords(s){return s.match(o)||[]}},1882:(s,o,i)=>{var a=i(72552),u=i(23805);s.exports=function isFunction(s){if(!u(s))return!1;var o=a(s);return"[object Function]"==o||"[object GeneratorFunction]"==o||"[object AsyncFunction]"==o||"[object Proxy]"==o}},1907:(s,o,i)=>{"use strict";var a=i(41505),u=Function.prototype,_=u.call,w=a&&u.bind.bind(_,_);s.exports=a?w:function(s){return function(){return _.apply(s,arguments)}}},2205:function(s,o,i){var a;a=void 0!==i.g?i.g:this,s.exports=function(s){if(s.CSS&&s.CSS.escape)return s.CSS.escape;var cssEscape=function(s){if(0==arguments.length)throw new TypeError("`CSS.escape` requires an argument.");for(var o,i=String(s),a=i.length,u=-1,_="",w=i.charCodeAt(0);++u<a;)0!=(o=i.charCodeAt(u))?_+=o>=1&&o<=31||127==o||0==u&&o>=48&&o<=57||1==u&&o>=48&&o<=57&&45==w?"\\"+o.toString(16)+" ":0==u&&1==a&&45==o||!(o>=128||45==o||95==o||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122)?"\\"+i.charAt(u):i.charAt(u):_+="�";return _};return s.CSS||(s.CSS={}),s.CSS.escape=cssEscape,cssEscape}(a)},2209:(s,o,i)=>{"use strict";var a,u=i(9404),_=function productionTypeChecker(){invariant(!1,"ImmutablePropTypes type checking code is stripped in production.")};_.isRequired=_;var w=function getProductionTypeChecker(){return _};function getPropType(s){var o=typeof s;return Array.isArray(s)?"array":s instanceof RegExp?"object":s instanceof u.Iterable?"Immutable."+s.toSource().split(" ")[0]:o}function createChainableTypeChecker(s){function checkType(o,i,a,u,_,w){for(var x=arguments.length,C=Array(x>6?x-6:0),j=6;j<x;j++)C[j-6]=arguments[j];return w=w||a,u=u||"<<anonymous>>",null!=i[a]?s.apply(void 0,[i,a,u,_,w].concat(C)):o?new Error("Required "+_+" `"+w+"` was not specified in `"+u+"`."):void 0}var o=checkType.bind(null,!1);return o.isRequired=checkType.bind(null,!0),o}function createIterableSubclassTypeChecker(s,o){return function createImmutableTypeChecker(s,o){return createChainableTypeChecker((function validate(i,a,u,_,w){var x=i[a];if(!o(x)){var C=getPropType(x);return new Error("Invalid "+_+" `"+w+"` of type `"+C+"` supplied to `"+u+"`, expected `"+s+"`.")}return null}))}("Iterable."+s,(function(s){return u.Iterable.isIterable(s)&&o(s)}))}(a={listOf:w,mapOf:w,orderedMapOf:w,setOf:w,orderedSetOf:w,stackOf:w,iterableOf:w,recordOf:w,shape:w,contains:w,mapContains:w,orderedMapContains:w,list:_,map:_,orderedMap:_,set:_,orderedSet:_,stack:_,seq:_,record:_,iterable:_}).iterable.indexed=createIterableSubclassTypeChecker("Indexed",u.Iterable.isIndexed),a.iterable.keyed=createIterableSubclassTypeChecker("Keyed",u.Iterable.isKeyed),s.exports=a},2404:(s,o,i)=>{var a=i(60270);s.exports=function isEqual(s,o){return a(s,o)}},2523:s=>{s.exports=function baseFindIndex(s,o,i,a){for(var u=s.length,_=i+(a?1:-1);a?_--:++_<u;)if(o(s[_],_,s))return _;return-1}},2532:(s,o,i)=>{"use strict";var a=i(45951),u=Object.defineProperty;s.exports=function(s,o){try{u(a,s,{value:o,configurable:!0,writable:!0})}catch(i){a[s]=o}return o}},2694:(s,o,i)=>{"use strict";var a=i(6925);function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction,s.exports=function(){function shim(s,o,i,u,_,w){if(w!==a){var x=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw x.name="Invariant Violation",x}}function getShim(){return shim}shim.isRequired=shim;var s={array:shim,bigint:shim,bool:shim,func:shim,number:shim,object:shim,string:shim,symbol:shim,any:shim,arrayOf:getShim,element:shim,elementType:shim,instanceOf:getShim,node:shim,objectOf:getShim,oneOf:getShim,oneOfType:getShim,shape:getShim,exact:getShim,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return s.PropTypes=s,s}},2874:s=>{s.exports={}},2875:(s,o,i)=>{"use strict";var a=i(23045),u=i(80376);s.exports=Object.keys||function keys(s){return a(s,u)}},2955:(s,o,i)=>{"use strict";var a,u=i(65606);function _defineProperty(s,o,i){return(o=function _toPropertyKey(s){var o=function _toPrimitive(s,o){if("object"!=typeof s||null===s)return s;var i=s[Symbol.toPrimitive];if(void 0!==i){var a=i.call(s,o||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===o?String:Number)(s)}(s,"string");return"symbol"==typeof o?o:String(o)}(o))in s?Object.defineProperty(s,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):s[o]=i,s}var _=i(86238),w=Symbol("lastResolve"),x=Symbol("lastReject"),C=Symbol("error"),j=Symbol("ended"),L=Symbol("lastPromise"),B=Symbol("handlePromise"),$=Symbol("stream");function createIterResult(s,o){return{value:s,done:o}}function readAndResolve(s){var o=s[w];if(null!==o){var i=s[$].read();null!==i&&(s[L]=null,s[w]=null,s[x]=null,o(createIterResult(i,!1)))}}function onReadable(s){u.nextTick(readAndResolve,s)}var V=Object.getPrototypeOf((function(){})),U=Object.setPrototypeOf((_defineProperty(a={get stream(){return this[$]},next:function next(){var s=this,o=this[C];if(null!==o)return Promise.reject(o);if(this[j])return Promise.resolve(createIterResult(void 0,!0));if(this[$].destroyed)return new Promise((function(o,i){u.nextTick((function(){s[C]?i(s[C]):o(createIterResult(void 0,!0))}))}));var i,a=this[L];if(a)i=new Promise(function wrapForNext(s,o){return function(i,a){s.then((function(){o[j]?i(createIterResult(void 0,!0)):o[B](i,a)}),a)}}(a,this));else{var _=this[$].read();if(null!==_)return Promise.resolve(createIterResult(_,!1));i=new Promise(this[B])}return this[L]=i,i}},Symbol.asyncIterator,(function(){return this})),_defineProperty(a,"return",(function _return(){var s=this;return new Promise((function(o,i){s[$].destroy(null,(function(s){s?i(s):o(createIterResult(void 0,!0))}))}))})),a),V);s.exports=function createReadableStreamAsyncIterator(s){var o,i=Object.create(U,(_defineProperty(o={},$,{value:s,writable:!0}),_defineProperty(o,w,{value:null,writable:!0}),_defineProperty(o,x,{value:null,writable:!0}),_defineProperty(o,C,{value:null,writable:!0}),_defineProperty(o,j,{value:s._readableState.endEmitted,writable:!0}),_defineProperty(o,B,{value:function value(s,o){var a=i[$].read();a?(i[L]=null,i[w]=null,i[x]=null,s(createIterResult(a,!1))):(i[w]=s,i[x]=o)},writable:!0}),o));return i[L]=null,_(s,(function(s){if(s&&"ERR_STREAM_PREMATURE_CLOSE"!==s.code){var o=i[x];return null!==o&&(i[L]=null,i[w]=null,i[x]=null,o(s)),void(i[C]=s)}var a=i[w];null!==a&&(i[L]=null,i[w]=null,i[x]=null,a(createIterResult(void 0,!0))),i[j]=!0})),s.on("readable",onReadable.bind(null,i)),i}},3110:(s,o,i)=>{const a=i(5187),u=i(85015),_=i(98023),w=i(53812),x=i(23805),C=i(85105),j=i(86804);class Namespace{constructor(s){this.elementMap={},this.elementDetection=[],this.Element=j.Element,this.KeyValuePair=j.KeyValuePair,s&&s.noDefault||this.useDefault(),this._attributeElementKeys=[],this._attributeElementArrayKeys=[]}use(s){return s.namespace&&s.namespace({base:this}),s.load&&s.load({base:this}),this}useDefault(){return this.register("null",j.NullElement).register("string",j.StringElement).register("number",j.NumberElement).register("boolean",j.BooleanElement).register("array",j.ArrayElement).register("object",j.ObjectElement).register("member",j.MemberElement).register("ref",j.RefElement).register("link",j.LinkElement),this.detect(a,j.NullElement,!1).detect(u,j.StringElement,!1).detect(_,j.NumberElement,!1).detect(w,j.BooleanElement,!1).detect(Array.isArray,j.ArrayElement,!1).detect(x,j.ObjectElement,!1),this}register(s,o){return this._elements=void 0,this.elementMap[s]=o,this}unregister(s){return this._elements=void 0,delete this.elementMap[s],this}detect(s,o,i){return void 0===i||i?this.elementDetection.unshift([s,o]):this.elementDetection.push([s,o]),this}toElement(s){if(s instanceof this.Element)return s;let o;for(let i=0;i<this.elementDetection.length;i+=1){const a=this.elementDetection[i][0],u=this.elementDetection[i][1];if(a(s)){o=new u(s);break}}return o}getElementClass(s){const o=this.elementMap[s];return void 0===o?this.Element:o}fromRefract(s){return this.serialiser.deserialise(s)}toRefract(s){return this.serialiser.serialise(s)}get elements(){return void 0===this._elements&&(this._elements={Element:this.Element},Object.keys(this.elementMap).forEach((s=>{const o=s[0].toUpperCase()+s.substr(1);this._elements[o]=this.elementMap[s]}))),this._elements}get serialiser(){return new C(this)}}C.prototype.Namespace=Namespace,s.exports=Namespace},3121:(s,o,i)=>{"use strict";var a=i(65482),u=Math.min;s.exports=function(s){var o=a(s);return o>0?u(o,9007199254740991):0}},3209:(s,o,i)=>{var a=i(91596),u=i(53320),_=i(36306),w="__lodash_placeholder__",x=128,C=Math.min;s.exports=function mergeData(s,o){var i=s[1],j=o[1],L=i|j,B=L<131,$=j==x&&8==i||j==x&&256==i&&s[7].length<=o[8]||384==j&&o[7].length<=o[8]&&8==i;if(!B&&!$)return s;1&j&&(s[2]=o[2],L|=1&i?0:4);var V=o[3];if(V){var U=s[3];s[3]=U?a(U,V,o[4]):V,s[4]=U?_(s[3],w):o[4]}return(V=o[5])&&(U=s[5],s[5]=U?u(U,V,o[6]):V,s[6]=U?_(s[5],w):o[6]),(V=o[7])&&(s[7]=V),j&x&&(s[8]=null==s[8]?o[8]:C(s[8],o[8])),null==s[9]&&(s[9]=o[9]),s[0]=o[0],s[1]=L,s}},3650:(s,o,i)=>{var a=i(74335)(Object.keys,Object);s.exports=a},3656:(s,o,i)=>{s=i.nmd(s);var a=i(9325),u=i(89935),_=o&&!o.nodeType&&o,w=_&&s&&!s.nodeType&&s,x=w&&w.exports===_?a.Buffer:void 0,C=(x?x.isBuffer:void 0)||u;s.exports=C},4509:(s,o,i)=>{var a=i(12651);s.exports=function mapCacheHas(s){return a(this,s).has(s)}},4640:s=>{"use strict";var o=Strin
gitextract_kvs_iazl/
├── .gitattributes
├── .github/
│ ├── FUNDING.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.md
│ │ └── feature_request.md
│ └── workflows/
│ ├── build.yml
│ └── pr.yml
├── .gitignore
├── .nuke/
│ ├── build.schema.json
│ └── parameters.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Directory.Build.props
├── Directory.Packages.props
├── LICENSE.md
├── README.md
├── assets/
│ ├── LayerDiagram.vsdx
│ ├── NSwagIcon.metrop
│ └── ToolchainDiagram.vsdx
├── azure-pipelines.yml
├── build/
│ ├── Build.CI.GitHubActions.cs
│ ├── Build.Pack.cs
│ ├── Build.Publish.cs
│ ├── Build.cs
│ ├── Configuration.cs
│ ├── Directory.Build.props
│ ├── Directory.Build.targets
│ └── _build.csproj
├── build.cmd
├── build.ps1
├── build.sh
├── docs/
│ └── tutorials/
│ └── GenerateProxyClientWithCLI/
│ ├── generate-proxy-client.md
│ └── sample.nswag
├── global.json
└── src/
├── NSwag.Annotations/
│ ├── NSwag.Annotations.csproj
│ ├── OpenApiBodyParameterAttribute.cs
│ ├── OpenApiControllerAttribute.cs
│ ├── OpenApiExtensionDataAttribute.cs
│ ├── OpenApiFileAttribute.cs
│ ├── OpenApiIgnoreAttribute.cs
│ ├── OpenApiOperationAttribute.cs
│ ├── OpenApiOperationProcessorAttribute.cs
│ ├── OpenApiTagAttribute.cs
│ ├── OpenApiTagsAttribute.cs
│ ├── ResponseTypeAttribute.cs
│ ├── SwaggerDefaultResponseAttribute.cs
│ ├── SwaggerResponseAttribute.cs
│ └── WillReadBodyAttribute.cs
├── NSwag.ApiDescription.Client/
│ ├── NSwag.ApiDescription.Client.nuspec
│ ├── NSwag.ApiDescription.Client.props
│ └── NSwag.ApiDescription.Client.targets
├── NSwag.AspNet.Owin/
│ ├── Middlewares/
│ │ ├── OpenApiDocumentMiddleware.cs
│ │ ├── RedirectToIndexMiddleware.cs
│ │ └── SwaggerUiIndexMiddleware.cs
│ ├── NSwag.AspNet.Owin.csproj
│ ├── ReDoc/
│ │ └── index.html
│ ├── SwaggerExtensions.cs
│ ├── SwaggerUi/
│ │ ├── index.css
│ │ ├── index.html
│ │ ├── oauth2-redirect.html
│ │ ├── swagger-ui-bundle.js
│ │ ├── swagger-ui-es-bundle-core.js
│ │ ├── swagger-ui-es-bundle.js
│ │ ├── swagger-ui-standalone-preset.js
│ │ ├── swagger-ui.css
│ │ └── swagger-ui.js
│ └── app.config
├── NSwag.AspNet.WebApi/
│ ├── JsonExceptionFilterAttribute.cs
│ └── NSwag.AspNet.WebApi.csproj
├── NSwag.AspNetCore/
│ ├── ApiverseUiSettings.cs
│ ├── Extensions/
│ │ ├── NSwagApplicationBuilderExtensions.cs
│ │ ├── NSwagServiceCollectionExtensions.cs
│ │ └── NSwagSwaggerGeneratorSettingsExtensions.cs
│ ├── HttpRequestExtension.cs
│ ├── IDocumentProvider.cs
│ ├── JsonExceptionFilterAttribute.cs
│ ├── Middlewares/
│ │ ├── OpenApiDocumentMiddleware.cs
│ │ ├── RedirectToIndexMiddleware.cs
│ │ └── SwaggerUiIndexMiddleware.cs
│ ├── NSwag.AspNetCore.csproj
│ ├── OAuth2ClientSettings.cs
│ ├── OpenApiConfigureMvcOptions.cs
│ ├── OpenApiDocumentMiddlewareSettings.cs
│ ├── OpenApiDocumentProvider.cs
│ ├── OpenApiDocumentRegistration.cs
│ ├── OpenApiMvcApplicationModelConvention.cs
│ ├── ReDoc/
│ │ └── index.html
│ ├── ReDocSettings.cs
│ ├── SwaggerSettings.cs
│ ├── SwaggerUi/
│ │ ├── index.css
│ │ ├── index.html
│ │ ├── oauth2-redirect.html
│ │ ├── swagger-ui-bundle.js
│ │ ├── swagger-ui-es-bundle-core.js
│ │ ├── swagger-ui-es-bundle.js
│ │ ├── swagger-ui-standalone-preset.js
│ │ ├── swagger-ui.css
│ │ └── swagger-ui.js
│ ├── SwaggerUiSettings.cs
│ ├── SwaggerUiSettingsBase.cs
│ ├── build/
│ │ ├── NSwag.AspNetCore.props
│ │ └── NSwag.AspNetCore.targets
│ └── buildMultiTargeting/
│ ├── NSwag.AspNetCore.props
│ └── NSwag.AspNetCore.targets
├── NSwag.AspNetCore.Launcher/
│ ├── NSwag.AspNetCore.Launcher.csproj
│ └── Program.cs
├── NSwag.AspNetCore.Launcher.x86/
│ └── NSwag.AspNetCore.Launcher.x86.csproj
├── NSwag.CodeGeneration/
│ ├── ClientGeneratorBase.cs
│ ├── ClientGeneratorBaseSettings.cs
│ ├── ClientGeneratorOutputType.cs
│ ├── ControllerGeneratorBaseSettings.cs
│ ├── DefaultParameterNameGenerator.cs
│ ├── DefaultTemplateFactory.cs
│ ├── IClientGenerator.cs
│ ├── IParameterNameGenerator.cs
│ ├── JsonSchemaExtensions.cs
│ ├── Models/
│ │ ├── IOperationModel.cs
│ │ ├── OperationModelBase.cs
│ │ ├── ParameterModelBase.cs
│ │ ├── PropertyModel.cs
│ │ └── ResponseModelBase.cs
│ ├── NSwag.CodeGeneration.csproj
│ ├── OperationNameGenerators/
│ │ ├── IOperationNameGenerator.cs
│ │ ├── MultipleClientsFromFirstTagAndOperationIdGenerator.cs
│ │ ├── MultipleClientsFromFirstTagAndOperationNameGenerator.cs
│ │ ├── MultipleClientsFromFirstTagAndPathSegmentsOperationNameGenerator.cs
│ │ ├── MultipleClientsFromOperationIdOperationNameGenerator.cs
│ │ ├── MultipleClientsFromPathSegmentsOperationNameGenerator.cs
│ │ ├── SingleClientFromOperationIdOperationNameGenerator.cs
│ │ └── SingleClientFromPathSegmentsOperationNameGenerator.cs
│ └── app.config
├── NSwag.CodeGeneration.CSharp/
│ ├── CSharpClientGenerator.cs
│ ├── CSharpClientGeneratorSettings.cs
│ ├── CSharpControllerGenerator.cs
│ ├── CSharpControllerGeneratorSettings.cs
│ ├── CSharpGeneratorBase.cs
│ ├── CSharpGeneratorBaseSettings.cs
│ ├── Models/
│ │ ├── CSharpClientTemplateModel.cs
│ │ ├── CSharpControllerOperationModel.cs
│ │ ├── CSharpControllerRouteNamingStrategy.cs
│ │ ├── CSharpControllerStyle.cs
│ │ ├── CSharpControllerTarget.cs
│ │ ├── CSharpControllerTemplateModel.cs
│ │ ├── CSharpExceptionDescriptionModel.cs
│ │ ├── CSharpFileTemplateModel.cs
│ │ ├── CSharpOperationModel.cs
│ │ ├── CSharpParameterModel.cs
│ │ ├── CSharpResponseModel.cs
│ │ └── CSharpTemplateModelBase.cs
│ ├── NSwag.CodeGeneration.CSharp.csproj
│ └── Templates/
│ ├── Client.Class.Annotations.liquid
│ ├── Client.Class.BeforeSend.liquid
│ ├── Client.Class.Body.liquid
│ ├── Client.Class.Constructor.liquid
│ ├── Client.Class.ConvertToString.liquid
│ ├── Client.Class.HeaderParameter.liquid
│ ├── Client.Class.PathParameter.liquid
│ ├── Client.Class.ProcessResponse.liquid
│ ├── Client.Class.QueryParameter.liquid
│ ├── Client.Class.ReadObjectResponse.liquid
│ ├── Client.Class.liquid
│ ├── Client.Interface.Annotations.liquid
│ ├── Client.Interface.Body.liquid
│ ├── Client.Interface.liquid
│ ├── Client.Method.Annotations.liquid
│ ├── Client.Method.Documentation.liquid
│ ├── Controller.AspNet.FromHeaderAttribute.liquid
│ ├── Controller.AspNet.FromHeaderBinding.liquid
│ ├── Controller.Class.Annotations.liquid
│ ├── Controller.Method.Annotations.liquid
│ ├── Controller.liquid
│ ├── File.Footer.liquid
│ ├── File.Header.liquid
│ ├── File.liquid
│ └── JsonExceptionConverter.liquid
├── NSwag.CodeGeneration.CSharp.Tests/
│ ├── AllowNullableBodyParametersTests.cs
│ ├── ArrayParameterTests.cs
│ ├── BinaryTests.cs
│ ├── CSharpClientSettingsTests.cs
│ ├── CSharpCompiler.cs
│ ├── ClientGenerationTests.cs
│ ├── CodeGenerationTests.cs
│ ├── ControllerGenerationFormatTests.cs
│ ├── Controllers/
│ │ ├── ControllerGenerationBasePathTests.cs
│ │ ├── ControllerGenerationDefaultParameterTests.cs
│ │ └── Snapshots/
│ │ ├── ControllerGenerationBasePathTests.When_custom_BasePath_is_not_specified_then_the_BasePath_from_document_is_used_as_Route.verified.txt
│ │ ├── ControllerGenerationBasePathTests.When_custom_BasePath_is_specified_then_that_is_used_as_Route.verified.txt
│ │ └── ControllerGenerationDefaultParameterTests.When_parameter_has_default_then_set_in_partial_controller.verified.txt
│ ├── FileDownloadTests.cs
│ ├── FileTests.cs
│ ├── FileUploadTests.cs
│ ├── FormParameterTests.cs
│ ├── HeadRequestTests.cs
│ ├── InheritanceTests.cs
│ ├── NSwag.CodeGeneration.CSharp.Tests.csproj
│ ├── ObjectParameterTests.cs
│ ├── OptionalParameterTests.cs
│ ├── ParameterTests.cs
│ ├── PlainResponseTests.cs
│ ├── PlainTextBodyTests.cs
│ ├── QueryParameterTests.cs
│ ├── RequiredParameterTests.cs
│ ├── ResponseTests.cs
│ ├── Snapshots/
│ │ ├── AllowNullableBodyParametersTests.TestNoGuardForOptionalBodyParameter.verified.txt
│ │ ├── AllowNullableBodyParametersTests.TestNullableBodyWithAllowNullableBodyParameters.verified.txt
│ │ ├── AllowNullableBodyParametersTests.TestNullableBodyWithoutAllowNullableBodyParameters.verified.txt
│ │ ├── ArrayParameterTests.When_CollectionFormat_is_csv_then_do_not_explode.verified.txt
│ │ ├── ArrayParameterTests.When_CollectionFormat_is_multi_then_explode.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_explicitly_or_implicitly_true_then_explode_explode=-explode-- true,.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_explicitly_or_implicitly_true_then_explode_explode=-style-- -form-, -explode-- true,.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_explicitly_or_implicitly_true_then_explode_explode=-style-- -form-,.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_explicitly_or_implicitly_true_then_explode_explode=.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_false_then_do_not_explode_explode=-explode-- false,.verified.txt
│ │ ├── ArrayParameterTests.When_explode_is_false_then_do_not_explode_explode=-style-- -form-, -explode-- false,.verified.txt
│ │ ├── ArrayParameterTests.When_parameter_is_array_then_CSharp_is_correct.verified.txt
│ │ ├── ArrayParameterTests.when_content_is_formdata_with_property_array_then_content_should_be_added_in_foreach_in_csharp.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInMultipartFileArray_ThenFormDataIsUsedInCSharp.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInNestedMultipartForm_ThenFormDataIsUsedInCSharp.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInSingleMultipartFile_ThenFormDataIsUsedInCSharp.verified.txt
│ │ ├── BinaryTests.When_body_is_binary_array_then_IFormFile_Collection_is_used_as_parameter_in_CSharp_ASPNETCore.verified.txt
│ │ ├── BinaryTests.When_body_is_binary_then_IFormFile_is_used_as_parameter_in_CSharp_ASPNETCore.verified.txt
│ │ ├── BinaryTests.When_body_is_binary_then_stream_is_used_as_parameter_in_CSharp.verified.txt
│ │ ├── BinaryTests.When_multipart_inline_schema.verified.txt
│ │ ├── BinaryTests.When_multipart_with_ref_should_read_schema.verified.txt
│ │ ├── BinaryTests.When_response_body_is_binary_then_IActionResult_is_used_as_return_type_in_CSharp_ASPNETCore.verified.txt
│ │ ├── CSharpClientSettingsTests.WhenUsingBaseUrl_ButNoProperty_ThenPropertyIsNotUsedAndFieldIsGenerated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_ConfigurationClass_is_set_then_correct_ctor_is_generated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_UseHttpRequestMessageCreationMethod_is_set_then_CreateRequestMessage_is_generated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_base_interface_is_not_specified_then_client_interface_should_have_no_base_interface.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_base_interface_is_not_specified_then_client_interface_should_have_no_base_interface_and_has_correct_access_modifier.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_base_interface_is_specified_then_client_interface_extends_it.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_base_interface_is_specified_with_access_modifier_then_client_interface_extends_it_and_has_correct_access_modifier.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_class_generation_is_enabled_and_suppressed_then_client_class_is_not_generated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_client_interface_generation_is_enabled_and_suppressed_then_client_interface_is_not_generated.verified.txt
│ │ ├── CSharpClientSettingsTests.When_code_is_generated_then_by_default_the_system_httpclient_is_used.verified.txt
│ │ ├── CSharpClientSettingsTests.When_custom_http_client_type_is_specified_then_an_instance_of_that_type_is_used.verified.txt
│ │ ├── CSharpClientSettingsTests.When_exclude_operation_ids_is_provided_then_selected_operations_should_be_excluded_from_generated_code_excludedOperationIds=1.verified.txt
│ │ ├── CSharpClientSettingsTests.When_exclude_operation_ids_is_provided_then_selected_operations_should_be_excluded_from_generated_code_excludedOperationIds=2.verified.txt
│ │ ├── CSharpClientSettingsTests.When_exclude_operation_ids_is_provided_then_selected_operations_should_be_excluded_from_generated_code_excludedOperationIds=3.verified.txt
│ │ ├── CSharpClientSettingsTests.When_include_operation_ids_is_provided_then_only_selected_operations_are_included_in_generated_code_includedOperationIds=1.verified.txt
│ │ ├── CSharpClientSettingsTests.When_include_operation_ids_is_provided_then_only_selected_operations_are_included_in_generated_code_includedOperationIds=2.verified.txt
│ │ ├── CSharpClientSettingsTests.When_include_operation_ids_is_provided_then_only_selected_operations_are_included_in_generated_code_includedOperationIds=3.verified.txt
│ │ ├── CSharpClientSettingsTests.When_parameter_name_is_reserved_keyword_then_it_is_appended_with_at.verified.txt
│ │ ├── CodeGenerationTests.When_Success_Response_contains_multiple_content_types_prioritizes_json.verified.txt
│ │ ├── CodeGenerationTests.When_Success_Response_contains_multiple_content_types_prioritizes_wildcard.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_then_output_contains_expected_classes.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_NewtonsoftJson_and_JsonSerializerSettingsTransformationMethod_then_output_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_SystemTextJson_and_GenerateJsonMethods_and_JsonConverters_then_ToJson_and_FromJson_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_SystemTextJson_and_JsonConverters_then_output_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_SystemTextJson_and_JsonSerializerSettingsTransformationMethod_then_output_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_generating_CSharp_code_with_SystemTextJson_then_output_contains_expected_code.verified.txt
│ │ ├── CodeGenerationTests.When_media_type_contains_quotes_can_generate_client.verified.txt
│ │ ├── CodeGenerationTests.When_path_starts_with_numeric_can_generate_client.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_aspnet_actiontype_inuse_with_abstract_then_actiontype_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_aspnet_actiontype_inuse_with_partial_then_actiontype_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operation_with_complextype_then_abstractcontroller_is_generated_with_frombody_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operation_with_complextype_then_partialcontroller_is_generated_with_frombody_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operation_with_header_parameter_then_partialcontroller_is_generated_with_fromheader_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operations_with_required_parameters_then_abstractcontroller_is_generated_with_bindrequired_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controller_has_operations_with_required_parameters_then_partialcontroller_is_generated_with_bindrequired_attribute.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllergenerationformat_abstract_then_abstractcontroller_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllergenerationformat_notsetted_then_partialcontroller_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllergenerationformat_partial_then_partialcontroller_is_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllerroutenamingstrategy_none_then_route_attribute_name_not_specified.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllerroutenamingstrategy_operationid_then_route_attribute_name_specified.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllertarget_aspnet_and_multiple_controllers_then_only_single_custom_fromheader_generated.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_controllertarget_aspnetcore_then_use_builtin_fromheader.verified.txt
│ │ ├── ControllerGenerationFormatTests.When_the_generation_of_dto_classes_are_disabled_then_file_is_generated_without_any_dto_clasess.verified.txt
│ │ ├── FileDownloadTests.When_openapi3_contains_octet_stream_response_then_FileResponse_is_generated.verified.txt
│ │ ├── FileDownloadTests.When_response_is_file_and_stream_is_not_used_then_byte_array_is_returned.verified.txt
│ │ ├── FileTests.When_file_is_generated_system_alias_is_there.verified.txt
│ │ ├── FileUploadTests.When_openapi3_contains_octet_stream_response_then_FileResponse_is_generated.verified.txt
│ │ ├── FormParameterTests.When_action_has_file_parameter_then_Stream_is_generated_in_CSharp_code.verified.txt
│ │ ├── FormParameterTests.When_form_parameters_are_defined_then_FormUrlEncodedContent_is_generated.verified.txt
│ │ ├── FormParameterTests.When_form_parameters_are_defined_then_MultipartFormDataContent_is_generated.verified.txt
│ │ ├── HeadRequestTests.When_operation_is_HTTP_head_then_no_content_is_not_used.verified.txt
│ │ ├── InheritanceTests.When_generating_csharp_with_any_inheritance_then_inheritance_is_generated.verified.txt
│ │ ├── JIRA_OpenAPI.verified.txt
│ │ ├── NHS_SpineServices_OpenAPI.verified.txt
│ │ ├── ObjectParameterTests.when_content_is_formdata_with_property_object_then_content_should_be_json_csharp.verified.txt
│ │ ├── OptionalParameterTests.When_optional_parameter_comes_before_required.verified.txt
│ │ ├── OptionalParameterTests.When_setting_is_enabled_then_optional_parameters_have_null_optional_value.verified.txt
│ │ ├── OptionalParameterTests.When_setting_is_enabled_then_parameters_are_reordered.verified.txt
│ │ ├── OptionalParameterTests.When_setting_is_enabled_with_class_fromuri_should_make_enum_nullable.verified.txt
│ │ ├── OptionalParameterTests.When_setting_is_enabled_with_enum_fromuri_should_make_enum_nullable.verified.txt
│ │ ├── ParameterTests.Deep_object_properties_are_correctly_named.verified.txt
│ │ ├── ParameterTests.When_original_name_is_defined_then_csharp_parameter_is_the_same.verified.txt
│ │ ├── ParameterTests.When_parameter_is_array_and_should_not_be_exploded.verified.txt
│ │ ├── ParameterTests.When_parameters_have_same_name_then_they_are_renamed.verified.txt
│ │ ├── ParameterTests.When_parameters_names_have_differences_only_in_case_of_the_first_letter_then_they_are_renamed.verified.txt
│ │ ├── ParameterTests.When_parent_parameters_have_same_kind_then_they_are_included.verified.txt
│ │ ├── ParameterTests.When_swagger_contains_optional_parameters_then_they_are_rendered_in_CSharp.verified.txt
│ │ ├── PlainResponseTests.When_openapi3_reponse_contains_plain_text_string_array_then_ReadObjectResponseAsync_is_generated.verified.txt
│ │ ├── PlainResponseTests.When_openapi3_reponse_contains_plain_text_then_Convert_is_generated.verified.txt
│ │ ├── PlainResponseTests.When_swagger_reponse_contains_plain_text_string_array_then_ReadObjectResponseAsync_is_generated.verified.txt
│ │ ├── PlainResponseTests.When_swagger_reponse_contains_plain_text_then_Convert_is_generated.verified.txt
│ │ ├── PlainTextBodyTests.When_request_contains_plain_text_string_body_then_ReadObjectResponseAsync_is_generated.verified.txt
│ │ ├── QueryParameterTests.When_query_parameter_is_mixed_free_form_object_parameters_are_expanded.verified.txt
│ │ ├── QueryParameterTests.When_query_parameter_is_set_to_explode_and_style_is_form_object_parameters_are_expanded.verified.txt
│ │ ├── QueryParameterTests.When_query_parameter_is_typed_free_form_object_parameters_are_expanded.verified.txt
│ │ ├── QueryParameterTests.When_query_parameter_is_untyped_free_form_object_parameters_are_expanded.verified.txt
│ │ ├── ResponseTests.When_response_is_referenced_any_then_class_is_generated.verified.txt
│ │ ├── ResponseTests.When_response_references_object_in_inheritance_hierarchy_then_return_value_is_correct.verified.txt
│ │ ├── ResponseTests.When_responses_produce_multiple_types.verified.txt
│ │ ├── ResponseTests.When_responses_produce_primitive_types.verified.txt
│ │ ├── ResponseTests.When_same_response_is_referenced_multiple_times_in_operation_then_class_is_generated.verified.txt
│ │ ├── ShipBob_OpenAPI.verified.txt
│ │ ├── UseCancellationTokenTests.When_controllerstyleisabstract_and_usecancellationtokenistrue_and_requesthasnoparameter_then_cancellationtoken_is_added.verified.txt
│ │ ├── UseCancellationTokenTests.When_controllerstyleisabstract_and_usecancellationtokenistrue_and_requesthasparameter_then_cancellationtoken_is_added.verified.txt
│ │ ├── UseCancellationTokenTests.When_controllerstyleispartial_and_usecancellationtokenistrue_and_requesthasnoparameter_then_cancellationtoken_is_added.verified.txt
│ │ ├── UseCancellationTokenTests.When_controllerstyleispartial_and_usecancellationtokenistrue_and_requesthasparameter_then_cancellationtoken_is_added.verified.txt
│ │ ├── UseCancellationTokenTests.When_usecancellationtokenparameter_notsetted_then_cancellationtoken_isnot_added.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_disabled_properties_with_required_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_disabled_properties_with_required_keyword_and_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_disabled_properties_with_required_keyword_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_enabled_properties_with_required_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordNewtonsoftJsonSchemaGeneratorTests.When_setting_is_enabled_properties_with_required_keyword_and_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_disabled_properties_with_required_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_disabled_properties_with_required_keyword_and_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_disabled_properties_with_required_keyword_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_enabled_properties_with_required_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── UseRequiredKeywordSystemTextJsonSchemaGeneratorSettingsTests.When_setting_is_enabled_properties_with_required_keyword_and_attribute_should_generate_with_required_keyword.verified.txt
│ │ ├── WrapResponsesTests.When_success_responses_are_wrapped_then_SwaggerResponse_is_returned.verified.txt
│ │ ├── WrapResponsesTests.When_success_responses_are_wrapped_then_SwaggerResponse_is_returned_web_api.verified.txt
│ │ └── WrapResponsesTests.When_success_responses_are_wrapped_then_SwaggerResponse_is_returned_web_api_aspnetcore.verified.txt
│ ├── TestData/
│ │ ├── jira-open-api.json
│ │ ├── nhs-spineservices.json
│ │ └── shipbob-2025-07.json
│ ├── UseCancellationTokenTests.cs
│ └── WrapResponsesTests.cs
├── NSwag.CodeGeneration.Tests/
│ ├── CodeGenerationTests.cs
│ ├── NSwag.CodeGeneration.Tests.csproj
│ ├── Output.json
│ ├── VerifyChecksTests.cs
│ └── VerifyHelper.cs
├── NSwag.CodeGeneration.TypeScript/
│ ├── HttpClass.cs
│ ├── InjectionTokenType.cs
│ ├── Models/
│ │ ├── TypeScriptClientTemplateModel.cs
│ │ ├── TypeScriptFileTemplateModel.cs
│ │ ├── TypeScriptFrameworkAngularModel.cs
│ │ ├── TypeScriptFrameworkModel.cs
│ │ ├── TypeScriptFrameworkRxJsModel.cs
│ │ ├── TypeScriptOperationModel.cs
│ │ ├── TypeScriptParameterModel.cs
│ │ └── TypeScriptResponseModel.cs
│ ├── NSwag.CodeGeneration.TypeScript.csproj
│ ├── PromiseType.cs
│ ├── RequestCredentialsType.cs
│ ├── RequestModeType.cs
│ ├── Templates/
│ │ ├── AngularClient.liquid
│ │ ├── AngularJSClient.liquid
│ │ ├── AxiosClient.liquid
│ │ ├── Client.Method.Documentation.liquid
│ │ ├── Client.ProcessResponse.HandleStatusCode.liquid
│ │ ├── Client.ProcessResponse.ReadBodyEnd.liquid
│ │ ├── Client.ProcessResponse.ReadBodyStart.liquid
│ │ ├── Client.ProcessResponse.ReadHeaders.liquid
│ │ ├── Client.ProcessResponse.Return.liquid
│ │ ├── Client.ProcessResponse.liquid
│ │ ├── Client.RequestBody.liquid
│ │ ├── Client.RequestUrl.liquid
│ │ ├── FetchClient.liquid
│ │ ├── File.Header.liquid
│ │ ├── File.Utilities.liquid
│ │ ├── File.liquid
│ │ ├── JQueryCallbacksClient.liquid
│ │ ├── JQueryPromisesClient.liquid
│ │ └── K6Client.liquid
│ ├── TypeScriptClientGenerator.cs
│ ├── TypeScriptClientGeneratorSettings.cs
│ ├── TypeScriptTemplate.cs
│ └── TypeScriptTypeNameGenerator.cs
├── NSwag.CodeGeneration.TypeScript.Tests/
│ ├── AngularJSTests.cs
│ ├── AngularTests.cs
│ ├── ArrayParameterTests.cs
│ ├── AxiosTests.cs
│ ├── BinaryTests.cs
│ ├── ClientGenerationTests.cs
│ ├── CodeGenerationTests.cs
│ ├── FetchTests.cs
│ ├── InheritanceTests.cs
│ ├── JQueryCallbacksTests.cs
│ ├── JQueryPromisesTests.cs
│ ├── K6Tests.cs
│ ├── NSwag.CodeGeneration.TypeScript.Tests.csproj
│ ├── ObjectParameterTests.cs
│ ├── OperationParameterTests.cs
│ ├── OptionalParameterTests.cs
│ ├── Snapshots/
│ │ ├── AngularJSTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── AngularJSTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── AngularJSTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── AngularTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── AngularTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── AngularTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── AngularTests.When_generic_request.verified.txt
│ │ ├── AngularTests.When_return_value_is_void_then_client_returns_observable_of_void.verified.txt
│ │ ├── ArrayParameterTests.When_parameter_is_array_then_TypeScript_is_correct.verified.txt
│ │ ├── ArrayParameterTests.when_content_is_formdata_with_property_array_then_content_should_be_added_in_foreach_in_typescript.verified.txt
│ │ ├── AxiosTests.Add_cancel_token_to_every_call.verified.txt
│ │ ├── AxiosTests.When_abort_signal.verified.txt
│ │ ├── AxiosTests.When_abort_signal_and_generate_client_interfaces_contains_signal_param_in_both_interface_and_concrete_implementation.verified.txt
│ │ ├── AxiosTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── AxiosTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── AxiosTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInMultipartFileArray_ThenFormDataIsUsedInTypeScript.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInNestedMultipartForm_ThenFormDataIsUsedInTypeScript.verified.txt
│ │ ├── BinaryTests.WhenSpecContainsFormDataInSingleMultipartFile_ThenFormDataIsUsedInTypeScript.verified.txt
│ │ ├── BinaryTests.When_body_is_binary_then_blob_is_used_as_parameter_in_TypeScript.verified.txt
│ │ ├── CodeGenerationTests.When_generating_TypeScript_code_then_output_contains_expected_classes.verified.txt
│ │ ├── CodeGenerationTests.When_path_starts_with_numeric_can_generate_client.verified.txt
│ │ ├── FetchTests.When_abort_signal.verified.txt
│ │ ├── FetchTests.When_abort_signal_and_generate_client_interfaces_interface_contains_signal_param.verified.txt
│ │ ├── FetchTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── FetchTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── FetchTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── FetchTests.When_includeHttpContext.verified.txt
│ │ ├── FetchTests.When_include_RequestCredentialsType_Include.verified.txt
│ │ ├── FetchTests.When_include_RequestModeType_Cors.verified.txt
│ │ ├── FetchTests.When_no_abort_signal.verified.txt
│ │ ├── FetchTests.When_no_includeHttpContext.verified.txt
│ │ ├── InheritanceTests.When_generating_typescript_with_any_inheritance_then_inheritance_is_generated.verified.txt
│ │ ├── JIRA_OpenAPI_Angular.verified.txt
│ │ ├── JIRA_OpenAPI_AngularJS.verified.txt
│ │ ├── JIRA_OpenAPI_Aurelia.verified.txt
│ │ ├── JIRA_OpenAPI_Axios.verified.txt
│ │ ├── JIRA_OpenAPI_Fetch.verified.txt
│ │ ├── JIRA_OpenAPI_JQueryCallbacks.verified.txt
│ │ ├── JIRA_OpenAPI_JQueryPromises.verified.txt
│ │ ├── JQueryCallbacksTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── JQueryCallbacksTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── JQueryCallbacksTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── JQueryPromisesTests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── JQueryPromisesTests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── JQueryPromisesTests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── K6Tests.When_abort_signal.verified.txt
│ │ ├── K6Tests.When_abort_signal_and_generate_client_interfaces_interface_contains_signal_param.verified.txt
│ │ ├── K6Tests.When_consumes_is_url_encoded_then_construct_url_encoded_request.verified.txt
│ │ ├── K6Tests.When_export_types_is_false_then_dont_add_export_before_classes.verified.txt
│ │ ├── K6Tests.When_export_types_is_true_then_add_export_before_classes.verified.txt
│ │ ├── K6Tests.When_generic_request.verified.txt
│ │ ├── K6Tests.When_includeHttpContext.verified.txt
│ │ ├── K6Tests.When_no_abort_signal.verified.txt
│ │ ├── K6Tests.When_no_includeHttpContext.verified.txt
│ │ ├── K6Tests.When_return_value_is_void_then_client_returns_observable_of_void.verified.txt
│ │ ├── ObjectParameterTests.when_content_is_formdata_with_property_object_then_content_should_be_json_typescript.verified.txt
│ │ ├── OperationParameterTests.When_query_parameter_is_enum_array_then_the_enum_is_referenced.verified.txt
│ │ ├── OptionalParameterTests.When_optional_parameter_comes_before_required.verified.txt
│ │ ├── TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union.verified.txt
│ │ ├── TypeScriptOperationParameterTests.When_parameter_is_nullable_and_ts20_then_it_is_a_union_type_with_undefined.verified.txt
│ │ ├── TypeScriptOperationParameterTests.When_parameter_is_nullable_and_ts20_then_it_is_not_included_in_query_string.verified.txt
│ │ ├── TypeScriptOperationParameterTests.When_parameter_is_nullable_optional_and_ts20_then_it_is_a_union_type_with_undefined.verified.txt
│ │ └── TypeScriptOperationParameterTests.When_parameter_is_nullable_optional_and_ts20_then_it_is_not_included_in_query_string.verified.txt
│ ├── TypeScriptCompiler.cs
│ ├── TypeScriptDiscriminatorTests.cs
│ ├── TypeScriptOperationParameterTests.cs
│ ├── package.json
│ ├── temp_7aa36f3f-17b9-44df-818f-20a51fb73bb5.ts
│ └── tsconfig.json
├── NSwag.Commands/
│ ├── CodeGeneratorCollection.cs
│ ├── Commands/
│ │ ├── CodeGeneration/
│ │ │ ├── CodeGeneratorCommandBase.cs
│ │ │ ├── JsonSchemaToCSharpCommand.cs
│ │ │ ├── JsonSchemaToOpenApiCommand.cs
│ │ │ ├── JsonSchemaToTypeScriptCommand.cs
│ │ │ ├── OpenApiToCSharpClientCommand.cs
│ │ │ ├── OpenApiToCSharpCommandBase.cs
│ │ │ ├── OpenApiToCSharpControllerCommand.cs
│ │ │ ├── OpenApiToTypeScriptClientCommand.cs
│ │ │ └── OperationGenerationMode.cs
│ │ ├── Document/
│ │ │ ├── CreateDocumentCommand.cs
│ │ │ └── ExecuteDocumentCommand.cs
│ │ ├── Generation/
│ │ │ ├── AspNetCore/
│ │ │ │ ├── AspNetCore.targets
│ │ │ │ ├── AspNetCoreToOpenApiCommand.cs
│ │ │ │ ├── AspNetCoreToOpenApiGeneratorCommandEntryPoint.cs
│ │ │ │ ├── Exe.cs
│ │ │ │ └── ProjectMetadata.cs
│ │ │ └── FromDocumentCommand.cs
│ │ ├── IOutputCommand.cs
│ │ ├── InputOutputCommandBase.cs
│ │ ├── OutputCommandBase.cs
│ │ ├── OutputCommandExtensions.cs
│ │ └── Tooling/
│ │ └── VersionCommand.cs
│ ├── HostApplication.cs
│ ├── HostFactoryResolver.cs
│ ├── NConsole/
│ │ ├── ArgumentAttribute.cs
│ │ ├── ArgumentAttributeBase.cs
│ │ ├── CommandAttribute.cs
│ │ ├── CommandLineProcessor.cs
│ │ ├── CommandResult.cs
│ │ ├── ConsoleHost.cs
│ │ ├── HelpCommand.cs
│ │ ├── IConsoleCommand.cs
│ │ ├── IConsoleHost.cs
│ │ ├── IDependencyResolver.cs
│ │ └── SwitchAttribute.cs
│ ├── NSwag.Commands.csproj
│ ├── NSwagCommandProcessor.cs
│ ├── NSwagDocument.cs
│ ├── NSwagDocumentBase.cs
│ ├── NewLineBehavior.cs
│ ├── OpenApiDocumentExecutionResult.cs
│ ├── OpenApiGeneratorCollection.cs
│ ├── OperationGenerationModeConverter.cs
│ ├── PathUtilities.cs
│ ├── Runtime.cs
│ └── RuntimeUtilities.cs
├── NSwag.Console/
│ ├── NSwag.Console.csproj
│ └── Program.cs
├── NSwag.Console.x86/
│ └── NSwag.Console.x86.csproj
├── NSwag.ConsoleCore/
│ ├── CoreConsoleHost.cs
│ ├── NSwag.ConsoleCore.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Publish.bat
│ └── runtimeconfig.template.json
├── NSwag.ConsoleCore.Tests/
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET100Minimal_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET100_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET80Minimal_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET90Minimal_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpClientsAsync_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET100Minimal_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET100_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET70Minimal_targetFramework=net7.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET80Minimal_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET90Minimal_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckCSharpControllersAsync_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET100Minimal_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET100_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET70Minimal_targetFramework=net7.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET80Minimal_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET90Minimal_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.CheckTypeScriptAsync_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET100Minimal_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET100_targetFramework=net10.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET60Minimal_targetFramework=net6.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET60_targetFramework=net6.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET70Minimal_targetFramework=net7.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET70_targetFramework=net7.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET80Minimal_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET80_targetFramework=net8.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET90Minimal_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=False.verified.txt
│ ├── GenerateSampleSpecificationTests.Should_generate_openapi_for_project_projectName=NSwag.Sample.NET90_targetFramework=net9.0_generatesCode=True.verified.txt
│ ├── GenerateSampleSpecificationTests.cs
│ └── NSwag.ConsoleCore.Tests.csproj
├── NSwag.Core/
│ ├── Collections/
│ │ ├── Extensions.cs
│ │ └── ObservableDictionary.cs
│ ├── HttpUtilities.cs
│ ├── IsExternalInit.cs
│ ├── JsonExpectedSchema.cs
│ ├── NSwag.Core.csproj
│ ├── OpenApiCallback.cs
│ ├── OpenApiComponents.cs
│ ├── OpenApiContact.cs
│ ├── OpenApiDocument.Serialization.cs
│ ├── OpenApiDocument.cs
│ ├── OpenApiEncoding.cs
│ ├── OpenApiExample.cs
│ ├── OpenApiExternalDocumentation.cs
│ ├── OpenApiHeader.cs
│ ├── OpenApiHeaders.cs
│ ├── OpenApiInfo.cs
│ ├── OpenApiLicense.cs
│ ├── OpenApiLink.cs
│ ├── OpenApiMediaType.cs
│ ├── OpenApiOAuth2Flow.cs
│ ├── OpenApiOAuthFlow.cs
│ ├── OpenApiOAuthFlows.cs
│ ├── OpenApiOperation.cs
│ ├── OpenApiOperationDescription.cs
│ ├── OpenApiOperationMethod.cs
│ ├── OpenApiParameter.cs
│ ├── OpenApiParameterCollectionFormat.cs
│ ├── OpenApiParameterKind.cs
│ ├── OpenApiParameterStyle.cs
│ ├── OpenApiPathItem.cs
│ ├── OpenApiRequestBody.cs
│ ├── OpenApiResponse.cs
│ ├── OpenApiSchema.cs
│ ├── OpenApiSchemaResolver.cs
│ ├── OpenApiSecurityApiKeyLocation.cs
│ ├── OpenApiSecurityRequirement.cs
│ ├── OpenApiSecurityScheme.cs
│ ├── OpenApiSecuritySchemeType.cs
│ ├── OpenApiServer.cs
│ ├── OpenApiServerVariable.cs
│ ├── OpenApiTag.cs
│ └── Polyfills.cs
├── NSwag.Core.Tests/
│ ├── DocumentLoadingTests.cs
│ ├── DocumentReferenceTests.cs
│ ├── HttpLoadingTests.cs
│ ├── NSwag.Core.Tests.csproj
│ ├── OperationIdTests.cs
│ ├── Serialization/
│ │ ├── CallbacksSerializationTests.cs
│ │ ├── ComponentsSerializationTests.cs
│ │ ├── ExampleSerializationTests.cs
│ │ ├── ExternalReferenceTests.cs
│ │ ├── MediaTypesSerializationTests.cs
│ │ ├── NullDefinitionTests.cs
│ │ ├── PathItemTest/
│ │ │ ├── PathItemWithRef.json
│ │ │ └── refs/
│ │ │ └── PathItem.json
│ │ ├── PathItemTests.cs
│ │ ├── RequestBodySerializationTests.cs
│ │ ├── ServersSerializationTests.cs
│ │ └── SwaggerSecuritySchemeTests.cs
│ ├── SwaggerResponseTests.cs
│ └── TestFiles/
│ ├── common.json
│ ├── parameter-reference.json
│ ├── path-reference.json
│ ├── requestBody-reference.json
│ ├── response-reference.json
│ └── schema-reference.json
├── NSwag.Core.Yaml/
│ ├── NSwag.Core.Yaml.csproj
│ └── OpenApiYamlDocument.cs
├── NSwag.Core.Yaml.Tests/
│ ├── NSwag.Core.Yaml.Tests.csproj
│ ├── References/
│ │ ├── YamlReferencesTest/
│ │ │ ├── baseContract.json
│ │ │ ├── baseContract.yaml
│ │ │ ├── json_contract_with_json_reference.json
│ │ │ ├── json_contract_with_yaml_reference.json
│ │ │ ├── yaml_contract_with_json_reference.yaml
│ │ │ └── yaml_contract_with_yaml_reference.yaml
│ │ └── YamlReferencesTests.cs
│ └── YamlDocumentTests.cs
├── NSwag.Generation/
│ ├── Collections/
│ │ └── CollectionExtensions.cs
│ ├── GenericResultWrapperTypes.cs
│ ├── IOpenApiDocumentGenerator.cs
│ ├── NSwag.Generation.csproj
│ ├── OpenApiDocumentGenerator.cs
│ ├── OpenApiDocumentGeneratorSettings.cs
│ ├── OpenApiSchemaGenerator.cs
│ └── Processors/
│ ├── ActionDocumentProcessor.cs
│ ├── ApiVersionProcessor.cs
│ ├── Collections/
│ │ ├── DocumentProcessorCollection.cs
│ │ └── OperationProcessorCollection.cs
│ ├── Contexts/
│ │ ├── DocumentProcessorContext.cs
│ │ └── OperationProcessorContext.cs
│ ├── DocumentExtensionDataProcessor.cs
│ ├── DocumentTagsProcessor.cs
│ ├── IDocumentProcessor.cs
│ ├── IOperationProcessor.cs
│ ├── OperationExtensionDataProcessor.cs
│ ├── OperationProcessor.cs
│ ├── OperationResponseDescription.cs
│ ├── OperationResponseProcessorBase.cs
│ ├── OperationSummaryAndDescriptionProcessor.cs
│ ├── OperationTagsProcessor.cs
│ └── Security/
│ ├── OperationSecurityScopeProcessor.cs
│ └── SecurityDefinitionAppender.cs
├── NSwag.Generation.AspNetCore/
│ ├── AspNetCoreOpenApiDocumentGenerator.cs
│ ├── AspNetCoreOpenApiDocumentGeneratorSettings.cs
│ ├── AspNetCoreOperationProcessorContext.cs
│ ├── NSwag.Generation.AspNetCore.csproj
│ └── Processors/
│ ├── AspNetCoreOperationSecurityScopeProcessor.cs
│ ├── AspNetCoreOperationTagsProcessor.cs
│ ├── OperationParameterProcessor.cs
│ └── OperationResponseProcessor.cs
├── NSwag.Generation.AspNetCore.Tests/
│ ├── ApiVersionProcessorWithAspNetCoreTests.cs
│ ├── AspNetCoreTestsBase.cs
│ ├── AspNetCoreToSwaggerGenerationTests.cs
│ ├── ExtensionDataTests.cs
│ ├── Inheritance/
│ │ └── InheritanceControllerTests.cs
│ ├── LanguageParameterTests.cs
│ ├── NSwag.Generation.AspNetCore.Tests.csproj
│ ├── Operations/
│ │ └── PathTests.cs
│ ├── Parameters/
│ │ ├── BodyParametersTests.cs
│ │ ├── DefaultParametersTests.cs
│ │ ├── FormDataTests.cs
│ │ ├── HeaderParametersTests.cs
│ │ ├── NullablePathParameterTests.cs
│ │ ├── PathParameterWithModelBinderTests.cs
│ │ ├── QueryParametersTests.cs
│ │ └── Snapshots/
│ │ ├── FormDataTests.WhenOperationHasFormDataComplex_ThenItIsInRequestBody.verified.txt
│ │ └── FormDataTests.WhenOperationHasFormDataFile_ThenItIsInRequestBody.verified.txt
│ ├── Processors/
│ │ └── OperationResponseProcessorTest.cs
│ ├── Requests/
│ │ ├── ConsumesTests.cs
│ │ └── PostBodyTests.cs
│ ├── Responses/
│ │ ├── NullableResponseTests.cs
│ │ ├── ProducesTests.cs
│ │ ├── ResponseAttributesTests.cs
│ │ ├── Snapshots/
│ │ │ └── XmlDocsTests.When_operation_has_SwaggerResponseAttribute_with_description_it_is_in_the_spec.verified.txt
│ │ ├── WrappedResponseTests.cs
│ │ └── XmlDocsTests.cs
│ └── SystemTextJsonTests.cs
├── NSwag.Generation.AspNetCore.Tests.Web/
│ ├── Controllers/
│ │ ├── Inheritance/
│ │ │ ├── ActualController.cs
│ │ │ └── BaseController.cs
│ │ ├── LanguagesController.cs
│ │ ├── Parameters/
│ │ │ ├── BindNeverQueryParameterController.cs
│ │ │ ├── BodyParametersController.cs
│ │ │ ├── ComplexQueryParametersController.cs
│ │ │ ├── DefaultParametersController.cs
│ │ │ ├── EmptyPathController.cs
│ │ │ ├── FileUploadController.cs
│ │ │ ├── HeaderParametersController.cs
│ │ │ ├── NullablePathParameterController.cs
│ │ │ ├── PathParameterWithModelBinderController.cs
│ │ │ ├── RenamedQueryParameterController.cs
│ │ │ └── SimpleQueryParametersController.cs
│ │ ├── Requests/
│ │ │ ├── ConsumesController.cs
│ │ │ ├── MultipartConsumesController.cs
│ │ │ └── PostBodyController.cs
│ │ ├── Responses/
│ │ │ ├── JsonProducesController.cs
│ │ │ ├── NullableResponseController.cs
│ │ │ ├── TextProducesController.cs
│ │ │ └── WrappedResponseController.cs
│ │ ├── ResponsesController.cs
│ │ ├── SwaggerExtensionDataController.cs
│ │ ├── VersionedV3ValuesController.cs
│ │ ├── VersionedValuesController.cs
│ │ └── XmlDocsController.cs
│ ├── CustomTextInputFormatter.cs
│ ├── CustomTextOutputFormatter.cs
│ ├── NSwag.Generation.AspNetCore.Tests.Web.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ └── appsettings.json
├── NSwag.Generation.Tests/
│ ├── NSwag.Generation.Tests.csproj
│ ├── OpenApiDocumentGeneratorTests.cs
│ └── Processors/
│ ├── OperationSummaryAndDescriptionProcessorTests.cs
│ └── OperationTagsProcessorTests.cs
├── NSwag.Generation.WebApi/
│ ├── Infrastructure/
│ │ ├── RouteAttributeFacade.cs
│ │ └── RoutePrefixAttributeFacade.cs
│ ├── NSwag.Generation.WebApi.csproj
│ ├── Processors/
│ │ ├── OperationConsumesProcessor.cs
│ │ ├── OperationParameterProcessor.cs
│ │ └── OperationResponseProcessor.cs
│ ├── WebApiOpenApiDocumentGenerator.cs
│ └── WebApiOpenApiDocumentGeneratorSettings.cs
├── NSwag.Generation.WebApi.Tests/
│ ├── App_Start/
│ │ └── SwaggerConfig.cs
│ ├── Attributes/
│ │ ├── AcceptVerbsTests.cs
│ │ ├── ApiExplorerSettingsAttributeTests.cs
│ │ ├── ComplexParametersTests.cs
│ │ ├── ExtensionDataTests.cs
│ │ ├── ModelBinderQueryParametersTests.cs
│ │ ├── PrimitivePathParametersTests.cs
│ │ ├── PrimitiveQueryParametersTests.cs
│ │ ├── ResponseAttributeTests.cs
│ │ ├── RouteInheritanceTests.cs
│ │ ├── RoutePrefixTests.cs
│ │ ├── RouteTests.cs
│ │ ├── SwaggerIgnoreTests.cs
│ │ └── TagsTests.cs
│ ├── ControllerClassesTests.cs
│ ├── EnumTests.cs
│ ├── FileParameterTests.cs
│ ├── FileResponseTests.cs
│ ├── InheritanceTests.cs
│ ├── Integration/
│ │ ├── SwashbuckleAnnotationsTests.cs
│ │ └── TemplateRouteTests.cs
│ ├── NSwag.Generation.WebApi.Tests.csproj
│ ├── Nullability/
│ │ ├── ParameterNullabilityTests.cs
│ │ └── ResponseNullabilityTests.cs
│ ├── OperationIdTests.cs
│ ├── OperationNameGenerator/
│ │ ├── MultipleClientsFromFirstTagAndPathSegmentsOperationNameGeneratorTests.cs
│ │ ├── MultipleClientsFromOperationIdOperationNameGeneratorTests.cs
│ │ └── MultipleClientsFromPathSegmentsOperationNameGeneratorTests.cs
│ ├── OperationProcessors/
│ │ ├── ApiVersionProcessorWithWebApiTests.cs
│ │ ├── OpenApiQueryParametersOperationParameterProcessorTests.cs
│ │ ├── SwaggerOperationProcessorAttributeTests.cs
│ │ └── SwaggerQueryParametersOperationParameterProcessorTests.cs
│ ├── ParameterTests.cs
│ ├── ResponeAttributeTests.cs
│ ├── RouteAttributeTests.cs
│ ├── RouteTests.cs
│ ├── TypesToSwaggerTests.cs
│ ├── WebApiToSwaggerGeneratorTests.cs
│ ├── WrappedResponseTests.cs
│ └── XmlTests.cs
├── NSwag.MSBuild/
│ ├── NSwag.MSBuild.nuspec
│ ├── NSwag.MSBuild.props
│ └── build.bat
├── NSwag.NoInstaller.slnf
├── NSwag.Npm/
│ ├── README.md
│ └── package.json
├── NSwag.Sample.Common/
│ ├── ExtensionData.cs
│ ├── FileType.cs
│ ├── NSwag.Sample.Common.csproj
│ ├── Station.cs
│ └── WeatherForecast.cs
├── NSwag.Sample.NET100/
│ ├── Controllers/
│ │ └── ValuesController.cs
│ ├── NSwag.Sample.NET100.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET100Minimal/
│ ├── NSwag.Sample.NET100Minimal.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET80/
│ ├── Controllers/
│ │ └── ValuesController.cs
│ ├── NSwag.Sample.NET80.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET80Minimal/
│ ├── NSwag.Sample.NET80Minimal.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET90/
│ ├── Controllers/
│ │ └── ValuesController.cs
│ ├── NSwag.Sample.NET90.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── Startup.cs
│ ├── appsettings.Development.json
│ ├── appsettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.Sample.NET90Minimal/
│ ├── NSwag.Sample.NET90Minimal.csproj
│ ├── Program.cs
│ ├── Properties/
│ │ └── launchSettings.json
│ ├── nswag.json
│ └── openapi.json
├── NSwag.VersionMissmatchTest/
│ ├── App.config
│ ├── NSwag.VersionMissmatchTest.csproj
│ ├── Program.cs
│ └── nswag.json
├── NSwag.sln
├── NSwag.snk
├── NSwagStudio/
│ ├── App.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── Controls/
│ │ ├── AvalonEditBehavior.cs
│ │ └── TabContent.cs
│ ├── Converters/
│ │ ├── IsValueToVisibilityConverter.cs
│ │ ├── NumberAdditionConverter.cs
│ │ └── StringArrayConverter.cs
│ ├── ISwaggerGeneratorView.cs
│ ├── NSwagStudio.csproj
│ ├── Properties/
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── ViewModels/
│ │ ├── CodeGeneratorModel.cs
│ │ ├── CodeGenerators/
│ │ │ ├── SwaggerOutputViewModel.cs
│ │ │ ├── SwaggerToCSharpClientGeneratorViewModel.cs
│ │ │ ├── SwaggerToCSharpControllerGeneratorViewModel.cs
│ │ │ └── SwaggerToTypeScriptClientGeneratorViewModel.cs
│ │ ├── DocumentModel.cs
│ │ ├── DocumentViewModel.cs
│ │ ├── MainWindowModel.cs
│ │ ├── SwaggerGenerators/
│ │ │ ├── AspNetCoreToSwaggerGeneratorViewModel.cs
│ │ │ └── SwaggerInputViewModel.cs
│ │ └── ViewModelBase.cs
│ ├── Views/
│ │ ├── CodeGenerators/
│ │ │ ├── CodeGeneratorViewBase.cs
│ │ │ ├── SwaggerOutputView.xaml
│ │ │ ├── SwaggerOutputView.xaml.cs
│ │ │ ├── SwaggerToCSharpClientGeneratorView.xaml
│ │ │ ├── SwaggerToCSharpClientGeneratorView.xaml.cs
│ │ │ ├── SwaggerToCSharpControllerGeneratorView.xaml
│ │ │ ├── SwaggerToCSharpControllerGeneratorView.xaml.cs
│ │ │ ├── SwaggerToTypeScriptClientGeneratorView.xaml
│ │ │ ├── SwaggerToTypeScriptClientGeneratorView.xaml.cs
│ │ │ └── Views/
│ │ │ ├── CSharpSettingsView.xaml
│ │ │ └── CSharpSettingsView.xaml.cs
│ │ ├── DocumentView.xaml
│ │ ├── DocumentView.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ └── SwaggerGenerators/
│ │ ├── AspNetCoreToSwaggerGeneratorView.xaml
│ │ ├── AspNetCoreToSwaggerGeneratorView.xaml.cs
│ │ ├── JsonSchemaInputView.xaml
│ │ ├── JsonSchemaInputView.xaml.cs
│ │ ├── SwaggerInputView.xaml
│ │ └── SwaggerInputView.xaml.cs
│ └── nswag.cmd
├── NSwagStudio.Chocolatey/
│ ├── LICENSE.txt
│ ├── NSwagStudio.nuspec
│ ├── VERIFICATION.txt
│ ├── build.bat
│ ├── chocolateyInstall.ps1
│ └── chocolateyUninstall.ps1
├── NSwagStudio.Installer/
│ ├── NSwagStudio.Installer.wixproj
│ └── Product.wxs
├── NuGet.Config
├── UpgradeLog.htm
├── libs/
│ ├── System.IO.txt
│ └── System.Runtime.txt
└── switcher.json
Showing preview only (1,872K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (17656 symbols across 449 files)
FILE: build/Build.CI.GitHubActions.cs
class Build (line 8) | [CustomGitHubActions(
method CustomGitHubActionsAttribute (line 39) | public CustomGitHubActionsAttribute(string name, GitHubActionsImage im...
method GetJobs (line 43) | protected override GitHubActionsJob GetJobs(GitHubActionsImage image, ...
class GitHubActionsConfigureLongPathsStep (line 72) | class GitHubActionsConfigureLongPathsStep : GitHubActionsStep
method Write (line 74) | public override void Write(CustomFileWriter writer)
class GitHubActionsSetupDotNetStep (line 84) | class GitHubActionsSetupDotNetStep : GitHubActionsStep
method GitHubActionsSetupDotNetStep (line 86) | public GitHubActionsSetupDotNetStep(string[] versions)
method Write (line 93) | public override void Write(CustomFileWriter writer)
class GitHubActionsUseGnuTarStep (line 115) | class GitHubActionsUseGnuTarStep : GitHubActionsStep
method Write (line 117) | public override void Write(CustomFileWriter writer)
FILE: build/Build.Pack.cs
class Build (line 17) | public partial class Build
FILE: build/Build.Publish.cs
class Build (line 16) | public partial class Build
FILE: build/Build.cs
class Build (line 20) | partial class Build : NukeBuild
method Build (line 22) | public Build()
method TriggerAssemblyResolution (line 36) | static void TriggerAssemblyResolution() => _ = new ProjectCollection();
method Main (line 44) | public static int Main() => Execute<Build>(x => x.Compile);
method DetermineVersionPrefix (line 68) | string DetermineVersionPrefix()
method OnBuildInitialized (line 86) | protected override void OnBuildInitialized()
method PublishAndCopyConsoleProjects (line 189) | void PublishAndCopyConsoleProjects()
method BuildDefaults (line 256) | DotNetBuildSettings BuildDefaults(DotNetBuildSettings s)
method GetProject (line 268) | private Project GetProject(string projectName) =>
FILE: build/Configuration.cs
class Configuration (line 4) | [TypeConverter(typeof(TypeConverter<Configuration>))]
FILE: src/NSwag.Annotations/OpenApiBodyParameterAttribute.cs
class OpenApiBodyParameterAttribute (line 12) | [AttributeUsage(AttributeTargets.Method)]
method OpenApiBodyParameterAttribute (line 16) | public OpenApiBodyParameterAttribute()
method OpenApiBodyParameterAttribute (line 23) | public OpenApiBodyParameterAttribute(params string[] mimeTypes)
FILE: src/NSwag.Annotations/OpenApiControllerAttribute.cs
class OpenApiControllerAttribute (line 12) | [AttributeUsage(AttributeTargets.Class)]
method OpenApiControllerAttribute (line 17) | public OpenApiControllerAttribute(string name)
FILE: src/NSwag.Annotations/OpenApiExtensionDataAttribute.cs
class OpenApiExtensionDataAttribute (line 14) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | Attri...
method OpenApiExtensionDataAttribute (line 22) | public OpenApiExtensionDataAttribute(string key, string value) : base(...
class SwaggerExtensionDataAttribute (line 30) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method | Attri...
method SwaggerExtensionDataAttribute (line 37) | public SwaggerExtensionDataAttribute(string key, string value)
FILE: src/NSwag.Annotations/OpenApiFileAttribute.cs
class OpenApiFileAttribute (line 12) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Parameter)]
class SwaggerFileAttribute (line 20) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Parameter)]
FILE: src/NSwag.Annotations/OpenApiIgnoreAttribute.cs
class OpenApiIgnoreAttribute (line 12) | [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method | At...
class SwaggerIgnoreAttribute (line 20) | [AttributeUsage(AttributeTargets.Property | AttributeTargets.Method | At...
FILE: src/NSwag.Annotations/OpenApiOperationAttribute.cs
class OpenApiOperationAttribute (line 12) | [AttributeUsage(AttributeTargets.Method)]
method OpenApiOperationAttribute (line 19) | public OpenApiOperationAttribute(string operationId) : base(operationId)
method OpenApiOperationAttribute (line 26) | public OpenApiOperationAttribute(string summary, string description) :...
method OpenApiOperationAttribute (line 36) | public OpenApiOperationAttribute(string operationId, string summary, s...
class SwaggerOperationAttribute (line 50) | [AttributeUsage(AttributeTargets.Method)]
method SwaggerOperationAttribute (line 56) | public SwaggerOperationAttribute(string operationId)
FILE: src/NSwag.Annotations/OpenApiOperationProcessorAttribute.cs
class OpenApiOperationProcessorAttribute (line 13) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowM...
method OpenApiOperationProcessorAttribute (line 21) | public OpenApiOperationProcessorAttribute(Type type, params object[] p...
class SwaggerOperationProcessorAttribute (line 28) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowM...
method SwaggerOperationProcessorAttribute (line 35) | public SwaggerOperationProcessorAttribute(Type type, params object[] p...
FILE: src/NSwag.Annotations/OpenApiTagAttribute.cs
class OpenApiTagAttribute (line 12) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowM...
method OpenApiTagAttribute (line 18) | public OpenApiTagAttribute(string name) : base(name)
class SwaggerTagAttribute (line 24) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowM...
method SwaggerTagAttribute (line 29) | public SwaggerTagAttribute(string name)
FILE: src/NSwag.Annotations/OpenApiTagsAttribute.cs
class OpenApiTagsAttribute (line 12) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
method OpenApiTagsAttribute (line 19) | public OpenApiTagsAttribute(params string[] tags)
class SwaggerTagsAttribute (line 26) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
method SwaggerTagsAttribute (line 32) | public SwaggerTagsAttribute(params string[] tags)
FILE: src/NSwag.Annotations/ResponseTypeAttribute.cs
class ResponseTypeAttribute (line 16) | [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
method ResponseTypeAttribute (line 22) | public ResponseTypeAttribute(Type responseType)
method ResponseTypeAttribute (line 30) | public ResponseTypeAttribute(string httpStatusCode, Type responseType)
method ResponseTypeAttribute (line 39) | public ResponseTypeAttribute(int httpStatusCode, Type responseType)
method ResponseTypeAttribute (line 48) | public ResponseTypeAttribute(HttpStatusCode httpStatusCode, Type respo...
FILE: src/NSwag.Annotations/SwaggerDefaultResponseAttribute.cs
class SwaggerDefaultResponseAttribute (line 14) | [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowM...
method SwaggerDefaultResponseAttribute (line 18) | public SwaggerDefaultResponseAttribute()
FILE: src/NSwag.Annotations/SwaggerResponseAttribute.cs
class SwaggerResponseAttribute (line 16) | [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, AllowM...
method SwaggerResponseAttribute (line 22) | public SwaggerResponseAttribute(Type responseType)
method SwaggerResponseAttribute (line 30) | public SwaggerResponseAttribute(string httpStatusCode, Type responseType)
method SwaggerResponseAttribute (line 39) | public SwaggerResponseAttribute(int httpStatusCode, Type responseType)
method SwaggerResponseAttribute (line 48) | public SwaggerResponseAttribute(HttpStatusCode httpStatusCode, Type re...
FILE: src/NSwag.Annotations/WillReadBodyAttribute.cs
class WillReadBodyAttribute (line 12) | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Parameter)]
method WillReadBodyAttribute (line 17) | public WillReadBodyAttribute(bool willReadBody)
FILE: src/NSwag.AspNet.Owin/Middlewares/OpenApiDocumentMiddleware.cs
class OpenApiDocumentMiddleware (line 16) | public class OpenApiDocumentMiddleware : OwinMiddleware
method OpenApiDocumentMiddleware (line 31) | public OpenApiDocumentMiddleware(OwinMiddleware next, string path, IEn...
method Invoke (line 42) | public override async Task Invoke(IOwinContext context)
method GetDocumentAsync (line 61) | protected virtual async Task<string> GetDocumentAsync(IOwinContext con...
method GenerateDocumentAsync (line 91) | protected virtual async Task<string> GenerateDocumentAsync(IOwinContex...
FILE: src/NSwag.AspNet.Owin/Middlewares/RedirectToIndexMiddleware.cs
class RedirectToIndexMiddleware (line 13) | internal sealed class RedirectToIndexMiddleware : OwinMiddleware
method RedirectToIndexMiddleware (line 19) | public RedirectToIndexMiddleware(OwinMiddleware next, string internalU...
method Invoke (line 27) | public override async Task Invoke(IOwinContext context)
FILE: src/NSwag.AspNet.Owin/Middlewares/SwaggerUiIndexMiddleware.cs
class SwaggerUiIndexMiddleware (line 6) | internal sealed class SwaggerUiIndexMiddleware<T> : OwinMiddleware
method SwaggerUiIndexMiddleware (line 13) | public SwaggerUiIndexMiddleware(OwinMiddleware next, string indexPath,...
method Invoke (line 21) | public override async Task Invoke(IOwinContext context)
FILE: src/NSwag.AspNet.Owin/SwaggerExtensions.cs
class SwaggerExtensions (line 21) | public static class SwaggerExtensions
method UseOpenApi (line 30) | public static IAppBuilder UseOpenApi(
method UseOpenApi (line 43) | public static IAppBuilder UseOpenApi(
method UseOpenApi (line 57) | public static IAppBuilder UseOpenApi(
method UseSwaggerUi (line 79) | public static IAppBuilder UseSwaggerUi(
method UseSwaggerUi (line 92) | public static IAppBuilder UseSwaggerUi(
method UseSwaggerUi (line 105) | public static IAppBuilder UseSwaggerUi(
method UseSwaggerUi (line 117) | public static IAppBuilder UseSwaggerUi(
method UseSwaggerReDoc (line 150) | public static IAppBuilder UseSwaggerReDoc(
method UseSwaggerReDoc (line 163) | public static IAppBuilder UseSwaggerReDoc(
method UseSwaggerReDoc (line 176) | public static IAppBuilder UseSwaggerReDoc(
method UseSwaggerReDoc (line 188) | public static IAppBuilder UseSwaggerReDoc(
FILE: src/NSwag.AspNet.Owin/SwaggerUi/swagger-ui-bundle.js
function getPropType (line 2) | function getPropType(s){var o=typeof s;return Array.isArray(s)?"array":s...
function createChainableTypeChecker (line 2) | function createChainableTypeChecker(s){function checkType(o,i,a,u,_,w){f...
function createIterableSubclassTypeChecker (line 2) | function createIterableSubclassTypeChecker(s,o){return function createIm...
function emptyFunction (line 2) | function emptyFunction(){}
function emptyFunctionWithReset (line 2) | function emptyFunctionWithReset(){}
function shim (line 2) | function shim(s,o,i,u,_,w){if(w!==a){var x=new Error("Calling PropTypes ...
function getShim (line 2) | function getShim(){return shim}
function _defineProperty (line 2) | function _defineProperty(s,o,i){return(o=function _toPropertyKey(s){var ...
function createIterResult (line 2) | function createIterResult(s,o){return{value:s,done:o}}
function readAndResolve (line 2) | function readAndResolve(s){var o=s[w];if(null!==o){var i=s[$].read();nul...
function onReadable (line 2) | function onReadable(s){u.nextTick(readAndResolve,s)}
method stream (line 2) | get stream(){return this[$]}
class Namespace (line 2) | class Namespace{constructor(s){this.elementMap={},this.elementDetection=...
method constructor (line 2) | constructor(s){this.elementMap={},this.elementDetection=[],this.Elemen...
method use (line 2) | use(s){return s.namespace&&s.namespace({base:this}),s.load&&s.load({ba...
method useDefault (line 2) | useDefault(){return this.register("null",j.NullElement).register("stri...
method register (line 2) | register(s,o){return this._elements=void 0,this.elementMap[s]=o,this}
method unregister (line 2) | unregister(s){return this._elements=void 0,delete this.elementMap[s],t...
method detect (line 2) | detect(s,o,i){return void 0===i||i?this.elementDetection.unshift([s,o]...
method toElement (line 2) | toElement(s){if(s instanceof this.Element)return s;let o;for(let i=0;i...
method getElementClass (line 2) | getElementClass(s){const o=this.elementMap[s];return void 0===o?this.E...
method fromRefract (line 2) | fromRefract(s){return this.serialiser.deserialise(s)}
method toRefract (line 2) | toRefract(s){return this.serialiser.serialise(s)}
method elements (line 2) | get elements(){return void 0===this._elements&&(this._elements={Elemen...
method serialiser (line 2) | get serialiser(){return new C(this)}
method constructor (line 2) | constructor(){super(),this.register("annotation",ku),this.register("co...
class ArrayElement (line 2) | class ArrayElement extends u{constructor(s,o,i){super(s||[],o,i),this.el...
method constructor (line 2) | constructor(s,o,i){super(s||[],o,i),this.element="array"}
method primitive (line 2) | primitive(){return"array"}
method get (line 2) | get(s){return this.content[s]}
method getValue (line 2) | getValue(s){const o=this.get(s);if(o)return o.toValue()}
method getIndex (line 2) | getIndex(s){return this.content[s]}
method set (line 2) | set(s,o){return this.content[s]=this.refract(o),this}
method remove (line 2) | remove(s){const o=this.content.splice(s,1);return o.length?o[0]:null}
method map (line 2) | map(s,o){return this.content.map(s,o)}
method flatMap (line 2) | flatMap(s,o){return this.map(s,o).reduce(((s,o)=>s.concat(o)),[])}
method compactMap (line 2) | compactMap(s,o){const i=[];return this.forEach((a=>{const u=s.bind(o)(...
method filter (line 2) | filter(s,o){return new _(this.content.filter(s,o))}
method reject (line 2) | reject(s,o){return this.filter(a(s),o)}
method reduce (line 2) | reduce(s,o){let i,a;void 0!==o?(i=0,a=this.refract(o)):(i=1,a="object"...
method forEach (line 2) | forEach(s,o){this.content.forEach(((i,a)=>{s.bind(o)(i,this.refract(a)...
method shift (line 2) | shift(){return this.content.shift()}
method unshift (line 2) | unshift(s){this.content.unshift(this.refract(s))}
method push (line 2) | push(s){return this.content.push(this.refract(s)),this}
method add (line 2) | add(s){this.push(s)}
method findElements (line 2) | findElements(s,o){const i=o||{},a=!!i.recursive,u=void 0===i.results?[...
method find (line 2) | find(s){return new _(this.findElements(s,{recursive:!0}))}
method findByElement (line 2) | findByElement(s){return this.find((o=>o.element===s))}
method findByClass (line 2) | findByClass(s){return this.find((o=>o.classes.includes(s)))}
method getById (line 2) | getById(s){return this.find((o=>o.id.toValue()===s)).first}
method includes (line 2) | includes(s){return this.content.some((o=>o.equals(s)))}
method contains (line 2) | contains(s){return this.includes(s)}
method empty (line 2) | empty(){return new this.constructor([])}
method "fantasy-land/empty" (line 2) | "fantasy-land/empty"(){return this.empty()}
method concat (line 2) | concat(s){return new this.constructor(this.content.concat(s.content))}
method "fantasy-land/concat" (line 2) | "fantasy-land/concat"(s){return this.concat(s)}
method "fantasy-land/map" (line 2) | "fantasy-land/map"(s){return new this.constructor(this.map(s))}
method "fantasy-land/chain" (line 2) | "fantasy-land/chain"(s){return this.map((o=>s(o)),this).reduce(((s,o)=...
method "fantasy-land/filter" (line 2) | "fantasy-land/filter"(s){return new this.constructor(this.content.filt...
method "fantasy-land/reduce" (line 2) | "fantasy-land/reduce"(s,o){return this.content.reduce(s,o)}
method length (line 2) | get length(){return this.content.length}
method isEmpty (line 2) | get isEmpty(){return 0===this.content.length}
method first (line 2) | get first(){return this.getIndex(0)}
method second (line 2) | get second(){return this.getIndex(1)}
method last (line 2) | get last(){return this.getIndex(this.length-1)}
function _extends (line 2) | function _extends(){var o;return s.exports=_extends=a?u(o=a).call(o):fun...
method constructor (line 2) | constructor(s={}){__publicField(this,"counter"),__publicField(this,"debu...
function createClass (line 2) | function createClass(s,o){o&&(s.prototype=Object.create(o.prototype)),s....
function Iterable (line 2) | function Iterable(s){return isIterable(s)?s:Seq(s)}
function KeyedIterable (line 2) | function KeyedIterable(s){return isKeyed(s)?s:KeyedSeq(s)}
function IndexedIterable (line 2) | function IndexedIterable(s){return isIndexed(s)?s:IndexedSeq(s)}
function SetIterable (line 2) | function SetIterable(s){return isIterable(s)&&!isAssociative(s)?s:SetSeq...
function isIterable (line 2) | function isIterable(s){return!(!s||!s[o])}
function isKeyed (line 2) | function isKeyed(s){return!(!s||!s[i])}
function isIndexed (line 2) | function isIndexed(s){return!(!s||!s[a])}
function isAssociative (line 2) | function isAssociative(s){return isKeyed(s)||isIndexed(s)}
function isOrdered (line 2) | function isOrdered(s){return!(!s||!s[u])}
function MakeRef (line 2) | function MakeRef(s){return s.value=!1,s}
function SetRef (line 2) | function SetRef(s){s&&(s.value=!0)}
function OwnerID (line 2) | function OwnerID(){}
function arrCopy (line 2) | function arrCopy(s,o){o=o||0;for(var i=Math.max(0,s.length-o),a=new Arra...
function ensureSize (line 2) | function ensureSize(s){return void 0===s.size&&(s.size=s.__iterate(retur...
function wrapIndex (line 2) | function wrapIndex(s,o){if("number"!=typeof o){var i=o>>>0;if(""+i!==o||...
function returnTrue (line 2) | function returnTrue(){return!0}
function wholeSlice (line 2) | function wholeSlice(s,o,i){return(0===s||void 0!==i&&s<=-i)&&(void 0===o...
function resolveBegin (line 2) | function resolveBegin(s,o){return resolveIndex(s,o,0)}
function resolveEnd (line 2) | function resolveEnd(s,o){return resolveIndex(s,o,o)}
function resolveIndex (line 2) | function resolveIndex(s,o,i){return void 0===s?i:s<0?Math.max(0,o+s):voi...
function Iterator (line 2) | function Iterator(s){this.next=s}
function iteratorValue (line 2) | function iteratorValue(s,o,i,a){var u=0===s?o:1===s?i:[o,i];return a?a.v...
function iteratorDone (line 2) | function iteratorDone(){return{value:void 0,done:!0}}
function hasIterator (line 2) | function hasIterator(s){return!!getIteratorFn(s)}
function isIterator (line 2) | function isIterator(s){return s&&"function"==typeof s.next}
function getIterator (line 2) | function getIterator(s){var o=getIteratorFn(s);return o&&o.call(s)}
function getIteratorFn (line 2) | function getIteratorFn(s){var o=s&&(z&&s[z]||s[Y]);if("function"==typeof...
function isArrayLike (line 2) | function isArrayLike(s){return s&&"number"==typeof s.length}
function Seq (line 2) | function Seq(s){return null==s?emptySequence():isIterable(s)?s.toSeq():s...
function KeyedSeq (line 2) | function KeyedSeq(s){return null==s?emptySequence().toKeyedSeq():isItera...
function IndexedSeq (line 2) | function IndexedSeq(s){return null==s?emptySequence():isIterable(s)?isKe...
function SetSeq (line 2) | function SetSeq(s){return(null==s?emptySequence():isIterable(s)?isKeyed(...
function ArraySeq (line 2) | function ArraySeq(s){this._array=s,this.size=s.length}
function ObjectSeq (line 2) | function ObjectSeq(s){var o=Object.keys(s);this._object=s,this._keys=o,t...
function IterableSeq (line 2) | function IterableSeq(s){this._iterable=s,this.size=s.length||s.size}
function IteratorSeq (line 2) | function IteratorSeq(s){this._iterator=s,this._iteratorCache=[]}
function isSeq (line 2) | function isSeq(s){return!(!s||!s[ce])}
function emptySequence (line 2) | function emptySequence(){return ee||(ee=new ArraySeq([]))}
function keyedSeqFromValue (line 2) | function keyedSeqFromValue(s){var o=Array.isArray(s)?new ArraySeq(s).fro...
function indexedSeqFromValue (line 2) | function indexedSeqFromValue(s){var o=maybeIndexedSeqFromValue(s);if(!o)...
function seqFromValue (line 2) | function seqFromValue(s){var o=maybeIndexedSeqFromValue(s)||"object"==ty...
function maybeIndexedSeqFromValue (line 2) | function maybeIndexedSeqFromValue(s){return isArrayLike(s)?new ArraySeq(...
function seqIterate (line 2) | function seqIterate(s,o,i,a){var u=s._cache;if(u){for(var _=u.length-1,w...
function seqIterator (line 2) | function seqIterator(s,o,i,a){var u=s._cache;if(u){var _=u.length-1,w=0;...
function fromJS (line 2) | function fromJS(s,o){return o?fromJSWith(o,s,"",{"":s}):fromJSDefault(s)}
function fromJSWith (line 2) | function fromJSWith(s,o,i,a){return Array.isArray(o)?s.call(a,i,IndexedS...
function fromJSDefault (line 2) | function fromJSDefault(s){return Array.isArray(s)?IndexedSeq(s).map(from...
function isPlainObj (line 2) | function isPlainObj(s){return s&&(s.constructor===Object||void 0===s.con...
function is (line 2) | function is(s,o){if(s===o||s!=s&&o!=o)return!0;if(!s||!o)return!1;if("fu...
function deepEqual (line 2) | function deepEqual(s,o){if(s===o)return!0;if(!isIterable(o)||void 0!==s....
function Repeat (line 2) | function Repeat(s,o){if(!(this instanceof Repeat))return new Repeat(s,o)...
function invariant (line 2) | function invariant(s,o){if(!s)throw new Error(o)}
function Range (line 2) | function Range(s,o,i){if(!(this instanceof Range))return new Range(s,o,i...
function Collection (line 2) | function Collection(){throw TypeError("Abstract")}
function KeyedCollection (line 2) | function KeyedCollection(){}
function IndexedCollection (line 2) | function IndexedCollection(){}
function SetCollection (line 2) | function SetCollection(){}
function smi (line 2) | function smi(s){return s>>>1&1073741824|3221225471&s}
function hash (line 2) | function hash(s){if(!1===s||null==s)return 0;if("function"==typeof s.val...
function cachedHashString (line 2) | function cachedHashString(s){var o=Pe[s];return void 0===o&&(o=hashStrin...
function hashString (line 2) | function hashString(s){for(var o=0,i=0;i<s.length;i++)o=31*o+s.charCodeA...
function hashJSObj (line 2) | function hashJSObj(s){var o;if(ye&&void 0!==(o=fe.get(s)))return o;if(vo...
function getIENodeHash (line 2) | function getIENodeHash(s){if(s&&s.nodeType>0)switch(s.nodeType){case 1:r...
function assertNotInfinite (line 2) | function assertNotInfinite(s){invariant(s!==1/0,"Cannot perform this act...
function Map (line 2) | function Map(s){return null==s?emptyMap():isMap(s)&&!isOrdered(s)?s:empt...
function isMap (line 2) | function isMap(s){return!(!s||!s[Re])}
function ArrayMapNode (line 2) | function ArrayMapNode(s,o){this.ownerID=s,this.entries=o}
function BitmapIndexedNode (line 2) | function BitmapIndexedNode(s,o,i){this.ownerID=s,this.bitmap=o,this.node...
function HashArrayMapNode (line 2) | function HashArrayMapNode(s,o,i){this.ownerID=s,this.count=o,this.nodes=i}
function HashCollisionNode (line 2) | function HashCollisionNode(s,o,i){this.ownerID=s,this.keyHash=o,this.ent...
function ValueNode (line 2) | function ValueNode(s,o,i){this.ownerID=s,this.keyHash=o,this.entry=i}
function MapIterator (line 2) | function MapIterator(s,o,i){this._type=o,this._reverse=i,this._stack=s._...
function mapIteratorValue (line 2) | function mapIteratorValue(s,o){return iteratorValue(s,o[0],o[1])}
function mapIteratorFrame (line 2) | function mapIteratorFrame(s,o){return{node:s,index:0,__prev:o}}
function makeMap (line 2) | function makeMap(s,o,i,a){var u=Object.create(qe);return u.size=s,u._roo...
function emptyMap (line 2) | function emptyMap(){return Te||(Te=makeMap(0))}
function updateMap (line 2) | function updateMap(s,o,i){var a,u;if(s._root){var _=MakeRef(L),w=MakeRef...
function updateNode (line 2) | function updateNode(s,o,i,a,u,_,w,x){return s?s.update(o,i,a,u,_,w,x):_=...
function isLeafNode (line 2) | function isLeafNode(s){return s.constructor===ValueNode||s.constructor==...
function mergeIntoNode (line 2) | function mergeIntoNode(s,o,i,a,u){if(s.keyHash===a)return new HashCollis...
function createNodes (line 2) | function createNodes(s,o,i,a){s||(s=new OwnerID);for(var u=new ValueNode...
function packNodes (line 2) | function packNodes(s,o,i,a){for(var u=0,_=0,w=new Array(i),x=0,C=1,j=o.l...
function expandNodes (line 2) | function expandNodes(s,o,i,a,u){for(var _=0,w=new Array(x),C=0;0!==i;C++...
function mergeIntoMapWith (line 2) | function mergeIntoMapWith(s,o,i){for(var a=[],u=0;u<i.length;u++){var _=...
function deepMerger (line 2) | function deepMerger(s,o,i){return s&&s.mergeDeep&&isIterable(o)?s.mergeD...
function deepMergerWith (line 2) | function deepMergerWith(s){return function(o,i,a){if(o&&o.mergeDeepWith&...
function mergeIntoCollectionWith (line 2) | function mergeIntoCollectionWith(s,o,i){return 0===(i=i.filter((function...
function updateInDeepMap (line 2) | function updateInDeepMap(s,o,i,a){var u=s===j,_=o.next();if(_.done){var ...
function popCount (line 2) | function popCount(s){return s=(s=(858993459&(s-=s>>1&1431655765))+(s>>2&...
function setIn (line 2) | function setIn(s,o,i,a){var u=a?s:arrCopy(s);return u[o]=i,u}
function spliceIn (line 2) | function spliceIn(s,o,i,a){var u=s.length+1;if(a&&o+1===u)return s[o]=i,...
function spliceOut (line 2) | function spliceOut(s,o,i){var a=s.length-1;if(i&&o===a)return s.pop(),s;...
function List (line 2) | function List(s){var o=emptyList();if(null==s)return o;if(isList(s))retu...
function isList (line 2) | function isList(s){return!(!s||!s[He])}
function VNode (line 2) | function VNode(s,o){this.array=s,this.ownerID=o}
function iterateList (line 2) | function iterateList(s,o){var i=s._origin,a=s._capacity,u=getTailOffset(...
function makeList (line 2) | function makeList(s,o,i,a,u,_,w){var x=Object.create(Xe);return x.size=o...
function emptyList (line 2) | function emptyList(){return Ye||(Ye=makeList(0,0,w))}
function updateList (line 2) | function updateList(s,o,i){if((o=wrapIndex(s,o))!=o)return s;if(o>=s.siz...
function updateVNode (line 2) | function updateVNode(s,o,i,a,u,_){var x,j=a>>>i&C,L=s&&j<s.array.length;...
function editableVNode (line 2) | function editableVNode(s,o){return o&&s&&o===s.ownerID?s:new VNode(s?s.a...
function listNodeFor (line 2) | function listNodeFor(s,o){if(o>=getTailOffset(s._capacity))return s._tai...
function setListBounds (line 2) | function setListBounds(s,o,i){void 0!==o&&(o|=0),void 0!==i&&(i|=0);var ...
function mergeIntoListWith (line 2) | function mergeIntoListWith(s,o,i){for(var a=[],u=0,_=0;_<i.length;_++){v...
function getTailOffset (line 2) | function getTailOffset(s){return s<x?0:s-1>>>w<<w}
function OrderedMap (line 2) | function OrderedMap(s){return null==s?emptyOrderedMap():isOrderedMap(s)?...
function isOrderedMap (line 2) | function isOrderedMap(s){return isMap(s)&&isOrdered(s)}
function makeOrderedMap (line 2) | function makeOrderedMap(s,o,i,a){var u=Object.create(OrderedMap.prototyp...
function emptyOrderedMap (line 2) | function emptyOrderedMap(){return Qe||(Qe=makeOrderedMap(emptyMap(),empt...
function updateOrderedMap (line 2) | function updateOrderedMap(s,o,i){var a,u,_=s._map,w=s._list,C=_.get(o),L...
function ToKeyedSequence (line 2) | function ToKeyedSequence(s,o){this._iter=s,this._useKeys=o,this.size=s.s...
function ToIndexedSequence (line 2) | function ToIndexedSequence(s){this._iter=s,this.size=s.size}
function ToSetSequence (line 2) | function ToSetSequence(s){this._iter=s,this.size=s.size}
function FromEntriesSequence (line 2) | function FromEntriesSequence(s){this._iter=s,this.size=s.size}
function flipFactory (line 2) | function flipFactory(s){var o=makeSequence(s);return o._iter=s,o.size=s....
function mapFactory (line 2) | function mapFactory(s,o,i){var a=makeSequence(s);return a.size=s.size,a....
function reverseFactory (line 2) | function reverseFactory(s,o){var i=makeSequence(s);return i._iter=s,i.si...
function filterFactory (line 2) | function filterFactory(s,o,i,a){var u=makeSequence(s);return a&&(u.has=f...
function countByFactory (line 2) | function countByFactory(s,o,i){var a=Map().asMutable();return s.__iterat...
function groupByFactory (line 2) | function groupByFactory(s,o,i){var a=isKeyed(s),u=(isOrdered(s)?OrderedM...
function sliceFactory (line 2) | function sliceFactory(s,o,i,a){var u=s.size;if(void 0!==o&&(o|=0),void 0...
function takeWhileFactory (line 2) | function takeWhileFactory(s,o,i){var a=makeSequence(s);return a.__iterat...
function skipWhileFactory (line 2) | function skipWhileFactory(s,o,i,a){var u=makeSequence(s);return u.__iter...
function concatFactory (line 2) | function concatFactory(s,o){var i=isKeyed(s),a=[s].concat(o).map((functi...
function flattenFactory (line 2) | function flattenFactory(s,o,i){var a=makeSequence(s);return a.__iterateU...
function flatMapFactory (line 2) | function flatMapFactory(s,o,i){var a=iterableClass(s);return s.toSeq().m...
function interposeFactory (line 2) | function interposeFactory(s,o){var i=makeSequence(s);return i.size=s.siz...
function sortFactory (line 2) | function sortFactory(s,o,i){o||(o=defaultComparator);var a=isKeyed(s),u=...
function maxFactory (line 2) | function maxFactory(s,o,i){if(o||(o=defaultComparator),i){var a=s.toSeq(...
function maxCompare (line 2) | function maxCompare(s,o,i){var a=s(i,o);return 0===a&&i!==o&&(null==i||i...
function zipWithFactory (line 2) | function zipWithFactory(s,o,i){var a=makeSequence(s);return a.size=new A...
function reify (line 2) | function reify(s,o){return isSeq(s)?o:s.constructor(o)}
function validateEntry (line 2) | function validateEntry(s){if(s!==Object(s))throw new TypeError("Expected...
function resolveSize (line 2) | function resolveSize(s){return assertNotInfinite(s.size),ensureSize(s)}
function iterableClass (line 2) | function iterableClass(s){return isKeyed(s)?KeyedIterable:isIndexed(s)?I...
function makeSequence (line 2) | function makeSequence(s){return Object.create((isKeyed(s)?KeyedSeq:isInd...
function cacheResultThrough (line 2) | function cacheResultThrough(){return this._iter.cacheResult?(this._iter....
function defaultComparator (line 2) | function defaultComparator(s,o){return s>o?1:s<o?-1:0}
function forceIterator (line 2) | function forceIterator(s){var o=getIterator(s);if(!o){if(!isArrayLike(s)...
function Record (line 2) | function Record(s,o){var i,a=function Record(_){if(_ instanceof a)return...
function makeRecord (line 2) | function makeRecord(s,o,i){var a=Object.create(Object.getPrototypeOf(s))...
function recordName (line 2) | function recordName(s){return s._name||s.constructor.name||"Record"}
function setProps (line 2) | function setProps(s,o){try{o.forEach(setProp.bind(void 0,s))}catch(s){}}
function setProp (line 2) | function setProp(s,o){Object.defineProperty(s,o,{get:function(){return t...
function Set (line 2) | function Set(s){return null==s?emptySet():isSet(s)&&!isOrdered(s)?s:empt...
function isSet (line 2) | function isSet(s){return!(!s||!s[nt])}
function updateSet (line 2) | function updateSet(s,o){return s.__ownerID?(s.size=o.size,s._map=o,s):o=...
function makeSet (line 2) | function makeSet(s,o){var i=Object.create(st);return i.size=s?s.size:0,i...
function emptySet (line 2) | function emptySet(){return rt||(rt=makeSet(emptyMap()))}
function OrderedSet (line 2) | function OrderedSet(s){return null==s?emptyOrderedSet():isOrderedSet(s)?...
function isOrderedSet (line 2) | function isOrderedSet(s){return isSet(s)&&isOrdered(s)}
function makeOrderedSet (line 2) | function makeOrderedSet(s,o){var i=Object.create(it);return i.size=s?s.s...
function emptyOrderedSet (line 2) | function emptyOrderedSet(){return ot||(ot=makeOrderedSet(emptyOrderedMap...
function Stack (line 2) | function Stack(s){return null==s?emptyStack():isStack(s)?s:emptyStack()....
function isStack (line 2) | function isStack(s){return!(!s||!s[ct])}
function makeStack (line 2) | function makeStack(s,o,i,a){var u=Object.create(lt);return u.size=s,u._h...
function emptyStack (line 2) | function emptyStack(){return at||(at=makeStack(0))}
function mixin (line 2) | function mixin(s,o){var keyCopier=function(i){s.prototype[i]=o[i]};retur...
function keyMapper (line 2) | function keyMapper(s,o){return o}
function entryMapper (line 2) | function entryMapper(s,o){return[o,s]}
function not (line 2) | function not(s){return function(){return!s.apply(this,arguments)}}
function neg (line 2) | function neg(s){return function(){return-s.apply(this,arguments)}}
function quoteString (line 2) | function quoteString(s){return"string"==typeof s?JSON.stringify(s):Strin...
function defaultZipper (line 2) | function defaultZipper(){return arrCopy(arguments)}
function defaultNegComparator (line 2) | function defaultNegComparator(s,o){return s<o?1:s>o?-1:0}
function hashIterable (line 2) | function hashIterable(s){if(s.size===1/0)return 0;var o=isOrdered(s),i=i...
function murmurHashOfSize (line 2) | function murmurHashOfSize(s,o){return o=le(o,3432918353),o=le(o<<15|o>>>...
function hashMerge (line 2) | function hashMerge(s,o){return s^o+2654435769+(s<<6)+(s>>2)}
class Element (line 2) | class Element{constructor(s,o,i){o&&(this.meta=o),i&&(this.attributes=i)...
method constructor (line 2) | constructor(s,o,i){o&&(this.meta=o),i&&(this.attributes=i),this.conten...
method freeze (line 2) | freeze(){Object.isFrozen(this)||(this._meta&&(this.meta.parent=this,th...
method primitive (line 2) | primitive(){}
method clone (line 2) | clone(){const s=new this.constructor;return s.element=this.element,thi...
method toValue (line 2) | toValue(){return this.content instanceof Element?this.content.toValue(...
method toRef (line 2) | toRef(s){if(""===this.id.toValue())throw Error("Cannot create referenc...
method findRecursive (line 2) | findRecursive(...s){if(arguments.length>1&&!this.isFrozen)throw new Er...
method set (line 2) | set(s){return this.content=s,this}
method equals (line 2) | equals(s){return a(this.toValue(),s)}
method getMetaProperty (line 2) | getMetaProperty(s,o){if(!this.meta.hasKey(s)){if(this.isFrozen){const ...
method setMetaProperty (line 2) | setMetaProperty(s,o){this.meta.set(s,o)}
method element (line 2) | get element(){return this._storedElement||"element"}
method element (line 2) | set element(s){this._storedElement=s}
method content (line 2) | get content(){return this._content}
method content (line 2) | set content(s){if(s instanceof Element)this._content=s;else if(s insta...
method meta (line 2) | get meta(){if(!this._meta){if(this.isFrozen){const s=new this.ObjectEl...
method meta (line 2) | set meta(s){s instanceof this.ObjectElement?this._meta=s:this.meta.set...
method attributes (line 2) | get attributes(){if(!this._attributes){if(this.isFrozen){const s=new t...
method attributes (line 2) | set attributes(s){s instanceof this.ObjectElement?this._attributes=s:t...
method id (line 2) | get id(){return this.getMetaProperty("id","")}
method id (line 2) | set id(s){this.setMetaProperty("id",s)}
method classes (line 2) | get classes(){return this.getMetaProperty("classes",[])}
method classes (line 2) | set classes(s){this.setMetaProperty("classes",s)}
method title (line 2) | get title(){return this.getMetaProperty("title","")}
method title (line 2) | set title(s){this.setMetaProperty("title",s)}
method description (line 2) | get description(){return this.getMetaProperty("description","")}
method description (line 2) | set description(s){this.setMetaProperty("description",s)}
method links (line 2) | get links(){return this.getMetaProperty("links",[])}
method links (line 2) | set links(s){this.setMetaProperty("links",s)}
method isFrozen (line 2) | get isFrozen(){return Object.isFrozen(this)}
method parents (line 2) | get parents(){let{parent:s}=this;const o=new _;for(;s;)o.push(s),s=s.p...
method children (line 2) | get children(){if(Array.isArray(this.content))return new _(this.conten...
method recursiveChildren (line 2) | get recursiveChildren(){const s=new _;return this.children.forEach((o=...
class ObjectSlice (line 2) | class ObjectSlice extends u{map(s,o){return this.elements.map((i=>s.bind...
method map (line 2) | map(s,o){return this.elements.map((i=>s.bind(o)(i.value,i.key,i)))}
method filter (line 2) | filter(s,o){return new ObjectSlice(this.elements.filter((i=>s.bind(o)(...
method reject (line 2) | reject(s,o){return this.filter(a(s.bind(o)))}
method forEach (line 2) | forEach(s,o){return this.elements.forEach(((i,a)=>{s.bind(o)(i.value,i...
method keys (line 2) | keys(){return this.map(((s,o)=>o.toValue()))}
method values (line 2) | values(){return this.map((s=>s.toValue()))}
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="boolean"}
method primitive (line 2) | primitive(){return"boolean"}
method constructor (line 2) | constructor(s,o,i){super(s||[],o,i),this.element="ref",this.path||(this....
method path (line 2) | get path(){return this.attributes.get("path")}
method path (line 2) | set path(s){this.attributes.set("path",s)}
function cloneUnlessOtherwiseSpecified (line 2) | function cloneUnlessOtherwiseSpecified(s,o){return!1!==o.clone&&o.isMerg...
function defaultArrayMerge (line 2) | function defaultArrayMerge(s,o,i){return s.concat(o).map((function(s){re...
function getKeys (line 2) | function getKeys(s){return Object.keys(s).concat(function getEnumerableO...
function propertyIsOnObject (line 2) | function propertyIsOnObject(s,o){try{return o in s}catch(s){return!1}}
function mergeObject (line 2) | function mergeObject(s,o,i){var a={};return i.isMergeableObject(s)&&getK...
function deepmerge (line 2) | function deepmerge(s,i,a){(a=a||{}).arrayMerge=a.arrayMerge||defaultArra...
function E (line 2) | function E(s,o,i){this.props=s,this.context=o,this.refs=Y,this.updater=i...
function F (line 2) | function F(){}
function G (line 2) | function G(s,o,i){this.props=s,this.context=o,this.refs=Y,this.updater=i...
function M (line 2) | function M(s,o,a){var u,_={},w=null,x=null;if(null!=o)for(u in void 0!==...
function O (line 2) | function O(s){return"object"==typeof s&&null!==s&&s.$$typeof===i}
function Q (line 2) | function Q(s,o){return"object"==typeof s&&null!==s&&null!=s.key?function...
function R (line 2) | function R(s,o,u,_,w){var x=typeof s;"undefined"!==x&&"boolean"!==x||(s=...
function S (line 2) | function S(s,o,i){if(null==s)return s;var a=[],u=0;return R(s,a,"","",(f...
function T (line 2) | function T(s){if(-1===s._status){var o=s._result;(o=o()).then((function(...
function X (line 2) | function X(){throw Error("act(...) is not supported in production builds...
function CorkedRequest (line 2) | function CorkedRequest(s){var o=this;this.next=null,this.entry=null,this...
function nop (line 2) | function nop(){}
function WritableState (line 2) | function WritableState(s,o,_){a=a||i(25382),s=s||{},"boolean"!=typeof _&...
function Writable (line 2) | function Writable(s){var o=this instanceof(a=a||i(25382));if(!o&&!j.call...
function doWrite (line 2) | function doWrite(s,o,i,a,u,_,w){o.writelen=a,o.writecb=w,o.writing=!0,o....
function afterWrite (line 2) | function afterWrite(s,o,i,a){i||function onwriteDrain(s,o){0===o.length&...
function clearBuffer (line 2) | function clearBuffer(s,o){o.bufferProcessing=!0;var i=o.bufferedRequest;...
function needFinish (line 2) | function needFinish(s){return s.ending&&0===s.length&&null===s.bufferedR...
function callFinal (line 2) | function callFinal(s,o){s._final((function(i){o.pendingcb--,i&&ce(s,i),o...
function finishMaybe (line 2) | function finishMaybe(s,o){var i=needFinish(o);if(i&&(function prefinish(...
function source (line 2) | function source(s){return s?"string"==typeof s?s:s.source:null}
function lookahead (line 2) | function lookahead(s){return concat("(?=",s,")")}
function concat (line 2) | function concat(...s){return s.map((s=>source(s))).join("")}
function either (line 2) | function either(...s){return"("+s.map((s=>source(s))).join("|")+")"}
function resolve (line 2) | function resolve(s,o,i){var a,_=function create_indent(s,o){return new A...
function format (line 2) | function format(s,o,i){if("object"!=typeof o)return s(!1,o);var a=o.inte...
function delay (line 2) | function delay(s){C?a.nextTick(s):s()}
function append (line 2) | function append(s,o){if(void 0!==o&&(u+=o),s&&!w&&(i=i||new _,w=!0),s&&w...
function add (line 2) | function add(s,o){format(append,resolve(s,x,x?1:0),o)}
function end (line 2) | function end(){if(i){var s=u;delay((function(){i.emit("data",s),i.emit("...
function isObject (line 2) | function isObject(s){var o=typeof s;return!!s&&("object"==o||"function"=...
function toNumber (line 2) | function toNumber(s){if("number"==typeof s)return s;if(function isSymbol...
function invokeFunc (line 2) | function invokeFunc(o){var i=a,_=u;return a=u=void 0,j=o,w=s.apply(_,i)}
function shouldInvoke (line 2) | function shouldInvoke(s){var i=s-C;return void 0===C||i>=o||i<0||B&&s-j>=_}
function timerExpired (line 2) | function timerExpired(){var s=now();if(shouldInvoke(s))return trailingEd...
function trailingEdge (line 2) | function trailingEdge(s){return x=void 0,U&&a?invokeFunc(s):(a=u=void 0,w)}
function debounced (line 2) | function debounced(){var s=now(),i=shouldInvoke(s);if(a=arguments,u=this...
class NonError (line 2) | class NonError extends Error{constructor(s){super(NonError._prepareSuper...
method constructor (line 2) | constructor(s){super(NonError._prepareSuperMessage(s)),Object.definePr...
method _prepareSuperMessage (line 2) | static _prepareSuperMessage(s){try{return JSON.stringify(s)}catch{retu...
function Hash (line 2) | function Hash(s){var o=-1,i=null==s?0:s.length;for(this.clear();++o<i;){...
function p (line 2) | function p(s){for(var o="https://reactjs.org/docs/error-decoder.html?inv...
function fa (line 2) | function fa(s,o){ha(s,o),ha(s+"Capture",o)}
function ha (line 2) | function ha(s,o){for(w[s]=o,s=0;s<o.length;s++)_.add(o[s])}
function v (line 2) | function v(s,o,i,a,u,_,w){this.acceptsBooleans=2===o||3===o||4===o,this....
function sa (line 2) | function sa(s){return s[1].toUpperCase()}
function ta (line 2) | function ta(s,o,i,a){var u=$.hasOwnProperty(o)?$[o]:null;(null!==u?0!==u...
function Ka (line 2) | function Ka(s){return null===s||"object"!=typeof s?null:"function"==type...
function Ma (line 2) | function Ma(s){if(void 0===Se)try{throw Error()}catch(s){var o=s.stack.t...
function Oa (line 2) | function Oa(s,o){if(!s||xe)return"";xe=!0;var i=Error.prepareStackTrace;...
function Pa (line 2) | function Pa(s){switch(s.tag){case 5:return Ma(s.type);case 16:return Ma(...
function Qa (line 2) | function Qa(s){if(null==s)return null;if("function"==typeof s)return s.d...
function Ra (line 2) | function Ra(s){var o=s.type;switch(s.tag){case 24:return"Cache";case 9:r...
function Sa (line 2) | function Sa(s){switch(typeof s){case"boolean":case"number":case"string":...
function Ta (line 2) | function Ta(s){var o=s.type;return(s=s.nodeName)&&"input"===s.toLowerCas...
function Va (line 2) | function Va(s){s._valueTracker||(s._valueTracker=function Ua(s){var o=Ta...
function Wa (line 2) | function Wa(s){if(!s)return!1;var o=s._valueTracker;if(!o)return!0;var i...
function Xa (line 2) | function Xa(s){if(void 0===(s=s||("undefined"!=typeof document?document:...
function Ya (line 2) | function Ya(s,o){var i=o.checked;return we({},o,{defaultChecked:void 0,d...
function Za (line 2) | function Za(s,o){var i=null==o.defaultValue?"":o.defaultValue,a=null!=o....
function ab (line 2) | function ab(s,o){null!=(o=o.checked)&&ta(s,"checked",o,!1)}
function bb (line 2) | function bb(s,o){ab(s,o);var i=Sa(o.value),a=o.type;if(null!=i)"number"=...
function db (line 2) | function db(s,o,i){if(o.hasOwnProperty("value")||o.hasOwnProperty("defau...
function cb (line 2) | function cb(s,o,i){"number"===o&&Xa(s.ownerDocument)===s||(null==i?s.def...
function fb (line 2) | function fb(s,o,i,a){if(s=s.options,o){o={};for(var u=0;u<i.length;u++)o...
function gb (line 2) | function gb(s,o){if(null!=o.dangerouslySetInnerHTML)throw Error(p(91));r...
function hb (line 2) | function hb(s,o){var i=o.value;if(null==i){if(i=o.children,o=o.defaultVa...
function ib (line 2) | function ib(s,o){var i=Sa(o.value),a=Sa(o.defaultValue);null!=i&&((i=""+...
function jb (line 2) | function jb(s){var o=s.textContent;o===s._wrapperState.initialValue&&""!...
function kb (line 2) | function kb(s){switch(s){case"svg":return"http://www.w3.org/2000/svg";ca...
function lb (line 2) | function lb(s,o){return null==s||"http://www.w3.org/1999/xhtml"===s?kb(o...
function ob (line 2) | function ob(s,o){if(o){var i=s.firstChild;if(i&&i===s.lastChild&&3===i.n...
function rb (line 2) | function rb(s,o,i){return null==o||"boolean"==typeof o||""===o?"":i||"nu...
function sb (line 2) | function sb(s,o){for(var i in s=s.style,o)if(o.hasOwnProperty(i)){var a=...
function ub (line 2) | function ub(s,o){if(o){if(We[s]&&(null!=o.children||null!=o.dangerouslyS...
function vb (line 2) | function vb(s,o){if(-1===s.indexOf("-"))return"string"==typeof o.is;swit...
function xb (line 2) | function xb(s){return(s=s.target||s.srcElement||window).correspondingUse...
function Bb (line 2) | function Bb(s){if(s=Cb(s)){if("function"!=typeof Xe)throw Error(p(280));...
function Eb (line 2) | function Eb(s){Ye?Qe?Qe.push(s):Qe=[s]:Ye=s}
function Fb (line 2) | function Fb(){if(Ye){var s=Ye,o=Qe;if(Qe=Ye=null,Bb(s),o)for(s=0;s<o.len...
function Gb (line 2) | function Gb(s,o){return s(o)}
function Hb (line 2) | function Hb(){}
function Jb (line 2) | function Jb(s,o,i){if(et)return s(o,i);et=!0;try{return Gb(s,o,i)}finall...
function Kb (line 2) | function Kb(s,o){var i=s.stateNode;if(null===i)return null;var a=Db(i);i...
function Nb (line 2) | function Nb(s,o,i,a,u,_,w,x,C){var j=Array.prototype.slice.call(argument...
function Tb (line 2) | function Tb(s,o,i,a,u,_,w,x,C){nt=!1,st=null,Nb.apply(at,arguments)}
function Vb (line 2) | function Vb(s){var o=s,i=s;if(s.alternate)for(;o.return;)o=o.return;else...
function Wb (line 2) | function Wb(s){if(13===s.tag){var o=s.memoizedState;if(null===o&&(null!=...
function Xb (line 2) | function Xb(s){if(Vb(s)!==s)throw Error(p(188))}
function Zb (line 2) | function Zb(s){return null!==(s=function Yb(s){var o=s.alternate;if(!o){...
function $b (line 2) | function $b(s){if(5===s.tag||6===s.tag)return s;for(s=s.child;null!==s;)...
function tc (line 2) | function tc(s){switch(s&-s){case 1:return 1;case 2:return 2;case 4:retur...
function uc (line 2) | function uc(s,o){var i=s.pendingLanes;if(0===i)return 0;var a=0,u=s.susp...
function vc (line 2) | function vc(s,o){switch(s){case 1:case 2:case 4:return o+250;case 8:case...
function xc (line 2) | function xc(s){return 0!==(s=-1073741825&s.pendingLanes)?s:1073741824&s?...
function yc (line 2) | function yc(){var s=kt;return!(4194240&(kt<<=1))&&(kt=64),s}
function zc (line 2) | function zc(s){for(var o=[],i=0;31>i;i++)o.push(s);return o}
function Ac (line 2) | function Ac(s,o,i){s.pendingLanes|=o,536870912!==o&&(s.suspendedLanes=0,...
function Cc (line 2) | function Cc(s,o){var i=s.entangledLanes|=o;for(s=s.entanglements;i;){var...
function Dc (line 2) | function Dc(s){return 1<(s&=-s)?4<s?268435455&s?16:536870912:4:1}
function Sc (line 2) | function Sc(s,o){switch(s){case"focusin":case"focusout":Rt=null;break;ca...
function Tc (line 2) | function Tc(s,o,i,a,u,_){return null===s||s.nativeEvent!==_?(s={blockedO...
function Vc (line 2) | function Vc(s){var o=Wc(s.target);if(null!==o){var i=Vb(o);if(null!==i)i...
function Xc (line 2) | function Xc(s){if(null!==s.blockedOn)return!1;for(var o=s.targetContaine...
function Zc (line 2) | function Zc(s,o,i){Xc(s)&&i.delete(o)}
function $c (line 2) | function $c(){Tt=!1,null!==Rt&&Xc(Rt)&&(Rt=null),null!==Dt&&Xc(Dt)&&(Dt=...
function ad (line 2) | function ad(s,o){s.blockedOn===o&&(s.blockedOn=null,Tt||(Tt=!0,u.unstabl...
function bd (line 2) | function bd(s){function b(o){return ad(o,s)}if(0<Mt.length){ad(Mt[0],s);...
function ed (line 2) | function ed(s,o,i,a){var u=Ct,_=Vt.transition;Vt.transition=null;try{Ct=...
function gd (line 2) | function gd(s,o,i,a){var u=Ct,_=Vt.transition;Vt.transition=null;try{Ct=...
function fd (line 2) | function fd(s,o,i,a){if(Ut){var u=Yc(s,o,i,a);if(null===u)hd(s,o,a,zt,i)...
function Yc (line 2) | function Yc(s,o,i,a){if(zt=null,null!==(s=Wc(s=xb(a))))if(null===(o=Vb(s...
function jd (line 2) | function jd(s){switch(s){case"cancel":case"click":case"close":case"conte...
function nd (line 2) | function nd(){if(Ht)return Ht;var s,o,i=Jt,a=i.length,u="value"in Wt?Wt....
function od (line 2) | function od(s){var o=s.keyCode;return"charCode"in s?0===(s=s.charCode)&&...
function pd (line 2) | function pd(){return!0}
function qd (line 2) | function qd(){return!1}
function rd (line 2) | function rd(s){function b(o,i,a,u,_){for(var w in this._reactName=o,this...
function Pd (line 2) | function Pd(s){var o=this.nativeEvent;return o.getModifierState?o.getMod...
function zd (line 2) | function zd(){return Pd}
function ge (line 2) | function ge(s,o){switch(s){case"keyup":return-1!==Sr.indexOf(o.keyCode);...
function he (line 2) | function he(s){return"object"==typeof(s=s.detail)&&"data"in s?s.data:null}
function me (line 2) | function me(s){var o=s&&s.nodeName&&s.nodeName.toLowerCase();return"inpu...
function ne (line 2) | function ne(s,o,i,a){Eb(a),0<(o=oe(o,"onChange")).length&&(i=new Qt("onC...
function re (line 2) | function re(s){se(s,0)}
function te (line 2) | function te(s){if(Wa(ue(s)))return s}
function ve (line 2) | function ve(s,o){if("change"===s)return o}
function Ae (line 2) | function Ae(){Ir&&(Ir.detachEvent("onpropertychange",Be),Pr=Ir=null)}
function Be (line 2) | function Be(s){if("value"===s.propertyName&&te(Pr)){var o=[];ne(o,Pr,s,x...
function Ce (line 2) | function Ce(s,o,i){"focusin"===s?(Ae(),Pr=i,(Ir=o).attachEvent("onproper...
function De (line 2) | function De(s){if("selectionchange"===s||"keyup"===s||"keydown"===s)retu...
function Ee (line 2) | function Ee(s,o){if("click"===s)return te(o)}
function Fe (line 2) | function Fe(s,o){if("input"===s||"change"===s)return te(o)}
function Ie (line 2) | function Ie(s,o){if(Dr(s,o))return!0;if("object"!=typeof s||null===s||"o...
function Je (line 2) | function Je(s){for(;s&&s.firstChild;)s=s.firstChild;return s}
function Ke (line 2) | function Ke(s,o){var i,a=Je(s);for(s=0;a;){if(3===a.nodeType){if(i=s+a.t...
function Le (line 2) | function Le(s,o){return!(!s||!o)&&(s===o||(!s||3!==s.nodeType)&&(o&&3===...
function Me (line 2) | function Me(){for(var s=window,o=Xa();o instanceof s.HTMLIFrameElement;)...
function Ne (line 2) | function Ne(s){var o=s&&s.nodeName&&s.nodeName.toLowerCase();return o&&(...
function Oe (line 2) | function Oe(s){var o=Me(),i=s.focusedElem,a=s.selectionRange;if(o!==i&&i...
function Ue (line 2) | function Ue(s,o,i){var a=i.window===i?i.document:9===i.nodeType?i:i.owne...
function Ve (line 2) | function Ve(s,o){var i={};return i[s.toLowerCase()]=o.toLowerCase(),i["W...
function Ze (line 2) | function Ze(s){if(Ur[s])return Ur[s];if(!Vr[s])return s;var o,i=Vr[s];fo...
function ff (line 2) | function ff(s,o){Gr.set(s,o),fa(o,[s])}
function nf (line 2) | function nf(s,o,i){var a=s.type||"unknown-event";s.currentTarget=i,funct...
function se (line 2) | function se(s,o){o=!!(4&o);for(var i=0;i<s.length;i++){var a=s[i],u=a.ev...
function D (line 2) | function D(s,o){var i=o[mn];void 0===i&&(i=o[mn]=new Set);var a=s+"__bub...
function qf (line 2) | function qf(s,o,i){var a=0;o&&(a|=4),pf(i,s,a,o)}
function sf (line 2) | function sf(s){if(!s[tn]){s[tn]=!0,_.forEach((function(o){"selectionchan...
function pf (line 2) | function pf(s,o,i,a){switch(jd(o)){case 1:var u=ed;break;case 4:u=gd;bre...
function hd (line 2) | function hd(s,o,i,a,u){var _=a;if(!(1&o||2&o||null===a))e:for(;;){if(nul...
function tf (line 2) | function tf(s,o,i){return{instance:s,listener:o,currentTarget:i}}
function oe (line 2) | function oe(s,o){for(var i=o+"Capture",a=[];null!==s;){var u=s,_=u.state...
function vf (line 2) | function vf(s){if(null===s)return null;do{s=s.return}while(s&&5!==s.tag)...
function wf (line 2) | function wf(s,o,i,a,u){for(var _=o._reactName,w=[];null!==i&&i!==a;){var...
function zf (line 2) | function zf(s){return("string"==typeof s?s:""+s).replace(rn,"\n").replac...
function Af (line 2) | function Af(s,o,i){if(o=zf(o),zf(s)!==o&&i)throw Error(p(425))}
function Bf (line 2) | function Bf(){}
function Ef (line 2) | function Ef(s,o){return"textarea"===s||"noscript"===s||"string"==typeof ...
function If (line 2) | function If(s){setTimeout((function(){throw s}))}
function Kf (line 2) | function Kf(s,o){var i=o,a=0;do{var u=i.nextSibling;if(s.removeChild(i),...
function Lf (line 2) | function Lf(s){for(;null!=s;s=s.nextSibling){var o=s.nodeType;if(1===o||...
function Mf (line 2) | function Mf(s){s=s.previousSibling;for(var o=0;s;){if(8===s.nodeType){va...
function Wc (line 2) | function Wc(s){var o=s[hn];if(o)return o;for(var i=s.parentNode;i;){if(o...
function Cb (line 2) | function Cb(s){return!(s=s[hn]||s[fn])||5!==s.tag&&6!==s.tag&&13!==s.tag...
function ue (line 2) | function ue(s){if(5===s.tag||6===s.tag)return s.stateNode;throw Error(p(...
function Db (line 2) | function Db(s){return s[dn]||null}
function Uf (line 2) | function Uf(s){return{current:s}}
function E (line 2) | function E(s){0>bn||(s.current=vn[bn],vn[bn]=null,bn--)}
function G (line 2) | function G(s,o){bn++,vn[bn]=s.current,s.current=o}
function Yf (line 2) | function Yf(s,o){var i=s.type.contextTypes;if(!i)return _n;var a=s.state...
function Zf (line 2) | function Zf(s){return null!=(s=s.childContextTypes)}
function $f (line 2) | function $f(){E(En),E(Sn)}
function ag (line 2) | function ag(s,o,i){if(Sn.current!==_n)throw Error(p(168));G(Sn,o),G(En,i)}
function bg (line 2) | function bg(s,o,i){var a=s.stateNode;if(o=o.childContextTypes,"function"...
function cg (line 2) | function cg(s){return s=(s=s.stateNode)&&s.__reactInternalMemoizedMerged...
function dg (line 2) | function dg(s,o,i){var a=s.stateNode;if(!a)throw Error(p(169));i?(s=bg(s...
function hg (line 2) | function hg(s){null===xn?xn=[s]:xn.push(s)}
function jg (line 2) | function jg(){if(!On&&null!==xn){On=!0;var s=0,o=Ct;try{var i=xn;for(Ct=...
function tg (line 2) | function tg(s,o){Cn[An++]=In,Cn[An++]=jn,jn=s,In=o}
function ug (line 2) | function ug(s,o,i){Pn[Nn++]=Mn,Pn[Nn++]=Rn,Pn[Nn++]=Tn,Tn=s;var a=Mn;s=R...
function vg (line 2) | function vg(s){null!==s.return&&(tg(s,1),ug(s,1,0))}
function wg (line 2) | function wg(s){for(;s===jn;)jn=Cn[--An],Cn[An]=null,In=Cn[--An],Cn[An]=n...
function Ag (line 2) | function Ag(s,o){var i=Bg(5,null,null,0);i.elementType="DELETED",i.state...
function Cg (line 2) | function Cg(s,o){switch(s.tag){case 5:var i=s.type;return null!==(o=1!==...
function Dg (line 2) | function Dg(s){return!(!(1&s.mode)||128&s.flags)}
function Eg (line 2) | function Eg(s){if(Fn){var o=Ln;if(o){var i=o;if(!Cg(s,o)){if(Dg(s))throw...
function Fg (line 2) | function Fg(s){for(s=s.return;null!==s&&5!==s.tag&&3!==s.tag&&13!==s.tag...
function Gg (line 2) | function Gg(s){if(s!==Dn)return!1;if(!Fn)return Fg(s),Fn=!0,!1;var o;if(...
function Hg (line 2) | function Hg(){for(var s=Ln;s;)s=Lf(s.nextSibling)}
function Ig (line 2) | function Ig(){Ln=Dn=null,Fn=!1}
function Jg (line 2) | function Jg(s){null===Bn?Bn=[s]:Bn.push(s)}
function Lg (line 2) | function Lg(s,o,i){if(null!==(s=i.ref)&&"function"!=typeof s&&"object"!=...
function Mg (line 2) | function Mg(s,o){throw s=Object.prototype.toString.call(o),Error(p(31,"[...
function Ng (line 2) | function Ng(s){return(0,s._init)(s._payload)}
function Og (line 2) | function Og(s){function b(o,i){if(s){var a=o.deletions;null===a?(o.delet...
function $g (line 2) | function $g(){Jn=Wn=zn=null}
function ah (line 2) | function ah(s){var o=Un.current;E(Un),s._currentValue=o}
function bh (line 2) | function bh(s,o,i){for(;null!==s;){var a=s.alternate;if((s.childLanes&o)...
function ch (line 2) | function ch(s,o){zn=s,Jn=Wn=null,null!==(s=s.dependencies)&&null!==s.fir...
function eh (line 2) | function eh(s){var o=s._currentValue;if(Jn!==s)if(s={context:s,memoizedV...
function gh (line 2) | function gh(s){null===Hn?Hn=[s]:Hn.push(s)}
function hh (line 2) | function hh(s,o,i,a){var u=o.interleaved;return null===u?(i.next=i,gh(o)...
function ih (line 2) | function ih(s,o){s.lanes|=o;var i=s.alternate;for(null!==i&&(i.lanes|=o)...
function kh (line 2) | function kh(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:...
function lh (line 2) | function lh(s,o){s=s.updateQueue,o.updateQueue===s&&(o.updateQueue={base...
function mh (line 2) | function mh(s,o){return{eventTime:s,lane:o,tag:0,payload:null,callback:n...
function nh (line 2) | function nh(s,o,i){var a=s.updateQueue;if(null===a)return null;if(a=a.sh...
function oh (line 2) | function oh(s,o,i){if(null!==(o=o.updateQueue)&&(o=o.shared,4194240&i)){...
function ph (line 2) | function ph(s,o){var i=s.updateQueue,a=s.alternate;if(null!==a&&i===(a=a...
function qh (line 2) | function qh(s,o,i,a){var u=s.updateQueue;Kn=!1;var _=u.firstBaseUpdate,w...
function sh (line 2) | function sh(s,o,i){if(s=o.effects,o.effects=null,null!==s)for(o=0;o<s.le...
function xh (line 2) | function xh(s){if(s===Gn)throw Error(p(174));return s}
function yh (line 2) | function yh(s,o){switch(G(Qn,o),G(Yn,s),G(Xn,Gn),s=o.nodeType){case 9:ca...
function zh (line 2) | function zh(){E(Xn),E(Yn),E(Qn)}
function Ah (line 2) | function Ah(s){xh(Qn.current);var o=xh(Xn.current),i=lb(o,s.type);o!==i&...
function Bh (line 2) | function Bh(s){Yn.current===s&&(E(Xn),E(Yn))}
function Ch (line 2) | function Ch(s){for(var o=s;null!==o;){if(13===o.tag){var i=o.memoizedSta...
function Eh (line 2) | function Eh(){for(var s=0;s<es.length;s++)es[s]._workInProgressVersionPr...
function P (line 2) | function P(){throw Error(p(321))}
function Mh (line 2) | function Mh(s,o){if(null===o)return!1;for(var i=0;i<o.length&&i<s.length...
function Nh (line 2) | function Nh(s,o,i,a,u,_){if(ns=_,ss=o,o.memoizedState=null,o.updateQueue...
function Sh (line 2) | function Sh(){var s=0!==us;return us=0,s}
function Th (line 2) | function Th(){var s={memoizedState:null,baseState:null,baseQueue:null,qu...
function Uh (line 2) | function Uh(){if(null===os){var s=ss.alternate;s=null!==s?s.memoizedStat...
function Vh (line 2) | function Vh(s,o){return"function"==typeof o?o(s):o}
function Wh (line 2) | function Wh(s){var o=Uh(),i=o.queue;if(null===i)throw Error(p(311));i.la...
function Xh (line 2) | function Xh(s){var o=Uh(),i=o.queue;if(null===i)throw Error(p(311));i.la...
function Yh (line 2) | function Yh(){}
function Zh (line 2) | function Zh(s,o){var i=ss,a=Uh(),u=o(),_=!Dr(a.memoizedState,u);if(_&&(a...
function di (line 2) | function di(s,o,i){s.flags|=16384,s={getSnapshot:o,value:i},null===(o=ss...
function ci (line 2) | function ci(s,o,i,a){o.value=i,o.getSnapshot=a,ei(o)&&fi(s)}
function ai (line 2) | function ai(s,o,i){return i((function(){ei(o)&&fi(s)}))}
function ei (line 2) | function ei(s){var o=s.getSnapshot;s=s.value;try{var i=o();return!Dr(s,i...
function fi (line 2) | function fi(s){var o=ih(s,1);null!==o&&gi(o,s,1,-1)}
function hi (line 2) | function hi(s){var o=Th();return"function"==typeof s&&(s=s()),o.memoized...
function bi (line 2) | function bi(s,o,i,a){return s={tag:s,create:o,destroy:i,deps:a,next:null...
function ji (line 2) | function ji(){return Uh().memoizedState}
function ki (line 2) | function ki(s,o,i,a){var u=Th();ss.flags|=s,u.memoizedState=bi(1|o,i,voi...
function li (line 2) | function li(s,o,i,a){var u=Uh();a=void 0===a?null:a;var _=void 0;if(null...
function mi (line 2) | function mi(s,o){return ki(8390656,8,s,o)}
function $h (line 2) | function $h(s,o){return li(2048,8,s,o)}
function ni (line 2) | function ni(s,o){return li(4,2,s,o)}
function oi (line 2) | function oi(s,o){return li(4,4,s,o)}
function pi (line 2) | function pi(s,o){return"function"==typeof o?(s=s(),o(s),function(){o(nul...
function qi (line 2) | function qi(s,o,i){return i=null!=i?i.concat([s]):null,li(4,4,pi.bind(nu...
function ri (line 2) | function ri(){}
function si (line 2) | function si(s,o){var i=Uh();o=void 0===o?null:o;var a=i.memoizedState;re...
function ti (line 2) | function ti(s,o){var i=Uh();o=void 0===o?null:o;var a=i.memoizedState;re...
function ui (line 2) | function ui(s,o,i){return 21&ns?(Dr(i,o)||(i=yc(),ss.lanes|=i,Ws|=i,s.ba...
function vi (line 2) | function vi(s,o){var i=Ct;Ct=0!==i&&4>i?i:4,s(!0);var a=rs.transition;rs...
function wi (line 2) | function wi(){return Uh().memoizedState}
function xi (line 2) | function xi(s,o,i){var a=yi(s);if(i={lane:a,action:i,hasEagerState:!1,ea...
function ii (line 2) | function ii(s,o,i){var a=yi(s),u={lane:a,action:i,hasEagerState:!1,eager...
function zi (line 2) | function zi(s){var o=s.alternate;return s===ss||null!==o&&o===ss}
function Ai (line 2) | function Ai(s,o){ls=cs=!0;var i=s.pending;null===i?o.next=o:(o.next=i.ne...
function Bi (line 2) | function Bi(s,o,i){if(4194240&i){var a=o.lanes;i|=a&=s.pendingLanes,o.la...
function Ci (line 2) | function Ci(s,o){if(s&&s.defaultProps){for(var i in o=we({},o),s=s.defau...
function Di (line 2) | function Di(s,o,i,a){i=null==(i=i(a,o=s.memoizedState))?o:we({},o,i),s.m...
function Fi (line 2) | function Fi(s,o,i,a,u,_,w){return"function"==typeof(s=s.stateNode).shoul...
function Gi (line 2) | function Gi(s,o,i){var a=!1,u=_n,_=o.contextType;return"object"==typeof ...
function Hi (line 2) | function Hi(s,o,i,a){s=o.state,"function"==typeof o.componentWillReceive...
function Ii (line 2) | function Ii(s,o,i,a){var u=s.stateNode;u.props=i,u.state=s.memoizedState...
function Ji (line 2) | function Ji(s,o){try{var i="",a=o;do{i+=Pa(a),a=a.return}while(a);var u=...
function Ki (line 2) | function Ki(s,o,i){return{value:s,source:null,stack:null!=i?i:null,diges...
function Li (line 2) | function Li(s,o){try{console.error(o.value)}catch(s){setTimeout((functio...
function Ni (line 2) | function Ni(s,o,i){(i=mh(-1,i)).tag=3,i.payload={element:null};var a=o.v...
function Qi (line 2) | function Qi(s,o,i){(i=mh(-1,i)).tag=3;var a=s.type.getDerivedStateFromEr...
function Si (line 2) | function Si(s,o,i){var a=s.pingCache;if(null===a){a=s.pingCache=new ys;v...
function Ui (line 2) | function Ui(s){do{var o;if((o=13===s.tag)&&(o=null===(o=s.memoizedState)...
function Vi (line 2) | function Vi(s,o,i,a,u){return 1&s.mode?(s.flags|=65536,s.lanes=u,s):(s==...
function Xi (line 2) | function Xi(s,o,i,a){o.child=null===s?Vn(o,null,i,a):$n(o,s.child,i,a)}
function Yi (line 2) | function Yi(s,o,i,a,u){i=i.render;var _=o.ref;return ch(o,u),a=Nh(s,o,i,...
function $i (line 2) | function $i(s,o,i,a,u){if(null===s){var _=i.type;return"function"!=typeo...
function bj (line 2) | function bj(s,o,i,a,u){if(null!==s){var _=s.memoizedProps;if(Ie(_,a)&&s....
function dj (line 2) | function dj(s,o,i){var a=o.pendingProps,u=a.children,_=null!==s?s.memoiz...
function gj (line 2) | function gj(s,o){var i=o.ref;(null===s&&null!==i||null!==s&&s.ref!==i)&&...
function cj (line 2) | function cj(s,o,i,a,u){var _=Zf(i)?wn:Sn.current;return _=Yf(o,_),ch(o,u...
function hj (line 2) | function hj(s,o,i,a,u){if(Zf(i)){var _=!0;cg(o)}else _=!1;if(ch(o,u),nul...
function jj (line 2) | function jj(s,o,i,a,u,_){gj(s,o);var w=!!(128&o.flags);if(!a&&!w)return ...
function kj (line 2) | function kj(s){var o=s.stateNode;o.pendingContext?ag(0,o.pendingContext,...
function lj (line 2) | function lj(s,o,i,a,u){return Ig(),Jg(u),o.flags|=256,Xi(s,o,i,a),o.child}
function nj (line 2) | function nj(s){return{baseLanes:s,cachePool:null,transitions:null}}
function oj (line 2) | function oj(s,o,i){var a,u=o.pendingProps,_=Zn.current,w=!1,x=!!(128&o.f...
function qj (line 2) | function qj(s,o){return(o=pj({mode:"visible",children:o},s.mode,0,null))...
function sj (line 2) | function sj(s,o,i,a){return null!==a&&Jg(a),$n(o,s.child,null,i),(s=qj(o...
function vj (line 2) | function vj(s,o,i){s.lanes|=o;var a=s.alternate;null!==a&&(a.lanes|=o),b...
function wj (line 2) | function wj(s,o,i,a,u){var _=s.memoizedState;null===_?s.memoizedState={i...
function xj (line 2) | function xj(s,o,i){var a=o.pendingProps,u=a.revealOrder,_=a.tail;if(Xi(s...
function ij (line 2) | function ij(s,o){!(1&o.mode)&&null!==s&&(s.alternate=null,o.alternate=nu...
function Zi (line 2) | function Zi(s,o,i){if(null!==s&&(o.dependencies=s.dependencies),Ws|=o.la...
function Dj (line 2) | function Dj(s,o){if(!Fn)switch(s.tailMode){case"hidden":o=s.tail;for(var...
function S (line 2) | function S(s){var o=null!==s.alternate&&s.alternate.child===s.child,i=0,...
function Ej (line 2) | function Ej(s,o,i){var a=o.pendingProps;switch(wg(o),o.tag){case 2:case ...
function Ij (line 2) | function Ij(s,o){switch(wg(o),o.tag){case 1:return Zf(o.type)&&$f(),6553...
function Lj (line 2) | function Lj(s,o){var i=s.ref;if(null!==i)if("function"==typeof i)try{i(n...
function Mj (line 2) | function Mj(s,o,i){try{i()}catch(i){W(s,o,i)}}
function Pj (line 2) | function Pj(s,o,i){var a=o.updateQueue;if(null!==(a=null!==a?a.lastEffec...
function Qj (line 2) | function Qj(s,o){if(null!==(o=null!==(o=o.updateQueue)?o.lastEffect:null...
function Rj (line 2) | function Rj(s){var o=s.ref;if(null!==o){var i=s.stateNode;s.tag,s=i,"fun...
function Sj (line 2) | function Sj(s){var o=s.alternate;null!==o&&(s.alternate=null,Sj(o)),s.ch...
function Tj (line 2) | function Tj(s){return 5===s.tag||3===s.tag||4===s.tag}
function Uj (line 2) | function Uj(s){e:for(;;){for(;null===s.sibling;){if(null===s.return||Tj(...
function Vj (line 2) | function Vj(s,o,i){var a=s.tag;if(5===a||6===a)s=s.stateNode,o?8===i.nod...
function Wj (line 2) | function Wj(s,o,i){var a=s.tag;if(5===a||6===a)s=s.stateNode,o?i.insertB...
function Yj (line 2) | function Yj(s,o,i){for(i=i.child;null!==i;)Zj(s,o,i),i=i.sibling}
function Zj (line 2) | function Zj(s,o,i){if(St&&"function"==typeof St.onCommitFiberUnmount)try...
function ak (line 2) | function ak(s){var o=s.updateQueue;if(null!==o){s.updateQueue=null;var i...
function ck (line 2) | function ck(s,o){var i=o.deletions;if(null!==i)for(var a=0;a<i.length;a+...
function dk (line 2) | function dk(s,o){var i=s.alternate,a=s.flags;switch(s.tag){case 0:case 1...
function ek (line 2) | function ek(s){var o=s.flags;if(2&o){try{e:{for(var i=s.return;null!==i;...
function hk (line 2) | function hk(s,o,i){As=s,ik(s,o,i)}
function ik (line 2) | function ik(s,o,i){for(var a=!!(1&s.mode);null!==As;){var u=As,_=u.child...
function kk (line 2) | function kk(s){for(;null!==As;){var o=As;if(8772&o.flags){var i=o.altern...
function gk (line 2) | function gk(s){for(;null!==As;){var o=As;if(o===s){As=null;break}var i=o...
function jk (line 2) | function jk(s){for(;null!==As;){var o=As;try{switch(o.tag){case 0:case 1...
function R (line 2) | function R(){return 6&Ls?ht():-1!==ao?ao:ao=ht()}
function yi (line 2) | function yi(s){return 1&s.mode?2&Ls&&0!==qs?qs&-qs:null!==qn.transition?...
function gi (line 2) | function gi(s,o,i,a){if(50<oo)throw oo=0,io=null,Error(p(185));Ac(s,i,a)...
function Dk (line 2) | function Dk(s,o){var i=s.callbackNode;!function wc(s,o){for(var i=s.susp...
function Gk (line 2) | function Gk(s,o){if(ao=-1,co=0,6&Ls)throw Error(p(327));var i=s.callback...
function Nk (line 2) | function Nk(s,o){var i=Ks;return s.current.memoizedState.isDehydrated&&(...
function Fj (line 2) | function Fj(s){null===Gs?Gs=s:Gs.push.apply(Gs,s)}
function Ck (line 2) | function Ck(s,o){for(o&=~Hs,o&=~Js,s.suspendedLanes|=o,s.pingedLanes&=~o...
function Ek (line 2) | function Ek(s){if(6&Ls)throw Error(p(327));Hk();var o=uc(s,0);if(!(1&o))...
function Qk (line 2) | function Qk(s,o){var i=Ls;Ls|=1;try{return s(o)}finally{0===(Ls=i)&&(Ys=...
function Rk (line 2) | function Rk(s){null!==no&&0===no.tag&&!(6&Ls)&&Hk();var o=Ls;Ls|=1;var i...
function Hj (line 2) | function Hj(){$s=Vs.current,E(Vs)}
function Kk (line 2) | function Kk(s,o){s.finishedWork=null,s.finishedLanes=0;var i=s.timeoutHa...
function Mk (line 2) | function Mk(s,o){for(;;){var i=Bs;try{if($g(),ts.current=hs,cs){for(var ...
function Jk (line 2) | function Jk(){var s=Ms.current;return Ms.current=hs,null===s?hs:s}
function tj (line 2) | function tj(){0!==Us&&3!==Us&&2!==Us||(Us=4),null===Fs||!(268435455&Ws)&...
function Ik (line 2) | function Ik(s,o){var i=Ls;Ls|=2;var a=Jk();for(Fs===s&&qs===o||(Qs=null,...
function Tk (line 2) | function Tk(){for(;null!==Bs;)Uk(Bs)}
function Lk (line 2) | function Lk(){for(;null!==Bs&&!ut();)Uk(Bs)}
function Uk (line 2) | function Uk(s){var o=Ns(s.alternate,s,$s);s.memoizedProps=s.pendingProps...
function Sk (line 2) | function Sk(s){var o=s;do{var i=o.alternate;if(s=o.return,32768&o.flags)...
function Pk (line 2) | function Pk(s,o,i){var a=Ct,u=Ds.transition;try{Ds.transition=null,Ct=1,...
function Hk (line 2) | function Hk(){if(null!==no){var s=Dc(so),o=Ds.transition,i=Ct;try{if(Ds....
function Xk (line 2) | function Xk(s,o,i){s=nh(s,o=Ni(0,o=Ji(i,o),1),1),o=R(),null!==s&&(Ac(s,1...
function W (line 2) | function W(s,o,i){if(3===s.tag)Xk(s,s,i);else for(;null!==o;){if(3===o.t...
function Ti (line 2) | function Ti(s,o,i){var a=s.pingCache;null!==a&&a.delete(o),o=R(),s.pinge...
function Yk (line 2) | function Yk(s,o){0===o&&(1&s.mode?(o=Ot,!(130023424&(Ot<<=1))&&(Ot=41943...
function uj (line 2) | function uj(s){var o=s.memoizedState,i=0;null!==o&&(i=o.retryLane),Yk(s,i)}
function bk (line 2) | function bk(s,o){var i=0;switch(s.tag){case 13:var a=s.stateNode,u=s.mem...
function Fk (line 2) | function Fk(s,o){return ct(s,o)}
function $k (line 2) | function $k(s,o,i,a){this.tag=s,this.key=i,this.sibling=this.child=this....
function Bg (line 2) | function Bg(s,o,i,a){return new $k(s,o,i,a)}
function aj (line 2) | function aj(s){return!(!(s=s.prototype)||!s.isReactComponent)}
function Pg (line 2) | function Pg(s,o){var i=s.alternate;return null===i?((i=Bg(s.tag,o,s.key,...
function Rg (line 2) | function Rg(s,o,i,a,u,_){var w=2;if(a=s,"function"==typeof s)aj(s)&&(w=1...
function Tg (line 2) | function Tg(s,o,i,a){return(s=Bg(7,s,a,o)).lanes=i,s}
function pj (line 2) | function pj(s,o,i,a){return(s=Bg(22,s,a,o)).elementType=be,s.lanes=i,s.s...
function Qg (line 2) | function Qg(s,o,i){return(s=Bg(6,s,null,o)).lanes=i,s}
function Sg (line 2) | function Sg(s,o,i){return(o=Bg(4,null!==s.children?s.children:[],s.key,o...
function al (line 2) | function al(s,o,i,a,u){this.tag=o,this.containerInfo=s,this.finishedWork...
function bl (line 2) | function bl(s,o,i,a,u,_,w,x,C){return s=new al(s,o,i,x,C),1===o?(o=1,!0=...
function dl (line 2) | function dl(s){if(!s)return _n;e:{if(Vb(s=s._reactInternals)!==s||1!==s....
function el (line 2) | function el(s,o,i,a,u,_,w,x,C){return(s=bl(i,a,!0,s,0,_,0,x,C)).context=...
function fl (line 2) | function fl(s,o,i,a){var u=o.current,_=R(),w=yi(u);return i=dl(i),null==...
function gl (line 2) | function gl(s){return(s=s.current).child?(s.child.tag,s.child.stateNode)...
function hl (line 2) | function hl(s,o){if(null!==(s=s.memoizedState)&&null!==s.dehydrated){var...
function il (line 2) | function il(s,o){hl(s,o),(s=s.alternate)&&hl(s,o)}
function ll (line 2) | function ll(s){this._internalRoot=s}
function ml (line 2) | function ml(s){this._internalRoot=s}
function nl (line 2) | function nl(s){return!(!s||1!==s.nodeType&&9!==s.nodeType&&11!==s.nodeTy...
function ol (line 2) | function ol(s){return!(!s||1!==s.nodeType&&9!==s.nodeType&&11!==s.nodeTy...
function pl (line 2) | function pl(){}
function rl (line 2) | function rl(s,o,i,a,u){var _=i._reactRootContainer;if(_){var w=_;if("fun...
function Sha256 (line 2) | function Sha256(){this.init(),this._w=x,u.call(this,64,56)}
function ch (line 2) | function ch(s,o,i){return i^s&(o^i)}
function maj (line 2) | function maj(s,o,i){return s&o|i&(s|o)}
function sigma0 (line 2) | function sigma0(s){return(s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10)}
function sigma1 (line 2) | function sigma1(s){return(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7)}
function gamma0 (line 2) | function gamma0(s){return(s>>>7|s<<25)^(s>>>18|s<<14)^s>>>3}
function _typeof (line 2) | function _typeof(s){return _typeof="function"==typeof Symbol&&"symbol"==...
function _interopRequireDefault (line 2) | function _interopRequireDefault(s){return s&&s.__esModule?s:{default:s}}
function ownKeys (line 2) | function ownKeys(s,o){var i=Object.keys(s);if(Object.getOwnPropertySymbo...
function _objectSpread (line 2) | function _objectSpread(s){for(var o=1;o<arguments.length;o++){var i=null...
function _objectWithoutProperties (line 2) | function _objectWithoutProperties(s,o){if(null==s)return{};var i,a,u=fun...
function _defineProperties (line 2) | function _defineProperties(s,o){for(var i=0;i<o.length;i++){var a=o[i];a...
function _setPrototypeOf (line 2) | function _setPrototypeOf(s,o){return _setPrototypeOf=Object.setPrototype...
function _createSuper (line 2) | function _createSuper(s){var o=function _isNativeReflectConstruct(){if("...
function _assertThisInitialized (line 2) | function _assertThisInitialized(s){if(void 0===s)throw new ReferenceErro...
function _getPrototypeOf (line 2) | function _getPrototypeOf(s){return _getPrototypeOf=Object.setPrototypeOf...
function _defineProperty (line 2) | function _defineProperty(s,o,i){return o in s?Object.defineProperty(s,o,...
function CopyToClipboard (line 2) | function CopyToClipboard(){var s;!function _classCallCheck(s,o){if(!(s i...
function Duplex (line 2) | function Duplex(s){if(!(this instanceof Duplex))return new Duplex(s);_.c...
function onend (line 2) | function onend(){this._writableState.ended||a.nextTick(onEndNT,this)}
function onEndNT (line 2) | function onEndNT(s){s.end()}
function format (line 2) | function format(s){for(var o,i,a,u,_=1,w=[].slice.call(arguments),x=0,C=...
function getType (line 2) | function getType(s){return u(s)?"ClosingTag":function isOpeningTag(s){re...
function Sha224 (line 2) | function Sha224(){this.init(),this._w=x,_.call(this,64,56)}
function Sha (line 2) | function Sha(){this.init(),this._w=x,u.call(this,64,56)}
function rotl30 (line 2) | function rotl30(s){return s<<30|s>>>2}
function ft (line 2) | function ft(s,o,i,a){return 0===s?o&i|~o&a:2===s?o&i|o&a|i&a:o^i^a}
function f (line 2) | function f(s,o){var i=s.length;s.push(o);e:for(;0<i;){var a=i-1>>>1,u=s[...
function h (line 2) | function h(s){return 0===s.length?null:s[0]}
function k (line 2) | function k(s){if(0===s.length)return null;var o=s[0],i=s.pop();if(i!==o)...
function g (line 2) | function g(s,o){var i=s.sortIndex-o.sortIndex;return 0!==i?i:s.id-o.id}
function G (line 2) | function G(s){for(var o=h(w);null!==o;){if(null===o.callback)k(w);else{i...
function H (line 2) | function H(s){if($=!1,G(s),!B)if(null!==h(_))B=!0,I(J);else{var o=h(w);n...
function J (line 2) | function J(s,i){B=!1,$&&($=!1,U(ie),ie=-1),L=!0;var a=j;try{for(G(i),C=h...
function M (line 2) | function M(){return!(o.unstable_now()-ce<ae)}
function R (line 2) | function R(){if(null!==ee){var s=o.unstable_now();ce=s;var i=!0;try{i=ee...
function I (line 2) | function I(s){ee=s,Z||(Z=!0,Y())}
function K (line 2) | function K(s,i){ie=V((function(){s(o.unstable_now())}),i)}
function LazyWrapper (line 2) | function LazyWrapper(s){this.__wrapped__=s,this.__actions__=[],this.__di...
function Sha384 (line 2) | function Sha384(){this.init(),this._w=x,_.call(this,128,112)}
function writeInt64BE (line 2) | function writeInt64BE(o,i,a){s.writeInt32BE(o,a),s.writeInt32BE(i,a+4)}
function concat (line 2) | function concat(...s){return s.map((s=>function source(s){return s?"stri...
function EventEmitter (line 2) | function EventEmitter(){EventEmitter.init.call(this)}
function errorListener (line 2) | function errorListener(i){s.removeListener(o,resolver),a(i)}
function resolver (line 2) | function resolver(){"function"==typeof s.removeListener&&s.removeListene...
function checkListener (line 2) | function checkListener(s){if("function"!=typeof s)throw new TypeError('T...
function _getMaxListeners (line 2) | function _getMaxListeners(s){return void 0===s._maxListeners?EventEmitte...
function _addListener (line 2) | function _addListener(s,o,i,a){var u,_,w;if(checkListener(i),void 0===(_...
function onceWrapper (line 2) | function onceWrapper(){if(!this.fired)return this.target.removeListener(...
function _onceWrap (line 2) | function _onceWrap(s,o,i){var a={fired:!1,wrapFn:void 0,target:s,type:o,...
function _listeners (line 2) | function _listeners(s,o,i){var a=s._events;if(void 0===a)return[];var u=...
function listenerCount (line 2) | function listenerCount(s){var o=this._events;if(void 0!==o){var i=o[s];i...
function arrayClone (line 2) | function arrayClone(s,o){for(var i=new Array(o),a=0;a<o;++a)i[a]=s[a];re...
function eventTargetAgnosticAddListener (line 2) | function eventTargetAgnosticAddListener(s,o,i,a){if("function"==typeof s...
function Stack (line 2) | function Stack(s){var o=this.__data__=new a(s);this.size=o.size}
function invokeFunc (line 2) | function invokeFunc(o){var i=C,a=j;return C=j=void 0,U=o,B=s.apply(a,i)}
function shouldInvoke (line 2) | function shouldInvoke(s){var i=s-V;return void 0===V||i>=o||i<0||Y&&s-U>=L}
function timerExpired (line 2) | function timerExpired(){var s=u();if(shouldInvoke(s))return trailingEdge...
function trailingEdge (line 2) | function trailingEdge(s){return $=void 0,Z&&C?invokeFunc(s):(C=j=void 0,B)}
function debounced (line 2) | function debounced(){var s=u(),i=shouldInvoke(s);if(C=arguments,j=this,V...
function SetCache (line 2) | function SetCache(s){var o=-1,i=null==s?0:s.length;for(this.__data__=new...
function object (line 2) | function object(){}
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="number"}
method primitive (line 2) | primitive(){return"number"}
method constructor (line 2) | constructor(s,o,i){super(s||null,o,i),this.element="null"}
method primitive (line 2) | primitive(){return"null"}
method set (line 2) | set(){return new Error("Cannot set the value of null")}
method constructor (line 2) | constructor(s,o){if(this._setDefaults(s),s instanceof RegExp)this.ignore...
method _setDefaults (line 2) | _setDefaults(s){this.max=null!=s.max?s.max:null!=RandExp.prototype.max?R...
method gen (line 2) | gen(){return this._gen(this.tokens,[])}
method _gen (line 2) | _gen(s,o){var i,a,u,w,x;switch(s.type){case _.ROOT:case _.GROUP:if(s.fol...
method _toOtherCase (line 2) | _toOtherCase(s){return s+(97<=s&&s<=122?-32:65<=s&&s<=90?32:0)}
method _randBool (line 2) | _randBool(){return!this.randInt(0,1)}
method _randSelect (line 2) | _randSelect(s){return s instanceof u?s.index(this.randInt(0,s.length-1))...
method _expand (line 2) | _expand(s){if(s.type===a.types.CHAR)return new u(s.value);if(s.type===a....
method randInt (line 2) | randInt(s,o){return s+Math.floor(Math.random()*(1+o-s))}
method defaultRange (line 2) | get defaultRange(){return this._range=this._range||new u(32,126)}
method defaultRange (line 2) | set defaultRange(s){this._range=s}
method randexp (line 2) | static randexp(s,o){var i;return"string"==typeof s&&(s=new RegExp(s,o)),...
method sugar (line 2) | static sugar(){RegExp.prototype.gen=function(){return RandExp.randexp(th...
function highlight (line 2) | function highlight(s,o,i){var w,x=a.configure({}),C=(i||{}).prefix;if("s...
function Emitter (line 2) | function Emitter(s){this.options=s,this.rootNode={children:[]},this.stac...
function noop (line 2) | function noop(){}
function ReadableState (line 2) | function ReadableState(s,o,u){a=a||i(25382),s=s||{},"boolean"!=typeof u&...
function Readable (line 2) | function Readable(s){if(a=a||i(25382),!(this instanceof Readable))return...
function readableAddChunk (line 2) | function readableAddChunk(s,o,i,a,u){j("readableAddChunk",o);var _,w=s._...
function addChunk (line 2) | function addChunk(s,o,i,a){o.flowing&&0===o.length&&!o.sync?(o.awaitDrai...
function howMuchToRead (line 2) | function howMuchToRead(s,o){return s<=0||0===o.length&&o.ended?0:o.objec...
function emitReadable (line 2) | function emitReadable(s){var o=s._readableState;j("emitReadable",o.needR...
function emitReadable_ (line 2) | function emitReadable_(s){var o=s._readableState;j("emitReadable_",o.des...
function maybeReadMore (line 2) | function maybeReadMore(s,o){o.readingMore||(o.readingMore=!0,u.nextTick(...
function maybeReadMore_ (line 2) | function maybeReadMore_(s,o){for(;!o.reading&&!o.ended&&(o.length<o.high...
function updateReadableListening (line 2) | function updateReadableListening(s){var o=s._readableState;o.readableLis...
function nReadingNextTick (line 2) | function nReadingNextTick(s){j("readable nexttick read 0"),s.read(0)}
function resume_ (line 2) | function resume_(s,o){j("resume",o.reading),o.reading||s.read(0),o.resum...
function flow (line 2) | function flow(s){var o=s._readableState;for(j("flow",o.flowing);o.flowin...
function fromList (line 2) | function fromList(s,o){return 0===o.length?null:(o.objectMode?i=o.buffer...
function endReadable (line 2) | function endReadable(s){var o=s._readableState;j("endReadable",o.endEmit...
function endReadableNT (line 2) | function endReadableNT(s,o){if(j("endReadableNT",s.endEmitted,s.length),...
function indexOf (line 2) | function indexOf(s,o){for(var i=0,a=s.length;i<a;i++)if(s[i]===o)return ...
function onunpipe (line 2) | function onunpipe(o,u){j("onunpipe"),o===i&&u&&!1===u.hasUnpiped&&(u.has...
function onend (line 2) | function onend(){j("onend"),s.end()}
function ondata (line 2) | function ondata(o){j("ondata");var u=s.write(o);j("dest.write",u),!1===u...
function onerror (line 2) | function onerror(o){j("onerror",o),unpipe(),s.removeListener("error",one...
function onclose (line 2) | function onclose(){s.removeListener("finish",onfinish),unpipe()}
function onfinish (line 2) | function onfinish(){j("onfinish"),s.removeListener("close",onclose),unpi...
function unpipe (line 2) | function unpipe(){j("unpipe"),i.unpipe(s)}
function deepFreeze (line 2) | function deepFreeze(s){return s instanceof Map?s.clear=s.delete=s.set=fu...
class Response (line 2) | class Response{constructor(s){void 0===s.data&&(s.data={}),this.data=s.d...
method constructor (line 2) | constructor(s){void 0===s.data&&(s.data={}),this.data=s.data,this.isMa...
method ignoreMatch (line 2) | ignoreMatch(){this.isMatchIgnored=!0}
function escapeHTML (line 2) | function escapeHTML(s){return s.replace(/&/g,"&").replace(/</g,"<...
function inherit (line 2) | function inherit(s,...o){const i=Object.create(null);for(const o in s)i[...
class HTMLRenderer (line 2) | class HTMLRenderer{constructor(s,o){this.buffer="",this.classPrefix=o.cl...
method constructor (line 2) | constructor(s,o){this.buffer="",this.classPrefix=o.classPrefix,s.walk(...
method addText (line 2) | addText(s){this.buffer+=escapeHTML(s)}
method openNode (line 2) | openNode(s){if(!emitsWrappingTags(s))return;let o=s.kind;s.sublanguage...
method closeNode (line 2) | closeNode(s){emitsWrappingTags(s)&&(this.buffer+="</span>")}
method value (line 2) | value(){return this.buffer}
method span (line 2) | span(s){this.buffer+=`<span class="${s}">`}
class TokenTree (line 2) | class TokenTree{constructor(){this.rootNode={children:[]},this.stack=[th...
method constructor (line 2) | constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}
method top (line 2) | get top(){return this.stack[this.stack.length-1]}
method root (line 2) | get root(){return this.rootNode}
method add (line 2) | add(s){this.top.children.push(s)}
method openNode (line 2) | openNode(s){const o={kind:s,children:[]};this.add(o),this.stack.push(o)}
method closeNode (line 2) | closeNode(){if(this.stack.length>1)return this.stack.pop()}
method closeAllNodes (line 2) | closeAllNodes(){for(;this.closeNode(););}
method toJSON (line 2) | toJSON(){return JSON.stringify(this.rootNode,null,4)}
method walk (line 2) | walk(s){return this.constructor._walk(s,this.rootNode)}
method _walk (line 2) | static _walk(s,o){return"string"==typeof o?s.addText(o):o.children&&(s...
method _collapse (line 2) | static _collapse(s){"string"!=typeof s&&s.children&&(s.children.every(...
class TokenTreeEmitter (line 2) | class TokenTreeEmitter extends TokenTree{constructor(s){super(),this.opt...
method constructor (line 2) | constructor(s){super(),this.options=s}
method addKeyword (line 2) | addKeyword(s,o){""!==s&&(this.openNode(o),this.addText(s),this.closeNo...
method addText (line 2) | addText(s){""!==s&&this.add(s)}
method addSublanguage (line 2) | addSublanguage(s,o){const i=s.root;i.kind=o,i.sublanguage=!0,this.add(i)}
method toHTML (line 2) | toHTML(){return new HTMLRenderer(this,this.options).value()}
method finalize (line 2) | finalize(){return!0}
function source (line 2) | function source(s){return s?"string"==typeof s?s:s.source:null}
function skipIfhasPrecedingDot (line 2) | function skipIfhasPrecedingDot(s,o){"."===s.input[s.index-1]&&o.ignoreMa...
function beginKeywords (line 2) | function beginKeywords(s,o){o&&s.beginKeywords&&(s.begin="\\b("+s.beginK...
function compileIllegal (line 2) | function compileIllegal(s,o){Array.isArray(s.illegal)&&(s.illegal=functi...
function compileMatch (line 2) | function compileMatch(s,o){if(s.match){if(s.begin||s.end)throw new Error...
function compileRelevance (line 2) | function compileRelevance(s,o){void 0===s.relevance&&(s.relevance=1)}
function compileKeywords (line 2) | function compileKeywords(s,o,i="keyword"){const a={};return"string"==typ...
function scoreForKeyword (line 2) | function scoreForKeyword(s,o){return o?Number(o):function commonKeyword(...
function compileLanguage (line 2) | function compileLanguage(s,{plugins:o}){function langRe(o,i){return new ...
function dependencyOnParent (line 2) | function dependencyOnParent(s){return!!s&&(s.endsWithParent||dependencyO...
function BuildVuePlugin (line 2) | function BuildVuePlugin(s){const o={props:["language","code","autodetect...
function selectStream (line 2) | function selectStream(){return s.length&&o.length?s[0].offset!==o[0].off...
function open (line 2) | function open(s){function attributeString(s){return" "+s.nodeName+'="'+e...
function close (line 2) | function close(s){u+="</"+tag(s)+">"}
function render (line 2) | function render(s){("start"===s.event?open:close)(s.node)}
function tag (line 2) | function tag(s){return s.nodeName.toLowerCase()}
function nodeStream (line 2) | function nodeStream(s){const o=[];return function _nodeStream(s,i){for(l...
function shouldNotHighlight (line 2) | function shouldNotHighlight(s){return j.noHighlightRe.test(s)}
function highlight (line 2) | function highlight(s,o,i,a){let u="",_="";"object"==typeof o?(u=s,i=o.ig...
function _highlight (line 2) | function _highlight(s,o,a,w){function keywordData(s,o){const i=L.case_in...
function highlightAuto (line 2) | function highlightAuto(s,o){o=o||j.languages||Object.keys(i);const a=fun...
function highlightElement (line 2) | function highlightElement(s){let o=null;const i=function blockLanguage(s...
function highlightAll (line 2) | function highlightAll(){if("loading"===document.readyState)return void(V...
function getLanguage (line 2) | function getLanguage(s){return s=(s||"").toLowerCase(),i[s]||i[a[s]]}
function registerAliases (line 2) | function registerAliases(s,{languageName:o}){"string"==typeof s&&(s=[s])...
function autoDetection (line 2) | function autoDetection(s){const o=getLanguage(s);return o&&!o.disableAut...
function fire (line 2) | function fire(s,o){const i=s;u.forEach((function(s){s[i]&&s[i](o)}))}
function classNames (line 2) | function classNames(){for(var s="",o=0;o<arguments.length;o++){var i=arg...
function parseValue (line 2) | function parseValue(s){if("string"==typeof s||"number"==typeof s)return ...
function appendClass (line 2) | function appendClass(s,o){return o?s?s+" "+o:s+o:s}
function createBuffer (line 2) | function createBuffer(s){if(s>w)throw new RangeError('The value "'+s+'" ...
function Buffer (line 2) | function Buffer(s,o,i){if("number"==typeof s){if("string"==typeof o)thro...
function from (line 2) | function from(s,o,i){if("string"==typeof s)return function fromString(s,...
function assertSize (line 2) | function assertSize(s){if("number"!=typeof s)throw new TypeError('"size"...
function allocUnsafe (line 2) | function allocUnsafe(s){return assertSize(s),createBuffer(s<0?0:0|checke...
function fromArrayLike (line 2) | function fromArrayLike(s){const o=s.length<0?0:0|checked(s.length),i=cre...
function fromArrayBuffer (line 2) | function fromArrayBuffer(s,o,i){if(o<0||s.byteLength<o)throw new RangeEr...
function checked (line 2) | function checked(s){if(s>=w)throw new RangeError("Attempt to allocate Bu...
function byteLength (line 2) | function byteLength(s,o){if(Buffer.isBuffer(s))return s.length;if(ArrayB...
function slowToString (line 2) | function slowToString(s,o,i){let a=!1;if((void 0===o||o<0)&&(o=0),o>this...
function swap (line 2) | function swap(s,o,i){const a=s[o];s[o]=s[i],s[i]=a}
function bidirectionalIndexOf (line 2) | function bidirectionalIndexOf(s,o,i,a,u){if(0===s.length)return-1;if("st...
function arrayIndexOf (line 2) | function arrayIndexOf(s,o,i,a,u){let _,w=1,x=s.length,C=o.length;if(void...
function hexWrite (line 2) | function hexWrite(s,o,i,a){i=Number(i)||0;const u=s.length-i;a?(a=Number...
function utf8Write (line 2) | function utf8Write(s,o,i,a){return blitBuffer(utf8ToBytes(o,s.length-i),...
function asciiWrite (line 2) | function asciiWrite(s,o,i,a){return blitBuffer(function asciiToBytes(s){...
function base64Write (line 2) | function base64Write(s,o,i,a){return blitBuffer(base64ToBytes(o),s,i,a)}
function ucs2Write (line 2) | function ucs2Write(s,o,i,a){return blitBuffer(function utf16leToBytes(s,...
function base64Slice (line 2) | function base64Slice(s,o,i){return 0===o&&i===s.length?a.fromByteArray(s...
function utf8Slice (line 2) | function utf8Slice(s,o,i){i=Math.min(s.length,i);const a=[];let u=o;for(...
function asciiSlice (line 2) | function asciiSlice(s,o,i){let a="";i=Math.min(s.length,i);for(let u=o;u...
function latin1Slice (line 2) | function latin1Slice(s,o,i){let a="";i=Math.min(s.length,i);for(let u=o;...
function hexSlice (line 2) | function hexSlice(s,o,i){const a=s.length;(!o||o<0)&&(o=0),(!i||i<0||i>a...
function utf16leSlice (line 2) | function utf16leSlice(s,o,i){const a=s.slice(o,i);let u="";for(let s=0;s...
function checkOffset (line 2) | function checkOffset(s,o,i){if(s%1!=0||s<0)throw new RangeError("offset ...
function checkInt (line 2) | function checkInt(s,o,i,a,u,_){if(!Buffer.isBuffer(s))throw new TypeErro...
function wrtBigUInt64LE (line 2) | function wrtBigUInt64LE(s,o,i,a,u){checkIntBI(o,a,u,s,i,7);let _=Number(...
function wrtBigUInt64BE (line 2) | function wrtBigUInt64BE(s,o,i,a,u){checkIntBI(o,a,u,s,i,7);let _=Number(...
function checkIEEE754 (line 2) | function checkIEEE754(s,o,i,a,u,_){if(i+a>s.length)throw new RangeError(...
function writeFloat (line 2) | function writeFloat(s,o,i,a,_){return o=+o,i>>>=0,_||checkIEEE754(s,0,i,...
function writeDouble (line 2) | function writeDouble(s,o,i,a,_){return o=+o,i>>>=0,_||checkIEEE754(s,0,i...
function E (line 2) | function E(s,o,i){C[s]=class NodeError extends i{constructor(){super(),O...
function addNumericalSeparator (line 2) | function addNumericalSeparator(s){let o="",i=s.length;const a="-"===s[0]...
function checkIntBI (line 2) | function checkIntBI(s,o,i,a,u,_){if(s>i||s<o){const a="bigint"==typeof o...
function validateNumber (line 2) | function validateNumber(s,o){if("number"!=typeof s)throw new C.ERR_INVAL...
function boundsError (line 2) | function boundsError(s,o,i){if(Math.floor(s)!==s)throw validateNumber(s,...
function utf8ToBytes (line 2) | function utf8ToBytes(s,o){let i;o=o||1/0;const a=s.length;let u=null;con...
function base64ToBytes (line 2) | function base64ToBytes(s){return a.toByteArray(function base64clean(s){i...
function blitBuffer (line 2) | function blitBuffer(s,o,i,a){let u;for(u=0;u<a&&!(u+i>=o.length||u>=s.le...
function isInstance (line 2) | function isInstance(s,o){return s instanceof o||null!=s&&null!=s.constru...
function numberIsNaN (line 2) | function numberIsNaN(s){return s!=s}
function defineBigIntMethod (line 2) | function defineBigIntMethod(s){return"undefined"==typeof BigInt?BufferBi...
function BufferBigIntNotDefined (line 2) | function BufferBigIntNotDefined(){throw new Error("BigInt not supported")}
function curry (line 2) | function curry(s,o,i){var u=a(s,8,void 0,void 0,void 0,void 0,void 0,o=i...
function memoize (line 2) | function memoize(s,o){if("function"!=typeof s||null!=o&&"function"!=type...
function MapCache (line 2) | function MapCache(s){var o=-1,i=null==s?0:s.length;for(this.clear();++o<...
function lodash (line 2) | function lodash(s){if(x(s)&&!w(s)&&!(s instanceof a)){if(s instanceof u)...
function _interopRequireDefault (line 2) | function _interopRequireDefault(s){return s&&s.__esModule?s:{default:s}}
class KeyValuePair (line 2) | class KeyValuePair{constructor(s,o){this.key=s,this.value=o}clone(){cons...
method constructor (line 2) | constructor(s,o){this.key=s,this.value=o}
method clone (line 2) | clone(){const s=new KeyValuePair;return this.key&&(s.key=this.key.clon...
function LodashWrapper (line 2) | function LodashWrapper(s,o){this.__wrapped__=s,this.__actions__=[],this....
function F (line 2) | function F(){}
function noop (line 2) | function noop(s){if(s)throw s}
function call (line 2) | function call(s){s()}
function pipe (line 2) | function pipe(s,o){return s.pipe(o)}
method constructor (line 2) | constructor(s,o,i){super(s||[],o,i),this.element="object"}
method primitive (line 2) | primitive(){return"object"}
method toValue (line 2) | toValue(){return this.content.reduce(((s,o)=>(s[o.key.toValue()]=o.value...
method get (line 2) | get(s){const o=this.getMember(s);if(o)return o.value}
method getMember (line 2) | getMember(s){if(void 0!==s)return this.content.find((o=>o.key.toValue()=...
method remove (line 2) | remove(s){let o=null;return this.content=this.content.filter((i=>i.key.t...
method getKey (line 2) | getKey(s){const o=this.getMember(s);if(o)return o.key}
method set (line 2) | set(s,o){if(u(s))return Object.keys(s).forEach((o=>{this.set(o,s[o])})),...
method keys (line 2) | keys(){return this.content.map((s=>s.key.toValue()))}
method values (line 2) | values(){return this.content.map((s=>s.value.toValue()))}
method hasKey (line 2) | hasKey(s){return this.content.some((o=>o.key.equals(s)))}
method items (line 2) | items(){return this.content.map((s=>[s.key.toValue(),s.value.toValue()]))}
method map (line 2) | map(s,o){return this.content.map((i=>s.bind(o)(i.value,i.key,i)))}
method compactMap (line 2) | compactMap(s,o){const i=[];return this.forEach(((a,u,_)=>{const w=s.bind...
method filter (line 2) | filter(s,o){return new x(this.content).filter(s,o)}
method reject (line 2) | reject(s,o){return this.filter(a(s),o)}
method forEach (line 2) | forEach(s,o){return this.content.forEach((i=>s.bind(o)(i.value,i.key,i)))}
function trimLeft (line 2) | function trimLeft(s){return(s||"").toString().replace(_,"")}
function lolcation (line 2) | function lolcation(s){var o,a=("undefined"!=typeof window?window:void 0!...
function isSpecial (line 2) | function isSpecial(s){return"file:"===s||"ftp:"===s||"http:"===s||"https...
function extractProtocol (line 2) | function extractProtocol(s,o){s=(s=trimLeft(s)).replace(w,""),o=o||{};va...
function Url (line 2) | function Url(s,o,i){if(s=(s=trimLeft(s)).replace(w,""),!(this instanceof...
function PassThrough (line 2) | function PassThrough(s){if(!(this instanceof PassThrough))return new Pas...
function Sha1 (line 2) | function Sha1(){this.init(),this._w=x,u.call(this,64,56)}
function rotl5 (line 2) | function rotl5(s){return s<<5|s>>>27}
function rotl30 (line 2) | function rotl30(s){return s<<30|s>>>2}
function ft (line 2) | function ft(s,o,i,a){return 0===s?o&i|~o&a:2===s?o&i|o&a|i&a:o^i^a}
function defaultSetTimout (line 2) | function defaultSetTimout(){throw new Error("setTimeout has not been def...
function defaultClearTimeout (line 2) | function defaultClearTimeout(){throw new Error("clearTimeout has not bee...
function runTimeout (line 2) | function runTimeout(s){if(o===setTimeout)return setTimeout(s,0);if((o===...
function cleanUpNextTick (line 2) | function cleanUpNextTick(){w&&u&&(w=!1,u.length?_=u.concat(_):x=-1,_.len...
function drainQueue (line 2) | function drainQueue(){if(!w){var s=runTimeout(cleanUpNextTick);w=!0;for(...
function Item (line 2) | function Item(s,o){this.fun=s,this.array=o}
function noop (line 2) | function noop(){}
function getLens (line 2) | function getLens(s){var o=s.length;if(o%4>0)throw new Error("Invalid str...
function encodeChunk (line 2) | function encodeChunk(s,o,a){for(var u,_,w=[],x=o;x<a;x+=3)u=(s[x]<<16&16...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="string"}
method primitive (line 2) | primitive(){return"string"}
method length (line 2) | get length(){return this.content.length}
function concat (line 2) | function concat(...s){return s.map((s=>function source(s){return s?"stri...
function baseAry (line 2) | function baseAry(s,o){return 2==o?function(o,i){return s(o,i)}:function(...
function cloneArray (line 2) | function cloneArray(s){for(var o=s?s.length:0,i=Array(o);o--;)i[o]=s[o];...
function wrapImmutable (line 2) | function wrapImmutable(s,o){return function(){var i=arguments.length;if(...
function castCap (line 2) | function castCap(s,o){if(j){var i=a.iterateeRearg[s];if(i)return functio...
function castFixed (line 2) | function castFixed(s,o,i){if(B&&(Y||!a.skipFixed[s])){var u=a.methodSpre...
function castRearg (line 2) | function castRearg(s,o,i){return V&&i>1&&(Z||!a.skipRearg[s])?we(o,a.met...
function cloneByPath (line 2) | function cloneByPath(s,o){for(var i=-1,a=(o=Pe(o)).length,u=a-1,_=le(Obj...
function createConverter (line 2) | function createConverter(s,o){var i=a.aliasToReal[s]||s,u=a.remap[i]||i,...
function overArg (line 2) | function overArg(s,o){return function(){var i=arguments.length;if(!i)ret...
function wrap (line 2) | function wrap(s,o,i){var u,_=a.aliasToReal[s]||s,w=o,x=Re[_];return x?w=...
function decode (line 2) | function decode(s){try{return decodeURIComponent(s.replace(/\+/g," "))}c...
function encode (line 2) | function encode(s){try{return encodeURIComponent(s)}catch(s){return null}}
function afterTransform (line 2) | function afterTransform(s,o){var i=this._transformState;i.transforming=!...
function Transform (line 2) | function Transform(s){if(!(this instanceof Transform))return new Transfo...
function prefinish (line 2) | function prefinish(){var s=this;"function"!=typeof this._flush||this._re...
function done (line 2) | function done(s,o,i){if(o)return s.emit("error",o);if(null!=i&&s.push(i)...
method serialise (line 2) | serialise(s){if(!(s instanceof this.namespace.elements.Element))throw ne...
method shouldSerialiseContent (line 2) | shouldSerialiseContent(s,o){return"parseResult"===s.element||"httpReques...
method refSerialiseContent (line 2) | refSerialiseContent(s,o){return delete o.attributes,{href:s.toValue(),pa...
method sourceMapSerialiseContent (line 2) | sourceMapSerialiseContent(s){return s.toValue()}
method dataStructureSerialiseContent (line 2) | dataStructureSerialiseContent(s){return[this.serialiseContent(s.content)]}
method enumSerialiseAttributes (line 2) | enumSerialiseAttributes(s){const o=s.attributes.clone(),i=o.remove("enum...
method enumSerialiseContent (line 2) | enumSerialiseContent(s){if(s._attributes){const o=s.attributes.get("enum...
method deserialise (line 2) | deserialise(s){if("string"==typeof s)return new this.namespace.elements....
method serialiseContent (line 2) | serialiseContent(s){if(s instanceof this.namespace.elements.Element)retu...
method deserialiseContent (line 2) | deserialiseContent(s){if(s){if(s.element)return this.deserialise(s);if(s...
method shouldRefract (line 2) | shouldRefract(s){return!!(s._attributes&&s.attributes.keys().length||s._...
method convertKeyToRefract (line 2) | convertKeyToRefract(s,o){return this.shouldRefract(o)?this.serialise(o):...
method serialiseEnum (line 2) | serialiseEnum(s){return s.children.map((s=>this.serialise(s)))}
method serialiseObject (line 2) | serialiseObject(s){const o={};return s.forEach(((s,i)=>{if(s){const a=i....
method deserialiseObject (line 2) | deserialiseObject(s,o){Object.keys(s).forEach((i=>{o.set(i,this.deserial...
function emitErrorAndCloseNT (line 2) | function emitErrorAndCloseNT(s,o){emitErrorNT(s,o),emitCloseNT(s)}
function emitCloseNT (line 2) | function emitCloseNT(s){s._writableState&&!s._writableState.emitClose||s...
function emitErrorNT (line 2) | function emitErrorNT(s,o){s.emit("error",o)}
class SubRange (line 2) | class SubRange{constructor(s,o){this.low=s,this.high=o,this.length=1+o-s...
method constructor (line 2) | constructor(s,o){this.low=s,this.high=o,this.length=1+o-s}
method overlaps (line 2) | overlaps(s){return!(this.high<s.low||this.low>s.high)}
method touches (line 2) | touches(s){return!(this.high+1<s.low||this.low-1>s.high)}
method add (line 2) | add(s){return new SubRange(Math.min(this.low,s.low),Math.max(this.high...
method subtract (line 2) | subtract(s){return s.low<=this.low&&s.high>=this.high?[]:s.low>this.lo...
method toString (line 2) | toString(){return this.low==this.high?this.low.toString():this.low+"-"...
class DRange (line 2) | class DRange{constructor(s,o){this.ranges=[],this.length=0,null!=s&&this...
method constructor (line 2) | constructor(s,o){this.ranges=[],this.length=0,null!=s&&this.add(s,o)}
method _update_length (line 2) | _update_length(){this.length=this.ranges.reduce(((s,o)=>s+o.length),0)}
method add (line 2) | add(s,o){var _add=s=>{for(var o=0;o<this.ranges.length&&!s.touches(thi...
method subtract (line 2) | subtract(s,o){var _subtract=s=>{for(var o=0;o<this.ranges.length&&!s.o...
method intersect (line 2) | intersect(s,o){var i=[],_intersect=s=>{for(var o=0;o<this.ranges.lengt...
method index (line 2) | index(s){for(var o=0;o<this.ranges.length&&this.ranges[o].length<=s;)s...
method toString (line 2) | toString(){return"[ "+this.ranges.join(", ")+" ]"}
method clone (line 2) | clone(){return new DRange(this)}
method numbers (line 2) | numbers(){return this.ranges.reduce(((s,o)=>{for(var i=o.low;i<=o.high...
method subranges (line 2) | subranges(){return this.ranges.map((s=>({low:s.low,high:s.high,length:...
function ListCache (line 2) | function ListCache(s){var o=-1,i=null==s?0:s.length;for(this.clear();++o...
function ownKeys (line 2) | function ownKeys(s,o){var i=Object.keys(s);if(Object.getOwnPropertySymbo...
function _objectSpread (line 2) | function _objectSpread(s){for(var o=1;o<arguments.length;o++){var i=null...
function _defineProperty (line 2) | function _defineProperty(s,o,i){return(o=_toPropertyKey(o))in s?Object.d...
function _defineProperties (line 2) | function _defineProperties(s,o){for(var i=0;i<o.length;i++){var a=o[i];a...
function _toPropertyKey (line 2) | function _toPropertyKey(s){var o=function _toPrimitive(s,o){if("object"!...
function BufferList (line 2) | function BufferList(){!function _classCallCheck(s,o){if(!(s instanceof o...
function _typeof (line 2) | function _typeof(s){return _typeof="function"==typeof Symbol&&"symbol"==...
function _interopRequireDefault (line 2) | function _interopRequireDefault(s){return s&&s.__esModule?s:{default:s}}
function _objectWithoutProperties (line 2) | function _objectWithoutProperties(s,o){if(null==s)return{};var i,a,u=fun...
function ownKeys (line 2) | function ownKeys(s,o){var i=Object.keys(s);if(Object.getOwnPropertySymbo...
function _objectSpread (line 2) | function _objectSpread(s){for(var o=1;o<arguments.length;o++){var i=null...
function _defineProperties (line 2) | function _defineProperties(s,o){for(var i=0;i<o.length;i++){var a=o[i];a...
function _setPrototypeOf (line 2) | function _setPrototypeOf(s,o){return _setPrototypeOf=Object.setPrototype...
function _createSuper (line 2) | function _createSuper(s){var o=function _isNativeReflectConstruct(){if("...
function _assertThisInitialized (line 2) | function _assertThisInitialized(s){if(void 0===s)throw new ReferenceErro...
function _getPrototypeOf (line 2) | function _getPrototypeOf(s){return _getPrototypeOf=Object.setPrototypeOf...
function _defineProperty (line 2) | function _defineProperty(s,o,i){return o in s?Object.defineProperty(s,o,...
function DebounceInput (line 2) | function DebounceInput(s){var i;!function _classCallCheck(s,o){if(!(s in...
function isSpecificValue (line 2) | function isSpecificValue(s){return s instanceof a||s instanceof Date||s ...
function cloneSpecificValue (line 2) | function cloneSpecificValue(s){if(s instanceof a){var o=a.alloc?a.alloc(...
function deepCloneArray (line 2) | function deepCloneArray(s){var o=[];return s.forEach((function(s,i){"obj...
function safeGetProperty (line 2) | function safeGetProperty(s,o){return"__proto__"===o?void 0:s[o]}
function _interopRequireDefault (line 2) | function _interopRequireDefault(s){return s&&s.__esModule?s:{default:s}}
function Sha512 (line 2) | function Sha512(){this.init(),this._w=x,u.call(this,128,112)}
function Ch (line 2) | function Ch(s,o,i){return i^s&(o^i)}
function maj (line 2) | function maj(s,o,i){return s&o|i&(s|o)}
function sigma0 (line 2) | function sigma0(s,o){return(s>>>28|o<<4)^(o>>>2|s<<30)^(o>>>7|s<<25)}
function sigma1 (line 2) | function sigma1(s,o){return(s>>>14|o<<18)^(s>>>18|o<<14)^(o>>>9|s<<23)}
function Gamma0 (line 2) | function Gamma0(s,o){return(s>>>1|o<<31)^(s>>>8|o<<24)^s>>>7}
function Gamma0l (line 2) | function Gamma0l(s,o){return(s>>>1|o<<31)^(s>>>8|o<<24)^(s>>>7|o<<25)}
function Gamma1 (line 2) | function Gamma1(s,o){return(s>>>19|o<<13)^(o>>>29|s<<3)^s>>>6}
function Gamma1l (line 2) | function Gamma1l(s,o){return(s>>>19|o<<13)^(o>>>29|s<<3)^(s>>>6|o<<26)}
function getCarry (line 2) | function getCarry(s,o){return s>>>0<o>>>0?1:0}
function writeInt64BE (line 2) | function writeInt64BE(o,i,a){s.writeInt32BE(o,a),s.writeInt32BE(i,a+4)}
function StringDecoder (line 2) | function StringDecoder(s){var o;switch(this.encoding=function normalizeE...
function utf8CheckByte (line 2) | function utf8CheckByte(s){return s<=127?0:s>>5==6?2:s>>4==14?3:s>>3==30?...
function utf8FillLast (line 2) | function utf8FillLast(s){var o=this.lastTotal-this.lastNeed,i=function u...
function utf16Text (line 2) | function utf16Text(s,o){if((s.length-o)%2==0){var i=s.toString("utf16le"...
function utf16End (line 2) | function utf16End(s){var o=s&&s.length?this.write(s):"";if(this.lastNeed...
function base64Text (line 2) | function base64Text(s,o){var i=(s.length-o)%3;return 0===i?s.toString("b...
function base64End (line 2) | function base64End(s){var o=s&&s.length?this.write(s):"";return this.las...
function simpleWrite (line 2) | function simpleWrite(s){return s.toString(this.encoding)}
function simpleEnd (line 2) | function simpleEnd(s){return s&&s.length?this.write(s):""}
method constructor (line 2) | constructor(s){this.namespace=s||new this.Namespace}
method serialise (line 2) | serialise(s){if(!(s instanceof this.namespace.elements.Element))throw ne...
method deserialise (line 2) | deserialise(s){if(!s.element)throw new Error("Given value is not an obje...
method serialiseContent (line 2) | serialiseContent(s){if(s instanceof this.namespace.elements.Element)retu...
method deserialiseContent (line 2) | deserialiseContent(s){if(s){if(s.element)return this.deserialise(s);if(s...
method serialiseObject (line 2) | serialiseObject(s){const o={};if(s.forEach(((s,i)=>{s&&(o[i.toValue()]=t...
method deserialiseObject (line 2) | deserialiseObject(s,o){Object.keys(s).forEach((i=>{o.set(i,this.deserial...
function create (line 2) | function create(s){return FormattedError.displayName=s.displayName||s.na...
function createErrorType (line 2) | function createErrorType(s,i,a){a||(a=Error);var u=function(s){function ...
function oneOf (line 2) | function oneOf(s,o){if(Array.isArray(s)){var i=s.length;return s=s.map((...
function noop (line 2) | function noop(){}
method constructor (line 2) | constructor(s,o,i){super(s||[],o,i),this.element="link"}
method relation (line 2) | get relation(){return this.attributes.get("relation")}
method relation (line 2) | set relation(s){this.attributes.set("relation",s)}
method href (line 2) | get href(){return this.attributes.get("href")}
method href (line 2) | set href(s){this.attributes.set("href",s)}
function refract (line 2) | function refract(s){if(s instanceof a)return s;if("string"==typeof s)ret...
method constructor (line 2) | constructor(s,o,i,u){super(new a,i,u),this.element="member",this.key=s,t...
method key (line 2) | get key(){return this.content.key}
method key (line 2) | set key(s){this.content.key=this.refract(s)}
method value (line 2) | get value(){return this.content.value}
method value (line 2) | set value(s){this.content.value=this.refract(s)}
function Stream (line 2) | function Stream(){a.call(this)}
function ondata (line 2) | function ondata(o){s.writable&&!1===s.write(o)&&i.pause&&i.pause()}
function ondrain (line 2) | function ondrain(){i.readable&&i.resume&&i.resume()}
function onend (line 2) | function onend(){u||(u=!0,s.end())}
function onclose (line 2) | function onclose(){u||(u=!0,"function"==typeof s.destroy&&s.destroy())}
function onerror (line 2) | function onerror(s){if(cleanup(),0===a.listenerCount(this,"error"))throw s}
function cleanup (line 2) | function cleanup(){i.removeListener("data",ondata),s.removeListener("dra...
function Hash (line 2) | function Hash(s,o){this._block=a.alloc(s),this._finalSize=o,this._blockS...
function coerceElementMatchingCallback (line 2) | function coerceElementMatchingCallback(s){return"string"==typeof s?o=>o....
class ArraySlice (line 2) | class ArraySlice{constructor(s){this.elements=s||[]}toValue(){return thi...
method constructor (line 2) | constructor(s){this.elements=s||[]}
method toValue (line 2) | toValue(){return this.elements.map((s=>s.toValue()))}
method map (line 2) | map(s,o){return this.elements.map(s,o)}
method flatMap (line 2) | flatMap(s,o){return this.map(s,o).reduce(((s,o)=>s.concat(o)),[])}
method compactMap (line 2) | compactMap(s,o){const i=[];return this.forEach((a=>{const u=s.bind(o)(...
method filter (line 2) | filter(s,o){return s=coerceElementMatchingCallback(s),new ArraySlice(t...
method reject (line 2) | reject(s,o){return s=coerceElementMatchingCallback(s),new ArraySlice(t...
method find (line 2) | find(s,o){return s=coerceElementMatchingCallback(s),this.elements.find...
method forEach (line 2) | forEach(s,o){this.elements.forEach(s,o)}
method reduce (line 2) | reduce(s,o){return this.elements.reduce(s,o)}
method includes (line 2) | includes(s){return this.elements.some((o=>o.equals(s)))}
method shift (line 2) | shift(){return this.elements.shift()}
method unshift (line 2) | unshift(s){this.elements.unshift(this.refract(s))}
method push (line 2) | push(s){return this.elements.push(this.refract(s)),this}
method add (line 2) | add(s){this.push(s)}
method get (line 2) | get(s){return this.elements[s]}
method getValue (line 2) | getValue(s){const o=this.elements[s];if(o)return o.toValue()}
method length (line 2) | get length(){return this.elements.length}
method isEmpty (line 2) | get isEmpty(){return 0===this.elements.length}
method first (line 2) | get first(){return this.elements[0]}
function copyProps (line 2) | function copyProps(s,o){for(var i in s)o[i]=s[i]}
function SafeBuffer (line 2) | function SafeBuffer(s,o,i){return u(s,o,i)}
function config (line 2) | function config(s){try{if(!i.g.localStorage)return!1}catch(s){return!1}v...
function lookahead (line 2) | function lookahead(s){return concat("(?=",s,")")}
function concat (line 2) | function concat(...s){return s.map((s=>function source(s){return s?"stri...
function __webpack_require__ (line 2) | function __webpack_require__(i){var a=o[i];if(void 0!==a)return a.export...
function formatProdErrorMessage (line 2) | function formatProdErrorMessage(s){return`Minified Redux error #${s}; vi...
function isPlainObject (line 2) | function isPlainObject(s){if("object"!=typeof s||null===s)return!1;let o...
function createStore (line 2) | function createStore(s,o,i){if("function"!=typeof s)throw new Error(form...
function bindActionCreator (line 2) | function bindActionCreator(s,o){return function(...i){return o(s.apply(t...
function compose (line 2) | function compose(...s){return 0===s.length?s=>s:1===s.length?s[0]:s.redu...
function newThrownErr (line 2) | function newThrownErr(s){return{type:rt,payload:(0,Qe.serializeError)(s)}}
function newThrownErrBatch (line 2) | function newThrownErrBatch(s){return{type:nt,payload:s}}
function newSpecErr (line 2) | function newSpecErr(s){return{type:st,payload:s}}
function newSpecErrBatch (line 2) | function newSpecErrBatch(s){return{type:ot,payload:s}}
function newAuthErr (line 2) | function newAuthErr(s){return{type:it,payload:s}}
function clear (line 2) | function clear(s={}){return{type:at,payload:s}}
function clearBy (line 2) | function clearBy(s=()=>!0){return{type:ct,payload:s}}
function getParameterSchema (line 2) | function getParameterSchema(s,{isOAS3:o}={}){if(!We().Map.isMap(s))retur...
function objectify (line 2) | function objectify(s){return isObject(s)?immutableToJS(s):{}}
function fromJSOrdered (line 2) | function fromJSOrdered(s){if(isImmutable(s))return s;if(s instanceof lt....
function normalizeArray (line 2) | function normalizeArray(s){return Array.isArray(s)?s:[s]}
function isFn (line 2) | function isFn(s){return"function"==typeof s}
function isObject (line 2) | function isObject(s){return!!s&&"object"==typeof s}
function isFunc (line 2) | function isFunc(s){return"function"==typeof s}
function isArray (line 2) | function isArray(s){return Array.isArray(s)}
function objMap (line 2) | function objMap(s,o){return Object.keys(s).reduce(((i,a)=>(i[a]=o(s[a],a...
function objReduce (line 2) | function objReduce(s,o){return Object.keys(s).reduce(((i,a)=>{let u=o(s[...
function systemThunkMiddleware (line 2) | function systemThunkMiddleware(s){return({dispatch:o,getState:i})=>o=>i=...
function validateValueBySchema (line 2) | function validateValueBySchema(s,o,i,a,u){if(!o)return[];let _=[],w=o.ge...
function requiresValidationURL (line 2) | function requiresValidationURL(s){return!(!s||s.indexOf("localhost")>=0|...
function deeplyStripKey (line 2) | function deeplyStripKey(s,o,i=()=>!0){if("object"!=typeof s||Array.isArr...
function stringify (line 2) | function stringify(s){if("string"==typeof s)return s;if(s&&s.toJS&&(s=s....
function paramToIdentifier (line 2) | function paramToIdentifier(s,{returnAll:o=!1,allowHashes:i=!0}={}){if(!W...
function paramToValue (line 2) | function paramToValue(s,o){return paramToIdentifier(s,{returnAll:!0}).ma...
function b64toB64UrlEncoded (line 2) | function b64toB64UrlEncoded(s){return s.replace(/\+/g,"-").replace(/\//g...
function createStoreWithMiddleware (line 2) | function createStoreWithMiddleware(s,o,i){let a=[systemThunkMiddleware(i...
class Store (line 2) | class Store{constructor(s={}){Xe()(this,{state:{},plugins:[],system:{con...
method constructor (line 2) | constructor(s={}){Xe()(this,{state:{},plugins:[],system:{configs:{},fn...
method getStore (line 2) | getStore(){return this.store}
method register (line 2) | register(s,o=!0){var i=combinePlugins(s,this.getSystem());systemExtend...
method buildSystem (line 2) | buildSystem(s=!0){let o=this.getStore().dispatch,i=this.getStore().get...
method _getSystem (line 2) | _getSystem(){return this.boundSystem}
method getRootInjects (line 2) | getRootInjects(){return Object.assign({getSystem:this.getSystem,getSto...
method _getConfigs (line 2) | _getConfigs(){return this.system.configs}
method getConfigs (line 2) | getConfigs(){return{configs:this.system.configs}}
method setConfigs (line 2) | setConfigs(s){this.system.configs=s}
method rebuildReducer (line 2) | rebuildReducer(){this.store.replaceReducer(function buildReducer(s){re...
method getType (line 2) | getType(s){let o=s[0].toUpperCase()+s.slice(1);return objReduce(this.s...
method getSelectors (line 2) | getSelectors(){return this.getType("selectors")}
method getActions (line 2) | getActions(){return objMap(this.getType("actions"),(s=>objReduce(s,((s...
method getWrappedAndBoundActions (line 2) | getWrappedAndBoundActions(s){return objMap(this.getBoundActions(s),((s...
method getWrappedAndBoundSelectors (line 2) | getWrappedAndBoundSelectors(s,o){return objMap(this.getBoundSelectors(...
method getStates (line 2) | getStates(s){return Object.keys(this.system.statePlugins).reduce(((o,i...
method getStateThunks (line 2) | getStateThunks(s){return Object.keys(this.system.statePlugins).reduce(...
method getFn (line 2) | getFn(){return{fn:this.system.fn}}
method getComponents (line 2) | getComponents(s){const o=this.system.components[s];return Array.isArra...
method getBoundSelectors (line 2) | getBoundSelectors(s,o){return objMap(this.getSelectors(),((i,a)=>{let ...
method getBoundActions (line 2) | getBoundActions(s){s=s||this.getStore().dispatch;const o=this.getActio...
method getMapStateToProps (line 2) | getMapStateToProps(){return()=>Object.assign({},this.getSystem())}
method getMapDispatchToProps (line 2) | getMapDispatchToProps(s){return o=>Xe()({},this.getWrappedAndBoundActi...
function combinePlugins (line 2) | function combinePlugins(s,o){return isObject(s)&&!isArray(s)?tt()({},s):...
function callAfterLoad (line 2) | function callAfterLoad(s,o,{hasLoaded:i}={}){let a=i;return isObject(s)&...
function systemExtend (line 2) | function systemExtend(s={},o={}){if(!isObject(s))return{};if(!isObject(o...
function wrapWithTryCatch (line 2) | function wrapWithTryCatch(s,{logErrors:o=!0}={}){return"function"!=typeo...
function showDefinitions (line 2) | function showDefinitions(s){return{type:Mt,payload:s}}
function authorize (line 2) | function authorize(s){return{type:Rt,payload:s}}
function logout (line 2) | function logout(s){return{type:Dt,payload:s}}
function authorizeOauth2 (line 2) | function authorizeOauth2(s){return{type:Lt,payload:s}}
function configureAuth (line 2) | function configureAuth(s){return{type:Ft,payload:s}}
function restoreAuthorization (line 2) | function restoreAuthorization(s){return{type:Bt,payload:s}}
function assertIsFunction (line 2) | function assertIsFunction(s,o="expected a function, instead received "+t...
function getDependencies (line 2) | function getDependencies(s){const o=Array.isArray(s[0])?s[0]:s;return fu...
method constructor (line 2) | constructor(s){this.value=s}
method deref (line 2) | deref(){return this.value}
function weakMapMemoize (line 2) | function weakMapMemoize(s,o={}){let i={s:0,v:void 0,o:null,p:null};const...
function createSelectorCreator (line 2) | function createSelectorCreator(s,...o){const i="function"==typeof s?{mem...
class LockAuthIcon (line 2) | class LockAuthIcon extends Re.Component{mapStateToProps(s,o){return{stat...
method mapStateToProps (line 2) | mapStateToProps(s,o){return{state:s,ownProps:Gt()(o,Object.keys(o.getS...
method render (line 2) | render(){const{getComponent:s,ownProps:o}=this.props,i=s("LockIcon");r...
class UnlockAuthIcon (line 2) | class UnlockAuthIcon extends Re.Component{mapStateToProps(s,o){return{st...
method mapStateToProps (line 2) | mapStateToProps(s,o){return{state:s,ownProps:Gt()(o,Object.keys(o.getS...
method render (line 2) | render(){const{getComponent:s,ownProps:o}=this.props,i=s("UnlockIcon")...
function auth (line 2) | function auth(){return{afterLoad(s){this.rootInjects=this.rootInjects||{...
function preauthorizeBasic (line 2) | function preauthorizeBasic(s,o,i,a){const{authActions:{authorize:u},spec...
function preauthorizeApiKey (line 2) | function preauthorizeApiKey(s,o,i){const{authActions:{authorize:a},specS...
function isNothing (line 2) | function isNothing(s){return null==s}
function formatError (line 2) | function formatError(s,o){var i="",a=s.reason||"(unknown reason)";return...
function YAMLException$1 (line 2) | function YAMLException$1(s,o){Error.call(this),this.name="YAMLException"...
function getLine (line 2) | function getLine(s,o,i,a,u){var _="",w="",x=Math.floor(u/2)-1;return a-o...
function padStart (line 2) | function padStart(s,o){return er.repeat(" ",o-s.length)+s}
function compileList (line 2) | function compileList(s,o){var i=[];return s[o].forEach((function(s){var ...
function Schema$1 (line 2) | function Schema$1(s){return this.extend(s)}
function collectType (line 2) | function collectType(s){s.multi?(i.multi[s.kind].push(s),i.multi.fallbac...
function isOctCode (line 2) | function isOctCode(s){return 48<=s&&s<=55}
function isDecCode (line 2) | function isDecCode(s){return 48<=s&&s<=57}
function _class (line 2) | function _class(s){return Object.prototype.toString.call(s)}
function is_EOL (line 2) | function is_EOL(s){return 10===s||13===s}
function is_WHITE_SPACE (line 2) | function is_WHITE_SPACE(s){return 9===s||32===s}
function is_WS_OR_EOL (line 2) | function is_WS_OR_EOL(s){return 9===s||32===s||10===s||13===s}
function is_FLOW_INDICATOR (line 2) | function is_FLOW_INDICATOR(s){return 44===s||91===s||93===s||123===s||12...
function fromHexCode (line 2) | function fromHexCode(s){var o;return 48<=s&&s<=57?s-48:97<=(o=32|s)&&o<=...
function simpleEscapeSequence (line 2) | function simpleEscapeSequence(s){return 48===s?"\0":97===s?"":98===s?"\...
function charFromCodepoint (line 2) | function charFromCodepoint(s){return s<=65535?String.fromCharCode(s):Str...
function State$1 (line 2) | function State$1(s,o){this.input=s,this.filename=o.filename||null,this.s...
function generateError (line 2) | function generateError(s,o){var i={name:s.filename,buffer:s.input.slice(...
function throwError (line 2) | function throwError(s,o){throw generateError(s,o)}
function throwWarning (line 2) | function throwWarning(s,o){s.onWarning&&s.onWarning.call(null,generateEr...
function captureSegment (line 2) | function captureSegment(s,o,i,a){var u,_,w,x;if(o<i){if(x=s.input.slice(...
function mergeMappings (line 2) | function mergeMappings(s,o,i,a){var u,_,w,x;for(er.isObject(i)||throwErr...
function storeMappingPair (line 2) | function storeMappingPair(s,o,i,a,u,_,w,x,C){var j,L;if(Array.isArray(u)...
function readLineBreak (line 2) | function readLineBreak(s){var o;10===(o=s.input.charCodeAt(s.position))?...
function skipSeparationSpace (line 2) | function skipSeparationSpace(s,o,i){for(var a=0,u=s.input.charCodeAt(s.p...
function testDocumentSeparator (line 2) | function testDocumentSeparator(s){var o,i=s.position;return!(45!==(o=s.i...
function writeFoldedLines (line 2) | function writeFoldedLines(s,o){1===o?s.result+=" ":o>1&&(s.result+=er.re...
function readBlockSequence (line 2) | function readBlockSequence(s,o){var i,a,u=s.tag,_=s.anchor,w=[],x=!1;if(...
function readTagProperty (line 2) | function readTagProperty(s){var o,i,a,u,_=!1,w=!1;if(33!==(u=s.input.cha...
function readAnchorProperty (line 2) | function readAnchorProperty(s){var o,i;if(38!==(i=s.input.charCodeAt(s.p...
function composeNode (line 2) | function composeNode(s,o,i,a,u){var _,w,x,C,j,L,B,$,V,U=1,z=!1,Y=!1;if(n...
function readDocument (line 2) | function readDocument(s){var o,i,a,u,_=s.position,w=!1;for(s.version=nul...
function loadDocuments (line 2) | function loadDocuments(s,o){o=o||{},0!==(s=String(s)).length&&(10!==s.ch...
function encodeHex (line 2) | function encodeHex(s){var o,i,a;if(o=s.toString(16).toUpperCase(),s<=255...
function State (line 2) | function State(s){this.schema=s.schema||Mr,this.indent=Math.max(1,s.inde...
function indentString (line 2) | function indentString(s,o){for(var i,a=er.repeat(" ",o),u=0,_=-1,w="",x=...
function generateNextLine (line 2) | function generateNextLine(s,o){return"\n"+er.repeat(" ",s.indent*o)}
function isWhitespace (line 2) | function isWhitespace(s){return 32===s||9===s}
function isPrintable (line 2) | function isPrintable(s){return 32<=s&&s<=126||161<=s&&s<=55295&&8232!==s...
function isNsCharOrWhitespace (line 2) | function isNsCharOrWhitespace(s){return isPrintable(s)&&s!==Kr&&13!==s&&...
function isPlainSafe (line 2) | function isPlainSafe(s,o,i){var a=isNsCharOrWhitespace(s),u=a&&!isWhites...
function codePointAt (line 2) | function codePointAt(s,o){var i,a=s.charCodeAt(o);return a>=55296&&a<=56...
function needIndentIndicator (line 2) | function needIndentIndicator(s){return/^\n* /.test(s)}
function chooseScalarStyle (line 2) | function chooseScalarStyle(s,o,i,a,u,_,w,x){var C,j=0,L=null,B=!1,$=!1,V...
function writeScalar (line 2) | function writeScalar(s,o,i,a,u){s.dump=function(){if(0===o.length)return...
function blockHeader (line 2) | function blockHeader(s,o){var i=needIndentIndicator(s)?String(o):"",a="\...
function dropEndingNewline (line 2) | function dropEndingNewline(s){return"\n"===s[s.length-1]?s.slice(0,-1):s}
function foldLine (line 2) | function foldLine(s,o){if(""===s||" "===s[0])return s;for(var i,a,u=/ [^...
function writeBlockSequence (line 2) | function writeBlockSequence(s,o,i,a){var u,_,w,x="",C=s.tag;for(u=0,_=i....
function detectType (line 2) | function detectType(s,o,i){var a,u,_,w,x,C;for(_=0,w=(u=i?s.explicitType...
function writeNode (line 2) | function writeNode(s,o,i,a,u,_,w){s.tag=null,s.dump=i,detectType(s,i,!1)...
function getDuplicateReferences (line 2) | function getDuplicateReferences(s,o){var i,a,u=[],_=[];for(inspectNode(s...
function inspectNode (line 2) | function inspectNode(s,o,i){var a,u,_;if(null!==s&&"object"==typeof s)if...
function renamed (line 2) | function renamed(s,o){return function(){throw new Error("Function yaml."...
function update (line 2) | function update(s,o){return{type:mn,payload:{[s]:o}}}
function toggle (line 2) | function toggle(s){return{type:gn,payload:s}}
function next (line 2) | function next(u){u instanceof Error||u.status>=400?(a.updateLoadingStatu...
function configsPlugin (line 2) | function configsPlugin(){return{statePlugins:{configs:{reducers:yn,actio...
method isShownKeyFromUrlHashArray (line 2) | isShownKeyFromUrlHashArray(s,o){const[i,a]=o;return a?["operations",i,a]...
method urlHashArrayFromIsShownKey (line 2) | urlHashArrayFromIsShownKey(s,o){let[i,a,u]=o;return"operations"==i?[a,u]...
method render (line 2) | render(){return Re.createElement("span",{ref:this.onLoad},Re.createEleme...
method render (line 2) | render(){return Re.createElement("span",{ref:this.onLoad},Re.createEleme...
function deep_linking (line 2) | function deep_linking(){return[En,{statePlugins:{configs:{wrapActions:{l...
function transform (line 2) | function transform(s){return s.map((s=>{let o="is not of a type(s)",i=s....
function parameter_oneof_transform (line 2) | function parameter_oneof_transform(s,{jsSpec:o}){return s}
function transformErrors (line 2) | function transformErrors(s){let o={jsSpec:{}},i=On()(jn,((s,i)=>{try{ret...
function err (line 2) | function err(o){return{statePlugins:{err:{reducers:{[rt]:(s,{payload:o})...
function opsFilter (line 2) | function opsFilter(s,o){return s.filter(((s,i)=>-1!==i.indexOf(o)))}
function filter (line 2) | function filter(){return{fn:{opsFilter}}}
function updateLayout (line 2) | function updateLayout(s){return{type:Rn,payload:s}}
function updateFilter (line 2) | function updateFilter(s){return{type:Dn,payload:s}}
function actions_show (line 2) | function actions_show(s,o=!0){return s=normalizeArray(s),{type:Fn,payloa...
function changeMode (line 2) | function changeMode(s,o=""){return s=normalizeArray(s),{type:Ln,payload:...
function plugins_layout (line 2) | function plugins_layout(){return{statePlugins:{layout:{reducers:Bn,actio...
function logs (line 2) | function logs({configs:s}){const o={debug:0,info:1,log:2,warn:3,error:4}...
function on_complete (line 2) | function on_complete(){return{statePlugins:{spec:{wrapActions:{updateSpe...
class ModelCollapse (line 2) | class ModelCollapse extends Re.Component{static defaultProps={collapsedC...
method constructor (line 2) | constructor(s,o){super(s,o);let{expanded:i,collapsedContent:a}=this.pr...
method componentDidMount (line 2) | componentDidMount(){const{hideSelfOnExpand:s,expanded:o,modelName:i}=t...
method UNSAFE_componentWillReceiveProps (line 2) | UNSAFE_componentWillReceiveProps(s){this.props.expanded!==s.expanded&&...
method render (line 2) | render(){const{title:s,classes:o}=this.props;return this.state.expande...
class ModelWrapper (line 2) | class ModelWrapper extends Re.Component{onToggle=(s,o)=>{this.props.layo...
method render (line 2) | render(){let{getComponent:s,getConfigs:o}=this.props;const i=s("Model"...
function _typeof (line 2) | function _typeof(s){return _typeof="function"==typeof Symbol&&"symbol"==...
function _defineProperties (line 2) | function _defineProperties(s,o){for(var i=0;i<o.length;i++){var a=o[i];a...
function _defineProperty (line 2) | function _defineProperty(s,o,i){return o in s?Object.defineProperty(s,o,...
function ownKeys (line 2) | function ownKeys(s,o){var i=Object.keys(s);if(Object.getOwnPropertySymbo...
function _getPrototypeOf (line 2) | function _getPrototypeOf(s){return _getPrototypeOf=Object.setPrototypeOf...
function _setPrototypeOf (line 2) | function _setPrototypeOf(s,o){return _setPrototypeOf=Object.setPrototype...
function _possibleConstructorReturn (line 2) | function _possibleConstructorReturn(s,o){return!o||"object"!=typeof o&&"...
function react_immutable_pure_component_es_get (line 2) | function react_immutable_pure_component_es_get(s,o,i){return function is...
function getIn (line 2) | function getIn(s,o,i){for(var a=0;a!==o.length;)if((s=react_immutable_pu...
function check (line 2) | function check(s){var o=arguments.length>1&&void 0!==arguments[1]?argume...
function ImmutablePureComponent (line 2) | function ImmutablePureComponent(){return function _classCallCheck(s,o){i...
function _extends (line 2) | function _extends(){return _extends=Object.assign?Object.assign.bind():f...
class Model (line 2) | class Model extends Yn{static propTypes={schema:xn().map.isRequired,getC...
method render (line 2) | render(){let{getComponent:s,getConfigs:o,specSelectors:i,schema:a,requ...
class Models (line 2) | class Models extends Re.Component{getSchemaBasePath=()=>this.props.specS...
method render (line 2) | render(){let{specSelectors:s,getComponent:o,layoutSelectors:i,layoutAc...
function isAbsoluteUrl (line 2) | function isAbsoluteUrl(s){return s.match(/^(?:[a-z]+:)?\/\//i)}
function buildBaseUrl (line 2) | function buildBaseUrl(s,o){return s?isAbsoluteUrl(s)?function addProtoco...
function safeBuildUrl (line 2) | function safeBuildUrl(s,o,{selectedServer:i=""}={}){try{return function ...
function sanitizeUrl (line 2) | function sanitizeUrl(s){if("string"!=typeof s||""===s.trim())return"";co...
class ObjectModel (line 2) | class ObjectModel extends Re.Component{render(){let{schema:s,name:o,disp...
method render (line 2) | render(){let{schema:s,name:o,displayName:i,isRef:a,getComponent:u,getC...
class ArrayModel (line 2) | class ArrayModel extends Re.Component{render(){let{getComponent:s,getCon...
method render (line 2) | render(){let{getComponent:s,getConfigs:o,schema:i,depth:a,expandDepth:...
class Primitive (line 2) | class Primitive extends Re.Component{render(){let{schema:s,getComponent:...
method render (line 2) | render(){let{schema:s,getComponent:o,getConfigs:i,name:a,displayName:u...
class Schemes (line 2) | class Schemes extends Re.Component{UNSAFE_componentWillMount(){let{schem...
method UNSAFE_componentWillMount (line 2) | UNSAFE_componentWillMount(){let{schemes:s}=this.props;this.setScheme(s...
method UNSAFE_componentWillReceiveProps (line 2) | UNSAFE_componentWillReceiveProps(s){this.props.currentScheme&&s.scheme...
method render (line 2) | render(){let{schemes:s,currentScheme:o}=this.props;return Re.createEle...
class SchemesContainer (line 2) | class SchemesContainer extends Re.Component{render(){const{specActions:s...
method render (line 2) | render(){const{specActions:s,specSelectors:o,getComponent:i}=this.prop...
class JsonSchemaForm (line 2) | class JsonSchemaForm extends Re.Component{static defaultProps=ss;compone...
method componentDidMount (line 2) | componentDidMount(){const{dispatchInitialValue:s,value:o,onChange:i}=t...
method render (line 2) | render(){let{schema:s,errors:o,value:i,onChange:a,getComponent:u,fn:_,...
class JsonSchema_string (line 2) | class JsonSchema_string extends Re.Component{static defaultProps=ss;onCh...
method render (line 2) | render(){let{getComponent:s,value:o,schema:i,errors:a,required:u,descr...
class JsonSchema_array (line 2) | class JsonSchema_array extends Re.PureComponent{static defaultProps=ss;c...
method constructor (line 2) | constructor(s,o){super(s,o),this.state={value:valueOrEmptyList(s.value...
method UNSAFE_componentWillReceiveProps (line 2) | UNSAFE_componentWillReceiveProps(s){const o=valueOrEmptyList(s.value);...
method render (line 2) | render(){let{getComponent:s,required:o,schema:i,errors:a,fn:u,disabled...
class JsonSchemaArrayItemText (line 2) | class JsonSchemaArrayItemText extends Re.Component{static defaultProps=s...
method render (line 2) | render(){let{value:s,errors:o,description:i,disabled:a}=this.props;ret...
class JsonSchemaArrayItemFile (line 2) | class JsonSchemaArrayItemFile extends Re.Component{static defaultProps=s...
method render (line 2) | render(){let{getComponent:s,errors:o,disabled:i}=this.props;const a=s(...
class JsonSchema_boolean (line 2) | class JsonSchema_boolean extends Re.Component{static defaultProps=ss;onE...
method render (line 2) | render(){let{getComponent:s,value:o,errors:i,schema:a,required:u,disab...
class JsonSchema_object (line 2) | class JsonSchema_object extends Re.PureComponent{constructor(){super()}s...
method constructor (line 2) | constructor(){super()}
method render (line 2) | render(){let{getComponent:s,value:o,errors:i,disabled:a}=this.props;co...
function valueOrEmptyList (line 2) | function valueOrEmptyList(s){return ze.List.isList(s)?s:Array.isArray(s)...
class Cache (line 2) | class Cache extends Map{delete(s){const o=Array.from(this.keys()).find(s...
method delete (line 2) | delete(s){const o=Array.from(this.keys()).find(shallowArrayEquals(s));...
method get (line 2) | get(s){const o=Array.from(this.keys()).find(shallowArrayEquals(s));ret...
method has (line 2) | has(s){return-1!==Array.from(this.keys()).findIndex(shallowArrayEquals...
function getParameter (line 2) | function getParameter(s,o,i,a){return o=o||[],s.getIn(["meta","paths",.....
function parameterValues (line 2) | function parameterValues(s,o,i){return o=o||[],operationWithMeta(s,...o)...
function parametersIncludeIn (line 2) | function parametersIncludeIn(s,o=""){if(ze.List.isList(s))return s.some(...
function parametersIncludeType (line 2) | function parametersIncludeType(s,o=""){if(ze.List.isList(s))return s.som...
function contentTypeValues (line 2) | function contentTypeValues(s,o){o=o||[];let i=Ts(s).getIn(["paths",...o]...
function currentProducesFor (line 2) | function currentProducesFor(s,o){o=o||[];const i=Ts(s).getIn(["paths",.....
function producesOptionsFor (line 2) | function producesOptionsFor(s,o){o=o||[];const i=Ts(s),a=i.getIn(["paths...
function consumesOptionsFor (line 2) | function consumesOptionsFor(s,o){o=o||[];const i=Ts(s),a=i.getIn(["paths...
function returnSelfOrNewMap (line 2) | function returnSelfOrNewMap(s){return ze.Map.isMap(s)?s:new ze.Map}
function updateSpec (line 2) | function updateSpec(s){const o=toStr(s).replace(/\t/g," ");if("string"=...
function updateResolved (line 2) | function updateResolved(s){return{type:Oo,payload:s}}
function updateUrl (line 2) | function updateUrl(s){return{type:ho,payload:s}}
function updateJsonSpec (line 2) | function updateJsonSpec(s){return{type:fo,payload:s}}
function changeParam (line 2) | function changeParam(s,o,i,a,u){return{type:mo,payload:{path:s,value:a,p...
function changeParamByIdentity (line 2) | function changeParamByIdentity(s,o,i,a){return{type:mo,payload:{path:s,p...
function clearValidateParams (line 2) | function clearValidateParams(s){return{type:xo,payload:{pathMethod:s}}}
function changeConsumesValue (line 2) | function changeConsumesValue(s,o){return{type:ko,payload:{path:s,value:o...
function changeProducesValue (line 2) | function changeProducesValue(s,o){return{type:ko,payload:{path:s,value:o...
function clearResponse (line 2) | function clearResponse(s,o){return{type:Eo,payload:{path:s,method:o}}}
function clearRequest (line 2) | function clearRequest(s,o){return{type:wo,payload:{path:s,method:o}}}
function setScheme (line 2) | function setScheme(s,o,i){return{type:Ao,payload:{scheme:s,path:o,method...
function __ (line 2) | function __(){this.constructor=s}
function module_helpers_hasOwnProperty (line 2) | function module_helpers_hasOwnProperty(s,o){return Mo.call(s,o)}
function _objectKeys (line 2) | function _objectKeys(s){if(Array.isArray(s)){for(var o=new Array(s.lengt...
function _deepClone (line 2) | function _deepClone(s){switch(typeof s){case"object":return JSON.parse(J...
function helpers_isInteger (line 2) | function helpers_isInteger(s){for(var o,i=0,a=s.length;i<a;){if(!((o=s.c...
function escapePathComponent (line 2) | function escapePathComponent(s){return-1===s.indexOf("/")&&-1===s.indexO...
function unescapePathComponent (line 2) | function unescapePathComponent(s){return s.replace(/~1/g,"/").replace(/~...
function hasUndefined (line 2) | function hasUndefined(s){if(void 0===s)return!0;if(s)if(Array.isArray(s)...
function patchErrorMessageFormatter (line 2) | function patchErrorMessageFormatter(s,o){var i=[s];for(var a in o){var u...
function PatchError (line 2) | function PatchError(o,i,a,u,_){var w=this.constructor,x=s.call(this,patc...
function getValueByPointer (line 2) | function getValueByPointer(s,o){if(""==o)return s;var i={op:"_get",path:...
function applyOperation (line 2) | function applyOperation(s,o,i,a,u,_){if(void 0===i&&(i=!1),void 0===a&&(...
function applyPatch (line 2) | function applyPatch(s,o,i,a,u){if(void 0===a&&(a=!0),void 0===u&&(u=!0),...
function applyReducer (line 2) | function applyReducer(s,o,i){var a=applyOperation(s,o);if(!1===a.test)th...
function validator (line 2) | function validator(s,o,i,a){if("object"!=typeof s||null===s||Array.isArr...
function validate (line 2) | function validate(s,o,i){try{if(!Array.isArray(s))throw new Do("Patch se...
function _areEquals (line 2) | function _areEquals(s,o){if(s===o)return!0;if(s&&o&&"object"==typeof s&&...
function unobserve (line 2) | function unobserve(s,o){o.unobserve()}
function observe (line 2) | function observe(s,o){var i,a=function getMirror(s){return qo.get(s)}(s)...
function generate (line 2) | function generate(s,o){void 0===o&&(o=!1);var i=qo.get(s.object);_genera...
function _generate (line 2) | function _generate(s,o,i,a,u){if(o!==s){"function"==typeof o.toJSON&&(o=...
function compare (line 2) | function compare(s,o,i){void 0===i&&(i=!1);var a=[];return _generate(s,o...
function normalizeJSONPath (line 2) | function normalizeJSONPath(s){return Array.isArray(s)?s.length<1?"":`/${...
function replace (line 2) | function replace(s,o,i){return{op:"replace",path:s,value:o,meta:i}}
function forEachNewPatch (line 2) | function forEachNewPatch(s,o,i){return cleanArray(flatten(s.filter(isAdd...
function forEachPrimitive (line 2) | function forEachPrimitive(s,o,i){return i=i||[],Array.isArray(s)?s.map((...
function forEach (line 2) | function forEach(s,o,i){let a=[];if((i=i||[]).length>0){const u=o(s,i[i....
function lib_normalizeArray (line 2) | function lib_normalizeArray(s){return Array.isArray(s)?s:[s]}
function flatten (line 2) | function flatten(s){return[].concat(...s.map((s=>Array.isArray(s)?flatte...
function cleanArray (line 2) | function cleanArray(s){return s.filter((s=>void 0!==s))}
function lib_isObject (line 2) | function lib_isObject(s){return s&&"object"==typeof s}
function lib_isFunction (line 2) | function lib_isFunction(s){return s&&"function"==typeof s}
function isJsonPatch (line 2) | function isJsonPatch(s){if(isPatch(s)){const{op:o}=s;return"add"===o||"r...
function isMutation (line 2) | function isMutation(s){return isJsonPatch(s)||isPatch(s)&&"mutation"===s...
function isAdditiveMutation (line 2) | function isAdditiveMutation(s){return isMutation(s)&&("add"===s.op||"rep...
function isPatch (line 2) | function isPatch(s){return s&&"object"==typeof s}
function getInByJsonPath (line 2) | function getInByJsonPath(s,o){try{return getValueByPointer(s,o)}catch(s)...
method constructor (line 2) | constructor(s,o,i){if(super(s,o,i),this.name=this.constructor.name,"stri...
class ApiDOMError (line 2) | class ApiDOMError extends Error{static[Symbol.hasInstance](s){return sup...
method constructor (line 2) | constructor(s,o){if(super(s,o),this.name=this.constructor.name,"string...
method [Symbol.hasInstance] (line 2) | static[Symbol.hasInstance](s){return super[Symbol.hasInstance](s)||Funct...
method constructor (line 2) | constructor(s,o){if(super(s,o),null!=o&&"object"==typeof o){const{cause:...
function _isPlaceholder (line 2) | function _isPlaceholder(s){return null!=s&&"object"==typeof s&&!0===s["@...
function _curry1 (line 2) | function _curry1(s){return function f1(o){return 0===arguments.length||_...
function _curry2 (line 2) | function _curry2(s){return function f2(o,i){switch(arguments.length){cas...
function _curry3 (line 2) | function _curry3(s){return function f3(o,i,a){switch(arguments.length){c...
function _isString (line 2) | function _isString(s){return"[object String]"===Object.prototype.toStrin...
function _nth (line 2) | function _nth(s,o){var i=s<0?o.length+s:s;return _isString(o)?o.charAt(i...
function _path (line 2) | function _path(s,o){for(var i=o,a=0;a<s.length;a+=1){if(null==i)return;v...
function _cloneRegExp (line 2) | function _cloneRegExp(s){return new RegExp(s.source,s.flags?s.flags:(s.g...
function _arrayFromIterator (line 2) | function _arrayFromIterator(s){for(var o,i=[];!(o=s.next()).done;)i.push...
function _includesWith (line 2) | function _includesWith(s,o,i){for(var a=0,u=i.length;a<u;){if(s(o,i[a]))...
function _has (line 2) | function _has(s,o){return Object.prototype.hasOwnProperty.call(o,s)}
function _uniqContentEquals (line 2) | function _uniqContentEquals(s,o,i,a){var u=_arrayFromIterator(s);functio...
function _equals (line 2) | function _equals(s,o,i,a){if(Zo(s,o))return!0;var u=ra(s);if(u!==ra(o))r...
function _includes (line 2) | function _includes(s,o){return function _indexOf(s,o,i){var a,u;if("func...
function _map (line 2) | function _map(s,o){for(var i=0,a=o.length,u=Array(a);i<a;)u[i]=s(o[i]),i...
function _quote (line 2) | function _quote(s){return'"'+s.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\...
function _complement (line 2) | function _complement(s){return function(){return!s.apply(this,arguments)}}
function _arrayReduce (line 2) | function _arrayReduce(s,o,i){for(var a=0,u=i.length;a<u;)o=s(o,i[a]),a+=...
function _dispatchable (line 2) | function _dispatchable(s,o,i){return function(){if(0===arguments.length)...
function _isObject (line 2) | function _isObject(s){return"[object Object]"===Object.prototype.toStrin...
function XFilter (line 2) | function XFilter(s,o){this.xf=o,this.f=s}
function _xfilter (line 2) | function _xfilter(s){return function(o){return new la(s,o)}}
function _toString_toString (line 2) | function _toString_toString(s,o){var i=function recur(i){var a=o.concat(...
function _arity (line 2) | function _arity(s,o){switch(s){case 0:return function(){return o.apply(t...
function _pipe (line 2) | function _pipe(s,o){return function(){return o.call(this,s.apply(this,ar...
function _createReduce (line 2) | function _createReduce(s,o,i){return function _reduce(a,u,_){if(ba(_))re...
function _xArrayReduce (line 2) | function _xArrayReduce(s,o,i){for(var a=0,u=i.length;a<u;){if((o=s["@@tr...
function _xIterableReduce (line 2) | function _xIterableReduce(s,o,i){for(var a=i.next();!a.done;){if((o=s["@...
function _xMethodReduce (line 2) | function _xMethodReduce(s,o,i,a){return s["@@transducer/result"](i[a](Ea...
function XWrap (line 2) | function XWrap(s){this.f=s}
function _xwrap (line 2) | function _xwrap(s){return new xa(s)}
function _checkForMethod (line 2) | function _checkForMethod(s,o){return function(){var i=arguments.length;i...
function pipe (line 2) | function pipe(){if(0===arguments.length)throw new Error("pipe requires a...
function _curryN (line 2) | function _curryN(s,o,i){return function(){for(var a=[],u=0,_=s,w=0,x=!1;...
function _isFunction (line 2) | function _isFunction(s){var o=Object.prototype.toString.call(s);return"[...
function dropLastWhile (line 2) | function dropLastWhile(s,o){for(var i=o.length-1;i>=0&&s(o[i]);)i-=1;ret...
function XDropLastWhile (line 2) | function XDropLastWhile(s,o){this.f=s,this.retained=[],this.xf=o}
function _xdropLastWhile (line 2) | function _xdropLastWhile(s){return function(o){return new Ga(s,o)}}
function _iterableReduce (line 2) | function _iterableReduce(s,o,i){for(var a=i.next();!a.done;)o=s(o,a.valu...
function _methodReduce (line 2) | function _methodReduce(s,o,i,a){return i[a](s,o)}
function XMap (line 2) | function XMap(s,o){this.xf=o,this.f=s}
function safeMax (line 2) | function safeMax(s,o){if(s>o!=o>s)return o>s?o:s}
function _array_like_to_array (line 2) | function _array_like_to_array(s,o){(null==o||o>s.length)&&(o=s.length);f...
function legacy_defineProperties (line 2) | function legacy_defineProperties(s,o){for(var i=0;i<o.length;i++){var a=...
function _instanceof (line 2) | function _instanceof(s,o){return null!=o&&"undefined"!=typeof Symbol&&o[...
function _sliced_to_array (line 2) | function _sliced_to_array(s,o){return function _array_with_holes(s){if(A...
function _type_of (line 2) | function _type_of(s){return s&&"undefined"!=typeof Symbol&&s.constructor...
function own_enumerable_keys (line 2) | function own_enumerable_keys(s){for(var o=Object.keys(s),i=Al(s),a=0;a<i...
function is_writable (line 2) | function is_writable(s,o){var i;return!(null===(i=Ol(s,o))||void 0===i?v...
function legacy_copy (line 2) | function legacy_copy(s,o){if("object"===(void 0===s?"undefined":_type_of...
function walk (line 2) | function walk(s,o){var i=arguments.length>2&&void 0!==arguments[2]?argum...
function Traverse (line 2) | function Traverse(s){var o=arguments.length>1&&void 0!==arguments[1]?arg...
function isFreelyNamed (line 2) | function isFreelyNamed(s){const o=s[s.length-1],i=s[s.length-2],a=s.join...
function absolutifyPointer (line 2) | function absolutifyPointer(s,o){const[i,a]=s.split("#"),u=null!=o?o:"",_...
class JSONRefError (line 2) | class JSONRefError extends Go{}
function pointToAncestor (line 2) | function pointToAncestor(s){return Wo.isObject(s)&&(i.indexOf(s)>=0||Obj...
function absoluteify (line 2) | function absoluteify(s,o){if(!Wl.test(s)){if(!o)throw new JSONRefError(`...
function wrapError (line 2) | function wrapError(s,o){let i;return i=s&&s.response&&s.response.body?`$...
function refs_split (line 2) | function refs_split(s){return(s+"").split("#")}
function extractFromDoc (line 2) | function extractFromDoc(s,o){const i=Jl[s];if(i&&!Wo.isPromise(i))try{co...
function getDoc (line 2) | function getDoc(s){const o=Jl[s];return o?Wo.isPromise(o)?o:Promise.reso...
function extract (line 2) | function extract(s,o){const i=jsonPointerToArray(s);if(i.length<1)return...
function jsonPointerToArray (line 2) | function jsonPointerToArray(s){if("string"!=typeof s)throw new TypeError...
function unescapeJsonPointerToken (line 2) | function unescapeJsonPointerToken(s){if("string"!=typeof s)return s;retu...
function escapeJsonPointerToken (line 2) | function escapeJsonPointerToken(s){return new URLSearchParams([["",s.rep...
function pointerIsAParent (line 2) | function pointerIsAParent(s,o){if(pointerBoundaryChar(o))return!0;const ...
class ContextTree (line 2) | class ContextTree{constructor(s){this.root=context_tree_createNode(s||{}...
method constructor (line 2) | constructor(s){this.root=context_tree_createNode(s||{})}
method set (line 2) | set(s,o){const i=this.getParent(s,!0);if(!i)return void context_tree_u...
method get (line 2) | get(s){if((s=s||[]).length<1)return this.root.value;let o,i,a=this.roo...
method getParent (line 2) | getParent(s,o){return!s||s.length<1?null:s.length<2?this.root:s.slice(...
function context_tree_createNode (line 2) | function context_tree_createNode(s,o){return context_tree_updateNode({ch...
function context_tree_updateNode (line 2) | function context_tree_updateNode(s,o,i){return s.value=o||{},s.protoValu...
class SpecMap (line 2) | class SpecMap{static getPluginName(s){return s.pluginName}static getPatc...
method getPluginName (line 2) | static getPluginName(s){return s.pluginName}
method getPatchesOfType (line 2) | static getPatchesOfType(s,o){return s.filter(o)}
method constructor (line 2) | constructor(s){Object.assign(this,{spec:"",debugLevel:"info",plugins:[...
method debug (line 2) | debug(s,...o){this.debugLevel===s&&console.log(...o)}
method verbose (line 2) | verbose(s,...o){"verbose"===this.debugLevel&&console.log(`[${s}] `,....
method wrapPlugin (line 2) | wrapPlugin(s,o){const{pathDiscriminator:i}=this;let a,u=null;return s[...
method nextPlugin (line 2) | nextPlugin(){return this.wrappedPlugins.find((s=>this.getMutationsForP...
method nextPromisedPatch (line 2) | nextPromisedPatch(){if(this.promisedPatches.length>0)return Promise.ra...
method getPluginHistory (line 2) | getPluginHistory(s){const o=this.constructor.getPluginName(s);return t...
method getPluginRunCount (line 2) | getPluginRunCount(s){return this.getPluginHistory(s).length}
method getPluginHistoryTip (line 2) | getPluginHistoryTip(s){const o=this.getPluginHistory(s);return o&&o[o....
method getPluginMutationIndex (line 2) | getPluginMutationIndex(s){const o=this.getPluginHistoryTip(s).mutation...
method updatePluginHistory (line 2) | updatePluginHistory(s,o){const i=this.constructor.getPluginName(s);thi...
method updatePatches (line 2) | updatePatches(s){Wo.normalizeArray(s).forEach((s=>{if(s instanceof Err...
method updateMutations (line 2) | updateMutations(s){"object"==typeof s.value&&!Array.isArray(s.value)&&...
method removePromisedPatch (line 2) | removePromisedPatch(s){const o=this.promisedPatches.indexOf(s);o<0?thi...
method promisedPatchThen (line 2) | promisedPatchThen(s){return s.value=s.value.then((o=>{const i={...s,va...
method getMutations (line 2) | getMutations(s,o){return s=s||0,"number"!=typeof o&&(o=this.mutations....
method getCurrentMutations (line 2) | getCurrentMutations(){return this.getMutationsForPlugin(this.getCurren...
method getMutationsForPlugin (line 2) | getMutationsForPlugin(s){const o=this.getPluginMutationIndex(s);return...
method getCurrentPlugin (line 2) | getCurrentPlugin(){return this.currentPlugin}
method getLib (line 2) | getLib(){return this.libMethods}
method _get (line 2) | _get(s){return Wo.getIn(this.state,s)}
method _getContext (line 2) | _getContext(s){return this.contextTree.get(s)}
method setContext (line 2) | setContext(s,o){return this.contextTree.set(s,o)}
method _hasRun (line 2) | _hasRun(s){return this.getPluginRunCount(this.getCurrentPlugin())>(s||0)}
method dispatch (line 2) | dispatch(){const s=this,o=this.nextPlugin();if(!o){const s=this.nextPr...
function makeFetchJSON (line 2) | function makeFetchJSON(s,o={}){const{requestInterceptor:i,responseInterc...
function isFile (line 2) | function isFile(s,o){return o||"undefined"==typeof navigator||(o=navigat...
function isArrayOfFile (line 2) | function isArrayOfFile(s,o){return Array.isArray(s)&&s.some((s=>isFile(s...
class FileWithData (line 2) | class FileWithData extends File{constructor(s,o="",i={}){super([s],o,i),...
method constructor (line 2) | constructor(s,o="",i={}){super([s],o,i),this.data=s}
method valueOf (line 2) | valueOf(){return this.data}
method toString (line 2) | toString(){return this.valueOf()}
function encodeCharacters (line 2) | function encodeCharacters(s,o="reserved"){return[...s].map((s=>{if(isRfc...
function stylize (line 2) | function stylize(s){const{value:o}=s;return Array.isArray(o)?function en...
function valueEncoder (line 2) | function valueEncoder(s,o=!1){return Array.isArray(s)||null!==s&&"object...
function formatKeyValue (line 2) | function formatKeyValue(s,o,i=!1){const{collectionFormat:a,allowEmptyVal...
function formatKeyValueBySerializationOption (line 2) | function formatKeyValueBySerializationOption(s,o,i,a){const u=a.style||"...
function encodeFormOrQuery (line 2) | function encodeFormOrQuery(s){return((s,{encode:o=!0}={})=>{const buildN...
function serializeRequest (line 2) | function serializeRequest(s={}){const{url:o="",query:i,form:a}=s;if(a){c...
function serializeHeaders (line 2) | function serializeHeaders(s={}){return"function"!=typeof s.entries?{}:Ar...
function serializeResponse (line 2) | function serializeResponse(s,o,{loadSpec:i=!1}={}){const a={ok:s.ok,url:...
function http_http (line 2) | async function http_http(s,o={}){"object"==typeof s&&(s=(o=s).url),o.hea...
function resolveGenericStrategy (line 2) | async function resolveGenericStrategy(s){const{spec:o,mode:i,allowMetaPa...
function opId (line 2) | function opId(s,o,i="",{v2OperationIdCompatibilityMode:a}={}){if(!s||"ob...
function normalize_normalize (line 2) | function normalize_normalize(s){const{spec:o}=s,{paths:i}=o,a={};if(!i||...
method normalize (line 2) | normalize(s){const{spec:o}=normalize_normalize({spec:s});return o}
method normalize (line 2) | normalize(s){const{spec:o}=normalize_normalize({spec:s});return o}
method normalize (line 2) | normalize(s){const{spec:o}=normalize_normalize({spec:s});return o}
function isOfTypeObject_typeof (line 2) | function isOfTypeObject_typeof(s){return isOfTypeObject_typeof="function...
function _reduced (line 2) | function _reduced(s){return s&&s["@@transducer/reduced"]?s:{"@@transduce...
function XAll (line 2) | function XAll(s,o){this.xf=o,this.f=s,this.all=!0}
function _xall (line 2) | function _xall(s){return function(o){return new Eu(s,o)}}
class Annotation (line 2) | class Annotation extends Su.Om{constructor(s,o,i){super(s,o,i),this.elem...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="annotation"}
method code (line 2) | get code(){return this.attributes.get("code")}
method code (line 2) | set code(s){this.attributes.set("code",s)}
class Comment (line 2) | class Comment extends Su.Om{constructor(s,o,i){super(s,o,i),this.element...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="comment"}
class ParseResult (line 2) | class ParseResult extends Su.wE{constructor(s,o,i){super(s,o,i),this.ele...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="parseResult"}
method api (line 2) | get api(){return this.children.filter((s=>s.classes.contains("api")))....
method results (line 2) | get results(){return this.children.filter((s=>s.classes.contains("resu...
method result (line 2) | get result(){return this.results.first}
method annotations (line 2) | get annotations(){return this.children.filter((s=>"annotation"===s.ele...
method warnings (line 2) | get warnings(){return this.children.filter((s=>"annotation"===s.elemen...
method errors (line 2) | get errors(){return this.children.filter((s=>"annotation"===s.element&...
method isEmpty (line 2) | get isEmpty(){return this.children.reject((s=>"annotation"===s.element...
method replaceResult (line 2) | replaceResult(s){const{result:o}=this;if(bc(o))return!1;const i=this.c...
class SourceMap (line 2) | class SourceMap extends Su.wE{constructor(s,o,i){super(s,o,i),this.eleme...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="sourceMap"}
method positionStart (line 2) | get positionStart(){return this.children.filter((s=>s.classes.contains...
method positionEnd (line 2) | get positionEnd(){return this.children.filter((s=>s.classes.contains("...
method position (line 2) | set position(s){if(void 0===s)return;const o=new Su.wE([s.start.row,s....
method enter (line 2) | enter(j,L,B,$,V,U){let z=j,Y=!1;const Z={...U,replaceWith(s,o){U.replace...
method leave (line 2) | leave(u,w,j,L,B,$){let V=u;const U={...$,replaceWith(s,o){$.replaceWith(...
method enter (line 2) | async enter(j,L,B,$,V,U){let z=j,Y=!1;const Z={...U,replaceWith(s,o){U.r...
method leave (line 2) | async leave(u,w,j,L,B,$){let V=u;const U={...$,replaceWith(s,o){$.replac...
method replaceWith (line 2) | replaceWith(o,a){"function"==typeof a?a(o,ie,i,U,ae,ce):U&&(U[i]=o),s||(...
method replaceWith (line 2) | replaceWith(o,a){"function"==typeof a?a(o,ie,i,U,ae,ce):U&&(U[i]=o),s||(...
method constructor (line 2) | constructor(s,o){super(s,o),void 0!==o&&(this.value=o.value)}
class PredicateVisitor (line 2) | class PredicateVisitor{result;predicate;returnOnTrue;returnOnFalse;const...
method constructor (line 2) | constructor({predicate:s=es_F,returnOnTrue:o,returnOnFalse:i}={}){this...
method enter (line 2) | enter(s){return this.predicate(s)?(this.result.push(s),this.returnOnTr...
method constructor (line 2) | constructor(s){this.content=s,this.reference=[]}
method toReference (line 2) | toReference(){return this.reference}
method toArray (line 2) | toArray(){return this.reference.push(...this.content),this.reference}
method constructor (line 2) | constructor(s){this.content=s,this.reference={}}
method toReference (line 2) | toReference(){return this.reference}
method toObject (line 2) | toObject(){return Object.assign(this.reference,Object.fromEntries(this.c...
class Visitor (line 2) | class Visitor{ObjectElement={enter:s=>{if(this.references.has(s))return ...
method BooleanElement (line 2) | BooleanElement(s){return s.toValue()}
method NumberElement (line 2) | NumberElement(s){return s.toValue()}
method StringElement (line 2) | StringElement(s){return s.toValue()}
method NullElement (line 2) | NullElement(){return null}
method RefElement (line 2) | RefElement(s,...o){var i;const a=o[3];return"EphemeralObject"===(null=...
method LinkElement (line 2) | LinkElement(s){return Iu(s.href)?s.href.toValue():""}
class Namespace (line 2) | class Namespace extends Su.g${constructor(){super(),this.register("annot...
method constructor (line 2) | constructor(s){this.elementMap={},this.elementDetection=[],this.Elemen...
method use (line 2) | use(s){return s.namespace&&s.namespace({base:this}),s.load&&s.load({ba...
method useDefault (line 2) | useDefault(){return this.register("null",j.NullElement).register("stri...
method register (line 2) | register(s,o){return this._elements=void 0,this.elementMap[s]=o,this}
method unregister (line 2) | unregister(s){return this._elements=void 0,delete this.elementMap[s],t...
method detect (line 2) | detect(s,o,i){return void 0===i||i?this.elementDetection.unshift([s,o]...
method toElement (line 2) | toElement(s){if(s instanceof this.Element)return s;let o;for(let i=0;i...
method getElementClass (line 2) | getElementClass(s){const o=this.elementMap[s];return void 0===o?this.E...
method fromRefract (line 2) | fromRefract(s){return this.serialiser.deserialise(s)}
method toRefract (line 2) | toRefract(s){return this.serialiser.serialise(s)}
method elements (line 2) | get elements(){return void 0===this._elements&&(this._elements={Elemen...
method serialiser (line 2) | get serialiser(){return new C(this)}
method constructor (line 2) | constructor(){super(),this.register("annotation",ku),this.register("co...
method constructor (line 2) | constructor({element:s}){this.element=s}
method transclude (line 2) | transclude(s,o){var i;if(s===this.element)return o;if(s===o)return this....
method constructor (line 2) | constructor(s,o){super(s,o),void 0!==o&&(this.tokens=[...o.tokens])}
function _identity (line 2) | function _identity(s){return s}
function XTake (line 2) | function XTake(s,o){this.xf=o,this.n=s,this.i=0}
function _xtake (line 2) | function _xtake(s){return function(o){return new Ap(s,o)}}
function XDropWhile (line 2) | function XDropWhile(s,o){this.xf=o,this.f=s}
function _xdropWhile (line 2) | function _xdropWhile(s){return function(o){return new Tp(s,o)}}
method constructor (line 2) | constructor(s,o){super(s,o),void 0!==o&&(this.pointer=o.pointer)}
method constructor (line 2) | constructor(s,o){super(s,o),void 0!==o&&(this.pointer=o.pointer,Array.is...
class Callback (line 2) | class Callback extends Su.Sh{constructor(s,o,i){super(s,o,i),this.elemen...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="callback"}
class Components (line 2) | class Components extends Su.Sh{constructor(s,o,i){super(s,o,i),this.elem...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="components"}
method schemas (line 2) | get schemas(){return this.get("schemas")}
method schemas (line 2) | set schemas(s){this.set("schemas",s)}
method responses (line 2) | get responses(){return this.get("responses")}
method responses (line 2) | set responses(s){this.set("responses",s)}
method parameters (line 2) | get parameters(){return this.get("parameters")}
method parameters (line 2) | set parameters(s){this.set("parameters",s)}
method examples (line 2) | get examples(){return this.get("examples")}
method examples (line 2) | set examples(s){this.set("examples",s)}
method requestBodies (line 2) | get requestBodies(){return this.get("requestBodies")}
method requestBodies (line 2) | set requestBodies(s){this.set("requestBodies",s)}
method headers (line 2) | get headers(){return this.get("headers")}
method headers (line 2) | set headers(s){this.set("headers",s)}
method securitySchemes (line 2) | get securitySchemes(){return this.get("securitySchemes")}
method securitySchemes (line 2) | set securitySchemes(s){this.set("securitySchemes",s)}
method links (line 2) | get links(){return this.get("links")}
method links (line 2) | set links(s){this.set("links",s)}
method callbacks (line 2) | get callbacks(){return this.get("callbacks")}
method callbacks (line 2) | set callbacks(s){this.set("callbacks",s)}
class Contact (line 2) | class Contact extends Su.Sh{constructor(s,o,i){super(s,o,i),this.element...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="contact"}
method name (line 2) | get name(){return this.get("name")}
method name (line 2) | set name(s){this.set("name",s)}
method url (line 2) | get url(){return this.get("url")}
method url (line 2) | set url(s){this.set("url",s)}
method email (line 2) | get email(){return this.get("email")}
method email (line 2) | set email(s){this.set("email",s)}
class Discriminator (line 2) | class Discriminator extends Su.Sh{constructor(s,o,i){super(s,o,i),this.e...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="discriminator"}
method propertyName (line 2) | get propertyName(){return this.get("propertyName")}
method propertyName (line 2) | set propertyName(s){this.set("propertyName",s)}
method mapping (line 2) | get mapping(){return this.get("mapping")}
method mapping (line 2) | set mapping(s){this.set("mapping",s)}
class Encoding (line 2) | class Encoding extends Su.Sh{constructor(s,o,i){super(s,o,i),this.elemen...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="encoding"}
method contentType (line 2) | get contentType(){return this.get("contentType")}
method contentType (line 2) | set contentType(s){this.set("contentType",s)}
method headers (line 2) | get headers(){return this.get("headers")}
method headers (line 2) | set headers(s){this.set("headers",s)}
method style (line 2) | get style(){return this.get("style")}
method style (line 2) | set style(s){this.set("style",s)}
method explode (line 2) | get explode(){return this.get("explode")}
method explode (line 2) | set explode(s){this.set("explode",s)}
method allowedReserved (line 2) | get allowedReserved(){return this.get("allowedReserved")}
method allowedReserved (line 2) | set allowedReserved(s){this.set("allowedReserved",s)}
class Example (line 2) | class Example extends Su.Sh{constructor(s,o,i){super(s,o,i),this.element...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="example"}
method summary (line 2) | get summary(){return this.get("summary")}
method summary (line 2) | set summary(s){this.set("summary",s)}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method value (line 2) | get value(){return this.get("value")}
method value (line 2) | set value(s){this.set("value",s)}
method externalValue (line 2) | get externalValue(){return this.get("externalValue")}
method externalValue (line 2) | set externalValue(s){this.set("externalValue",s)}
class ExternalDocumentation (line 2) | class ExternalDocumentation extends Su.Sh{constructor(s,o,i){super(s,o,i...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="externalDocumentation"}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method url (line 2) | get url(){return this.get("url")}
method url (line 2) | set url(s){this.set("url",s)}
class Header (line 2) | class Header extends Su.Sh{constructor(s,o,i){super(s,o,i),this.element=...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="header"}
method required (line 2) | get required(){return this.hasKey("required")?this.get("required"):new...
method required (line 2) | set required(s){this.set("required",s)}
method deprecated (line 2) | get deprecated(){return this.hasKey("deprecated")?this.get("deprecated...
method deprecated (line 2) | set deprecated(s){this.set("deprecated",s)}
method allowEmptyValue (line 2) | get allowEmptyValue(){return this.get("allowEmptyValue")}
method allowEmptyValue (line 2) | set allowEmptyValue(s){this.set("allowEmptyValue",s)}
method style (line 2) | get style(){return this.get("style")}
method style (line 2) | set style(s){this.set("style",s)}
method explode (line 2) | get explode(){return this.get("explode")}
method explode (line 2) | set explode(s){this.set("explode",s)}
method allowReserved (line 2) | get allowReserved(){return this.get("allowReserved")}
method allowReserved (line 2) | set allowReserved(s){this.set("allowReserved",s)}
method schema (line 2) | get schema(){return this.get("schema")}
method schema (line 2) | set schema(s){this.set("schema",s)}
method example (line 2) | get example(){return this.get("example")}
method example (line 2) | set example(s){this.set("example",s)}
method examples (line 2) | get examples(){return this.get("examples")}
method examples (line 2) | set examples(s){this.set("examples",s)}
method contentProp (line 2) | get contentProp(){return this.get("content")}
method contentProp (line 2) | set contentProp(s){this.set("content",s)}
method get (line 2) | get(){return this.get("description")}
method set (line 2) | set(s){this.set("description",s)}
class Info (line 2) | class Info extends Su.Sh{constructor(s,o,i){super(s,o,i),this.element="i...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="info",this.classes.push(...
method title (line 2) | get title(){return this.get("title")}
method title (line 2) | set title(s){this.set("title",s)}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method termsOfService (line 2) | get termsOfService(){return this.get("termsOfService")}
method termsOfService (line 2) | set termsOfService(s){this.set("termsOfService",s)}
method contact (line 2) | get contact(){return this.get("contact")}
method contact (line 2) | set contact(s){this.set("contact",s)}
method license (line 2) | get license(){return this.get("license")}
method license (line 2) | set license(s){this.set("license",s)}
method version (line 2) | get version(){return this.get("version")}
method version (line 2) | set version(s){this.set("version",s)}
class License (line 2) | class License extends Su.Sh{constructor(s,o,i){super(s,o,i),this.element...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="license"}
method name (line 2) | get name(){return this.get("name")}
method name (line 2) | set name(s){this.set("name",s)}
method url (line 2) | get url(){return this.get("url")}
method url (line 2) | set url(s){this.set("url",s)}
class Link (line 2) | class Link extends Su.Sh{constructor(s,o,i){super(s,o,i),this.element="l...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="link"}
method operationRef (line 2) | get operationRef(){return this.get("operationRef")}
method operationRef (line 2) | set operationRef(s){this.set("operationRef",s)}
method operationId (line 2) | get operationId(){return this.get("operationId")}
method operationId (line 2) | set operationId(s){this.set("operationId",s)}
method operation (line 2) | get operation(){var s,o;return Iu(this.operationRef)?null===(s=this.op...
method operation (line 2) | set operation(s){this.set("operation",s)}
method parameters (line 2) | get parameters(){return this.get("parameters")}
method parameters (line 2) | set parameters(s){this.set("parameters",s)}
method requestBody (line 2) | get requestBody(){return this.get("requestBody")}
method requestBody (line 2) | set requestBody(s){this.set("requestBody",s)}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method server (line 2) | get server(){return this.get("server")}
method server (line 2) | set server(s){this.set("server",s)}
class MediaType (line 2) | class MediaType extends Su.Sh{constructor(s,o,i){super(s,o,i),this.eleme...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="mediaType"}
method schema (line 2) | get schema(){return this.get("schema")}
method schema (line 2) | set schema(s){this.set("schema",s)}
method example (line 2) | get example(){return this.get("example")}
method example (line 2) | set example(s){this.set("example",s)}
method examples (line 2) | get examples(){return this.get("examples")}
method examples (line 2) | set examples(s){this.set("examples",s)}
method encoding (line 2) | get encoding(){return this.get("encoding")}
method encoding (line 2) | set encoding(s){this.set("encoding",s)}
class OAuthFlow (line 2) | class OAuthFlow extends Su.Sh{constructor(s,o,i){super(s,o,i),this.eleme...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="oAuthFlow"}
method authorizationUrl (line 2) | get authorizationUrl(){return this.get("authorizationUrl")}
method authorizationUrl (line 2) | set authorizationUrl(s){this.set("authorizationUrl",s)}
method tokenUrl (line 2) | get tokenUrl(){return this.get("tokenUrl")}
method tokenUrl (line 2) | set tokenUrl(s){this.set("tokenUrl",s)}
method refreshUrl (line 2) | get refreshUrl(){return this.get("refreshUrl")}
method refreshUrl (line 2) | set refreshUrl(s){this.set("refreshUrl",s)}
method scopes (line 2) | get scopes(){return this.get("scopes")}
method scopes (line 2) | set scopes(s){this.set("scopes",s)}
class OAuthFlows (line 2) | class OAuthFlows extends Su.Sh{constructor(s,o,i){super(s,o,i),this.elem...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="oAuthFlows"}
method implicit (line 2) | get implicit(){return this.get("implicit")}
method implicit (line 2) | set implicit(s){this.set("implicit",s)}
method password (line 2) | get password(){return this.get("password")}
method password (line 2) | set password(s){this.set("password",s)}
method clientCredentials (line 2) | get clientCredentials(){return this.get("clientCredentials")}
method clientCredentials (line 2) | set clientCredentials(s){this.set("clientCredentials",s)}
method authorizationCode (line 2) | get authorizationCode(){return this.get("authorizationCode")}
method authorizationCode (line 2) | set authorizationCode(s){this.set("authorizationCode",s)}
class Openapi (line 2) | class Openapi extends Su.Om{constructor(s,o,i){super(s,o,i),this.element...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="openapi",this.classes.pu...
class OpenApi3_0 (line 2) | class OpenApi3_0 extends Su.Sh{constructor(s,o,i){super(s,o,i),this.elem...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="openApi3_0",this.classes...
method openapi (line 2) | get openapi(){return this.get("openapi")}
method openapi (line 2) | set openapi(s){this.set("openapi",s)}
method info (line 2) | get info(){return this.get("info")}
method info (line 2) | set info(s){this.set("info",s)}
method servers (line 2) | get servers(){return this.get("servers")}
method servers (line 2) | set servers(s){this.set("servers",s)}
method paths (line 2) | get paths(){return this.get("paths")}
method paths (line 2) | set paths(s){this.set("paths",s)}
method components (line 2) | get components(){return this.get("components")}
method components (line 2) | set components(s){this.set("components",s)}
method security (line 2) | get security(){return this.get("security")}
method security (line 2) | set security(s){this.set("security",s)}
method tags (line 2) | get tags(){return this.get("tags")}
method tags (line 2) | set tags(s){this.set("tags",s)}
method externalDocs (line 2) | get externalDocs(){return this.get("externalDocs")}
method externalDocs (line 2) | set externalDocs(s){this.set("externalDocs",s)}
class Operation (line 2) | class Operation extends Su.Sh{constructor(s,o,i){super(s,o,i),this.eleme...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="operation"}
method tags (line 2) | get tags(){return this.get("tags")}
method tags (line 2) | set tags(s){this.set("tags",s)}
method summary (line 2) | get summary(){return this.get("summary")}
method summary (line 2) | set summary(s){this.set("summary",s)}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method externalDocs (line 2) | set externalDocs(s){this.set("externalDocs",s)}
method externalDocs (line 2) | get externalDocs(){return this.get("externalDocs")}
method operationId (line 2) | get operationId(){return this.get("operationId")}
method operationId (line 2) | set operationId(s){this.set("operationId",s)}
method parameters (line 2) | get parameters(){return this.get("parameters")}
method parameters (line 2) | set parameters(s){this.set("parameters",s)}
method requestBody (line 2) | get requestBody(){return this.get("requestBody")}
method requestBody (line 2) | set requestBody(s){this.set("requestBody",s)}
method responses (line 2) | get responses(){return this.get("responses")}
method responses (line 2) | set responses(s){this.set("responses",s)}
method callbacks (line 2) | get callbacks(){return this.get("callbacks")}
method callbacks (line 2) | set callbacks(s){this.set("callbacks",s)}
method deprecated (line 2) | get deprecated(){return this.hasKey("deprecated")?this.get("deprecated...
method deprecated (line 2) | set deprecated(s){this.set("deprecated",s)}
method security (line 2) | get security(){return this.get("security")}
method security (line 2) | set security(s){this.set("security",s)}
method servers (line 2) | get servers(){return this.get("severs")}
method servers (line 2) | set servers(s){this.set("servers",s)}
class Parameter (line 2) | class Parameter extends Su.Sh{constructor(s,o,i){super(s,o,i),this.eleme...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="parameter"}
method name (line 2) | get name(){return this.get("name")}
method name (line 2) | set name(s){this.set("name",s)}
method in (line 2) | get in(){return this.get("in")}
method in (line 2) | set in(s){this.set("in",s)}
method required (line 2) | get required(){return this.hasKey("required")?this.get("required"):new...
method required (line 2) | set required(s){this.set("required",s)}
method deprecated (line 2) | get deprecated(){return this.hasKey("deprecated")?this.get("deprecated...
method deprecated (line 2) | set deprecated(s){this.set("deprecated",s)}
method allowEmptyValue (line 2) | get allowEmptyValue(){return this.get("allowEmptyValue")}
method allowEmptyValue (line 2) | set allowEmptyValue(s){this.set("allowEmptyValue",s)}
method style (line 2) | get style(){return this.get("style")}
method style (line 2) | set style(s){this.set("style",s)}
method explode (line 2) | get explode(){return this.get("explode")}
method explode (line 2) | set explode(s){this.set("explode",s)}
method allowReserved (line 2) | get allowReserved(){return this.get("allowReserved")}
method allowReserved (line 2) | set allowReserved(s){this.set("allowReserved",s)}
method schema (line 2) | get schema(){return this.get("schema")}
method schema (line 2) | set schema(s){this.set("schema",s)}
method example (line 2) | get example(){return this.get("example")}
method example (line 2) | set example(s){this.set("example",s)}
method examples (line 2) | get examples(){return this.get("examples")}
method examples (line 2) | set examples(s){this.set("examples",s)}
method contentProp (line 2) | get contentProp(){return this.get("content")}
method contentProp (line 2) | set contentProp(s){this.set("content",s)}
method get (line 2) | get(){return this.get("description")}
method set (line 2) | set(s){this.set("description",s)}
class PathItem (line 2) | class PathItem extends Su.Sh{constructor(s,o,i){super(s,o,i),this.elemen...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="pathItem"}
method $ref (line 2) | get $ref(){return this.get("$ref")}
method $ref (line 2) | set $ref(s){this.set("$ref",s)}
method summary (line 2) | get summary(){return this.get("summary")}
method summary (line 2) | set summary(s){this.set("summary",s)}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method GET (line 2) | get GET(){return this.get("get")}
method GET (line 2) | set GET(s){this.set("GET",s)}
method PUT (line 2) | get PUT(){return this.get("put")}
method PUT (line 2) | set PUT(s){this.set("PUT",s)}
method POST (line 2) | get POST(){return this.get("post")}
method POST (line 2) | set POST(s){this.set("POST",s)}
method DELETE (line 2) | get DELETE(){return this.get("delete")}
method DELETE (line 2) | set DELETE(s){this.set("DELETE",s)}
method OPTIONS (line 2) | get OPTIONS(){return this.get("options")}
method OPTIONS (line 2) | set OPTIONS(s){this.set("OPTIONS",s)}
method HEAD (line 2) | get HEAD(){return this.get("head")}
method HEAD (line 2) | set HEAD(s){this.set("HEAD",s)}
method PATCH (line 2) | get PATCH(){return this.get("patch")}
method PATCH (line 2) | set PATCH(s){this.set("PATCH",s)}
method TRACE (line 2) | get TRACE(){return this.get("trace")}
method TRACE (line 2) | set TRACE(s){this.set("TRACE",s)}
method servers (line 2) | get servers(){return this.get("servers")}
method servers (line 2) | set servers(s){this.set("servers",s)}
method parameters (line 2) | get parameters(){return this.get("parameters")}
method parameters (line 2) | set parameters(s){this.set("parameters",s)}
class Paths (line 2) | class Paths extends Su.Sh{constructor(s,o,i){super(s,o,i),this.element="...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="paths"}
class Reference (line 2) | class Reference extends Su.Sh{constructor(s,o,i){super(s,o,i),this.eleme...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="reference",this.classes....
method $ref (line 2) | get $ref(){return this.get("$ref")}
method $ref (line 2) | set $ref(s){this.set("$ref",s)}
class RequestBody (line 2) | class RequestBody extends Su.Sh{constructor(s,o,i){super(s,o,i),this.ele...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="requestBody"}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method contentProp (line 2) | get contentProp(){return this.get("content")}
method contentProp (line 2) | set contentProp(s){this.set("content",s)}
method required (line 2) | get required(){return this.hasKey("required")?this.get("required"):new...
method required (line 2) | set required(s){this.set("required",s)}
class Response_Response (line 2) | class Response_Response extends Su.Sh{constructor(s,o,i){super(s,o,i),th...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="response"}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method headers (line 2) | get headers(){return this.get("headers")}
method headers (line 2) | set headers(s){this.set("headers",s)}
method contentProp (line 2) | get contentProp(){return this.get("content")}
method contentProp (line 2) | set contentProp(s){this.set("content",s)}
method links (line 2) | get links(){return this.get("links")}
method links (line 2) | set links(s){this.set("links",s)}
class Responses (line 2) | class Responses extends Su.Sh{constructor(s,o,i){super(s,o,i),this.eleme...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="responses"}
method default (line 2) | get default(){return this.get("default")}
method default (line 2) | set default(s){this.set("default",s)}
class JSONSchema (line 2) | class JSONSchema extends Su.Sh{constructor(s,o,i){super(s,o,i),this.elem...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="JSONSchemaDraft4"}
method idProp (line 2) | get idProp(){return this.get("id")}
method idProp (line 2) | set idProp(s){this.set("id",s)}
method $schema (line 2) | get $schema(){return this.get("$schema")}
method $schema (line 2) | set $schema(s){this.set("$schema",s)}
method multipleOf (line 2) | get multipleOf(){return this.get("multipleOf")}
method multipleOf (line 2) | set multipleOf(s){this.set("multipleOf",s)}
method maximum (line 2) | get maximum(){return this.get("maximum")}
method maximum (line 2) | set maximum(s){this.set("maximum",s)}
method exclusiveMaximum (line 2) | get exclusiveMaximum(){return this.get("exclusiveMaximum")}
method exclusiveMaximum (line 2) | set exclusiveMaximum(s){this.set("exclusiveMaximum",s)}
method minimum (line 2) | get minimum(){return this.get("minimum")}
method minimum (line 2) | set minimum(s){this.set("minimum",s)}
method exclusiveMinimum (line 2) | get exclusiveMinimum(){return this.get("exclusiveMinimum")}
method exclusiveMinimum (line 2) | set exclusiveMinimum(s){this.set("exclusiveMinimum",s)}
method maxLength (line 2) | get maxLength(){return this.get("maxLength")}
method maxLength (line 2) | set maxLength(s){this.set("maxLength",s)}
method minLength (line 2) | get minLength(){return this.get("minLength")}
method minLength (line 2) | set minLength(s){this.set("minLength",s)}
method pattern (line 2) | get pattern(){return this.get("pattern")}
method pattern (line 2) | set pattern(s){this.set("pattern",s)}
method additionalItems (line 2) | get additionalItems(){return this.get("additionalItems")}
method additionalItems (line 2) | set additionalItems(s){this.set("additionalItems",s)}
method items (line 2) | get items(){return this.get("items")}
method items (line 2) | set items(s){this.set("items",s)}
method maxItems (line 2) | get maxItems(){return this.get("maxItems")}
method maxItems (line 2) | set maxItems(s){this.set("maxItems",s)}
method minItems (line 2) | get minItems(){return this.get("minItems")}
method minItems (line 2) | set minItems(s){this.set("minItems",s)}
method uniqueItems (line 2) | get uniqueItems(){return this.get("uniqueItems")}
method uniqueItems (line 2) | set uniqueItems(s){this.set("uniqueItems",s)}
method maxProperties (line 2) | get maxProperties(){return this.get("maxProperties")}
method maxProperties (line 2) | set maxProperties(s){this.set("maxProperties",s)}
method minProperties (line 2) | get minProperties(){return this.get("minProperties")}
method minProperties (line 2) | set minProperties(s){this.set("minProperties",s)}
method required (line 2) | get required(){return this.get("required")}
method required (line 2) | set required(s){this.set("required",s)}
method properties (line 2) | get properties(){return this.get("properties")}
method properties (line 2) | set properties(s){this.set("properties",s)}
method additionalProperties (line 2) | get additionalProperties(){return this.get("additionalProperties")}
method additionalProperties (line 2) | set additionalProperties(s){this.set("additionalProperties",s)}
method patternProperties (line 2) | get patternProperties(){return this.get("patternProperties")}
method patternProperties (line 2) | set patternProperties(s){this.set("patternProperties",s)}
method dependencies (line 2) | get dependencies(){return this.get("dependencies")}
method dependencies (line 2) | set dependencies(s){this.set("dependencies",s)}
method enum (line 2) | get enum(){return this.get("enum")}
method enum (line 2) | set enum(s){this.set("enum",s)}
method type (line 2) | get type(){return this.get("type")}
method type (line 2) | set type(s){this.set("type",s)}
method allOf (line 2) | get allOf(){return this.get("allOf")}
method allOf (line 2) | set allOf(s){this.set("allOf",s)}
method anyOf (line 2) | get anyOf(){return this.get("anyOf")}
method anyOf (line 2) | set anyOf(s){this.set("anyOf",s)}
method oneOf (line 2) | get oneOf(){return this.get("oneOf")}
method oneOf (line 2) | set oneOf(s){this.set("oneOf",s)}
method not (line 2) | get not(){return this.get("not")}
method not (line 2) | set not(s){this.set("not",s)}
method definitions (line 2) | get definitions(){return this.get("definitions")}
method definitions (line 2) | set definitions(s){this.set("definitions",s)}
method title (line 2) | get title(){return this.get("title")}
method title (line 2) | set title(s){this.set("title",s)}
method description (line 2) | get description(){return this.get("description")}
method description (line 2) | set description(s){this.set("description",s)}
method default (line 2) | get default(){return this.get("default")}
method default (line 2) | set default(s){this.set("default",s)}
method format (line 2) | get format(){return this.get("format")}
method format (line 2) | set format(s){this.set("format",s)}
method base (line 2) | get base(){return this.get("base")}
method base (line 2) | set base(s){this.set("base",s)}
method links (line 2) | get links(){return this.get("links")}
method links (line 2) | set links(s){this.set("links",s)}
method media (line 2) | get media(){return this.get("media")}
method media (line 2) | set media(s){this.set("media",s)}
method readOnly (line 2) | get readOnly(){return this.get("readOnly")}
method readOnly (line 2) | set readOnly(s){this.set("readOnly",s)}
class JSONReference (line 2) | class JSONReference extends Su.Sh{constructor(s,o,i){super(s,o,i),this.e...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="JSONReference",this.clas...
method $ref (line 2) | get $ref(){return this.get("$ref")}
method $ref (line 2) | set $ref(s){this.set("$ref",s)}
class Media (line 2) | class Media extends Su.Sh{constructor(s,o,i){super(s,o,i),this.element="...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="media"}
method binaryEncoding (line 2) | get binaryEncoding(){return this.get("binaryEncoding")}
method binaryEncoding (line 2) | set binaryEncoding(s){this.set("binaryEncoding",s)}
method type (line 2) | get type(){return this.get("type")}
method type (line 2) | set type(s){this.set("type",s)}
class LinkDescription (line 2) | class LinkDescription extends Su.Sh{constructor(s,o,i){super(s,o,i),this...
method constructor (line 2) | constructor(s,o,i){super(s,o,i),this.element="linkDescription"}
method href (line 2) | get href(){return this.get("href")}
method href (line 2) | set href(s){this.set("href",s)}
method rel (line 2) | get rel(){return this.get("rel")}
method rel (line 2) | set rel(s){this.set("rel",s)}
method title (line 2) | get title(){return this.get("title")}
method title (line 2) | set title(s){this.set("title",s)}
method targetSchema (line 2) | get targetSchema(){return this.get("targetSchema")}
method targetSchema (line 2) | set targetSchema(s){this.set("targetSchema",s)}
method mediaType (line 2) | get mediaType(){return this.get("mediaType")}
method mediaType (line 2) | set mediaType(s){this.set("mediaType",s)}
method method (line 2) | get method(){return this.get("method")}
method method (line 2) | set method(s){this.set("method",s)}
method encType (line 2) | get encType(){return this.get("encType")}
method encType (line 2) | set encType(s){this.set("encType",s)}
method schema (line 2) | get schema(){return this.get("schema")}
method schema (line 2) | set schema(s){this.set("schema",s)}
method constructor (line 2) | constructor(s){Object.assign(this,s)}
method copyMetaAndAttributes (line 2) | copyMetaAndAttributes(s,o){(s.meta.length>0||o.meta.length>0)&&(o.meta=s...
method enter (line 2) | enter(s){return this.element=cloneDeep(s),Uu}
method setPrototypeOf (line 2) | setPrototypeOf(){throw Error("Cannot set prototype of Proxies created by...
method defineProperty (line 2) | defineProperty(){throw new Error("Cannot define new properties on Proxie...
method set (line 2) | set(o,i,a){const u=getIngredientWithProp(i,s);if(void 0===u)throw new Er...
method deleteProperty (line 2) | deleteProperty(){throw new Error("Cannot delete properties on Proxies cr...
function Mixin (line 2) | function Mixin(...s){var o,i,a;const u=s.map((s=>s.prototype)),_=ld;if(n...
method constructor (line 2) | constructor({specObj:s,...o}){super({...o}),this.specObj=s}
method retrievePassingOptions (line 2) | retrievePassingOptions(){return kd(this.passingOptionsNames,this)}
method retrieveFixedFields (line 2) | retrieveFixedFields(s){const o=tp(["visitors",...s,"fixedFields"],this.s...
method retrieveVisitor (line 2) | retrieveVisitor(s){return Qo(Mc,["visitors",...s],this.specObj)?tp(["vis...
method retrieveVisitorInstance (line 2) | retrieveVisitorInstance(s,o={}){const i=this.retrievePassingOptions();re...
method toRefractedElement (line 2) | toRefractedElement(s,o,i={}){const a=this.retrieveVisitorInstance(s,i);r...
method constructor (line 2) | constructor({specPath:s,ignoredFields:o,...i}){super({...i}),this.specPa...
method ObjectElement (line 2) | ObjectElement(s){const o=this.specPath(s),i=this.retrieveFixedFields(o);...
method constructor (line 2) | constructor({parent:s}){this.parent=s}
class JSONSchemaVisitor (line 2) | class JSONSchemaVisitor extends(Mixin(Cd,Ad,cd)){constructor(s){super(s)...
method constructor (line 2) | constructor(s){super(s),this.element=new Ih,this.specPath=fc(["documen...
method defaultDialectIdentifier (line 2) | get defaultDialectIdentifier(){return"http://json-schema.org/draft-04/...
method ObjectElement (line 2) | ObjectElement(s){return this.handleDialectIdentifier(s),this.handleSch...
method handleDialectIdentifier (line 2) | handleDialectIdentifier(s){if(bc(this.parent)&&!Iu(s.get("$schema")))t...
method handleSchemaIdentifier (line 2) | handleSchemaIdentifier(s,o="id"){const i=void 0!==this.parent?cloneDee...
class ItemsVisitor (line 2) | class ItemsVisitor extends(Mixin(Od,Ad,cd)){ObjectElement(s){const o=isJ...
method ObjectElement (line 2) | ObjectElement(s){const o=isJSONReferenceLikeElement(s)?["document","ob...
method ArrayElement (line 2) | ArrayElement(s){return this.element=new Su.wE,this.element.classes.pus...
method ArrayElement (line 2) | ArrayElement(s){const o=this.enter(s);return this.element.classes.push("...
method constructor (line 2) | constructor(s,o,i){super(s||[],o,i),this.element="array"}
method primitive (line 2) | primitive(){return"array"}
method get (line 2) | get(s){return this.content[s]}
method getValue (line 2) | getValue(s){const o=this.get(s);if(o)return o.toValue()}
method getIndex (line 2) | getIndex(s){return this.content[s]}
method set (line 2) | set(s,o){return this.content[s]=this.refract(o),this}
method remove (line 2) | remove(s){const o=this.content.splice(s,1);return o.length?o[0]:null}
method map (line 2) | map(s,o){return this.content.map(s,o)}
method flatMap (line 2) | flatMap(s,o){return this.map(s,o).reduce(((s,o)=>s.concat(o)),[])}
method compactMap (line 2) | compactMap(s,o){const i=[];return this.forEach((a=>{const u=s.bind(o)(...
method filter (line 2) | filter(s,o){return new _(this.content.filter(s,o))}
method reject (line 2) | reject(s,o){return this.filter(a(s),o)}
method reduce (line 2) | reduce(s,o){let i,a;void 0!==o?(i=0,a=this.refract(o)):(i=1,a="object"...
method forEach (line 2) | forEach(s,o){this.content.forEach(((i,a)=>{s.bind(o)(i,this.refract(a)...
method shift (line 2) | shift(){return this.content.shift()}
method unshift (line 2) | unshift(s){this.content.unshift(this.refract(s))}
method push (line 2) | push(s){return this.content.push(this.refract(s)),this}
method add (line 2) | add(s){this.push(s)}
method findElements (line 2) | findElements(s,o){const i=o||{},a=!!i.recursive,u=void 0===i.results?[...
method find (line 2) | find(s){return new _(this.findElements(s,{recursive:!0}))}
method findByElement (line 2) | findByElement(s){return this.find((o=>o.element===s))}
method findByClass (line 2) | findByClass(s){return this.find((o=>o.classes.includes(s)))}
method getById (line 2) | getById(s){return this.find((o=>o.id.toValue()===s)).first}
method includes (line 2) | includes(s){return this.content.some((o=>o.equals(s)))}
method contains (line 2) | contains(s){return this.includes(s)}
method empty (line 2) | empty(){return new this.constructor([])}
method "fantasy-land/empty" (line 2) | "fantasy-land/empty"(){return this.empty()}
method concat (line 2) | concat(s){return new this.constructor(this.content.concat(s.content))}
method "fantasy-land/concat" (line 2) | "fantasy-land/concat"(s){return this.concat(s)}
method "fantasy-land/map" (line 2) | "fantasy-land/map"(s){return new this.constructor(this.map(s))}
method "fantasy-land/chain" (line 2) | "fantasy-land/chain"(s){return this.map((o=>s(o)),this).reduce(((s,o)=...
method "fantasy-land/filter" (line 2) | "fantasy-land/filter"(s){return new this.constructor(this.content.filt...
method "fantasy-land/reduce" (line 2) | "fantasy-land/reduce"(s,o){return this.content.reduce(s,o)}
method length (line 2) | get length(){return this.content.length}
method isEmpty (line 2) | get isEmpty(){return 0===this.content.length}
method first (line 2) | get first(){return this.getIndex(0)}
method second (line 2) | get second(){return this.getIndex(1)}
method last (line
Copy disabled (too large)
Download .json
Condensed preview — 890 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (56,740K chars).
[
{
"path": ".gitattributes",
"chars": 2407,
"preview": "* text=auto\n*.cs diff=csharp\n*.tt text eol=crlf\n*.sln text eol=crlf\n*.csproj text eol=crlf\n*.vbproj text eol=crlf\n*.vcxp"
},
{
"path": ".github/FUNDING.yml",
"chars": 65,
"preview": "# These are supported funding model platforms\n\ngithub: RicoSuter\n"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.md",
"chars": 515,
"preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Describe the b"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.md",
"chars": 599,
"preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\n**Is your fea"
},
{
"path": ".github/workflows/build.yml",
"chars": 3182,
"preview": "# ------------------------------------------------------------------------------\n# <auto-generated>\n#\n# This code wa"
},
{
"path": ".github/workflows/pr.yml",
"chars": 2568,
"preview": "# ------------------------------------------------------------------------------\n# <auto-generated>\n#\n# This code wa"
},
{
"path": ".gitignore",
"chars": 3548,
"preview": "src/**/bin/**\nsrc/**/obj/**\nsrc/packages/**\n\n**.suo\n**.user\n**.DotSettings\n\n**.sln.ide/**\n**.vs/**\n.vs/**\n\n[Bb]in/\n[Oo]b"
},
{
"path": ".nuke/build.schema.json",
"chars": 3634,
"preview": "{\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"definitions\": {\n \"Host\": {\n \"type\": \"string\",\n "
},
{
"path": ".nuke/parameters.json",
"chars": 69,
"preview": "{\n \"$schema\": \"./build.schema.json\",\n \"Solution\": \"src/NSwag.sln\"\n}"
},
{
"path": "CHANGELOG.md",
"chars": 273,
"preview": "# Changelog\n\n## Release v11.3\n\nSee https://github.com/RicoSuter/NSwag/releases/tag/NSwag-Build-841\n\n## Release v11.0\n\nSe"
},
{
"path": "CONTRIBUTING.md",
"chars": 1766,
"preview": "# Contributor License Agreement\n\nBy contributing your code to NSwag you grant Rico Suter a non-exclusive, irrevocable, w"
},
{
"path": "Directory.Build.props",
"chars": 2678,
"preview": "<Project>\r\n <PropertyGroup>\r\n <VersionPrefix>14.6.3</VersionPrefix>\r\n\r\n <Authors>Rico Suter</Authors>\r\n <Copyr"
},
{
"path": "Directory.Packages.props",
"chars": 3593,
"preview": "<Project>\r\n <PropertyGroup>\r\n <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>\r\n <CentralPac"
},
{
"path": "LICENSE.md",
"chars": 1077,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2021 Rico Suter\n\nPermission is hereby granted, free of charge, to any person obtain"
},
{
"path": "README.md",
"chars": 17193,
"preview": "## NSwag: The Swagger/OpenAPI toolchain for .NET, ASP.NET Core and TypeScript\n\nNSwag | [NJsonSchema](http://njsonschema."
},
{
"path": "assets/NSwagIcon.metrop",
"chars": 1512,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<IconProject Version=\"2.0\" Name=\"NSwagIcon\">\r\n <Icon Name=\"NSwagIcon\" HasChara"
},
{
"path": "azure-pipelines.yml",
"chars": 2850,
"preview": "trigger:\n branches:\n include:\n - master\n - release\n - refs/tags/*\npr:\n- master\n\npool:\n vmImage: 'w"
},
{
"path": "build/Build.CI.GitHubActions.cs",
"chars": 4398,
"preview": "using System;\nusing System.Collections.Generic;\nusing Nuke.Common.CI.GitHubActions;\nusing Nuke.Common.CI.GitHubActions.C"
},
{
"path": "build/Build.Pack.cs",
"chars": 5239,
"preview": "using System;\nusing System.IO.Compression;\nusing System.Linq;\nusing System.Text.RegularExpressions;\nusing Microsoft.Buil"
},
{
"path": "build/Build.Publish.cs",
"chars": 4166,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.IO;\nusing Nuke.Common;\nusing Nuke.Common"
},
{
"path": "build/Build.cs",
"chars": 10844,
"preview": "using System;\nusing System.Linq;\nusing System.Runtime.InteropServices;\nusing System.Xml.Linq;\nusing Microsoft.Build.Eval"
},
{
"path": "build/Configuration.cs",
"chars": 451,
"preview": "using System.ComponentModel;\nusing Nuke.Common.Tooling;\n\n[TypeConverter(typeof(TypeConverter<Configuration>))]\npublic cl"
},
{
"path": "build/Directory.Build.props",
"chars": 436,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "build/Directory.Build.targets",
"chars": 432,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microsof"
},
{
"path": "build/_build.csproj",
"chars": 885,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n\r\n <PropertyGroup>\r\n <OutputType>Exe</OutputType>\r\n <TargetFramework>net10.0</"
},
{
"path": "build.cmd",
"chars": 207,
"preview": ":; set -eo pipefail\n:; SCRIPT_DIR=$(cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd)\n:; ${SCRIPT_DIR}/build.sh \"$@\"\n:; exit"
},
{
"path": "build.ps1",
"chars": 3224,
"preview": "[CmdletBinding()]\nParam(\n [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]\n [string[]]$B"
},
{
"path": "build.sh",
"chars": 2627,
"preview": "#!/usr/bin/env bash\n\nbash --version 2>&1 | head -n 1\n\nset -eo pipefail\nSCRIPT_DIR=$(cd \"$( dirname \"${BASH_SOURCE[0]}\" )"
},
{
"path": "docs/tutorials/GenerateProxyClientWithCLI/generate-proxy-client.md",
"chars": 9704,
"preview": "# A How-To: Generating the Service Client Proxy code\n\n## The Sample Problem\n\nYou've recently joined a large project, wit"
},
{
"path": "global.json",
"chars": 78,
"preview": "{\n \"sdk\": {\n \"version\": \"10.0.100\",\n \"rollForward\": \"latestMinor\"\n }\n}"
},
{
"path": "src/NSwag.Annotations/NSwag.Annotations.csproj",
"chars": 214,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n <PropertyGroup>\r\n <TargetFrameworks>net462;netstandard2.0</TargetFrameworks>\r\n "
},
{
"path": "src/NSwag.Annotations/OpenApiBodyParameterAttribute.cs",
"chars": 1362,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"OpenApiBodyParameterAttri"
},
{
"path": "src/NSwag.Annotations/OpenApiControllerAttribute.cs",
"chars": 1147,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"OpenApiControllerAttribut"
},
{
"path": "src/NSwag.Annotations/OpenApiExtensionDataAttribute.cs",
"chars": 2345,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerTagAttribute.cs\" c"
},
{
"path": "src/NSwag.Annotations/OpenApiFileAttribute.cs",
"chars": 1012,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerFileAttribute.cs\" "
},
{
"path": "src/NSwag.Annotations/OpenApiIgnoreAttribute.cs",
"chars": 1158,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerIgnoreAttribute.cs"
},
{
"path": "src/NSwag.Annotations/OpenApiOperationAttribute.cs",
"chars": 2858,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerOperationAttribute"
},
{
"path": "src/NSwag.Annotations/OpenApiOperationProcessorAttribute.cs",
"chars": 2401,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerOperationProcessor"
},
{
"path": "src/NSwag.Annotations/OpenApiTagAttribute.cs",
"chars": 2106,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerTagAttribute.cs\" c"
},
{
"path": "src/NSwag.Annotations/OpenApiTagsAttribute.cs",
"chars": 1843,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerTagsAttribute.cs\" "
},
{
"path": "src/NSwag.Annotations/ResponseTypeAttribute.cs",
"chars": 3359,
"preview": "//-----------------------------------------------------------------------\r\n// <copyright file=\"ResponseTypeAttribute.cs"
},
{
"path": "src/NSwag.Annotations/SwaggerDefaultResponseAttribute.cs",
"chars": 1130,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerDefaultResponseAttr"
},
{
"path": "src/NSwag.Annotations/SwaggerResponseAttribute.cs",
"chars": 3474,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerResponseAttribute."
},
{
"path": "src/NSwag.Annotations/WillReadBodyAttribute.cs",
"chars": 1145,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"WillReadBodyAttribute.cs\""
},
{
"path": "src/NSwag.ApiDescription.Client/NSwag.ApiDescription.Client.nuspec",
"chars": 1294,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n <me"
},
{
"path": "src/NSwag.ApiDescription.Client/NSwag.ApiDescription.Client.props",
"chars": 16769,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<Project>\r\n <!-- Reset well-known metadata of the code generat"
},
{
"path": "src/NSwag.ApiDescription.Client/NSwag.ApiDescription.Client.targets",
"chars": 20553,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<Project>\n <PropertyGroup>\n <_NSwagCommand>$(NSwagExe)</_NSw"
},
{
"path": "src/NSwag.AspNet.Owin/Middlewares/OpenApiDocumentMiddleware.cs",
"chars": 4946,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerMiddleware.cs\" com"
},
{
"path": "src/NSwag.AspNet.Owin/Middlewares/RedirectToIndexMiddleware.cs",
"chars": 1910,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"RedirectMiddleware.cs\" co"
},
{
"path": "src/NSwag.AspNet.Owin/Middlewares/SwaggerUiIndexMiddleware.cs",
"chars": 1502,
"preview": "using Microsoft.Owin;\nusing NSwag.Generation;\n\nnamespace NSwag.AspNet.Owin.Middlewares\n{\n internal sealed class Swagg"
},
{
"path": "src/NSwag.AspNet.Owin/NSwag.AspNet.Owin.csproj",
"chars": 1469,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n <PropertyGroup>\r\n <TargetFramework>net462</TargetFramework>\r\n <GenerateDocume"
},
{
"path": "src/NSwag.AspNet.Owin/ReDoc/index.html",
"chars": 953,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n <title>{DocumentTitle}</title>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\""
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerExtensions.cs",
"chars": 10707,
"preview": "//-----------------------------------------------------------------------\r\n// <copyright file=\"SwaggerExtensions.cs\" co"
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/index.css",
"chars": 202,
"preview": "html {\n box-sizing: border-box;\n overflow: -moz-scrollbars-vertical;\n overflow-y: scroll;\n}\n\n*,\n*:before,\n*:aft"
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/index.html",
"chars": 1858,
"preview": "<!-- HTML for static distribution bundle build -->\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n "
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/oauth2-redirect.html",
"chars": 2715,
"preview": "<!doctype html>\n<html lang=\"en-US\">\n<head>\n <title>Swagger UI: OAuth2 Redirect</title>\n</head>\n<body>\n<script>\n 'u"
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/swagger-ui-bundle.js",
"chars": 1467204,
"preview": "/*! For license information please see swagger-ui-bundle.js.LICENSE.txt */\n!function webpackUniversalModuleDefinition(s,"
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/swagger-ui-es-bundle-core.js",
"chars": 473374,
"preview": "/*! For license information please see swagger-ui-es-bundle-core.js.LICENSE.txt */\nimport*as e from\"ieee754\";import*as t"
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/swagger-ui-es-bundle.js",
"chars": 1466958,
"preview": "/*! For license information please see swagger-ui-es-bundle.js.LICENSE.txt */\n(()=>{var s={251:(s,o)=>{o.read=function(s"
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/swagger-ui-standalone-preset.js",
"chars": 229017,
"preview": "/*! For license information please see swagger-ui-standalone-preset.js.LICENSE.txt */\n!function webpackUniversalModuleDe"
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/swagger-ui.css",
"chars": 154985,
"preview": ".swagger-ui{color:#3b4151;font-family:sans-serif}.swagger-ui html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-tex"
},
{
"path": "src/NSwag.AspNet.Owin/SwaggerUi/swagger-ui.js",
"chars": 350271,
"preview": "!function webpackUniversalModuleDefinition(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"fu"
},
{
"path": "src/NSwag.AspNet.Owin/app.config",
"chars": 818,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n <runtime>\n <assemblyBinding xmlns=\"urn:schemas-microso"
},
{
"path": "src/NSwag.AspNet.WebApi/JsonExceptionFilterAttribute.cs",
"chars": 5888,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"JsonExceptionFilterAttribu"
},
{
"path": "src/NSwag.AspNet.WebApi/NSwag.AspNet.WebApi.csproj",
"chars": 611,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n <PropertyGroup>\r\n <TargetFramework>net462</TargetFramework>\r\n <GenerateDocume"
},
{
"path": "src/NSwag.AspNetCore/ApiverseUiSettings.cs",
"chars": 1354,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"ApimundoUiSettings.cs\" co"
},
{
"path": "src/NSwag.AspNetCore/Extensions/NSwagApplicationBuilderExtensions.cs",
"chars": 11221,
"preview": "using Microsoft.AspNetCore.Http;\nusing Microsoft.Extensions.DependencyInjection;\nusing Microsoft.Extensions.FileProvide"
},
{
"path": "src/NSwag.AspNetCore/Extensions/NSwagServiceCollectionExtensions.cs",
"chars": 7097,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"NSwagServiceCollectionExt"
},
{
"path": "src/NSwag.AspNetCore/Extensions/NSwagSwaggerGeneratorSettingsExtensions.cs",
"chars": 2600,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"OperationSecurityScopePro"
},
{
"path": "src/NSwag.AspNetCore/HttpRequestExtension.cs",
"chars": 3070,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerUiSettingsBase.cs\""
},
{
"path": "src/NSwag.AspNetCore/IDocumentProvider.cs",
"chars": 816,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"IDocumentProvider.cs\" com"
},
{
"path": "src/NSwag.AspNetCore/JsonExceptionFilterAttribute.cs",
"chars": 6535,
"preview": "//-----------------------------------------------------------------------\r\n// <copyright file=\"JsonExceptionFilterAttri"
},
{
"path": "src/NSwag.AspNetCore/Middlewares/OpenApiDocumentMiddleware.cs",
"chars": 6475,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerMiddleware.cs\" com"
},
{
"path": "src/NSwag.AspNetCore/Middlewares/RedirectToIndexMiddleware.cs",
"chars": 1990,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"RedirectMiddleware.cs\" co"
},
{
"path": "src/NSwag.AspNetCore/Middlewares/SwaggerUiIndexMiddleware.cs",
"chars": 1524,
"preview": "using System.Reflection;\nusing Microsoft.AspNetCore.Http;\n\nnamespace NSwag.AspNetCore.Middlewares\n{\n internal sealed "
},
{
"path": "src/NSwag.AspNetCore/NSwag.AspNetCore.csproj",
"chars": 1449,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n <PropertyGroup>\r\n <TargetFrameworks>net462;netstandard2.0;net8.0;net9.0;net10.0<"
},
{
"path": "src/NSwag.AspNetCore/OAuth2ClientSettings.cs",
"chars": 1789,
"preview": "//-----------------------------------------------------------------------\r\n// <copyright file=\"OAuth2ClientSettings.cs\""
},
{
"path": "src/NSwag.AspNetCore/OpenApiConfigureMvcOptions.cs",
"chars": 765,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerExtensions.cs\" com"
},
{
"path": "src/NSwag.AspNetCore/OpenApiDocumentMiddlewareSettings.cs",
"chars": 2639,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerMiddleware.cs\" com"
},
{
"path": "src/NSwag.AspNetCore/OpenApiDocumentProvider.cs",
"chars": 3639,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"NSwagDocumentProvider.cs\""
},
{
"path": "src/NSwag.AspNetCore/OpenApiDocumentRegistration.cs",
"chars": 1330,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"RegisteredSwaggerDocument"
},
{
"path": "src/NSwag.AspNetCore/OpenApiMvcApplicationModelConvention.cs",
"chars": 318,
"preview": "using Microsoft.AspNetCore.Mvc.ApplicationModels;\n\nnamespace NSwag.AspNetCore\n{\n internal sealed class OpenApiMvcApp"
},
{
"path": "src/NSwag.AspNetCore/ReDoc/index.html",
"chars": 953,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n <title>{DocumentTitle}</title>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\""
},
{
"path": "src/NSwag.AspNetCore/ReDocSettings.cs",
"chars": 1888,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"ReDocSettings.cs\" company"
},
{
"path": "src/NSwag.AspNetCore/SwaggerSettings.cs",
"chars": 2849,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerSettings.cs\" compan"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/index.css",
"chars": 202,
"preview": "html {\n box-sizing: border-box;\n overflow: -moz-scrollbars-vertical;\n overflow-y: scroll;\n}\n\n*,\n*:before,\n*:aft"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/index.html",
"chars": 1858,
"preview": "<!-- HTML for static distribution bundle build -->\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n "
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/oauth2-redirect.html",
"chars": 2715,
"preview": "<!doctype html>\n<html lang=\"en-US\">\n<head>\n <title>Swagger UI: OAuth2 Redirect</title>\n</head>\n<body>\n<script>\n 'u"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/swagger-ui-bundle.js",
"chars": 1467204,
"preview": "/*! For license information please see swagger-ui-bundle.js.LICENSE.txt */\n!function webpackUniversalModuleDefinition(s,"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/swagger-ui-es-bundle-core.js",
"chars": 473374,
"preview": "/*! For license information please see swagger-ui-es-bundle-core.js.LICENSE.txt */\nimport*as e from\"ieee754\";import*as t"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/swagger-ui-es-bundle.js",
"chars": 1466958,
"preview": "/*! For license information please see swagger-ui-es-bundle.js.LICENSE.txt */\n(()=>{var s={251:(s,o)=>{o.read=function(s"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/swagger-ui-standalone-preset.js",
"chars": 229017,
"preview": "/*! For license information please see swagger-ui-standalone-preset.js.LICENSE.txt */\n!function webpackUniversalModuleDe"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/swagger-ui.css",
"chars": 154985,
"preview": ".swagger-ui{color:#3b4151;font-family:sans-serif}.swagger-ui html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-tex"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUi/swagger-ui.js",
"chars": 350271,
"preview": "!function webpackUniversalModuleDefinition(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"fu"
},
{
"path": "src/NSwag.AspNetCore/SwaggerUiSettings.cs",
"chars": 8962,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerUiOwinSettings.cs\""
},
{
"path": "src/NSwag.AspNetCore/SwaggerUiSettingsBase.cs",
"chars": 5084,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerUiSettingsBase.cs\""
},
{
"path": "src/NSwag.AspNetCore/build/NSwag.AspNetCore.props",
"chars": 811,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<Project>\r\n <PropertyGroup>\r\n <!--\r\n Disable document g"
},
{
"path": "src/NSwag.AspNetCore/build/NSwag.AspNetCore.targets",
"chars": 763,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<Project>\n <PropertyGroup Condition=\" '$(OpenApiGenerateDocument"
},
{
"path": "src/NSwag.AspNetCore/buildMultiTargeting/NSwag.AspNetCore.props",
"chars": 137,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<Project>\r\n <Import Project=\"../build/NSwag.AspNetCore.props\""
},
{
"path": "src/NSwag.AspNetCore/buildMultiTargeting/NSwag.AspNetCore.targets",
"chars": 135,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n<Project>\n <Import Project=\"../build/NSwag.AspNetCore.targets\""
},
{
"path": "src/NSwag.AspNetCore.Launcher/NSwag.AspNetCore.Launcher.csproj",
"chars": 429,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n <PropertyGroup>\r\n <TargetFrameworks>net8.0;net462</TargetFrameworks>\r\n <Platf"
},
{
"path": "src/NSwag.AspNetCore.Launcher/Program.cs",
"chars": 9313,
"preview": "using System.Reflection;\n\nnamespace NSwag.AspNetCore.Launcher\n{\n internal sealed class Program\n {\n // Used"
},
{
"path": "src/NSwag.AspNetCore.Launcher.x86/NSwag.AspNetCore.Launcher.x86.csproj",
"chars": 342,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n <PropertyGroup>\r\n <TargetFramework>net462</TargetFramework>\r\n <PlatformTarge"
},
{
"path": "src/NSwag.CodeGeneration/ClientGeneratorBase.cs",
"chars": 9713,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"ClientGeneratorBase.cs\" co"
},
{
"path": "src/NSwag.CodeGeneration/ClientGeneratorBaseSettings.cs",
"chars": 5030,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"ClientGeneratorBaseSetting"
},
{
"path": "src/NSwag.CodeGeneration/ClientGeneratorOutputType.cs",
"chars": 801,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"ClientGeneratorBase.cs\" co"
},
{
"path": "src/NSwag.CodeGeneration/ControllerGeneratorBaseSettings.cs",
"chars": 964,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"ControllerGeneratorBaseSet"
},
{
"path": "src/NSwag.CodeGeneration/DefaultParameterNameGenerator.cs",
"chars": 2638,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"DefaultParameterNameGenera"
},
{
"path": "src/NSwag.CodeGeneration/DefaultTemplateFactory.cs",
"chars": 2611,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"DefaultTemplateFactory.cs"
},
{
"path": "src/NSwag.CodeGeneration/IClientGenerator.cs",
"chars": 1114,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"IClientGenerator.cs\" compa"
},
{
"path": "src/NSwag.CodeGeneration/IParameterNameGenerator.cs",
"chars": 927,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"IParameterNameGenerator.cs"
},
{
"path": "src/NSwag.CodeGeneration/JsonSchemaExtensions.cs",
"chars": 1978,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"ClientGeneratorBase.cs\" co"
},
{
"path": "src/NSwag.CodeGeneration/Models/IOperationModel.cs",
"chars": 762,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"IOperationModel.cs\" compan"
},
{
"path": "src/NSwag.CodeGeneration/Models/OperationModelBase.cs",
"chars": 19842,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"OperationModel.cs\" company"
},
{
"path": "src/NSwag.CodeGeneration/Models/ParameterModelBase.cs",
"chars": 11325,
"preview": "//-----------------------------------------------------------------------\r\n// <copyright file=\"ParameterModelBase.cs\" co"
},
{
"path": "src/NSwag.CodeGeneration/Models/PropertyModel.cs",
"chars": 1276,
"preview": "using NJsonSchema;\n\nnamespace NSwag.CodeGeneration.Models\n{\n /// <summary>\n /// A model representing the property"
},
{
"path": "src/NSwag.CodeGeneration/Models/ResponseModelBase.cs",
"chars": 6982,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"ResponseModelBase.cs\" comp"
},
{
"path": "src/NSwag.CodeGeneration/NSwag.CodeGeneration.csproj",
"chars": 421,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n <PropertyGroup>\r\n <TargetFrameworks>netstandard2.0;net462;net8.0</TargetFramewor"
},
{
"path": "src/NSwag.CodeGeneration/OperationNameGenerators/IOperationNameGenerator.cs",
"chars": 1758,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"IOperationNameGenerator.cs"
},
{
"path": "src/NSwag.CodeGeneration/OperationNameGenerators/MultipleClientsFromFirstTagAndOperationIdGenerator.cs",
"chars": 2219,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"MultipleClientsFromFirstTa"
},
{
"path": "src/NSwag.CodeGeneration/OperationNameGenerators/MultipleClientsFromFirstTagAndOperationNameGenerator.cs",
"chars": 1469,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"MultipleClientsFromFirstTa"
},
{
"path": "src/NSwag.CodeGeneration/OperationNameGenerators/MultipleClientsFromFirstTagAndPathSegmentsOperationNameGenerator.cs",
"chars": 3348,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"MultipleClientsFromFirstTa"
},
{
"path": "src/NSwag.CodeGeneration/OperationNameGenerators/MultipleClientsFromOperationIdOperationNameGenerator.cs",
"chars": 4698,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"MultipleClientsFromOperati"
},
{
"path": "src/NSwag.CodeGeneration/OperationNameGenerators/MultipleClientsFromPathSegmentsOperationNameGenerator.cs",
"chars": 3973,
"preview": "//-----------------------------------------------------------------------\r\n// <copyright file=\"MultipleClientsFromPathSe"
},
{
"path": "src/NSwag.CodeGeneration/OperationNameGenerators/SingleClientFromOperationIdOperationNameGenerator.cs",
"chars": 2011,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SingleClientFromOperationI"
},
{
"path": "src/NSwag.CodeGeneration/OperationNameGenerators/SingleClientFromPathSegmentsOperationNameGenerator.cs",
"chars": 3892,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"MultipleClientsFromPathSeg"
},
{
"path": "src/NSwag.CodeGeneration/app.config",
"chars": 418,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n <runtime>\n <assemblyBinding xmlns=\"urn:schemas-microsoft-co"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/CSharpClientGenerator.cs",
"chars": 4516,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerToCSharpClientGene"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/CSharpClientGeneratorSettings.cs",
"chars": 7112,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerToCSharpClientGener"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/CSharpControllerGenerator.cs",
"chars": 5105,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerToCSharpController"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/CSharpControllerGeneratorSettings.cs",
"chars": 3282,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerToCSharpControllerG"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/CSharpGeneratorBase.cs",
"chars": 5075,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerToCSharpGeneratorB"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/CSharpGeneratorBaseSettings.cs",
"chars": 3094,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"SwaggerToCSharpGeneratorSe"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpClientTemplateModel.cs",
"chars": 11432,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpClientTemplateModel."
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpControllerOperationModel.cs",
"chars": 2199,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpControllerOperation"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpControllerRouteNamingStrategy.cs",
"chars": 789,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpControllerRouteNami"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpControllerStyle.cs",
"chars": 729,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpControllerStyle.cs\" "
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpControllerTarget.cs",
"chars": 703,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpControllerTarget.cs"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpControllerTemplateModel.cs",
"chars": 5115,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpControllerTemplateMo"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpExceptionDescriptionModel.cs",
"chars": 2066,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpOperationModel.cs\" c"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpFileTemplateModel.cs",
"chars": 9081,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpFileTemplateModel.cs"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpOperationModel.cs",
"chars": 14728,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpOperationModel.cs\" "
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpParameterModel.cs",
"chars": 3068,
"preview": "//-----------------------------------------------------------------------\r\n// <copyright file=\"CSharpParameterModel.cs\""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpResponseModel.cs",
"chars": 1845,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpResponseModel.cs\" co"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Models/CSharpTemplateModelBase.cs",
"chars": 2306,
"preview": "//-----------------------------------------------------------------------\n// <copyright file=\"CSharpTemplateModelBase.c"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/NSwag.CodeGeneration.CSharp.csproj",
"chars": 534,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\r\n <PropertyGroup>\r\n <TargetFrameworks>netstandard2.0;net462;net8.0</TargetFramewor"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.Annotations.liquid",
"chars": 0,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.BeforeSend.liquid",
"chars": 1,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.Body.liquid",
"chars": 1,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.Constructor.liquid",
"chars": 0,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.ConvertToString.liquid",
"chars": 2072,
"preview": "{% if GenerateNullableReferenceTypes -%}\nprivate string ConvertToString(object? value, System.Globalizatio"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.HeaderParameter.liquid",
"chars": 600,
"preview": "{% if parameter.IsStringArray -%}\nrequest_.Headers.TryAddWithoutValidation(\"{{ parameter.Name }}\", {{ parameter.Variable"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.PathParameter.liquid",
"chars": 1633,
"preview": "{% if parameter.IsDateTimeArray -%}\n{\n bool isAfterFirst = false;\n foreach (var item in {{ parameter.VariableName "
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.ProcessResponse.liquid",
"chars": 4124,
"preview": "{% if response.HasType -%}\n{% if response.IsFile -%}\n{% if response.IsSuccess -%}\nvar responseStream_ = resp"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.QueryParameter.liquid",
"chars": 5024,
"preview": "{% if parameter.IsDateTimeArray -%}\nforeach (var item_ in {{ parameter.VariableName }}) { urlBuilder_.Append(System.Uri."
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.ReadObjectResponse.liquid",
"chars": 3222,
"preview": "public bool ReadResponseAsString { get; set; }\n\nprotected virtual async System.Threading.Tasks.Task<ObjectResponseResul"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Class.liquid",
"chars": 28323,
"preview": "{% template Client.Class.Annotations %}\n[System.CodeDom.Compiler.GeneratedCode(\"NSwag\", \"{{ ToolchainVersion }}\")]\n{{ Cl"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Interface.Annotations.liquid",
"chars": 0,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Interface.Body.liquid",
"chars": 1,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Interface.liquid",
"chars": 1906,
"preview": "{% template Client.Interface.Annotations %}\n[System.CodeDom.Compiler.GeneratedCode(\"NSwag\", \"{{ ToolchainVersion }}\")]\n{"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Method.Annotations.liquid",
"chars": 0,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Client.Method.Documentation.liquid",
"chars": 878,
"preview": "{% if operation.HasSummary -%}\n/// <summary>\n/// {{ operation.Summary | csharpdocs }}\n/// </summary>\n{% endif -%}\n{% if "
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Controller.AspNet.FromHeaderAttribute.liquid",
"chars": 356,
"preview": "public class FromHeaderAttribute : System.Web.Http.ParameterBindingAttribute\n{\n public string Name { get; set; }\n\n "
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Controller.AspNet.FromHeaderBinding.liquid",
"chars": 1677,
"preview": "public class FromHeaderBinding : System.Web.Http.Controllers.HttpParameterBinding\n{\n private readonly string _name;\n"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Controller.Class.Annotations.liquid",
"chars": 1,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Controller.Method.Annotations.liquid",
"chars": 1,
"preview": ""
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/Controller.liquid",
"chars": 9399,
"preview": "{% if GeneratePartialControllers -%}\n[System.CodeDom.Compiler.GeneratedCode(\"NSwag\", \"{{ ToolchainVersion }}\")]\npublic "
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/File.Footer.liquid",
"chars": 434,
"preview": "#pragma warning restore 108\n#pragma warning restore 114\n#pragma warning restore 472\n#pragma warning restore 612\n#pra"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/File.Header.liquid",
"chars": 1918,
"preview": "#pragma warning disable 108 // Disable \"CS0108 '{derivedDto}.ToJson()' hides inherited member '{dtoBase}.ToJson()'. Use "
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/File.liquid",
"chars": 7866,
"preview": "//----------------------\n// <auto-generated>\n// Generated using the NSwag toolchain v{{ ToolchainVersion }} (http:/"
},
{
"path": "src/NSwag.CodeGeneration.CSharp/Templates/JsonExceptionConverter.liquid",
"chars": 8844,
"preview": "[System.CodeDom.Compiler.GeneratedCode(\"NSwag\", \"{{ ToolchainVersion }}\")]\ninternal class JsonExceptionConverter : Newt"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/AllowNullableBodyParametersTests.cs",
"chars": 3453,
"preview": "using Microsoft.AspNetCore.Mvc;\nusing NJsonSchema.NewtonsoftJson.Generation;\nusing NSwag.CodeGeneration.OperationNameGen"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/ArrayParameterTests.cs",
"chars": 14521,
"preview": "using NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests\n{\n public class ArrayParameterTests\n "
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/BinaryTests.cs",
"chars": 14594,
"preview": "using NSwag.CodeGeneration.CSharp.Models;\nusing NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Test"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/CSharpClientSettingsTests.cs",
"chars": 16161,
"preview": "using Microsoft.AspNetCore.Mvc;\r\nusing NJsonSchema.NewtonsoftJson.Generation;\r\nusing NSwag.CodeGeneration.Tests;\r\nusing "
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/CSharpCompiler.cs",
"chars": 2306,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CSharp;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests;\n\npublic"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/ClientGenerationTests.cs",
"chars": 1364,
"preview": "using NJsonSchema;\nusing NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests;\n\npublic class Client"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/CodeGenerationTests.cs",
"chars": 19544,
"preview": "using System.ComponentModel.DataAnnotations;\nusing NJsonSchema;\nusing NJsonSchema.Generation;\nusing NJsonSchema.Newtons"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/ControllerGenerationFormatTests.cs",
"chars": 18220,
"preview": "using System.Text.RegularExpressions;\nusing NJsonSchema;\nusing NJsonSchema.NewtonsoftJson.Generation;\nusing NSwag.CodeG"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/Controllers/ControllerGenerationBasePathTests.cs",
"chars": 3052,
"preview": "using NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests\n{\n public class ControllerGenerationB"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/Controllers/ControllerGenerationDefaultParameterTests.cs",
"chars": 4123,
"preview": "using System.Text.RegularExpressions;\nusing NJsonSchema;\nusing NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGenerat"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/Controllers/Snapshots/ControllerGenerationBasePathTests.When_custom_BasePath_is_not_specified_then_the_BasePath_from_document_is_used_as_Route.verified.txt",
"chars": 983,
"preview": "\n\nnamespace MyNamespace\n{\n using System = global::System;\n\n public interface IController\n {\n\n\n\n\n\n\n Syst"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/Controllers/Snapshots/ControllerGenerationBasePathTests.When_custom_BasePath_is_specified_then_that_is_used_as_Route.verified.txt",
"chars": 965,
"preview": "\n\nnamespace MyNamespace\n{\n using System = global::System;\n\n public interface IController\n {\n\n\n\n\n\n\n Syst"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/Controllers/Snapshots/ControllerGenerationDefaultParameterTests.When_parameter_has_default_then_set_in_partial_controller.verified.txt",
"chars": 1276,
"preview": "\n\nnamespace MyNamespace\n{\n using System = global::System;\n\n public interface IController\n {\n\n\n\n\n\n\n\n Sys"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/FileDownloadTests.cs",
"chars": 2626,
"preview": "using Microsoft.AspNetCore.Mvc;\r\nusing NJsonSchema.NewtonsoftJson.Generation;\r\nusing NSwag.CodeGeneration.Tests;\r\nusing"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/FileTests.cs",
"chars": 1293,
"preview": "using Microsoft.AspNetCore.Mvc;\nusing NJsonSchema.NewtonsoftJson.Generation;\nusing NSwag.CodeGeneration.Tests;\nusing NS"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/FileUploadTests.cs",
"chars": 1939,
"preview": "using NJsonSchema;\nusing NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests\n{\n public class Fi"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/FormParameterTests.cs",
"chars": 5618,
"preview": "using Microsoft.AspNetCore.Mvc;\r\nusing NJsonSchema;\r\nusing NJsonSchema.NewtonsoftJson.Generation;\r\nusing NSwag.CodeGene"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/HeadRequestTests.cs",
"chars": 1131,
"preview": "using Microsoft.AspNetCore.Mvc;\nusing NJsonSchema.NewtonsoftJson.Generation;\nusing NSwag.CodeGeneration.Tests;\nusing NS"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/InheritanceTests.cs",
"chars": 1393,
"preview": "using NSwag.CodeGeneration.CSharp;\nusing NSwag.CodeGeneration.CSharp.Tests;\nusing NSwag.CodeGeneration.Tests;\n\nnamespac"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/NSwag.CodeGeneration.CSharp.Tests.csproj",
"chars": 1269,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk.Web\">\r\n <PropertyGroup>\r\n <TargetFramework>net8.0</TargetFramework>\r\n <NoDefaultL"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/ObjectParameterTests.cs",
"chars": 2721,
"preview": "using NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests\n{\n public class ObjectParameterTests\n "
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/OptionalParameterTests.cs",
"chars": 8387,
"preview": "using Microsoft.AspNetCore.Mvc;\r\nusing NJsonSchema;\r\nusing NJsonSchema.NewtonsoftJson.Generation;\r\nusing NSwag.CodeGene"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/ParameterTests.cs",
"chars": 15388,
"preview": "using NJsonSchema;\r\nusing NSwag.CodeGeneration.Tests;\r\n\r\nnamespace NSwag.CodeGeneration.CSharp.Tests\r\n{\r\n public cla"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/PlainResponseTests.cs",
"chars": 5291,
"preview": "using NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests\n{\n public class PlainResponseTests\n "
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/PlainTextBodyTests.cs",
"chars": 2080,
"preview": "using NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests\n{\n public class PlainTextBodyTests\n "
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/QueryParameterTests.cs",
"chars": 6984,
"preview": "using NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests\n{\n public class QueryParameterTests\n "
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/RequiredParameterTests.cs",
"chars": 4145,
"preview": "using System.ComponentModel.DataAnnotations;\nusing Microsoft.AspNetCore.Mvc;\nusing NJsonSchema.Generation;\nusing NJsonS"
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/ResponseTests.cs",
"chars": 13349,
"preview": "using NSwag.CodeGeneration.Tests;\n\nnamespace NSwag.CodeGeneration.CSharp.Tests\n{\n public class ResponseTests\n {\n "
},
{
"path": "src/NSwag.CodeGeneration.CSharp.Tests/Snapshots/AllowNullableBodyParametersTests.TestNoGuardForOptionalBodyParameter.verified.txt",
"chars": 12950,
"preview": "\n\nnamespace MyNamespace\n{\n using System = global::System;\n\n public partial interface IClient\n {\n System"
}
]
// ... and 690 more files (download for full content)
About this extraction
This page contains the full source code of the RicoSuter/NSwag GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 890 files (52.1 MB), approximately 13.7M tokens, and a symbol index with 17656 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.