diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index 801eb09923f2..a3cce2ea12ed 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -622,17 +622,18 @@ stages: timeoutInMinutes: 240 steps: # Build the shared framework - - script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log + - script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log $(_InternalRuntimeDownloadArgs) displayName: Build shared fx - - script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj + - script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj $(_InternalRuntimeDownloadArgs) displayName: Restore interop projects - script: ./build.cmd -ci -nobl -noBuildRepoTasks -noRestore -test -all -noBuildNative -projects eng\helix\helix.proj - /p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true /p:RunTemplateTests=true + /p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true /p:RunTemplateTests=true $(_InternalRuntimeDownloadArgs) /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log displayName: Run build.cmd helix target env: HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops + artifacts: - name: Helix_logs path: artifacts/log/ @@ -666,7 +667,7 @@ stages: arguments: $(Build.SourcesDirectory)/NuGet.config $Token env: Token: $(dn-bot-dnceng-artifact-feeds-rw) - - script: ./eng/scripts/ci-source-build.sh --ci --nobl --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false + - script: ./eng/scripts/ci-source-build.sh --ci --nobl --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false $(_InternalRuntimeDownloadArgs) displayName: Run ci-source-build.sh - task: PublishBuildArtifacts@1 displayName: Upload logs diff --git a/.azure/pipelines/helix-matrix.yml b/.azure/pipelines/helix-matrix.yml index 5210cce65c4b..6e491364008b 100644 --- a/.azure/pipelines/helix-matrix.yml +++ b/.azure/pipelines/helix-matrix.yml @@ -50,10 +50,10 @@ jobs: agentOs: Linux timeoutInMinutes: 480 steps: - - script: ./restore.sh -ci -nobl + - script: ./restore.sh --ci --nobl --arch arm64 displayName: Restore - - script: ./build.sh --ci --nobl --noBuildRepoTasks --arch arm64 -test --no-build-nodejs --all --projects - $(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true + - script: ./build.sh --ci --nobl --arch arm64 --noBuildRepoTasks --no-build-nodejs --no-restore --test --all + --projects $(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log displayName: Run build.sh helix arm64 target env: diff --git a/.azure/pipelines/quarantined-tests.yml b/.azure/pipelines/quarantined-tests.yml index dec9d844d24d..86a21a3dd8b9 100644 --- a/.azure/pipelines/quarantined-tests.yml +++ b/.azure/pipelines/quarantined-tests.yml @@ -53,11 +53,11 @@ jobs: agentOs: Linux timeoutInMinutes: 480 steps: - - script: ./restore.sh -ci -nobl + - script: ./restore.sh --ci --nobl --arch arm64 displayName: Restore - - script: ./build.sh --ci --nobl --noBuildRepoTasks --arch arm64 -test --no-build-nodejs --all --projects - $(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true /p:RunQuarantinedTests=true - /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log + - script: ./build.sh --ci --nobl --arch arm64 --noBuildRepoTasks --no-build-nodejs --no-restore --test --all + --projects $(Build.SourcesDirectory)/eng/helix/helix.proj /p:IsHelixJob=true /p:IsHelixDaily=true + /p:RunQuarantinedTests=true /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log displayName: Run build.sh helix arm64 target continueOnError: true env: diff --git a/AspNetCore.sln b/AspNetCore.sln index 55931107f86a..c334ef68d95b 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -1487,12 +1487,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Diagno EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.JSInterop.Tests", "src\JSInterop\Microsoft.JSInterop\test\Microsoft.JSInterop.Tests.csproj", "{DAAB6B35-CBD2-4573-B633-CDD42F583A0E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProtectedBrowserStorage", "ProtectedBrowserStorage", "{1B06FD32-3A1D-46A4-B2AF-99159FAD8127}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.ProtectedBrowserStorage", "src\Components\ProtectedBrowserStorage\src\Microsoft.AspNetCore.Components.ProtectedBrowserStorage.csproj", "{9059AC97-7547-4CC1-A076-680CBCCC1F33}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests", "src\Components\ProtectedBrowserStorage\test\Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests.csproj", "{943FD3EC-D330-4277-B3F3-3DFABB57D3B5}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Configuration.KeyPerFile", "src\Configuration.KeyPerFile\src\Microsoft.Extensions.Configuration.KeyPerFile.csproj", "{498A4F54-F11A-46C5-A58D-09DE56C6A034}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration.KeyPerFile", "Configuration.KeyPerFile", "{AEB1933E-9369-4305-B20E-F186F888158F}" @@ -1507,6 +1501,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FilePr EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.FileProviders.Embedded.Tests", "src\FileProviders\Embedded\test\Microsoft.Extensions.FileProviders.Embedded.Tests.csproj", "{B06ADD57-E855-4D8C-85DC-B323509AE540}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.App.Ref", "src\Framework\App.Ref\src\Microsoft.AspNetCore.App.Ref.csproj", "{BAD47859-95DF-4C8F-9AF7-C48B68F478A1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.App.UnitTests", "src\Framework\test\Microsoft.AspNetCore.App.UnitTests.csproj", "{010A9638-F20E-4FE6-A186-85732BFC9CB0}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Localization", "Localization", "{3D34C81F-2CB5-459E-87E9-0CC04757A2A0}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Localization.Abstractions", "src\Localization\Abstractions\src\Microsoft.Extensions.Localization.Abstractions.csproj", "{FEF97646-9BC9-4D1B-A939-784D915C18A4}" @@ -7123,30 +7121,6 @@ Global {DAAB6B35-CBD2-4573-B633-CDD42F583A0E}.Release|x64.Build.0 = Release|Any CPU {DAAB6B35-CBD2-4573-B633-CDD42F583A0E}.Release|x86.ActiveCfg = Release|Any CPU {DAAB6B35-CBD2-4573-B633-CDD42F583A0E}.Release|x86.Build.0 = Release|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Debug|x64.ActiveCfg = Debug|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Debug|x64.Build.0 = Debug|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Debug|x86.ActiveCfg = Debug|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Debug|x86.Build.0 = Debug|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Release|Any CPU.Build.0 = Release|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Release|x64.ActiveCfg = Release|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Release|x64.Build.0 = Release|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Release|x86.ActiveCfg = Release|Any CPU - {9059AC97-7547-4CC1-A076-680CBCCC1F33}.Release|x86.Build.0 = Release|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Debug|x64.ActiveCfg = Debug|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Debug|x64.Build.0 = Debug|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Debug|x86.ActiveCfg = Debug|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Debug|x86.Build.0 = Debug|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Release|Any CPU.Build.0 = Release|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Release|x64.ActiveCfg = Release|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Release|x64.Build.0 = Release|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Release|x86.ActiveCfg = Release|Any CPU - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5}.Release|x86.Build.0 = Release|Any CPU {498A4F54-F11A-46C5-A58D-09DE56C6A034}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {498A4F54-F11A-46C5-A58D-09DE56C6A034}.Debug|Any CPU.Build.0 = Debug|Any CPU {498A4F54-F11A-46C5-A58D-09DE56C6A034}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -7207,6 +7181,30 @@ Global {B06ADD57-E855-4D8C-85DC-B323509AE540}.Release|x64.Build.0 = Release|Any CPU {B06ADD57-E855-4D8C-85DC-B323509AE540}.Release|x86.ActiveCfg = Release|Any CPU {B06ADD57-E855-4D8C-85DC-B323509AE540}.Release|x86.Build.0 = Release|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Debug|x64.ActiveCfg = Debug|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Debug|x64.Build.0 = Debug|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Debug|x86.ActiveCfg = Debug|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Debug|x86.Build.0 = Debug|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|Any CPU.Build.0 = Release|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|x64.ActiveCfg = Release|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|x64.Build.0 = Release|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|x86.ActiveCfg = Release|Any CPU + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1}.Release|x86.Build.0 = Release|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|x64.ActiveCfg = Debug|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|x64.Build.0 = Debug|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|x86.ActiveCfg = Debug|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Debug|x86.Build.0 = Debug|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|Any CPU.Build.0 = Release|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|x64.ActiveCfg = Release|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|x64.Build.0 = Release|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|x86.ActiveCfg = Release|Any CPU + {010A9638-F20E-4FE6-A186-85732BFC9CB0}.Release|x86.Build.0 = Release|Any CPU {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|Any CPU.Build.0 = Debug|Any CPU {FEF97646-9BC9-4D1B-A939-784D915C18A4}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -8024,9 +8022,6 @@ Global {55CACC1F-FE96-47C8-8073-91F4CAA55C75} = {2A91479A-4ABE-4BB7-9A5E-CA3B9CCFC69E} {7509AA1E-3093-4BEE-984F-E11579E98A11} = {7CB09412-C9B0-47E8-A8C3-311AA4CFDE04} {DAAB6B35-CBD2-4573-B633-CDD42F583A0E} = {16898702-3E33-41C1-B8D8-4CE3F1D46BD9} - {1B06FD32-3A1D-46A4-B2AF-99159FAD8127} = {60D51C98-2CC0-40DF-B338-44154EFEE2FF} - {9059AC97-7547-4CC1-A076-680CBCCC1F33} = {1B06FD32-3A1D-46A4-B2AF-99159FAD8127} - {943FD3EC-D330-4277-B3F3-3DFABB57D3B5} = {1B06FD32-3A1D-46A4-B2AF-99159FAD8127} {498A4F54-F11A-46C5-A58D-09DE56C6A034} = {AEB1933E-9369-4305-B20E-F186F888158F} {AEB1933E-9369-4305-B20E-F186F888158F} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} {B9D37BCF-80D1-489D-9FC6-55191FDBB033} = {AEB1933E-9369-4305-B20E-F186F888158F} @@ -8034,6 +8029,8 @@ Global {37329855-01B8-4B03-9765-1A941B06E43C} = {8C15FD04-7F90-43FC-B488-023432FE3CE1} {D3246226-BC1A-47F1-8E3E-C3380A8F13FB} = {8C15FD04-7F90-43FC-B488-023432FE3CE1} {B06ADD57-E855-4D8C-85DC-B323509AE540} = {898F7E0B-1671-42CB-9DFB-689AFF212ED3} + {BAD47859-95DF-4C8F-9AF7-C48B68F478A1} = {A4C26078-B6D8-4FD8-87A6-7C15A3482038} + {010A9638-F20E-4FE6-A186-85732BFC9CB0} = {A4C26078-B6D8-4FD8-87A6-7C15A3482038} {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} = {017429CC-C5FB-48B4-9C46-034E29EE2F06} {FEF97646-9BC9-4D1B-A939-784D915C18A4} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} {839CE175-E0D9-43B9-9FA8-F32C47E7F56B} = {3D34C81F-2CB5-459E-87E9-0CC04757A2A0} diff --git a/Directory.Build.props b/Directory.Build.props index 9fef8a526ee0..224d84c78184 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -217,6 +217,7 @@ + diff --git a/Directory.Build.targets b/Directory.Build.targets index a91198a327ce..98d6f37df1b7 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -186,6 +186,7 @@ + diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props index 0e0a9a7c7976..43a998225972 100644 --- a/eng/ProjectReferences.props +++ b/eng/ProjectReferences.props @@ -140,7 +140,6 @@ - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 46d4c9406fe4..f4b54d0ce126 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -317,17 +317,17 @@ https://github.com/dotnet/runtime e6b9b48f3466c25e17509137e3931229f406b425 - + https://github.com/dotnet/arcade - 4be47e467013f8a07a1ed7b6e49e39c8150bde54 + fd104228e5b97494a4ab0896a979b69928257ef9 - + https://github.com/dotnet/arcade - 4be47e467013f8a07a1ed7b6e49e39c8150bde54 + fd104228e5b97494a4ab0896a979b69928257ef9 - + https://github.com/dotnet/arcade - 4be47e467013f8a07a1ed7b6e49e39c8150bde54 + fd104228e5b97494a4ab0896a979b69928257ef9 https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 0261b4b23076..17e2829eb3d8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -144,7 +144,7 @@ 6.0.0-alpha.1.20426.2 6.0.0-alpha.1.20426.2 - 5.0.0-beta.20431.1 + 5.0.0-beta.20452.19 $(NoWarn);RS0041 - - - - - - - + + + + + + + eng\common\%(Filename)%(Extension) + PreserveNewest + PreserveNewest + + + eng\common\dotnet-install-scripts\%(Filename)%(Extension) + PreserveNewest + PreserveNewest + + $(GradleOptions) -Dorg.gradle.daemon=false + false + + \ No newline at end of file diff --git a/eng/targets/Java.Common.targets b/eng/targets/Java.Common.targets new file mode 100644 index 000000000000..c8905b10c4b6 --- /dev/null +++ b/eng/targets/Java.Common.targets @@ -0,0 +1,77 @@ + + + + $(ArtifactsDir)\obj\ + $([MSBuild]::NormalizeDirectory('$(BaseIntermediateOutputPath)'))$(Configuration)\ + + PrepareForBuild; + ResolveProjectReferences; + _Build; + + ../gradlew $(GradleOptions) compileJava + $(GradleOptions) -PpackageVersion="$(PackageVersion)" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Build; + $(PackDependsOn); + + + + + + + + + + + + + + + + diff --git a/global.json b/global.json index acb77596ab43..a1861e99f332 100644 --- a/global.json +++ b/global.json @@ -30,7 +30,7 @@ }, "msbuild-sdks": { "Yarn.MSBuild": "1.15.2", - "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.20431.1", - "Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.20431.1" + "Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.20452.19", + "Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.20452.19" } } diff --git a/src/Components/Components.slnf b/src/Components/Components.slnf index bfb10dcc6f7f..87f23a36bd84 100644 --- a/src/Components/Components.slnf +++ b/src/Components/Components.slnf @@ -111,9 +111,7 @@ "src\\Components\\WebAssembly\\Sdk\\src\\Microsoft.NET.Sdk.BlazorWebAssembly.csproj", "src\\Components\\WebAssembly\\Sdk\\test\\Microsoft.NET.Sdk.BlazorWebAssembly.Tests.csproj", "src\\Components\\WebAssembly\\Sdk\\integrationtests\\Microsoft.NET.Sdk.BlazorWebAssembly.IntegrationTests.csproj", - "src\\JSInterop\\Microsoft.JSInterop\\src\\Microsoft.JSInterop.csproj", - "src\\Components\\ProtectedBrowserStorage\\src\\Microsoft.AspNetCore.Components.ProtectedBrowserStorage.csproj", - "src\\Components\\ProtectedBrowserStorage\\test\\Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests.csproj" + "src\\JSInterop\\Microsoft.JSInterop\\src\\Microsoft.JSInterop.csproj" ] } } diff --git a/src/Components/Components/src/BindConverter.cs b/src/Components/Components/src/BindConverter.cs index 57a6cacd213a..223681ad0de9 100644 --- a/src/Components/Components/src/BindConverter.cs +++ b/src/Components/Components/src/BindConverter.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Concurrent; using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Reflection; @@ -35,6 +36,7 @@ public static class BindConverter /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(string? value, CultureInfo? culture = null) => FormatStringValueCore(value, culture); private static string? FormatStringValueCore(string? value, CultureInfo? culture) @@ -50,6 +52,7 @@ public static class BindConverter /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static bool FormatValue(bool value, CultureInfo? culture = null) { // Formatting for bool is special-cased. We need to produce a boolean value for conditional attributes @@ -73,6 +76,7 @@ private static object FormatBoolValueCore(bool value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static bool? FormatValue(bool? value, CultureInfo? culture = null) { // Formatting for bool is special-cased. We need to produce a boolean value for conditional attributes @@ -96,6 +100,7 @@ private static object FormatBoolValueCore(bool value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(int value, CultureInfo? culture = null) => FormatIntValueCore(value, culture); private static string? FormatIntValueCore(int value, CultureInfo? culture) @@ -111,6 +116,7 @@ private static object FormatBoolValueCore(bool value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(int? value, CultureInfo? culture = null) => FormatNullableIntValueCore(value, culture); private static string? FormatNullableIntValueCore(int? value, CultureInfo? culture) @@ -131,6 +137,7 @@ private static object FormatBoolValueCore(bool value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string FormatValue(long value, CultureInfo? culture = null) => FormatLongValueCore(value, culture); private static string FormatLongValueCore(long value, CultureInfo? culture) @@ -146,6 +153,7 @@ private static string FormatLongValueCore(long value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(long? value, CultureInfo? culture = null) => FormatNullableLongValueCore(value, culture); private static string? FormatNullableLongValueCore(long? value, CultureInfo? culture) @@ -166,6 +174,7 @@ private static string FormatLongValueCore(long value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string FormatValue(short value, CultureInfo? culture = null) => FormatShortValueCore(value, culture); private static string FormatShortValueCore(short value, CultureInfo? culture) @@ -181,6 +190,7 @@ private static string FormatShortValueCore(short value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(short? value, CultureInfo? culture = null) => FormatNullableShortValueCore(value, culture); private static string? FormatNullableShortValueCore(short? value, CultureInfo? culture) @@ -201,6 +211,7 @@ private static string FormatShortValueCore(short value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string FormatValue(float value, CultureInfo? culture = null) => FormatFloatValueCore(value, culture); private static string FormatFloatValueCore(float value, CultureInfo? culture) @@ -216,6 +227,7 @@ private static string FormatFloatValueCore(float value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(float? value, CultureInfo? culture = null) => FormatNullableFloatValueCore(value, culture); private static string? FormatNullableFloatValueCore(float? value, CultureInfo? culture) @@ -236,6 +248,7 @@ private static string FormatFloatValueCore(float value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(double value, CultureInfo? culture = null) => FormatDoubleValueCore(value, culture); private static string FormatDoubleValueCore(double value, CultureInfo? culture) @@ -251,6 +264,7 @@ private static string FormatDoubleValueCore(double value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(double? value, CultureInfo? culture = null) => FormatNullableDoubleValueCore(value, culture); private static string? FormatNullableDoubleValueCore(double? value, CultureInfo? culture) @@ -271,6 +285,7 @@ private static string FormatDoubleValueCore(double value, CultureInfo? culture) /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string FormatValue(decimal value, CultureInfo? culture = null) => FormatDecimalValueCore(value, culture); private static string FormatDecimalValueCore(decimal value, CultureInfo? culture) @@ -286,6 +301,7 @@ private static string FormatDecimalValueCore(decimal value, CultureInfo? culture /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(decimal? value, CultureInfo? culture = null) => FormatNullableDecimalValueCore(value, culture); private static string? FormatNullableDecimalValueCore(decimal? value, CultureInfo? culture) @@ -306,6 +322,7 @@ private static string FormatDecimalValueCore(decimal value, CultureInfo? culture /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string FormatValue(DateTime value, CultureInfo? culture = null) => FormatDateTimeValueCore(value, format: null, culture); /// @@ -317,6 +334,7 @@ private static string FormatDecimalValueCore(decimal value, CultureInfo? culture /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string FormatValue(DateTime value, string format, CultureInfo? culture = null) => FormatDateTimeValueCore(value, format, culture); private static string FormatDateTimeValueCore(DateTime value, string? format, CultureInfo? culture) @@ -342,6 +360,7 @@ private static string FormatDateTimeValueCore(DateTime value, CultureInfo? cultu /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(DateTime? value, CultureInfo? culture = null) => FormatNullableDateTimeValueCore(value, format: null, culture); /// @@ -353,6 +372,7 @@ private static string FormatDateTimeValueCore(DateTime value, CultureInfo? cultu /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(DateTime? value, string? format, CultureInfo? culture = null) => FormatNullableDateTimeValueCore(value, format, culture); private static string? FormatNullableDateTimeValueCore(DateTime? value, string? format, CultureInfo? culture) @@ -388,6 +408,7 @@ private static string FormatDateTimeValueCore(DateTime value, CultureInfo? cultu /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string FormatValue(DateTimeOffset value, CultureInfo? culture = null) => FormatDateTimeOffsetValueCore(value, format: null, culture); @@ -400,6 +421,7 @@ private static string FormatDateTimeValueCore(DateTime value, CultureInfo? cultu /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string FormatValue(DateTimeOffset value, string format, CultureInfo? culture = null) => FormatDateTimeOffsetValueCore(value, format, culture); private static string FormatDateTimeOffsetValueCore(DateTimeOffset value, string? format, CultureInfo? culture) @@ -425,6 +447,7 @@ private static string FormatDateTimeOffsetValueCore(DateTimeOffset value, Cultur /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(DateTimeOffset? value, CultureInfo? culture = null) => FormatNullableDateTimeOffsetValueCore(value, format: null, culture); /// @@ -436,6 +459,7 @@ private static string FormatDateTimeOffsetValueCore(DateTimeOffset value, Cultur /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? FormatValue(DateTimeOffset? value, string format, CultureInfo? culture = null) => FormatNullableDateTimeOffsetValueCore(value, format, culture); private static string? FormatNullableDateTimeOffsetValueCore(DateTimeOffset? value, string? format, CultureInfo? culture) @@ -486,6 +510,7 @@ private static string FormatEnumValueCore(T value, CultureInfo? culture) wher /// The to use while formatting. Defaults to . /// /// The formatted value. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static object? FormatValue(T value, CultureInfo? culture = null) { var formatter = FormatterDelegateCache.Get(); diff --git a/src/Components/Components/src/EventCallbackFactoryBinderExtensions.cs b/src/Components/Components/src/EventCallbackFactoryBinderExtensions.cs index ac868f3ac62d..b38e9ae0a835 100644 --- a/src/Components/Components/src/EventCallbackFactoryBinderExtensions.cs +++ b/src/Components/Components/src/EventCallbackFactoryBinderExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.Globalization; using static Microsoft.AspNetCore.Components.BindConverter; @@ -31,6 +32,7 @@ public static class EventCallbackFactoryBinderExtensions /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -50,6 +52,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -69,6 +72,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -88,6 +92,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -107,6 +112,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -126,6 +132,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -145,6 +152,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -164,6 +172,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -183,6 +192,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -202,6 +212,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -221,6 +232,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -240,6 +252,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -259,6 +272,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -278,6 +292,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -297,6 +312,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -316,6 +332,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -336,6 +353,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -356,6 +374,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -376,6 +395,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -396,6 +416,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -416,6 +437,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -436,6 +458,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -456,6 +479,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, @@ -477,6 +501,7 @@ public static EventCallback CreateBinder( /// /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static EventCallback CreateBinder( this EventCallbackFactory factory, object receiver, diff --git a/src/Components/Components/src/PublicAPI.Shipped.txt b/src/Components/Components/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/Components/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/Components/src/PublicAPI.Unshipped.txt b/src/Components/Components/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..bccbaa73c306 --- /dev/null +++ b/src/Components/Components/src/PublicAPI.Unshipped.txt @@ -0,0 +1,429 @@ +Microsoft.AspNetCore.Components.BindConverter +Microsoft.AspNetCore.Components.BindElementAttribute +Microsoft.AspNetCore.Components.BindElementAttribute.BindElementAttribute(string! element, string? suffix, string! valueAttribute, string! changeAttribute) -> void +Microsoft.AspNetCore.Components.BindElementAttribute.ChangeAttribute.get -> string! +Microsoft.AspNetCore.Components.BindElementAttribute.Element.get -> string! +Microsoft.AspNetCore.Components.BindElementAttribute.Suffix.get -> string? +Microsoft.AspNetCore.Components.BindElementAttribute.ValueAttribute.get -> string! +Microsoft.AspNetCore.Components.CascadingParameterAttribute +Microsoft.AspNetCore.Components.CascadingParameterAttribute.CascadingParameterAttribute() -> void +Microsoft.AspNetCore.Components.CascadingParameterAttribute.Name.get -> string? +Microsoft.AspNetCore.Components.CascadingParameterAttribute.Name.set -> void +Microsoft.AspNetCore.Components.CascadingValue +Microsoft.AspNetCore.Components.CascadingValue.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) -> void +Microsoft.AspNetCore.Components.CascadingValue.CascadingValue() -> void +Microsoft.AspNetCore.Components.CascadingValue.ChildContent.get -> Microsoft.AspNetCore.Components.RenderFragment! +Microsoft.AspNetCore.Components.CascadingValue.ChildContent.set -> void +Microsoft.AspNetCore.Components.CascadingValue.IsFixed.get -> bool +Microsoft.AspNetCore.Components.CascadingValue.IsFixed.set -> void +Microsoft.AspNetCore.Components.CascadingValue.Name.get -> string? +Microsoft.AspNetCore.Components.CascadingValue.Name.set -> void +Microsoft.AspNetCore.Components.CascadingValue.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.CascadingValue.Value.get -> TValue +Microsoft.AspNetCore.Components.CascadingValue.Value.set -> void +Microsoft.AspNetCore.Components.ChangeEventArgs +Microsoft.AspNetCore.Components.ChangeEventArgs.ChangeEventArgs() -> void +Microsoft.AspNetCore.Components.ChangeEventArgs.Value.get -> object? +Microsoft.AspNetCore.Components.ChangeEventArgs.Value.set -> void +Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers +Microsoft.AspNetCore.Components.ComponentBase +Microsoft.AspNetCore.Components.ComponentBase.ComponentBase() -> void +Microsoft.AspNetCore.Components.ComponentBase.InvokeAsync(System.Action! workItem) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.ComponentBase.InvokeAsync(System.Func! workItem) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.ComponentBase.StateHasChanged() -> void +Microsoft.AspNetCore.Components.Dispatcher +Microsoft.AspNetCore.Components.Dispatcher.AssertAccess() -> void +Microsoft.AspNetCore.Components.Dispatcher.Dispatcher() -> void +Microsoft.AspNetCore.Components.Dispatcher.OnUnhandledException(System.UnhandledExceptionEventArgs! e) -> void +Microsoft.AspNetCore.Components.ElementReference +Microsoft.AspNetCore.Components.ElementReference.Context.get -> Microsoft.AspNetCore.Components.ElementReferenceContext? +Microsoft.AspNetCore.Components.ElementReference.ElementReference(string! id) -> void +Microsoft.AspNetCore.Components.ElementReference.ElementReference(string! id, Microsoft.AspNetCore.Components.ElementReferenceContext? context) -> void +Microsoft.AspNetCore.Components.ElementReference.Id.get -> string! +Microsoft.AspNetCore.Components.ElementReferenceContext +Microsoft.AspNetCore.Components.ElementReferenceContext.ElementReferenceContext() -> void +Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallback.EventCallback(Microsoft.AspNetCore.Components.IHandleEvent? receiver, System.MulticastDelegate? delegate) -> void +Microsoft.AspNetCore.Components.EventCallback.HasDelegate.get -> bool +Microsoft.AspNetCore.Components.EventCallback.InvokeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.EventCallback.InvokeAsync(object! arg) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallback.EventCallback(Microsoft.AspNetCore.Components.IHandleEvent? receiver, System.MulticastDelegate? delegate) -> void +Microsoft.AspNetCore.Components.EventCallback.HasDelegate.get -> bool +Microsoft.AspNetCore.Components.EventCallback.InvokeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.EventCallback.InvokeAsync(TValue arg) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.EventCallbackFactory +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, Microsoft.AspNetCore.Components.EventCallback callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, Microsoft.AspNetCore.Components.EventCallback callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, Microsoft.AspNetCore.Components.EventCallback callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.Create(object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.CreateInferred(object! receiver, System.Action! callback, TValue value) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.CreateInferred(object! receiver, System.Func! callback, TValue value) -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.EventCallbackFactory.EventCallbackFactory() -> void +Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions +Microsoft.AspNetCore.Components.EventCallbackFactoryEventArgsExtensions +Microsoft.AspNetCore.Components.EventCallbackWorkItem +Microsoft.AspNetCore.Components.EventCallbackWorkItem.EventCallbackWorkItem(System.MulticastDelegate? delegate) -> void +Microsoft.AspNetCore.Components.EventCallbackWorkItem.InvokeAsync(object? arg) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.EventHandlerAttribute +Microsoft.AspNetCore.Components.EventHandlerAttribute.AttributeName.get -> string! +Microsoft.AspNetCore.Components.EventHandlerAttribute.EnablePreventDefault.get -> bool +Microsoft.AspNetCore.Components.EventHandlerAttribute.EnableStopPropagation.get -> bool +Microsoft.AspNetCore.Components.EventHandlerAttribute.EventArgsType.get -> System.Type! +Microsoft.AspNetCore.Components.EventHandlerAttribute.EventHandlerAttribute(string! attributeName, System.Type! eventArgsType) -> void +Microsoft.AspNetCore.Components.EventHandlerAttribute.EventHandlerAttribute(string! attributeName, System.Type! eventArgsType, bool enableStopPropagation, bool enablePreventDefault) -> void +Microsoft.AspNetCore.Components.IComponent +Microsoft.AspNetCore.Components.IComponent.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) -> void +Microsoft.AspNetCore.Components.IComponent.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.IComponentActivator +Microsoft.AspNetCore.Components.IComponentActivator.CreateInstance(System.Type! componentType) -> Microsoft.AspNetCore.Components.IComponent! +Microsoft.AspNetCore.Components.IHandleAfterRender +Microsoft.AspNetCore.Components.IHandleAfterRender.OnAfterRenderAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.IHandleEvent +Microsoft.AspNetCore.Components.IHandleEvent.HandleEventAsync(Microsoft.AspNetCore.Components.EventCallbackWorkItem item, object? arg) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.InjectAttribute +Microsoft.AspNetCore.Components.InjectAttribute.InjectAttribute() -> void +Microsoft.AspNetCore.Components.LayoutAttribute +Microsoft.AspNetCore.Components.LayoutAttribute.LayoutAttribute(System.Type! layoutType) -> void +Microsoft.AspNetCore.Components.LayoutAttribute.LayoutType.get -> System.Type! +Microsoft.AspNetCore.Components.LayoutComponentBase +Microsoft.AspNetCore.Components.LayoutComponentBase.Body.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.LayoutComponentBase.Body.set -> void +Microsoft.AspNetCore.Components.LayoutComponentBase.LayoutComponentBase() -> void +Microsoft.AspNetCore.Components.LayoutView +Microsoft.AspNetCore.Components.LayoutView.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) -> void +Microsoft.AspNetCore.Components.LayoutView.ChildContent.get -> Microsoft.AspNetCore.Components.RenderFragment! +Microsoft.AspNetCore.Components.LayoutView.ChildContent.set -> void +Microsoft.AspNetCore.Components.LayoutView.Layout.get -> System.Type! +Microsoft.AspNetCore.Components.LayoutView.Layout.set -> void +Microsoft.AspNetCore.Components.LayoutView.LayoutView() -> void +Microsoft.AspNetCore.Components.LayoutView.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.LocationChangeException +Microsoft.AspNetCore.Components.LocationChangeException.LocationChangeException(string! message, System.Exception! innerException) -> void +Microsoft.AspNetCore.Components.MarkupString +Microsoft.AspNetCore.Components.MarkupString.MarkupString(string! value) -> void +Microsoft.AspNetCore.Components.MarkupString.Value.get -> string! +Microsoft.AspNetCore.Components.NavigationException +Microsoft.AspNetCore.Components.NavigationException.Location.get -> string! +Microsoft.AspNetCore.Components.NavigationException.NavigationException(string! uri) -> void +Microsoft.AspNetCore.Components.NavigationManager +Microsoft.AspNetCore.Components.NavigationManager.BaseUri.get -> string! +Microsoft.AspNetCore.Components.NavigationManager.BaseUri.set -> void +Microsoft.AspNetCore.Components.NavigationManager.Initialize(string! baseUri, string! uri) -> void +Microsoft.AspNetCore.Components.NavigationManager.LocationChanged -> System.EventHandler! +Microsoft.AspNetCore.Components.NavigationManager.NavigateTo(string! uri, bool forceLoad = false) -> void +Microsoft.AspNetCore.Components.NavigationManager.NavigationManager() -> void +Microsoft.AspNetCore.Components.NavigationManager.NotifyLocationChanged(bool isInterceptedLink) -> void +Microsoft.AspNetCore.Components.NavigationManager.ToAbsoluteUri(string! relativeUri) -> System.Uri! +Microsoft.AspNetCore.Components.NavigationManager.ToBaseRelativePath(string! uri) -> string! +Microsoft.AspNetCore.Components.NavigationManager.Uri.get -> string! +Microsoft.AspNetCore.Components.NavigationManager.Uri.set -> void +Microsoft.AspNetCore.Components.OwningComponentBase +Microsoft.AspNetCore.Components.OwningComponentBase.IsDisposed.get -> bool +Microsoft.AspNetCore.Components.OwningComponentBase.OwningComponentBase() -> void +Microsoft.AspNetCore.Components.OwningComponentBase.ScopedServices.get -> System.IServiceProvider! +Microsoft.AspNetCore.Components.OwningComponentBase +Microsoft.AspNetCore.Components.OwningComponentBase.OwningComponentBase() -> void +Microsoft.AspNetCore.Components.OwningComponentBase.Service.get -> TService +Microsoft.AspNetCore.Components.ParameterAttribute +Microsoft.AspNetCore.Components.ParameterAttribute.CaptureUnmatchedValues.get -> bool +Microsoft.AspNetCore.Components.ParameterAttribute.CaptureUnmatchedValues.set -> void +Microsoft.AspNetCore.Components.ParameterAttribute.ParameterAttribute() -> void +Microsoft.AspNetCore.Components.ParameterValue +Microsoft.AspNetCore.Components.ParameterValue.Cascading.get -> bool +Microsoft.AspNetCore.Components.ParameterValue.Name.get -> string! +Microsoft.AspNetCore.Components.ParameterValue.Value.get -> object! +Microsoft.AspNetCore.Components.ParameterView +Microsoft.AspNetCore.Components.ParameterView.Enumerator +Microsoft.AspNetCore.Components.ParameterView.Enumerator.Current.get -> Microsoft.AspNetCore.Components.ParameterValue +Microsoft.AspNetCore.Components.ParameterView.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Components.ParameterView.GetEnumerator() -> Microsoft.AspNetCore.Components.ParameterView.Enumerator +Microsoft.AspNetCore.Components.ParameterView.GetValueOrDefault(string! parameterName) -> TValue +Microsoft.AspNetCore.Components.ParameterView.GetValueOrDefault(string! parameterName, TValue defaultValue) -> TValue +Microsoft.AspNetCore.Components.ParameterView.SetParameterProperties(object! target) -> void +Microsoft.AspNetCore.Components.ParameterView.ToDictionary() -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.AspNetCore.Components.ParameterView.TryGetValue(string! parameterName, out TValue result) -> bool +Microsoft.AspNetCore.Components.RenderFragment +Microsoft.AspNetCore.Components.RenderFragment +Microsoft.AspNetCore.Components.RenderHandle +Microsoft.AspNetCore.Components.RenderHandle.Dispatcher.get -> Microsoft.AspNetCore.Components.Dispatcher! +Microsoft.AspNetCore.Components.RenderHandle.IsInitialized.get -> bool +Microsoft.AspNetCore.Components.RenderHandle.Render(Microsoft.AspNetCore.Components.RenderFragment! renderFragment) -> void +Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment +Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment.Array.get -> T[]! +Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment.Count.get -> int +Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment.Offset.get -> int +Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment.this[int index].get -> T +Microsoft.AspNetCore.Components.RenderTree.ArrayRange +Microsoft.AspNetCore.Components.RenderTree.ArrayRange.ArrayRange(T[]! array, int count) -> void +Microsoft.AspNetCore.Components.RenderTree.ArrayRange.Clone() -> Microsoft.AspNetCore.Components.RenderTree.ArrayRange +Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo +Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo.ComponentId.get -> int +Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo.ComponentId.set -> void +Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo.EventFieldInfo() -> void +Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo.FieldValue.get -> object! +Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo.FieldValue.set -> void +Microsoft.AspNetCore.Components.RenderTree.RenderBatch +Microsoft.AspNetCore.Components.RenderTree.RenderBatch.DisposedComponentIDs.get -> Microsoft.AspNetCore.Components.RenderTree.ArrayRange +Microsoft.AspNetCore.Components.RenderTree.RenderBatch.DisposedEventHandlerIDs.get -> Microsoft.AspNetCore.Components.RenderTree.ArrayRange +Microsoft.AspNetCore.Components.RenderTree.RenderBatch.ReferenceFrames.get -> Microsoft.AspNetCore.Components.RenderTree.ArrayRange +Microsoft.AspNetCore.Components.RenderTree.RenderBatch.UpdatedComponents.get -> Microsoft.AspNetCore.Components.RenderTree.ArrayRange +Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.PermutationListEnd = 10 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.PermutationListEntry = 9 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.PrependFrame = 1 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.RemoveAttribute = 4 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.RemoveFrame = 2 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.SetAttribute = 3 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.StepIn = 6 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.StepOut = 7 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.UpdateMarkup = 8 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType.UpdateText = 5 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.AttributeEventHandlerId.get -> ulong +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddAttribute(int sequence, string! name, string? value) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddComponentReferenceCapture(int sequence, System.Action! componentReferenceCaptureAction) -> void +Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.get -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.Routing.Router.OnNavigateAsync.set -> void +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.AttributeEventUpdatesAttributeName.get -> string +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.AttributeName.get -> string +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.AttributeValue.get -> object +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.Component.get -> Microsoft.AspNetCore.Components.IComponent +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ComponentId.get -> int +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ComponentKey.get -> object +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ComponentReferenceCaptureAction.get -> System.Action +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ComponentReferenceCaptureParentFrameIndex.get -> int +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ComponentSubtreeLength.get -> int +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ComponentType.get -> System.Type +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ElementKey.get -> object +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ElementName.get -> string +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ElementReferenceCaptureAction.get -> System.Action +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ElementReferenceCaptureId.get -> string +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ElementSubtreeLength.get -> int +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.FrameType.get -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.MarkupContent.get -> string +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.RegionSubtreeLength.get -> int +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.Sequence.get -> int +~Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.TextContent.get -> string +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.Attribute = 3 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.Component = 4 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.ComponentReferenceCapture = 7 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.Element = 1 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.ElementReferenceCapture = 6 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.Markup = 8 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.None = 0 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.Region = 5 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType.Text = 2 -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrameType +Microsoft.AspNetCore.Components.RenderTree.Renderer +Microsoft.AspNetCore.Components.RenderTree.Renderer.AssignRootComponentId(Microsoft.AspNetCore.Components.IComponent! component) -> int +Microsoft.AspNetCore.Components.RenderTree.Renderer.Dispose() -> void +Microsoft.AspNetCore.Components.RenderTree.Renderer.ElementReferenceContext.get -> Microsoft.AspNetCore.Components.ElementReferenceContext? +Microsoft.AspNetCore.Components.RenderTree.Renderer.ElementReferenceContext.set -> void +Microsoft.AspNetCore.Components.RenderTree.Renderer.GetCurrentRenderTreeFrames(int componentId) -> Microsoft.AspNetCore.Components.RenderTree.ArrayRange +Microsoft.AspNetCore.Components.RenderTree.Renderer.InstantiateComponent(System.Type! componentType) -> Microsoft.AspNetCore.Components.IComponent! +Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderRootComponentAsync(int componentId) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.RenderTree.Renderer.RenderRootComponentAsync(int componentId, Microsoft.AspNetCore.Components.ParameterView initialParameters) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.RenderTree.Renderer.Renderer(System.IServiceProvider! serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.AspNetCore.Components.RenderTree.Renderer.Renderer(System.IServiceProvider! serviceProvider, Microsoft.Extensions.Logging.ILoggerFactory! loggerFactory, Microsoft.AspNetCore.Components.IComponentActivator! componentActivator) -> void +Microsoft.AspNetCore.Components.RenderTree.Renderer.UnhandledSynchronizationException -> System.UnhandledExceptionEventHandler! +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddAttribute(int sequence, Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame frame) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddAttribute(int sequence, string! name) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddAttribute(int sequence, string! name, Microsoft.AspNetCore.Components.EventCallback value) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddAttribute(int sequence, string! name, System.MulticastDelegate? value) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddAttribute(int sequence, string! name, bool value) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddAttribute(int sequence, string! name, object? value) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddAttribute(int sequence, string! name, Microsoft.AspNetCore.Components.EventCallback value) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(int sequence, Microsoft.AspNetCore.Components.MarkupString markupContent) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(int sequence, Microsoft.AspNetCore.Components.RenderFragment? fragment) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(int sequence, object? textContent) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(int sequence, string? textContent) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(int sequence, Microsoft.AspNetCore.Components.RenderFragment? fragment, TValue value) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddElementReferenceCapture(int sequence, System.Action! elementReferenceCaptureAction) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddMarkupContent(int sequence, string? markupContent) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddMultipleAttributes(int sequence, System.Collections.Generic.IEnumerable>? attributes) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.Clear() -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.CloseComponent() -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.CloseElement() -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.CloseRegion() -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.GetFrames() -> Microsoft.AspNetCore.Components.RenderTree.ArrayRange +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.OpenComponent(int sequence, System.Type! componentType) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.OpenComponent(int sequence) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.OpenElement(int sequence, string! elementName) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.OpenRegion(int sequence) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.RenderTreeBuilder() -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.SetKey(object? value) -> void +Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.SetUpdatesAttributeName(string! updatesAttributeName) -> void +Microsoft.AspNetCore.Components.RouteAttribute +Microsoft.AspNetCore.Components.RouteAttribute.RouteAttribute(string! template) -> void +Microsoft.AspNetCore.Components.RouteAttribute.Template.get -> string! +Microsoft.AspNetCore.Components.RouteData +Microsoft.AspNetCore.Components.RouteData.PageType.get -> System.Type! +Microsoft.AspNetCore.Components.RouteData.RouteData(System.Type! pageType, System.Collections.Generic.IReadOnlyDictionary! routeValues) -> void +Microsoft.AspNetCore.Components.RouteData.RouteValues.get -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.AspNetCore.Components.RouteView +Microsoft.AspNetCore.Components.RouteView.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) -> void +Microsoft.AspNetCore.Components.RouteView.DefaultLayout.get -> System.Type! +Microsoft.AspNetCore.Components.RouteView.DefaultLayout.set -> void +Microsoft.AspNetCore.Components.RouteView.RouteData.get -> Microsoft.AspNetCore.Components.RouteData! +Microsoft.AspNetCore.Components.RouteView.RouteData.set -> void +Microsoft.AspNetCore.Components.RouteView.RouteView() -> void +Microsoft.AspNetCore.Components.RouteView.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.Routing.IHostEnvironmentNavigationManager +Microsoft.AspNetCore.Components.Routing.IHostEnvironmentNavigationManager.Initialize(string! baseUri, string! uri) -> void +Microsoft.AspNetCore.Components.Routing.INavigationInterception +Microsoft.AspNetCore.Components.Routing.INavigationInterception.EnableNavigationInterceptionAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs +Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs.IsNavigationIntercepted.get -> bool +Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs.Location.get -> string! +Microsoft.AspNetCore.Components.Routing.LocationChangedEventArgs.LocationChangedEventArgs(string! location, bool isNavigationIntercepted) -> void +Microsoft.AspNetCore.Components.Routing.NavigationContext +Microsoft.AspNetCore.Components.Routing.NavigationContext.CancellationToken.get -> System.Threading.CancellationToken +Microsoft.AspNetCore.Components.Routing.NavigationContext.Path.get -> string! +Microsoft.AspNetCore.Components.Routing.Router +Microsoft.AspNetCore.Components.Routing.Router.AdditionalAssemblies.get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Components.Routing.Router.AdditionalAssemblies.set -> void +Microsoft.AspNetCore.Components.Routing.Router.AppAssembly.get -> System.Reflection.Assembly! +Microsoft.AspNetCore.Components.Routing.Router.AppAssembly.set -> void +Microsoft.AspNetCore.Components.Routing.Router.Attach(Microsoft.AspNetCore.Components.RenderHandle renderHandle) -> void +Microsoft.AspNetCore.Components.Routing.Router.Dispose() -> void +Microsoft.AspNetCore.Components.Routing.Router.Found.get -> Microsoft.AspNetCore.Components.RenderFragment! +Microsoft.AspNetCore.Components.Routing.Router.Found.set -> void +Microsoft.AspNetCore.Components.Routing.Router.Navigating.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.Routing.Router.Navigating.set -> void +Microsoft.AspNetCore.Components.Routing.Router.NotFound.get -> Microsoft.AspNetCore.Components.RenderFragment! +Microsoft.AspNetCore.Components.Routing.Router.NotFound.set -> void +Microsoft.AspNetCore.Components.Routing.Router.Router() -> void +Microsoft.AspNetCore.Components.Routing.Router.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Components.Dispatcher.CheckAccess() -> bool +abstract Microsoft.AspNetCore.Components.Dispatcher.InvokeAsync(System.Action! workItem) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Components.Dispatcher.InvokeAsync(System.Func! workItem) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Components.Dispatcher.InvokeAsync(System.Func!>! workItem) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Components.Dispatcher.InvokeAsync(System.Func! workItem) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Components.NavigationManager.NavigateToCore(string! uri, bool forceLoad) -> void +abstract Microsoft.AspNetCore.Components.RenderTree.Renderer.Dispatcher.get -> Microsoft.AspNetCore.Components.Dispatcher! +abstract Microsoft.AspNetCore.Components.RenderTree.Renderer.HandleException(System.Exception! exception) -> void +abstract Microsoft.AspNetCore.Components.RenderTree.Renderer.UpdateDisplayAsync(in Microsoft.AspNetCore.Components.RenderTree.RenderBatch renderBatch) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.Components.MarkupString.ToString() -> string! +~override Microsoft.AspNetCore.Components.RenderTree.RenderTreeFrame.ToString() -> string +readonly Microsoft.AspNetCore.Components.RenderTree.ArrayRange.Array -> T[]! +readonly Microsoft.AspNetCore.Components.RenderTree.ArrayRange.Count -> int +readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff.ComponentId -> int +readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeDiff.Edits -> Microsoft.AspNetCore.Components.RenderTree.ArrayBuilderSegment +readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit.MoveToSiblingIndex -> int +readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit.ReferenceFrameIndex -> int +readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit.RemovedAttributeName -> string! +readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit.SiblingIndex -> int +readonly Microsoft.AspNetCore.Components.RenderTree.RenderTreeEdit.Type -> Microsoft.AspNetCore.Components.RenderTree.RenderTreeEditType +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(System.DateTime value, System.Globalization.CultureInfo? culture = null) -> string! +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(System.DateTime value, string! format, System.Globalization.CultureInfo? culture = null) -> string! +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(System.DateTime? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(System.DateTime? value, string? format, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(System.DateTimeOffset value, System.Globalization.CultureInfo? culture = null) -> string! +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(System.DateTimeOffset value, string! format, System.Globalization.CultureInfo? culture = null) -> string! +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(System.DateTimeOffset? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(System.DateTimeOffset? value, string! format, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(bool value, System.Globalization.CultureInfo? culture = null) -> bool +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(bool? value, System.Globalization.CultureInfo? culture = null) -> bool? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(decimal value, System.Globalization.CultureInfo? culture = null) -> string! +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(decimal? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(double value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(double? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(float value, System.Globalization.CultureInfo? culture = null) -> string! +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(float? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(int value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(int? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(long value, System.Globalization.CultureInfo? culture = null) -> string! +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(long? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(short value, System.Globalization.CultureInfo? culture = null) -> string! +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(short? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(string? value, System.Globalization.CultureInfo? culture = null) -> string? +static Microsoft.AspNetCore.Components.BindConverter.FormatValue(T value, System.Globalization.CultureInfo? culture = null) -> object? +static Microsoft.AspNetCore.Components.BindConverter.TryConvertTo(object? obj, System.Globalization.CultureInfo? culture, out T value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToBool(object? obj, System.Globalization.CultureInfo? culture, out bool value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToDateTime(object? obj, System.Globalization.CultureInfo? culture, out System.DateTime value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToDateTime(object? obj, System.Globalization.CultureInfo? culture, string! format, out System.DateTime value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToDateTimeOffset(object? obj, System.Globalization.CultureInfo? culture, out System.DateTimeOffset value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToDateTimeOffset(object? obj, System.Globalization.CultureInfo? culture, string! format, out System.DateTimeOffset value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToDecimal(object? obj, System.Globalization.CultureInfo? culture, out decimal value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToDouble(object? obj, System.Globalization.CultureInfo? culture, out double value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToFloat(object? obj, System.Globalization.CultureInfo? culture, out float value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToInt(object? obj, System.Globalization.CultureInfo? culture, out int value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToLong(object? obj, System.Globalization.CultureInfo? culture, out long value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableBool(object? obj, System.Globalization.CultureInfo? culture, out bool? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableDateTime(object? obj, System.Globalization.CultureInfo? culture, out System.DateTime? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableDateTime(object? obj, System.Globalization.CultureInfo? culture, string! format, out System.DateTime? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableDateTimeOffset(object? obj, System.Globalization.CultureInfo? culture, out System.DateTimeOffset? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableDateTimeOffset(object? obj, System.Globalization.CultureInfo? culture, string! format, out System.DateTimeOffset? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableDecimal(object? obj, System.Globalization.CultureInfo? culture, out decimal? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableDouble(object? obj, System.Globalization.CultureInfo? culture, out double? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableFloat(object? obj, System.Globalization.CultureInfo? culture, out float? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableInt(object? obj, System.Globalization.CultureInfo? culture, out int? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableLong(object? obj, System.Globalization.CultureInfo? culture, out long? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToNullableShort(object? obj, System.Globalization.CultureInfo? culture, out short? value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToShort(object? obj, System.Globalization.CultureInfo? culture, out short value) -> bool +static Microsoft.AspNetCore.Components.BindConverter.TryConvertToString(object? obj, System.Globalization.CultureInfo? culture, out string? value) -> bool +static Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.CreateInferredEventCallback(object! receiver, System.Action! callback, T value) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.CreateInferredEventCallback(object! receiver, System.Func! callback, T value) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck(T value) -> T +static Microsoft.AspNetCore.Components.Dispatcher.CreateDefault() -> Microsoft.AspNetCore.Components.Dispatcher! +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, System.DateTime existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, System.DateTime existingValue, string! format, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, System.DateTime? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, System.DateTime? existingValue, string! format, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, System.DateTimeOffset existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, System.DateTimeOffset existingValue, string! format, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, System.DateTimeOffset? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, System.DateTimeOffset? existingValue, string! format, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, bool existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, bool? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, decimal existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, decimal? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, double existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, double? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, float existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, float? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, int existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, int? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, long existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, long? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, short existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, short? existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, string! existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryBinderExtensions.CreateBinder(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! setter, T existingValue, System.Globalization.CultureInfo? culture = null) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.EventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.MarkupString.explicit operator Microsoft.AspNetCore.Components.MarkupString(string! value) -> Microsoft.AspNetCore.Components.MarkupString +static Microsoft.AspNetCore.Components.ParameterView.Empty.get -> Microsoft.AspNetCore.Components.ParameterView +static Microsoft.AspNetCore.Components.ParameterView.FromDictionary(System.Collections.Generic.IDictionary! parameters) -> Microsoft.AspNetCore.Components.ParameterView +static readonly Microsoft.AspNetCore.Components.EventCallback.Empty -> Microsoft.AspNetCore.Components.EventCallback +static readonly Microsoft.AspNetCore.Components.EventCallback.Factory -> Microsoft.AspNetCore.Components.EventCallbackFactory! +static readonly Microsoft.AspNetCore.Components.EventCallback.Empty -> Microsoft.AspNetCore.Components.EventCallback +static readonly Microsoft.AspNetCore.Components.EventCallbackWorkItem.Empty -> Microsoft.AspNetCore.Components.EventCallbackWorkItem +virtual Microsoft.AspNetCore.Components.ComponentBase.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +virtual Microsoft.AspNetCore.Components.ComponentBase.OnAfterRender(bool firstRender) -> void +virtual Microsoft.AspNetCore.Components.ComponentBase.OnAfterRenderAsync(bool firstRender) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.ComponentBase.OnInitialized() -> void +virtual Microsoft.AspNetCore.Components.ComponentBase.OnInitializedAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.ComponentBase.OnParametersSet() -> void +virtual Microsoft.AspNetCore.Components.ComponentBase.OnParametersSetAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.ComponentBase.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.ComponentBase.ShouldRender() -> bool +virtual Microsoft.AspNetCore.Components.NavigationManager.EnsureInitialized() -> void +virtual Microsoft.AspNetCore.Components.OwningComponentBase.Dispose(bool disposing) -> void +virtual Microsoft.AspNetCore.Components.RenderTree.Renderer.DispatchEventAsync(ulong eventHandlerId, Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo! fieldInfo, System.EventArgs! eventArgs) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.RenderTree.Renderer.Dispose(bool disposing) -> void +virtual Microsoft.AspNetCore.Components.RenderTree.Renderer.ProcessPendingRender() -> void +virtual Microsoft.AspNetCore.Components.RouteView.Render(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void diff --git a/src/Components/ComponentsNoDeps.slnf b/src/Components/ComponentsNoDeps.slnf index b6e75d5a65ae..d7918fcc1acd 100644 --- a/src/Components/ComponentsNoDeps.slnf +++ b/src/Components/ComponentsNoDeps.slnf @@ -45,9 +45,7 @@ "src\\Components\\test\\testassets\\BasicTestApp\\BasicTestApp.csproj", "src\\Components\\test\\testassets\\ComponentsApp.Server\\ComponentsApp.Server.csproj", "src\\Components\\test\\testassets\\TestContentPackage\\TestContentPackage.csproj", - "src\\Components\\test\\testassets\\TestServer\\Components.TestServer.csproj", - "src\\Components\\ProtectedBrowserStorage\\src\\Microsoft.AspNetCore.Components.ProtectedBrowserStorage.csproj", - "src\\Components\\ProtectedBrowserStorage\\test\\Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests.csproj" + "src\\Components\\test\\testassets\\TestServer\\Components.TestServer.csproj" ] } } diff --git a/src/Components/Forms/src/PublicAPI.Shipped.txt b/src/Components/Forms/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/Forms/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/Forms/src/PublicAPI.Unshipped.txt b/src/Components/Forms/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..fcd59a88b3bd --- /dev/null +++ b/src/Components/Forms/src/PublicAPI.Unshipped.txt @@ -0,0 +1,59 @@ +#nullable enable +Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator +Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.DataAnnotationsValidator() -> void +Microsoft.AspNetCore.Components.Forms.EditContext +Microsoft.AspNetCore.Components.Forms.EditContext.EditContext(object! model) -> void +Microsoft.AspNetCore.Components.Forms.EditContext.Field(string! fieldName) -> Microsoft.AspNetCore.Components.Forms.FieldIdentifier +Microsoft.AspNetCore.Components.Forms.EditContext.GetValidationMessages() -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Components.Forms.EditContext.GetValidationMessages(Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Components.Forms.EditContext.GetValidationMessages(System.Linq.Expressions.Expression!>! accessor) -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Components.Forms.EditContext.IsModified() -> bool +Microsoft.AspNetCore.Components.Forms.EditContext.IsModified(System.Linq.Expressions.Expression!>! accessor) -> bool +Microsoft.AspNetCore.Components.Forms.EditContext.IsModified(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) -> bool +Microsoft.AspNetCore.Components.Forms.EditContext.MarkAsUnmodified() -> void +Microsoft.AspNetCore.Components.Forms.EditContext.MarkAsUnmodified(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) -> void +Microsoft.AspNetCore.Components.Forms.EditContext.Model.get -> object! +Microsoft.AspNetCore.Components.Forms.EditContext.NotifyFieldChanged(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) -> void +Microsoft.AspNetCore.Components.Forms.EditContext.NotifyValidationStateChanged() -> void +Microsoft.AspNetCore.Components.Forms.EditContext.OnFieldChanged -> System.EventHandler? +Microsoft.AspNetCore.Components.Forms.EditContext.OnValidationRequested -> System.EventHandler? +Microsoft.AspNetCore.Components.Forms.EditContext.OnValidationStateChanged -> System.EventHandler? +Microsoft.AspNetCore.Components.Forms.EditContext.Properties.get -> Microsoft.AspNetCore.Components.Forms.EditContextProperties! +Microsoft.AspNetCore.Components.Forms.EditContext.Validate() -> bool +Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions +Microsoft.AspNetCore.Components.Forms.EditContextProperties +Microsoft.AspNetCore.Components.Forms.EditContextProperties.EditContextProperties() -> void +Microsoft.AspNetCore.Components.Forms.EditContextProperties.Remove(object! key) -> bool +Microsoft.AspNetCore.Components.Forms.EditContextProperties.TryGetValue(object! key, out object? value) -> bool +Microsoft.AspNetCore.Components.Forms.EditContextProperties.this[object! key].get -> object! +Microsoft.AspNetCore.Components.Forms.EditContextProperties.this[object! key].set -> void +Microsoft.AspNetCore.Components.Forms.FieldChangedEventArgs +Microsoft.AspNetCore.Components.Forms.FieldChangedEventArgs.FieldChangedEventArgs(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) -> void +Microsoft.AspNetCore.Components.Forms.FieldChangedEventArgs.FieldIdentifier.get -> Microsoft.AspNetCore.Components.Forms.FieldIdentifier +Microsoft.AspNetCore.Components.Forms.FieldIdentifier +Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Equals(Microsoft.AspNetCore.Components.Forms.FieldIdentifier otherIdentifier) -> bool +Microsoft.AspNetCore.Components.Forms.FieldIdentifier.FieldIdentifier(object! model, string! fieldName) -> void +Microsoft.AspNetCore.Components.Forms.FieldIdentifier.FieldName.get -> string! +Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Model.get -> object! +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.Add(System.Linq.Expressions.Expression!>! accessor, System.Collections.Generic.IEnumerable! messages) -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.Add(System.Linq.Expressions.Expression!>! accessor, string! message) -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.Add(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier, System.Collections.Generic.IEnumerable! messages) -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.Add(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier, string! message) -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.Clear() -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.Clear(System.Linq.Expressions.Expression!>! accessor) -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.Clear(in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.ValidationMessageStore(Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.this[Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier].get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Components.Forms.ValidationMessageStore.this[System.Linq.Expressions.Expression!>! accessor].get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs +Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs.ValidationRequestedEventArgs() -> void +Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs +Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs.ValidationStateChangedEventArgs() -> void +override Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator.OnInitialized() -> void +override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Components.Forms.FieldIdentifier.GetHashCode() -> int +static Microsoft.AspNetCore.Components.Forms.EditContextDataAnnotationsExtensions.AddDataAnnotationsValidation(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext) -> Microsoft.AspNetCore.Components.Forms.EditContext! +static Microsoft.AspNetCore.Components.Forms.FieldIdentifier.Create(System.Linq.Expressions.Expression!>! accessor) -> Microsoft.AspNetCore.Components.Forms.FieldIdentifier +static readonly Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs.Empty -> Microsoft.AspNetCore.Components.Forms.ValidationRequestedEventArgs! +static readonly Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs.Empty -> Microsoft.AspNetCore.Components.Forms.ValidationStateChangedEventArgs! diff --git a/src/Components/Ignitor/src/PublicAPI.Shipped.txt b/src/Components/Ignitor/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/Ignitor/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/Ignitor/src/PublicAPI.Unshipped.txt b/src/Components/Ignitor/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..a755bf1e0395 --- /dev/null +++ b/src/Components/Ignitor/src/PublicAPI.Unshipped.txt @@ -0,0 +1,193 @@ +#nullable enable +Ignitor.ArrayBuilderSegment +Ignitor.ArrayBuilderSegment.Array.get -> T[]! +Ignitor.ArrayBuilderSegment.Count.get -> int +Ignitor.ArrayBuilderSegment.Offset.get -> int +Ignitor.ArrayBuilderSegment.this[int index].get -> T +Ignitor.ArrayRange +Ignitor.ArrayRange.Clone() -> Ignitor.ArrayRange +Ignitor.BlazorClient +Ignitor.BlazorClient.BlazorClient() -> void +Ignitor.BlazorClient.Cancel() -> void +Ignitor.BlazorClient.CaptureOperations.get -> bool +Ignitor.BlazorClient.CaptureOperations.set -> void +Ignitor.BlazorClient.CircuitId.get -> string? +Ignitor.BlazorClient.ClickAsync(string! elementId, bool expectRenderBatch = true) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.ConfirmBatch(int batchId, string? error = null) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.ConfirmRenderBatch.get -> bool +Ignitor.BlazorClient.ConfirmRenderBatch.set -> void +Ignitor.BlazorClient.ConnectAsync(System.Uri! uri, bool connectAutomatically = true, System.Action? configure = null) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.DefaultConnectionTimeout.get -> System.TimeSpan? +Ignitor.BlazorClient.DefaultConnectionTimeout.set -> void +Ignitor.BlazorClient.DefaultOperationTimeout.get -> System.TimeSpan? +Ignitor.BlazorClient.DefaultOperationTimeout.set -> void +Ignitor.BlazorClient.DisposeAsync() -> System.Threading.Tasks.ValueTask +Ignitor.BlazorClient.DotNetInteropCompletion -> System.Action? +Ignitor.BlazorClient.ExpectCircuitError(System.Func! action, System.TimeSpan? timeout = null) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.ExpectCircuitErrorAndDisconnect(System.Func! action, System.TimeSpan? timeout = null) -> System.Threading.Tasks.Task<(string? error, System.Exception? exception)>! +Ignitor.BlazorClient.ExpectDisconnect(System.Func! action, System.TimeSpan? timeout = null) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.ExpectDotNetInterop(System.Func! action, System.TimeSpan? timeout = null) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.ExpectJSInterop(System.Func! action, System.TimeSpan? timeout = null) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.ExpectRenderBatch(System.Func! action, System.TimeSpan? timeout = null) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.FindElementById(string! id) -> Ignitor.ElementNode! +Ignitor.BlazorClient.FormatError.get -> System.Func? +Ignitor.BlazorClient.FormatError.set -> void +Ignitor.BlazorClient.GetPrerenderDescriptors(System.Uri! uri) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.Hive.get -> Ignitor.ElementHive! +Ignitor.BlazorClient.HubConnection.get -> Microsoft.AspNetCore.SignalR.Client.HubConnection! +Ignitor.BlazorClient.ImplicitWait.get -> bool +Ignitor.BlazorClient.InvokeDotNetMethod(object! callId, string! assemblyName, string! methodIdentifier, object! dotNetObjectId, string! argsJson) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.JSInterop -> System.Action? +Ignitor.BlazorClient.LoggerProvider.get -> Microsoft.Extensions.Logging.ILoggerProvider! +Ignitor.BlazorClient.LoggerProvider.set -> void +Ignitor.BlazorClient.OnCircuitError -> System.Action? +Ignitor.BlazorClient.Operations.get -> Ignitor.Operations! +Ignitor.BlazorClient.PrepareForNextBatch(System.TimeSpan? timeout) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.PrepareForNextCircuitError(System.TimeSpan? timeout) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.PrepareForNextDisconnect(System.TimeSpan? timeout) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.PrepareForNextDotNetInterop(System.TimeSpan? timeout) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.PrepareForNextJSInterop(System.TimeSpan? timeout) -> System.Threading.Tasks.Task! +Ignitor.BlazorClient.RenderBatchReceived -> System.Action? +Ignitor.BlazorClient.SelectAsync(string! elementId, string! value) -> System.Threading.Tasks.Task! +Ignitor.CapturedAttachComponentCall +Ignitor.CapturedAttachComponentCall.ComponentId.get -> int +Ignitor.CapturedJSInteropCall +Ignitor.CapturedJSInteropCall.AsyncHandle.get -> int +Ignitor.CapturedJSInteropCall.ResultType.get -> int +Ignitor.CapturedJSInteropCall.TargetInstanceId.get -> long +Ignitor.CapturedRenderBatch +Ignitor.CapturedRenderBatch.Id.get -> int +Ignitor.ComponentNode +Ignitor.ComponentNode.ComponentId.get -> int +Ignitor.ComponentNode.ComponentNode(int componentId) -> void +Ignitor.ComponentState +Ignitor.ComponentState.Component.get -> Ignitor.IComponent? +Ignitor.ComponentState.ComponentId.get -> int +Ignitor.ComponentState.ComponentState(int componentId) -> void +Ignitor.ContainerNode +Ignitor.ContainerNode.Children.get -> System.Collections.Generic.IReadOnlyList! +Ignitor.ContainerNode.ContainerNode() -> void +Ignitor.ContainerNode.CreateAndInsertComponent(int componentId, int childIndex) -> Ignitor.ComponentNode! +Ignitor.ContainerNode.CreateAndInsertContainer(int childIndex) -> Ignitor.ContainerNode! +Ignitor.ContainerNode.InsertLogicalChild(Ignitor.Node! child, int childIndex) -> void +Ignitor.ContainerNode.RemoveLogicalChild(int childIndex) -> void +Ignitor.ElementHive +Ignitor.ElementHive.Components.get -> System.Collections.Generic.Dictionary! +Ignitor.ElementHive.ElementHive() -> void +Ignitor.ElementHive.SerializedValue.get -> string! +Ignitor.ElementHive.TryFindElementById(string! id, out Ignitor.ElementNode? element) -> bool +Ignitor.ElementHive.Update(Ignitor.RenderBatch batch) -> void +Ignitor.ElementNode +Ignitor.ElementNode.Attributes.get -> System.Collections.Generic.IReadOnlyDictionary! +Ignitor.ElementNode.ClickAsync(Microsoft.AspNetCore.SignalR.Client.HubConnection! connection) -> System.Threading.Tasks.Task! +Ignitor.ElementNode.ElementEventDescriptor +Ignitor.ElementNode.ElementEventDescriptor.ElementEventDescriptor(string! eventName, ulong eventId) -> void +Ignitor.ElementNode.ElementEventDescriptor.EventId.get -> ulong +Ignitor.ElementNode.ElementEventDescriptor.EventName.get -> string! +Ignitor.ElementNode.ElementNode(string! tagName) -> void +Ignitor.ElementNode.Events.get -> System.Collections.Generic.IReadOnlyDictionary! +Ignitor.ElementNode.Properties.get -> System.Collections.Generic.IReadOnlyDictionary! +Ignitor.ElementNode.RemoveAttribute(string! key) -> void +Ignitor.ElementNode.SetAttribute(string! key, object! value) -> void +Ignitor.ElementNode.SetEvent(string! eventName, Ignitor.ElementNode.ElementEventDescriptor! descriptor) -> void +Ignitor.ElementNode.SetProperty(string! key, object! value) -> void +Ignitor.ElementNode.TagName.get -> string! +Ignitor.ElementReference +Ignitor.Error +Ignitor.Error.Error() -> void +Ignitor.Error.Stack.get -> string? +Ignitor.Error.Stack.set -> void +Ignitor.IComponent +Ignitor.IgnitorMessagePackHubProtocol +Ignitor.IgnitorMessagePackHubProtocol.IgnitorMessagePackHubProtocol() -> void +Ignitor.MarkupNode +Ignitor.Node +Ignitor.Node.Node() -> void +Ignitor.Node.SerializedValue.get -> string! +Ignitor.Operations +Ignitor.Operations.AttachComponent.get -> System.Collections.Concurrent.ConcurrentQueue! +Ignitor.Operations.Batches.get -> System.Collections.Concurrent.ConcurrentQueue! +Ignitor.Operations.DotNetCompletions.get -> System.Collections.Concurrent.ConcurrentQueue! +Ignitor.Operations.Errors.get -> System.Collections.Concurrent.ConcurrentQueue! +Ignitor.Operations.JSInteropCalls.get -> System.Collections.Concurrent.ConcurrentQueue! +Ignitor.Operations.Operations() -> void +Ignitor.RenderBatch +Ignitor.RenderBatch.DisposedComponentIDs.get -> Ignitor.ArrayRange +Ignitor.RenderBatch.DisposedEventHandlerIDs.get -> Ignitor.ArrayRange +Ignitor.RenderBatch.ReferenceFrames.get -> Ignitor.ArrayRange +Ignitor.RenderBatch.UpdatedComponents.get -> Ignitor.ArrayRange +Ignitor.RenderBatchReader +Ignitor.RenderTreeDiff +Ignitor.RenderTreeEdit +Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.PermutationListEnd = 10 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.PermutationListEntry = 9 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.PrependFrame = 1 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.RemoveAttribute = 4 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.RemoveFrame = 2 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.SetAttribute = 3 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.StepIn = 6 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.StepOut = 7 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.UpdateMarkup = 8 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeEditType.UpdateText = 5 -> Ignitor.RenderTreeEditType +Ignitor.RenderTreeFrame +Ignitor.RenderTreeFrame.AttributeEventHandlerId.get -> ulong +Ignitor.RenderTreeFrame.ComponentId.get -> int +Ignitor.RenderTreeFrame.ComponentReferenceCaptureParentFrameIndex.get -> int +Ignitor.RenderTreeFrame.ComponentSubtreeLength.get -> int +Ignitor.RenderTreeFrame.ElementSubtreeLength.get -> int +Ignitor.RenderTreeFrame.FrameType.get -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrame.RegionSubtreeLength.get -> int +Ignitor.RenderTreeFrame.Sequence.get -> int +Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.Attribute = 3 -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.Component = 4 -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.ComponentReferenceCapture = 7 -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.Element = 1 -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.ElementReferenceCapture = 6 -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.Markup = 8 -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.None = 0 -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.Region = 5 -> Ignitor.RenderTreeFrameType +Ignitor.RenderTreeFrameType.Text = 2 -> Ignitor.RenderTreeFrameType +Ignitor.TextNode +readonly Ignitor.ArrayRange.Count -> int +readonly Ignitor.RenderTreeDiff.ComponentId -> int +readonly Ignitor.RenderTreeDiff.Edits -> Ignitor.ArrayBuilderSegment +readonly Ignitor.RenderTreeEdit.MoveToSiblingIndex -> int +readonly Ignitor.RenderTreeEdit.ReferenceFrameIndex -> int +readonly Ignitor.RenderTreeEdit.SiblingIndex -> int +readonly Ignitor.RenderTreeEdit.Type -> Ignitor.RenderTreeEditType +static Ignitor.RenderBatchReader.Read(System.ReadOnlySpan data) -> Ignitor.RenderBatch +virtual Ignitor.Node.Parent.get -> Ignitor.ContainerNode? +virtual Ignitor.Node.Parent.set -> void +~Ignitor.ArrayRange.ArrayRange(T[] array, int count) -> void +~Ignitor.CapturedAttachComponentCall.CapturedAttachComponentCall(int componentId, string selector) -> void +~Ignitor.CapturedAttachComponentCall.Selector.get -> string +~Ignitor.CapturedJSInteropCall.ArgsJson.get -> string +~Ignitor.CapturedJSInteropCall.CapturedJSInteropCall(int asyncHandle, string identifier, string argsJson, int resultType, long targetInstanceId) -> void +~Ignitor.CapturedJSInteropCall.Identifier.get -> string +~Ignitor.CapturedRenderBatch.CapturedRenderBatch(int id, byte[] data) -> void +~Ignitor.CapturedRenderBatch.Data.get -> byte[] +~Ignitor.ElementReference.ElementReference(string id) -> void +~Ignitor.ElementReference.Id.get -> string +~Ignitor.MarkupNode.MarkupContent.get -> string +~Ignitor.MarkupNode.MarkupNode(string markupContent) -> void +~Ignitor.RenderTreeFrame.AttributeEventUpdatesAttributeName.get -> string +~Ignitor.RenderTreeFrame.AttributeName.get -> string +~Ignitor.RenderTreeFrame.AttributeValue.get -> object +~Ignitor.RenderTreeFrame.Component.get -> Ignitor.IComponent +~Ignitor.RenderTreeFrame.ComponentKey.get -> object +~Ignitor.RenderTreeFrame.ComponentReferenceCaptureAction.get -> System.Action +~Ignitor.RenderTreeFrame.ComponentType.get -> System.Type +~Ignitor.RenderTreeFrame.ElementKey.get -> object +~Ignitor.RenderTreeFrame.ElementName.get -> string +~Ignitor.RenderTreeFrame.ElementReferenceCaptureAction.get -> System.Action +~Ignitor.RenderTreeFrame.ElementReferenceCaptureId.get -> string +~Ignitor.RenderTreeFrame.MarkupContent.get -> string +~Ignitor.RenderTreeFrame.TextContent.get -> string +~Ignitor.TextNode.TextContent.get -> string +~Ignitor.TextNode.TextContent.set -> void +~Ignitor.TextNode.TextNode(string text) -> void +~override Ignitor.RenderTreeFrame.ToString() -> string +~readonly Ignitor.ArrayRange.Array -> T[] +~readonly Ignitor.RenderTreeEdit.RemovedAttributeName -> string diff --git a/src/Components/ProtectedBrowserStorage/src/Microsoft.AspNetCore.Components.ProtectedBrowserStorage.csproj b/src/Components/ProtectedBrowserStorage/src/Microsoft.AspNetCore.Components.ProtectedBrowserStorage.csproj deleted file mode 100644 index 47d821394fc0..000000000000 --- a/src/Components/ProtectedBrowserStorage/src/Microsoft.AspNetCore.Components.ProtectedBrowserStorage.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - $(DefaultNetCoreTargetFramework) - Provides functionality for storing protected data using the browser's localStorage and sessionStorage APIs. - true - enable - - - - - - - - - - - - - diff --git a/src/Components/ProtectedBrowserStorage/src/Properties/AssemblyInfo.cs b/src/Components/ProtectedBrowserStorage/src/Properties/AssemblyInfo.cs deleted file mode 100644 index 6c858dd3970c..000000000000 --- a/src/Components/ProtectedBrowserStorage/src/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Runtime.CompilerServices; -using System.Runtime.Versioning; - -[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")] diff --git a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorageServiceCollectionExtensions.cs b/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorageServiceCollectionExtensions.cs deleted file mode 100644 index 8fd43a6ed847..000000000000 --- a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorageServiceCollectionExtensions.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) .NET Foundation. All rights reserved. -// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. - -using Microsoft.AspNetCore.Components.ProtectedBrowserStorage; - -namespace Microsoft.Extensions.DependencyInjection -{ - /// - /// Extension methods for registering Protected Browser Storage services. - /// - public static class ProtectedBrowserStorageServiceCollectionExtensions - { - /// - /// Adds services for protected browser storage to the specified . - /// - /// The . - public static void AddProtectedBrowserStorage(this IServiceCollection services) - { - services.AddDataProtection(); - services.AddScoped(); - services.AddScoped(); - } - } -} diff --git a/src/Components/ProtectedBrowserStorage/src/PublicAPI.Shipped.txt b/src/Components/ProtectedBrowserStorage/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/ProtectedBrowserStorage/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/ProtectedBrowserStorage/src/PublicAPI.Unshipped.txt b/src/Components/ProtectedBrowserStorage/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..4e019a246088 --- /dev/null +++ b/src/Components/ProtectedBrowserStorage/src/PublicAPI.Unshipped.txt @@ -0,0 +1,17 @@ +#nullable enable +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorage +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorage.DeleteAsync(string! key) -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorage.GetAsync(string! key) -> System.Threading.Tasks.ValueTask> +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorage.GetAsync(string! purpose, string! key) -> System.Threading.Tasks.ValueTask> +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorage.ProtectedBrowserStorage(string! storeName, Microsoft.JSInterop.IJSRuntime! jsRuntime, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider! dataProtectionProvider) -> void +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorage.SetAsync(string! key, object! value) -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorage.SetAsync(string! purpose, string! key, object! value) -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorageResult +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorageResult.Success.get -> bool +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedBrowserStorageResult.Value.get -> T +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedLocalStorage +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedLocalStorage.ProtectedLocalStorage(Microsoft.JSInterop.IJSRuntime! jsRuntime, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider! dataProtectionProvider) -> void +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedSessionStorage +Microsoft.AspNetCore.Components.ProtectedBrowserStorage.ProtectedSessionStorage.ProtectedSessionStorage(Microsoft.JSInterop.IJSRuntime! jsRuntime, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider! dataProtectionProvider) -> void +Microsoft.Extensions.DependencyInjection.ProtectedBrowserStorageServiceCollectionExtensions +static Microsoft.Extensions.DependencyInjection.ProtectedBrowserStorageServiceCollectionExtensions.AddProtectedBrowserStorage(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> void diff --git a/src/Components/ProtectedBrowserStorage/test/Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests.csproj b/src/Components/ProtectedBrowserStorage/test/Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests.csproj deleted file mode 100644 index 04c21cbd137c..000000000000 --- a/src/Components/ProtectedBrowserStorage/test/Microsoft.AspNetCore.Components.ProtectedBrowserStorage.Tests.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - $(DefaultNetCoreTargetFramework) - - - - - - - - - - - - - - diff --git a/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs b/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs index d3868d082b07..f87dc1392852 100644 --- a/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs +++ b/src/Components/Server/src/DependencyInjection/ComponentServiceCollectionExtensions.cs @@ -9,6 +9,7 @@ using Microsoft.AspNetCore.Components.Server; using Microsoft.AspNetCore.Components.Server.BlazorPack; using Microsoft.AspNetCore.Components.Server.Circuits; +using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage; using Microsoft.AspNetCore.SignalR.Protocol; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; @@ -33,6 +34,9 @@ public static IServerSideBlazorBuilder AddServerSideBlazor(this IServiceCollecti services.AddDataProtection(); + services.TryAddScoped(); + services.TryAddScoped(); + // This call INTENTIONALLY uses the AddHubOptions on the SignalR builder, because it will merge // the global HubOptions before running the configure callback. We want to ensure that happens // once. Our AddHubOptions method doesn't do this. diff --git a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorage.cs b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedBrowserStorage.cs similarity index 95% rename from src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorage.cs rename to src/Components/Server/src/ProtectedBrowserStorage/ProtectedBrowserStorage.cs index 565d32574b3c..4445265fffa8 100644 --- a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorage.cs +++ b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedBrowserStorage.cs @@ -4,19 +4,17 @@ using System; using System.Collections.Concurrent; using System.Runtime.InteropServices; -using System.Runtime.Versioning; using System.Text.Json; using System.Threading.Tasks; using Microsoft.AspNetCore.DataProtection; using Microsoft.JSInterop; -namespace Microsoft.AspNetCore.Components.ProtectedBrowserStorage +namespace Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage { /// /// Provides mechanisms for storing and retrieving data in the browser storage. /// - [UnsupportedOSPlatform("browser")] public abstract class ProtectedBrowserStorage { private readonly string _storeName; @@ -31,7 +29,7 @@ private readonly ConcurrentDictionary _cachedDataProtect /// The name of the store in which the data should be stored. /// The . /// The . - protected ProtectedBrowserStorage(string storeName, IJSRuntime jsRuntime, IDataProtectionProvider dataProtectionProvider) + private protected ProtectedBrowserStorage(string storeName, IJSRuntime jsRuntime, IDataProtectionProvider dataProtectionProvider) { // Performing data protection on the client would give users a false sense of security, so we'll prevent this. if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("BROWSER"))) @@ -155,8 +153,8 @@ private TValue Unprotect(string purpose, string protectedJson) private ValueTask SetProtectedJsonAsync(string key, string protectedJson) => _jsRuntime.InvokeVoidAsync($"{_storeName}.setItem", key, protectedJson); - private ValueTask GetProtectedJsonAsync(string key) - => _jsRuntime.InvokeAsync($"{_storeName}.getItem", key); + private ValueTask GetProtectedJsonAsync(string key) + => _jsRuntime.InvokeAsync($"{_storeName}.getItem", key); // IDataProtect isn't disposable, so we're fine holding these indefinitely. // Only a bounded number of them will be created, as the 'key' values should diff --git a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorageResult.cs b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedBrowserStorageResult.cs similarity index 65% rename from src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorageResult.cs rename to src/Components/Server/src/ProtectedBrowserStorage/ProtectedBrowserStorageResult.cs index 7fa193231f26..26abda605c8d 100644 --- a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedBrowserStorageResult.cs +++ b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedBrowserStorageResult.cs @@ -1,14 +1,12 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System.Diagnostics.CodeAnalysis; - -namespace Microsoft.AspNetCore.Components.ProtectedBrowserStorage +namespace Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage { /// /// Contains the result of a protected browser storage operation. /// - public readonly struct ProtectedBrowserStorageResult + public readonly struct ProtectedBrowserStorageResult { /// /// Gets whether the operation succeeded. @@ -18,11 +16,9 @@ public readonly struct ProtectedBrowserStorageResult /// /// Gets the result value of the operation. /// - [MaybeNull] - [AllowNull] - public T Value { get; } + public TValue? Value { get; } - internal ProtectedBrowserStorageResult(bool success, [AllowNull] T value) + internal ProtectedBrowserStorageResult(bool success, TValue? value) { Success = success; Value = value; diff --git a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs similarity index 84% rename from src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs rename to src/Components/Server/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs index badaaaea9560..0d606b541915 100644 --- a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs +++ b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedLocalStorage.cs @@ -1,11 +1,10 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System.Runtime.Versioning; using Microsoft.AspNetCore.DataProtection; using Microsoft.JSInterop; -namespace Microsoft.AspNetCore.Components.ProtectedBrowserStorage +namespace Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage { /// /// Provides mechanisms for storing and retrieving data in the browser's @@ -16,8 +15,7 @@ namespace Microsoft.AspNetCore.Components.ProtectedBrowserStorage /// /// See: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage /// - [UnsupportedOSPlatform("browser")] - public class ProtectedLocalStorage : ProtectedBrowserStorage + public sealed class ProtectedLocalStorage : ProtectedBrowserStorage { /// /// Constructs an instance of . diff --git a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs similarity index 85% rename from src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs rename to src/Components/Server/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs index 35fb9d7ea44d..274179f70f4d 100644 --- a/src/Components/ProtectedBrowserStorage/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs +++ b/src/Components/Server/src/ProtectedBrowserStorage/ProtectedSessionStorage.cs @@ -1,11 +1,10 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using System.Runtime.Versioning; using Microsoft.AspNetCore.DataProtection; using Microsoft.JSInterop; -namespace Microsoft.AspNetCore.Components.ProtectedBrowserStorage +namespace Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage { /// /// Provides mechanisms for storing and retrieving data in the browser's @@ -16,8 +15,7 @@ namespace Microsoft.AspNetCore.Components.ProtectedBrowserStorage /// /// See: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage /// - [UnsupportedOSPlatform("browser")] - public class ProtectedSessionStorage : ProtectedBrowserStorage + public sealed class ProtectedSessionStorage : ProtectedBrowserStorage { /// /// Constructs an instance of . diff --git a/src/Components/Server/src/PublicAPI.Shipped.txt b/src/Components/Server/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/Server/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/Server/src/PublicAPI.Unshipped.txt b/src/Components/Server/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..fb14baf6f43c --- /dev/null +++ b/src/Components/Server/src/PublicAPI.Unshipped.txt @@ -0,0 +1,44 @@ +Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder +Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder.Add(System.Action! convention) -> void +Microsoft.AspNetCore.Builder.ComponentEndpointRouteBuilderExtensions +Microsoft.AspNetCore.Components.Server.CircuitOptions +Microsoft.AspNetCore.Components.Server.CircuitOptions.CircuitOptions() -> void +Microsoft.AspNetCore.Components.Server.CircuitOptions.DetailedErrors.get -> bool +Microsoft.AspNetCore.Components.Server.CircuitOptions.DetailedErrors.set -> void +Microsoft.AspNetCore.Components.Server.CircuitOptions.DisconnectedCircuitMaxRetained.get -> int +Microsoft.AspNetCore.Components.Server.CircuitOptions.DisconnectedCircuitMaxRetained.set -> void +Microsoft.AspNetCore.Components.Server.CircuitOptions.DisconnectedCircuitRetentionPeriod.get -> System.TimeSpan +Microsoft.AspNetCore.Components.Server.CircuitOptions.DisconnectedCircuitRetentionPeriod.set -> void +Microsoft.AspNetCore.Components.Server.CircuitOptions.JSInteropDefaultCallTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.Components.Server.CircuitOptions.JSInteropDefaultCallTimeout.set -> void +Microsoft.AspNetCore.Components.Server.CircuitOptions.MaxBufferedUnacknowledgedRenderBatches.get -> int +Microsoft.AspNetCore.Components.Server.CircuitOptions.MaxBufferedUnacknowledgedRenderBatches.set -> void +Microsoft.AspNetCore.Components.Server.Circuits.Circuit +Microsoft.AspNetCore.Components.Server.Circuits.Circuit.Id.get -> string! +Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler +Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler.CircuitHandler() -> void +Microsoft.AspNetCore.Components.Server.RevalidatingServerAuthenticationStateProvider +Microsoft.AspNetCore.Components.Server.RevalidatingServerAuthenticationStateProvider.RevalidatingServerAuthenticationStateProvider(Microsoft.Extensions.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider +Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider.ServerAuthenticationStateProvider() -> void +Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider.SetAuthenticationState(System.Threading.Tasks.Task! authenticationStateTask) -> void +Microsoft.Extensions.DependencyInjection.ComponentServiceCollectionExtensions +Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder +Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +Microsoft.Extensions.DependencyInjection.ServerSideBlazorBuilderExtensions +abstract Microsoft.AspNetCore.Components.Server.RevalidatingServerAuthenticationStateProvider.RevalidationInterval.get -> System.TimeSpan +abstract Microsoft.AspNetCore.Components.Server.RevalidatingServerAuthenticationStateProvider.ValidateAuthenticationStateAsync(Microsoft.AspNetCore.Components.Authorization.AuthenticationState! authenticationState, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.Components.Server.ServerAuthenticationStateProvider.GetAuthenticationStateAsync() -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Builder.ComponentEndpointRouteBuilderExtensions.MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints) -> Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.ComponentEndpointRouteBuilderExtensions.MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, System.Action! configureOptions) -> Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.ComponentEndpointRouteBuilderExtensions.MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! path) -> Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.ComponentEndpointRouteBuilderExtensions.MapBlazorHub(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! path, System.Action! configureOptions) -> Microsoft.AspNetCore.Builder.ComponentEndpointConventionBuilder! +static Microsoft.Extensions.DependencyInjection.ComponentServiceCollectionExtensions.AddServerSideBlazor(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action? configure = null) -> Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder! +static Microsoft.Extensions.DependencyInjection.ServerSideBlazorBuilderExtensions.AddCircuitOptions(this Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder! builder, System.Action! configure) -> Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder! +static Microsoft.Extensions.DependencyInjection.ServerSideBlazorBuilderExtensions.AddHubOptions(this Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder! builder, System.Action! configure) -> Microsoft.Extensions.DependencyInjection.IServerSideBlazorBuilder! +virtual Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler.OnCircuitClosedAsync(Microsoft.AspNetCore.Components.Server.Circuits.Circuit! circuit, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler.OnCircuitOpenedAsync(Microsoft.AspNetCore.Components.Server.Circuits.Circuit! circuit, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler.OnConnectionDownAsync(Microsoft.AspNetCore.Components.Server.Circuits.Circuit! circuit, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler.OnConnectionUpAsync(Microsoft.AspNetCore.Components.Server.Circuits.Circuit! circuit, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Components.Server.Circuits.CircuitHandler.Order.get -> int +virtual Microsoft.AspNetCore.Components.Server.RevalidatingServerAuthenticationStateProvider.Dispose(bool disposing) -> void \ No newline at end of file diff --git a/src/Components/ProtectedBrowserStorage/test/ProtectedBrowserStorageTest.cs b/src/Components/Server/test/ProtectedBrowserStorageTest.cs similarity index 99% rename from src/Components/ProtectedBrowserStorage/test/ProtectedBrowserStorageTest.cs rename to src/Components/Server/test/ProtectedBrowserStorageTest.cs index f5a752d9a3c0..3e5f8f4a582c 100644 --- a/src/Components/ProtectedBrowserStorage/test/ProtectedBrowserStorageTest.cs +++ b/src/Components/Server/test/ProtectedBrowserStorageTest.cs @@ -14,7 +14,7 @@ using Microsoft.JSInterop; using Xunit; -namespace Microsoft.AspNetCore.Components.ProtectedBrowserStorage +namespace Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage { public class ProtectedBrowserStorageTest { diff --git a/src/Components/Web.Extensions/src/PublicAPI.Shipped.txt b/src/Components/Web.Extensions/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/Web.Extensions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/Web.Extensions/src/PublicAPI.Unshipped.txt b/src/Components/Web.Extensions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..f95bb5366e08 --- /dev/null +++ b/src/Components/Web.Extensions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,18 @@ +#nullable enable +Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase +Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.Attributes.get -> System.Collections.Generic.IReadOnlyDictionary? +Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.Attributes.set -> void +Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.Dispose() -> void +Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.HeadTagBase() -> void +Microsoft.AspNetCore.Components.Web.Extensions.Head.Link +Microsoft.AspNetCore.Components.Web.Extensions.Head.Link.Link() -> void +Microsoft.AspNetCore.Components.Web.Extensions.Head.Meta +Microsoft.AspNetCore.Components.Web.Extensions.Head.Meta.Meta() -> void +Microsoft.AspNetCore.Components.Web.Extensions.Head.Title +Microsoft.AspNetCore.Components.Web.Extensions.Head.Title.Title() -> void +Microsoft.AspNetCore.Components.Web.Extensions.Head.Title.Value.get -> string! +Microsoft.AspNetCore.Components.Web.Extensions.Head.Title.Value.set -> void +abstract Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.TagName.get -> string! +override Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.OnAfterRenderAsync(bool firstRender) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.Components.Web.Extensions.Head.HeadTagBase.OnParametersSet() -> void diff --git a/src/Components/Web.JS/dist/Release/blazor.server.js b/src/Components/Web.JS/dist/Release/blazor.server.js index 57c2416673ec..2884e50021ec 100644 --- a/src/Components/Web.JS/dist/Release/blazor.server.js +++ b/src/Components/Web.JS/dist/Release/blazor.server.js @@ -5,7 +5,7 @@ * @author Feross Aboukhadijeh * @license MIT */ -var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(22),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var u,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},u=function(){window.Module=function(e,t,n){var u=this,l=e.bootConfig.resources,f=window.Module||{},h=["DEBUGGING ENABLED"];f.print=function(e){return h.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),c.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var d,b,m=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(d=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(u,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],d&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(d),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),m.forEach((function(e){return S(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return S(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(u,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*u+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return v(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function d(e){return e+12}function g(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function v(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),v()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),O(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,O(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(40).EventEmitter},function(e,t,n){"use strict";var r=n(23);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(23);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(41),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(42);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); +var r=n(54),o=n(55),i=n(56);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return H(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return T(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return R(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function u(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var f=!0,h=0;ho&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:u>223?3:u>191?2:1;if(o+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(i=e[o+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(c=(15&u)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&u)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),u=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return m(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return _(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function D(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function A(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function M(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function L(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function j(e,t,n,r,i){return i||L(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,i){return i||L(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||x(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||x(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||x(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||x(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||x(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||x(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||x(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||x(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||D(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):M(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);D(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):A(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):A(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):M(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||D(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):M(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return j(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return j(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function H(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(N,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function W(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(8))},function(e,t,n){"use strict";var r=n(14).Buffer,o=n(57),i=n(22),a=n(70),s=n(73),c=n(74);e.exports=function(e){var t=[],n=[];return{encode:c(t,(e=e||{forceFloat64:!1,compatibilityMode:!1,disableTimestampEncoding:!1}).forceFloat64,e.compatibilityMode,e.disableTimestampEncoding),decode:s(n),register:function(e,t,n,a){return o(t,"must have a constructor"),o(n,"must have an encode function"),o(e>=0,"must have a non-negative type"),o(a,"must have a decode function"),this.registerEncoder((function(e){return e instanceof t}),(function(t){var o=i(),a=r.allocUnsafe(1);return a.writeInt8(e,0),o.append(a),o.append(n(t)),o})),this.registerDecoder(e,a),this},registerEncoder:function(e,n){return o(e,"must have an encode function"),o(n,"must have an encode function"),t.push({check:e,encode:n}),this},registerDecoder:function(e,t){return o(e>=0,"must have a non-negative type"),o(t,"must have a decode function"),n.push({type:e,decode:t}),this},encoder:a.encoder,decoder:a.decoder,buffer:!0,type:"msgpack5",IncompleteBufferError:s.IncompleteBufferError}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),c=r.count(o),u=t.referenceFrames(),l=r.values(u),f=t.diffReader,h=0;h1)for(var n=1;n0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var u,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},u=function(){window.Module=function(e,t,n){var u=this,l=e.bootConfig.resources,f=window.Module||{},h=["DEBUGGING ENABLED"];f.print=function(e){return h.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),c.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var d,b,m=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(d=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(u,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,y(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],d&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(d),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),m.forEach((function(e){return S(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return S(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(u,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return h(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*u+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return h(e+(t||0))},readStringField:function(e,t,n){var r,o=h(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return v(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function d(e){return e+12}function g(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function y(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function v(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),v()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]this.length)&&(r=this.length),n>=this.length)return e||i.alloc(0);if(r<=0)return e||i.alloc(0);var o,a,s=!!e,c=this._offset(n),u=r-n,l=u,f=s&&t||0,h=c[1];if(0===n&&r==this.length){if(!s)return 1===this._bufs.length?this._bufs[0]:i.concat(this._bufs,this.length);for(a=0;a(o=this._bufs[a].length-h))){this._bufs[a].copy(e,f,h,h+l);break}this._bufs[a].copy(e,f,h),f+=o,l-=o,h&&(h=0)}return e},a.prototype.shallowSlice=function(e,t){e=e||0,t=t||this.length,e<0&&(e+=this.length),t<0&&(t+=this.length);var n=this._offset(e),r=this._offset(t),o=this._bufs.slice(n[0],r[0]+1);return 0==r[1]?o.pop():o[o.length-1]=o[o.length-1].slice(0,r[1]),0!=n[1]&&(o[0]=o[0].slice(n[1])),new a(o)},a.prototype.toString=function(e,t,n){return this.slice(t,n).toString(e)},a.prototype.consume=function(e){for(;this._bufs.length;){if(!(e>=this._bufs[0].length)){this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift()}return this},a.prototype.duplicate=function(){for(var e=0,t=new a;e0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=u(t),c=u(n);function u(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:c}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,c=e.parameterValues,u=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(u){var l=a(u,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t,prerenderId:u,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:c&&atob(c),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var c=a(s,n);if(!c)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:c}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var c=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),c=r[n];n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),d(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=c),l(r,e,r.depth)}function c(e,t){var n=s.styles[t];return n?"["+s.colors[n][0]+"m"+e+"["+s.colors[n][1]+"m":e}function u(e,t){return e}function l(e,n,r){if(e.customInspect&&n&&_(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return v(o)||(o=l(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(d(t))return e.stylize(""+t,"boolean");if(g(t))return e.stylize("null","null")}(e,n);if(i)return i;var a=Object.keys(n),s=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),S(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return f(n);if(0===a.length){if(_(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(m(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(E(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var u,w="",I=!1,C=["{","}"];(p(n)&&(I=!0,C=["[","]"]),_(n))&&(w=" [Function"+(n.name?": "+n.name:"")+"]");return m(n)&&(w=" "+RegExp.prototype.toString.call(n)),E(n)&&(w=" "+Date.prototype.toUTCString.call(n)),S(n)&&(w=" "+f(n)),0!==a.length||I&&0!=n.length?r<0?m(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=I?function(e,t,n,r,o){for(var i=[],a=0,s=t.length;a=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,w,C)):C[0]+w+C[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),P(r,o)||(a="["+o+"]"),s||(e.seen.indexOf(c.value)<0?(s=g(n)?l(e,c.value,null):l(e,c.value,n-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+s.split("\n").map((function(e){return" "+e})).join("\n")):s=e.stylize("[Circular]","special")),b(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function p(e){return Array.isArray(e)}function d(e){return"boolean"==typeof e}function g(e){return null===e}function y(e){return"number"==typeof e}function v(e){return"string"==typeof e}function b(e){return void 0===e}function m(e){return w(e)&&"[object RegExp]"===I(e)}function w(e){return"object"==typeof e&&null!==e}function E(e){return w(e)&&"[object Date]"===I(e)}function S(e){return w(e)&&("[object Error]"===I(e)||e instanceof Error)}function _(e){return"function"==typeof e}function I(e){return Object.prototype.toString.call(e)}function C(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(n){if(b(i)&&(i=e.env.NODE_DEBUG||""),n=n.toUpperCase(),!a[n])if(new RegExp("\\b"+n+"\\b","i").test(i)){var r=e.pid;a[n]=function(){var e=t.format.apply(t,arguments);console.error("%s %d: %s",n,r,e)}}else a[n]=function(){};return a[n]},t.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=p,t.isBoolean=d,t.isNull=g,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=v,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=m,t.isObject=w,t.isDate=E,t.isError=S,t.isFunction=_,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(59);var k=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function T(){var e=new Date,t=[C(e.getHours()),C(e.getMinutes()),C(e.getSeconds())].join(":");return[e.getDate(),k[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",T(),t.format.apply(t,arguments))},t.inherits=n(60),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var O="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function R(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(O&&e[O]){var t;if("function"!=typeof(t=e[O]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,O,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):E(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?E(e,a,t,!1):C(e,a)):E(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function _(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(p("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(I,e):I(e))}function I(e){p("emit readable"),e.emit("readable"),O(e)}function C(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;ei.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function x(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function A(e,t){for(var n=0,r=e.length;n=t.highWaterMark||t.ended))return p("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?x(this):_(this),null;if(0===(e=S(e,t))&&t.ended)return 0===t.length&&x(this),null;var r,o=t.needReadable;return p("need readable",o),(0===t.length||t.length-e0?R(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&x(this)),null!==r&&this.emit("data",r),r},m.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},m.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,p("pipe count=%d opts=%j",i.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:m;function u(t,r){p("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,p("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",f),e.removeListener("error",y),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",m),n.removeListener("data",g),h=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){p("onend"),e.end()}i.endEmitted?o.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;p("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,O(e))}}(n);e.on("drain",f);var h=!1;var d=!1;function g(t){p("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==A(i.pipes,e))&&!h&&(p("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function y(t){p("onerror",t),m(),e.removeListener("error",y),0===s(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),m()}function b(){p("onfinish"),e.removeListener("close",v),m()}function m(){p("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",y),e.once("close",v),e.once("finish",b),e.emit("pipe",n),i.flowing||(p("pipe resume"),n.resume()),e},m.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=h.bind(r);return o.listener=n,r.wrapFn=o,o}function d(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=o[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var u=c.length,l=y(c,u);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return d(this,e,!0)},s.prototype.rawListeners=function(e){return d(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){e.exports=n(40).EventEmitter},function(e,t,n){"use strict";var r=n(23);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";var r=n(66).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,o){var i=n(23);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=b;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;b.WritableState=v;var u=n(19);u.inherits=n(15);var l={deprecate:n(69)},f=n(41),h=n(14).Buffer,p=o.Uint8Array||function(){};var d,g=n(42);function y(){}function v(e,t){s=s||n(9),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(I,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),I(e,t))}(e,n,r,t,o);else{var a=S(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||E(e,n),r?c(w,e,n,a,o):w(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function b(e){if(s=s||n(9),!(d.call(b,this)||this instanceof s))return new b(e);this._writableState=new v(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function m(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function w(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),I(e,t)}function E(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,c=!0;n;)o[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;o.allBuffers=c,m(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(m(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function _(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),I(e,t)}))}function I(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(_,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(b,f),v.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(v.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(b,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===b&&(e&&e._writableState instanceof v)}})):d=function(e){return e instanceof this},b.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},b.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,h.isBuffer(r)||r instanceof p);return s&&!h.isBuffer(e)&&(e=function(e){return h.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=y),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=h.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(b.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),b.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},b.prototype._writev=null,b.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,I(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),b.prototype.destroy=g.destroy,b.prototype._undestroy=g.undestroy,b.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(13),n(67).setImmediate,n(8))},function(e,t,n){"use strict";e.exports=a;var r=n(9),o=n(19);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.lengths?a.slice(s).buffer:null}else{var c,u=t;if(-1===(c=u.indexOf(r.a.RecordSeparator)))throw new Error("Message is incomplete.");s=c+1;n=u.substring(0,s),i=u.length>s?u.substring(s):null}var l=r.a.parse(n),f=JSON.parse(l[0]);if(f.type)throw new Error("Expected a handshake response from the server.");return[i,f]},t}()}).call(this,n(10).Buffer)},,,,,,,function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a},a=this&&this.__spread||function(){for(var e=[],t=0;t0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,c[l++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,c=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-u;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=u}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,c,u=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+f>=1?h/c:h*Math.pow(2,1-f))*c>=2&&(a++,c/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*c-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=d,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=d,a/=256,u-=8);e[n+p-d]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";(function(t){var r=n(58); /*! * The buffer module from node.js, for the browser. * diff --git a/src/Components/Web.JS/dist/Release/blazor.webassembly.js b/src/Components/Web.JS/dist/Release/blazor.webassembly.js index 4536b800bb05..a0b804d17cb5 100644 --- a/src/Components/Web.JS/dist/Release/blazor.webassembly.js +++ b/src/Components/Web.JS/dist/Release/blazor.webassembly.js @@ -1 +1 @@ -!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=47)}([,,,function(e,t,n){"use strict";var r;n.r(t),n.d(t,"DotNet",(function(){return r})),function(e){var t;window.DotNet=e;var n=[],r=function(){function e(e){this._jsObject=e,this._cachedFunctions=new Map}return e.prototype.findFunction=function(e){var t=this._cachedFunctions.get(e);if(t)return t;var n,r=this._jsObject;if(e.split(".").forEach((function(t){if(!(t in r))throw new Error("Could not find '"+e+"' ('"+t+"' was undefined).");n=r,r=r[t]})),r instanceof Function)return r=r.bind(n),this._cachedFunctions.set(e,r),r;throw new Error("The value '"+e+"' is not a function.")},e.prototype.getWrappedObject=function(){return this._jsObject},e}(),o={},i=((t={})[0]=new r(window),t);i[0]._cachedFunctions.set("import",(function(e){return"string"==typeof e&&e.startsWith("./")&&(e=document.baseURI+e.substr(2)),import(e)}));var a,s=1,u=1,c=null;function l(e){n.push(e)}function f(e){var t;if(e&&"object"==typeof e){i[u]=new r(e);var n=((t={}).__jsObjectId=u,t);return u++,n}throw new Error("Cannot create a JSObjectReference from the value '"+e+"'.")}function d(e){return e?JSON.parse(e,(function(e,t){return n.reduce((function(t,n){return n(e,t)}),t)})):null}function p(e,t,n,r){var o=m();if(o.invokeDotNetFromJS){var i=JSON.stringify(r,_),a=o.invokeDotNetFromJS(e,t,n,i);return a?d(a):null}throw new Error("The current dispatcher does not support synchronous calls from JS to .NET. Use invokeMethodAsync instead.")}function h(e,t,n,r){if(e&&n)throw new Error("For instance method calls, assemblyName should be null. Received '"+e+"'.");var i=s++,a=new Promise((function(e,t){o[i]={resolve:e,reject:t}}));try{var u=JSON.stringify(r,_);m().beginInvokeDotNetFromJS(i,e,t,n,u)}catch(e){v(i,!1,e)}return a}function m(){if(null!==c)return c;throw new Error("No .NET call dispatcher has been set.")}function v(e,t,n){if(!o.hasOwnProperty(e))throw new Error("There is no pending async call with ID "+e+".");var r=o[e];delete o[e],t?r.resolve(n):r.reject(n)}function y(e){return e instanceof Error?e.message+"\n"+e.stack:e?e.toString():"null"}function b(e,t){var n=i[t];if(n)return n.findFunction(e);throw new Error("JS object instance with ID "+t+" does not exist (has it been disposed?).")}function g(e){delete i[e]}e.attachDispatcher=function(e){c=e},e.attachReviver=l,e.invokeMethod=function(e,t){for(var n=[],r=2;r0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var c,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},c=function(){window.Module=function(e,t,n){var c=this,l=e.bootConfig.resources,f=window.Module||{},d=["DEBUGGING ENABLED"];f.print=function(e){return d.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),u.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var h,b,g=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(h=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(c,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(h),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),g.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(c,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return d(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*c+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return d(e+(t||0))},readStringField:function(e,t,n){var r,o=d(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return y(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function h(e){return e+12}function m(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function y(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),y()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(24);var s=n(17),u=n(20),c=n(12),l=n(48),f=n(36),d=n(18),p=n(49),h=n(50),m=n(51),v=n(52),y=n(37),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,E,_,I,C,N,S,A,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,E=m.BootConfigResult.initAsync(g),_=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(_),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,E];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),S=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(S)];case 4:return F.sent(),[3,6];case 5:throw A=F.sent(),new Error("Failed to start platform. Reason: "+A);case 6:return t.callEntryPoint(S.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&!t)throw new Error("New logical elements must start empty, or allowExistingContents must be true");return r in e||(e[r]=[]),e}function s(e,t,n){var i=e;if(e instanceof Comment&&(c(i)&&c(i).length>0))throw new Error("Not implemented: inserting non-empty logical container");if(u(i))throw new Error("Not implemented: moving existing logical children");var a=c(t);if(n0;)e(r,0)}var i=r;i.parentNode.removeChild(i)},t.getLogicalParent=u,t.getLogicalSiblingEnd=function(e){return e[i]||null},t.getLogicalChild=function(e,t){return c(e)[t]},t.isSvgElement=function(e){return"http://www.w3.org/2000/svg"===l(e).namespaceURI},t.getLogicalChildrenArray=c,t.permuteLogicalChildren=function(e,t){var n=c(e);t.forEach((function(e){e.moveRangeStart=n[e.fromSiblingIndex],e.moveRangeEnd=function e(t){if(t instanceof Element)return t;var n=f(t);if(n)return n.previousSibling;var r=u(t);return r instanceof Element?r.lastChild:e(r)}(e.moveRangeStart)})),t.forEach((function(t){var r=t.moveToBeforeMarker=document.createComment("marker"),o=n[t.toSiblingIndex+1];o?o.parentNode.insertBefore(r,o):d(r,e)})),t.forEach((function(e){for(var t=e.moveToBeforeMarker,n=t.parentNode,r=e.moveRangeStart,o=e.moveRangeEnd,i=r;i;){var a=i.nextSibling;if(n.insertBefore(i,t),i===o)break;i=a}n.removeChild(t)})),t.forEach((function(e){n[e.toSiblingIndex]=e.moveRangeStart}))},t.getClosestDomElement=l},,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(25),n(17);var r=n(26),o=n(7),i={},a=!1;function s(e,t,n){var o=i[e];o||(o=i[e]=new r.BrowserRenderer(e)),o.attachRootComponentToLogicalElement(n,t)}t.attachRootComponentToLogicalElement=s,t.attachRootComponentToElement=function(e,t,n){var r=document.querySelector(e);if(!r)throw new Error("Could not find any element matching selector '"+e+"'.");s(n||0,o.toLogicalElement(r,!0),t)},t.getRendererer=function(e){return i[e]},t.renderBatch=function(e,t){var n=i[e];if(!n)throw new Error("There is no browser renderer with ID "+e+".");for(var r=t.arrayRangeReader,o=t.updatedComponents(),s=r.values(o),u=r.count(o),c=t.referenceFrames(),l=r.values(c),f=t.diffReader,d=0;d0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]>2]}t.monoPlatform={start:function(e){return new Promise((function(t,n){var c,l;s.attachDebuggerHotkey(e),window.Browser={init:function(){}},c=function(){window.Module=function(e,t,n){var c=this,l=e.bootConfig.resources,f=window.Module||{},d=["DEBUGGING ENABLED"];f.print=function(e){return d.indexOf(e)<0&&console.log(e)},f.printErr=function(e){console.error(e),u.showErrorNotification()},f.preRun=f.preRun||[],f.postRun=f.postRun||[],f.preloadPlugins=[];var h,b,g=e.loadResources(l.assembly,(function(e){return"_framework/"+e}),"assembly"),w=e.loadResources(l.pdb||{},(function(e){return"_framework/"+e}),"pdb"),E=e.loadResource("dotnet.wasm","_framework/dotnet.wasm",e.bootConfig.resources.runtime["dotnet.wasm"],"dotnetwasm");return e.bootConfig.resources.runtime.hasOwnProperty("dotnet.timezones.blat")&&(h=e.loadResource("dotnet.timezones.blat","_framework/dotnet.timezones.blat",e.bootConfig.resources.runtime["dotnet.timezones.blat"],"globalization")),e.bootConfig.resources.runtime.hasOwnProperty("icudt.dat")&&(b=e.loadResource("icudt.dat","_framework/icudt.dat",e.bootConfig.resources.runtime["icudt.dat"],"globalization")),f.instantiateWasm=function(e,t){return r(c,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:return o.trys.push([0,3,,4]),[4,E];case 1:return[4,v(o.sent(),e)];case 2:return n=o.sent(),[3,4];case 3:throw r=o.sent(),f.printErr(r),r;case 4:return t(n),[2]}}))})),[]},f.preRun.push((function(){i=cwrap("mono_wasm_add_assembly",null,["string","number","number"]),MONO.loaded_files=[],h&&function(e){r(this,void 0,void 0,(function(){var t,n;return o(this,(function(r){switch(r.label){case 0:return t="blazor:timezonedata",addRunDependency(t),[4,e.response];case 1:return[4,r.sent().arrayBuffer()];case 2:return n=r.sent(),Module.FS_createPath("/","usr",!0,!0),Module.FS_createPath("/usr/","share",!0,!0),Module.FS_createPath("/usr/share/","zoneinfo",!0,!0),MONO.mono_wasm_load_data_archive(new Uint8Array(n),"/usr/share/zoneinfo/"),removeRunDependency(t),[2]}}))}))}(h),b?function(e){r(this,void 0,void 0,(function(){var t,n,r,i,a;return o(this,(function(o){switch(o.label){case 0:return t="blazor:icudata",addRunDependency(t),[4,e.response];case 1:return n=o.sent(),i=Uint8Array.bind,[4,n.arrayBuffer()];case 2:if(r=new(i.apply(Uint8Array,[void 0,o.sent()])),a=MONO.mono_wasm_load_bytes_into_heap(r),!MONO.mono_wasm_load_icu_data(a))throw new Error("Error loading ICU asset.");return removeRunDependency(t),[2]}}))}))}(b):MONO.mono_wasm_setenv("DOTNET_SYSTEM_GLOBALIZATION_INVARIANT","1"),g.forEach((function(e){return _(e,function(e,t){var n=e.lastIndexOf(".");if(n<0)throw new Error("No extension to replace in '"+e+"'");return e.substr(0,n)+t}(e.name,".dll"))})),w.forEach((function(e){return _(e,e.name)})),window.Blazor._internal.dotNetCriticalError=function(e){f.printErr(BINDING.conv_string(e)||"(null)")},window.Blazor._internal.getSatelliteAssemblies=function(t){var n=BINDING.mono_array_to_js_array(t),i=e.bootConfig.resources.satelliteResources;if(i){var a=Promise.all(n.filter((function(e){return i.hasOwnProperty(e)})).map((function(t){return e.loadResources(i[t],(function(e){return"_framework/"+e}),"assembly")})).reduce((function(e,t){return e.concat(t)}),new Array).map((function(e){return r(c,void 0,void 0,(function(){return o(this,(function(t){switch(t.label){case 0:return[4,e.response];case 1:return[2,t.sent().arrayBuffer()]}}))}))})));return BINDING.js_to_mono_obj(a.then((function(e){return e.length&&(window.Blazor._internal.readSatelliteAssemblies=function(){for(var t=BINDING.mono_obj_array_new(e.length),n=0;n>1];var n},readInt32Field:function(e,t){return d(e+(t||0))},readUint64Field:function(e,t){return function(e){var t=e>>2,n=Module.HEAPU32[t+1];if(n>l)throw new Error("Cannot read uint64 with high order part "+n+", because the result would exceed Number.MAX_SAFE_INTEGER.");return n*c+Module.HEAPU32[t]}(e+(t||0))},readFloatField:function(e,t){return n=e+(t||0),Module.HEAPF32[n>>2];var n},readObjectField:function(e,t){return d(e+(t||0))},readStringField:function(e,t,n){var r,o=d(e+(t||0));if(0===o)return null;if(n){var i=BINDING.unbox_mono_obj(o);return"boolean"==typeof i?i?"":null:i}return f?void 0===(r=f.stringCache.get(o))&&(r=BINDING.conv_string(o),f.stringCache.set(o,r)):r=BINDING.conv_string(o),r},readStructField:function(e,t){return e+(t||0)},beginHeapLock:function(){return y(),f=new b},invokeWhenHeapUnlocked:function(e){f?f.enqueuePostReleaseAction(e):e()}};var p=document.createElement("a");function h(e){return e+12}function m(e,t,n){var r="["+e+"] "+t+":"+n;return BINDING.bind_static_method(r)}function v(e,t){return r(this,void 0,void 0,(function(){var n,r;return o(this,(function(o){switch(o.label){case 0:if("function"!=typeof WebAssembly.instantiateStreaming)return[3,4];o.label=1;case 1:return o.trys.push([1,3,,4]),[4,WebAssembly.instantiateStreaming(e.response,t)];case 2:return[2,o.sent().instance];case 3:return n=o.sent(),console.info("Streaming compilation failed. Falling back to ArrayBuffer instantiation. ",n),[3,4];case 4:return[4,e.response.then((function(e){return e.arrayBuffer()}))];case 5:return r=o.sent(),[4,WebAssembly.instantiate(r,t)];case 6:return[2,o.sent().instance]}}))}))}function y(){if(f)throw new Error("Assertion failed - heap is currently locked")}var b=function(){function e(){this.stringCache=new Map}return e.prototype.enqueuePostReleaseAction=function(e){this.postReleaseActions||(this.postReleaseActions=[]),this.postReleaseActions.push(e)},e.prototype.release=function(){var e;if(f!==this)throw new Error("Trying to release a lock which isn't current");for(f=null;null===(e=this.postReleaseActions)||void 0===e?void 0:e.length;){this.postReleaseActions.shift()(),y()}},e}()},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&e.invokeMethodAsync("OnSpacerAfterVisible",r.boundingClientRect.bottom-r.intersectionRect.bottom,a,s)}}))}),{root:i,rootMargin:o+"px"});a.observe(t),a.observe(n);var s=c(t),u=c(n);function c(e){var t=new MutationObserver((function(){a.unobserve(e),a.observe(e)}));return t.observe(e,{attributes:!0}),t}r[e._id]={intersectionObserver:a,mutationObserverBefore:s,mutationObserverAfter:u}},dispose:function(e){var t=r[e._id];t&&(t.intersectionObserver.disconnect(),t.mutationObserverBefore.disconnect(),t.mutationObserverAfter.disconnect(),e.dispose(),delete r[e._id])}};var r={}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1].*)$/;function i(e,t){var n=e.currentElement;if(n&&n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r.groups&&r.groups.descriptor;if(!i)return;try{var s=function(e){var t=JSON.parse(e),n=t.type;if("server"!==n&&"webassembly"!==n)throw new Error("Invalid component type '"+n+"'.");return t}(i);switch(t){case"webassembly":return function(e,t,n){var r=e.type,o=e.assembly,i=e.typeName,s=e.parameterDefinitions,u=e.parameterValues,c=e.prerenderId;if("webassembly"!==r)return;if(!o)throw new Error("assembly must be defined when using a descriptor.");if(!i)throw new Error("typeName must be defined when using a descriptor.");if(c){var l=a(c,n);if(!l)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t,prerenderId:c,end:l}}return{type:r,assembly:o,typeName:i,parameterDefinitions:s&&atob(s),parameterValues:u&&atob(u),start:t}}(s,n,e);case"server":return function(e,t,n){var r=e.type,o=e.descriptor,i=e.sequence,s=e.prerenderId;if("server"!==r)return;if(!o)throw new Error("descriptor must be defined when using a descriptor.");if(void 0===i)throw new Error("sequence must be defined when using a descriptor.");if(!Number.isInteger(i))throw new Error("Error parsing the sequence '"+i+"' for component '"+JSON.stringify(e)+"'");if(s){var u=a(s,n);if(!u)throw new Error("Could not find an end component comment for '"+t+"'");return{type:r,sequence:i,descriptor:o,start:t,prerenderId:s,end:u}}return{type:r,sequence:i,descriptor:o,start:t}}(s,n,e)}}catch(e){throw new Error("Found malformed component comment at "+n.textContent)}}}function a(e,t){for(;t.next()&&t.currentElement;){var n=t.currentElement;if(n.nodeType===Node.COMMENT_NODE&&n.textContent){var r=new RegExp(o).exec(n.textContent),i=r&&r[1];if(i)return s(i,e),n}}}function s(e,t){var n=JSON.parse(e);if(1!==Object.keys(n).length)throw new Error("Invalid end of component comment: '"+e+"'");var r=n.prerenderId;if(!r)throw new Error("End of component comment must have a value for the prerendered property: '"+e+"'");if(r!==t)throw new Error("End of component comment prerendered property must match the start comment prerender id: '"+t+"', '"+r+"'")}var u=function(){function e(e){this.childNodes=e,this.currentIndex=-1,this.length=e.length}return e.prototype.next=function(){return this.currentIndex++,this.currentIndex0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a};Object.defineProperty(t,"__esModule",{value:!0});var a=n(3);n(24);var s=n(17),u=n(20),c=n(12),l=n(48),f=n(36),d=n(18),p=n(49),h=n(50),m=n(51),v=n(52),y=n(37),b=!1;function g(e){return r(this,void 0,void 0,(function(){var t,n,f,g,E,_,I,C,N,S,A,k=this;return o(this,(function(F){switch(F.label){case 0:if(b)throw new Error("Blazor has already started.");return b=!0,d.setEventDispatcher((function(e,t){c.getRendererer(e.browserRendererId).eventDelegator.getHandler(e.eventHandlerId)&&u.monoPlatform.invokeWhenHeapUnlocked((function(){return a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","DispatchEvent",e,JSON.stringify(t))}))})),window.Blazor._internal.invokeJSFromDotNet=w,t=s.setPlatform(u.monoPlatform),window.Blazor.platform=t,window.Blazor._internal.renderBatch=function(e,t){var n=u.monoPlatform.beginHeapLock();try{c.renderBatch(e,new l.SharedMemoryRenderBatch(t))}finally{n.release()}},n=window.Blazor._internal.navigationManager.getBaseURI,f=window.Blazor._internal.navigationManager.getLocationHref,window.Blazor._internal.navigationManager.getUnmarshalledBaseURI=function(){return BINDING.js_string_to_mono_string(n())},window.Blazor._internal.navigationManager.getUnmarshalledLocationHref=function(){return BINDING.js_string_to_mono_string(f())},window.Blazor._internal.navigationManager.listenForNavigationEvents((function(e,t){return r(k,void 0,void 0,(function(){return o(this,(function(n){switch(n.label){case 0:return[4,a.DotNet.invokeMethodAsync("Microsoft.AspNetCore.Components.WebAssembly","NotifyLocationChanged",e,t)];case 1:return n.sent(),[2]}}))}))})),g=null==e?void 0:e.environment,E=m.BootConfigResult.initAsync(g),_=y.discoverComponents(document,"webassembly"),I=new v.WebAssemblyComponentAttacher(_),window.Blazor._internal.registeredComponents={getRegisteredComponentsCount:function(){return I.getCount()},getId:function(e){return I.getId(e)},getAssembly:function(e){return BINDING.js_string_to_mono_string(I.getAssembly(e))},getTypeName:function(e){return BINDING.js_string_to_mono_string(I.getTypeName(e))},getParameterDefinitions:function(e){return BINDING.js_string_to_mono_string(I.getParameterDefinitions(e)||"")},getParameterValues:function(e){return BINDING.js_string_to_mono_string(I.getParameterValues(e)||"")}},window.Blazor._internal.attachRootComponentToElement=function(e,t,n){var r=I.resolveRegisteredElement(e);r?c.attachRootComponentToLogicalElement(n,r,t):c.attachRootComponentToElement(e,t,n)},[4,E];case 1:return C=F.sent(),[4,Promise.all([p.WebAssemblyResourceLoader.initAsync(C.bootConfig,e||{}),h.WebAssemblyConfigLoader.initAsync(C)])];case 2:N=i.apply(void 0,[F.sent(),1]),S=N[0],F.label=3;case 3:return F.trys.push([3,5,,6]),[4,t.start(S)];case 4:return F.sent(),[3,6];case 5:throw A=F.sent(),new Error("Failed to start platform. Reason: "+A);case 6:return t.callEntryPoint(S.bootConfig.entryAssembly),[2]}}))}))}function w(e,t,n,r){var o=u.monoPlatform.readStringField(e,0),i=u.monoPlatform.readInt32Field(e,4),s=u.monoPlatform.readStringField(e,8),c=u.monoPlatform.readUint64Field(e,20);if(null!==s){var l=u.monoPlatform.readUint64Field(e,12);if(0!==l)return a.DotNet.jsCallDispatcher.beginInvokeJSFromDotNet(l,o,s,i,c),0;var f=a.DotNet.jsCallDispatcher.invokeJSFromDotNet(o,s,i,c);return null===f?0:BINDING.js_string_to_mono_string(f)}var d=a.DotNet.jsCallDispatcher.findJSFunction(o,c).call(null,t,n,r);switch(i){case a.DotNet.JSCallResultType.Default:return d;case a.DotNet.JSCallResultType.JSObjectReference:return a.DotNet.createJSObjectReference(d).__jsObjectId;default:throw new Error("Invalid JS call result type '"+i+"'.")}}window.Blazor.start=g,f.shouldAutoStart()&&g().catch((function(e){"undefined"!=typeof Module&&Module.printErr?Module.printErr(e):console.error(e)}))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(17),o=function(){function e(e){this.batchAddress=e,this.arrayRangeReader=i,this.arrayBuilderSegmentReader=a,this.diffReader=s,this.editReader=u,this.frameReader=c}return e.prototype.updatedComponents=function(){return r.platform.readStructField(this.batchAddress,0)},e.prototype.referenceFrames=function(){return r.platform.readStructField(this.batchAddress,i.structLength)},e.prototype.disposedComponentIds=function(){return r.platform.readStructField(this.batchAddress,2*i.structLength)},e.prototype.disposedEventHandlerIds=function(){return r.platform.readStructField(this.batchAddress,3*i.structLength)},e.prototype.updatedComponentsEntry=function(e,t){return l(e,t,s.structLength)},e.prototype.referenceFramesEntry=function(e,t){return l(e,t,c.structLength)},e.prototype.disposedComponentIdsEntry=function(e,t){var n=l(e,t,4);return r.platform.readInt32Field(n)},e.prototype.disposedEventHandlerIdsEntry=function(e,t){var n=l(e,t,8);return r.platform.readUint64Field(n)},e}();t.SharedMemoryRenderBatch=o;var i={structLength:8,values:function(e){return r.platform.readObjectField(e,0)},count:function(e){return r.platform.readInt32Field(e,4)}},a={structLength:12,values:function(e){var t=r.platform.readObjectField(e,0),n=r.platform.getObjectFieldsBaseAddress(t);return r.platform.readObjectField(n,0)},offset:function(e){return r.platform.readInt32Field(e,4)},count:function(e){return r.platform.readInt32Field(e,8)}},s={structLength:4+a.structLength,componentId:function(e){return r.platform.readInt32Field(e,0)},edits:function(e){return r.platform.readStructField(e,4)},editsEntry:function(e,t){return l(e,t,u.structLength)}},u={structLength:20,editType:function(e){return r.platform.readInt32Field(e,0)},siblingIndex:function(e){return r.platform.readInt32Field(e,4)},newTreeIndex:function(e){return r.platform.readInt32Field(e,8)},moveToSiblingIndex:function(e){return r.platform.readInt32Field(e,8)},removedAttributeName:function(e){return r.platform.readStringField(e,16)}},c={structLength:36,frameType:function(e){return r.platform.readInt16Field(e,4)},subtreeLength:function(e){return r.platform.readInt32Field(e,8)},elementReferenceCaptureId:function(e){return r.platform.readStringField(e,16)},componentId:function(e){return r.platform.readInt32Field(e,12)},elementName:function(e){return r.platform.readStringField(e,16)},textContent:function(e){return r.platform.readStringField(e,16)},markupContent:function(e){return r.platform.readStringField(e,16)},attributeName:function(e){return r.platform.readStringField(e,16)},attributeValue:function(e){return r.platform.readStringField(e,24,!0)},attributeEventHandlerId:function(e){return r.platform.readUint64Field(e,8)}};function l(e,t,n){return r.platform.getArrayEntryPtr(e,t,n)}},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{u(r.next(e))}catch(e){i(e)}}function s(e){try{u(r.throw(e))}catch(e){i(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}u((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1] | undefined; arrayBuffer: ArrayBuffer | undefined; } @@ -42,7 +42,7 @@ function init(callbackWrapper: any, elem: InputElement): void { lastModified: new Date(file.lastModified).toISOString(), name: file.name, size: file.size, - type: file.type, + contentType: file.type, readPromise: undefined, arrayBuffer: undefined, }; @@ -86,7 +86,7 @@ async function toImageFile(elem: InputElement, fileId: number, format: string, m lastModified: originalFile.lastModified, name: originalFile.name, size: resizedImageBlob?.size || 0, - type: format, + contentType: format, readPromise: undefined, arrayBuffer: undefined, }; diff --git a/src/Components/Web.JS/src/Platform/WebAssemblyResourceLoader.ts b/src/Components/Web.JS/src/Platform/WebAssemblyResourceLoader.ts index 2c78b60b444e..399703c48de8 100644 --- a/src/Components/Web.JS/src/Platform/WebAssemblyResourceLoader.ts +++ b/src/Components/Web.JS/src/Platform/WebAssemblyResourceLoader.ts @@ -165,9 +165,9 @@ async function getCacheToUseIfEnabled(bootConfig: BootJsonData): Promise void +Microsoft.AspNetCore.Components.BindInputElementAttribute.ChangeAttribute.get -> string? +Microsoft.AspNetCore.Components.BindInputElementAttribute.Format.get -> string? +Microsoft.AspNetCore.Components.BindInputElementAttribute.IsInvariantCulture.get -> bool +Microsoft.AspNetCore.Components.BindInputElementAttribute.Suffix.get -> string? +Microsoft.AspNetCore.Components.BindInputElementAttribute.Type.get -> string? +Microsoft.AspNetCore.Components.BindInputElementAttribute.ValueAttribute.get -> string? +Microsoft.AspNetCore.Components.ElementReferenceExtensions +Microsoft.AspNetCore.Components.Forms.BrowserFileExtensions +Microsoft.AspNetCore.Components.Forms.EditContextFieldClassExtensions +Microsoft.AspNetCore.Components.Forms.EditForm +Microsoft.AspNetCore.Components.Forms.EditForm.AdditionalAttributes.get -> System.Collections.Generic.IReadOnlyDictionary? +Microsoft.AspNetCore.Components.Forms.EditForm.AdditionalAttributes.set -> void +Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent.set -> void +Microsoft.AspNetCore.Components.Forms.EditForm.EditContext.get -> Microsoft.AspNetCore.Components.Forms.EditContext? +Microsoft.AspNetCore.Components.Forms.EditForm.EditContext.set -> void +Microsoft.AspNetCore.Components.Forms.EditForm.EditForm() -> void +Microsoft.AspNetCore.Components.Forms.EditForm.Model.get -> object? +Microsoft.AspNetCore.Components.Forms.EditForm.Model.set -> void +Microsoft.AspNetCore.Components.Forms.EditForm.OnInvalidSubmit.get -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.Forms.EditForm.OnInvalidSubmit.set -> void +Microsoft.AspNetCore.Components.Forms.EditForm.OnSubmit.get -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.Forms.EditForm.OnSubmit.set -> void +Microsoft.AspNetCore.Components.Forms.EditForm.OnValidSubmit.get -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.Forms.EditForm.OnValidSubmit.set -> void +Microsoft.AspNetCore.Components.Forms.FieldCssClassProvider +Microsoft.AspNetCore.Components.Forms.FieldCssClassProvider.FieldCssClassProvider() -> void +Microsoft.AspNetCore.Components.Forms.IBrowserFile +Microsoft.AspNetCore.Components.Forms.IBrowserFile.ContentType.get -> string! +Microsoft.AspNetCore.Components.Forms.IBrowserFile.LastModified.get -> System.DateTimeOffset +Microsoft.AspNetCore.Components.Forms.IBrowserFile.Name.get -> string! +Microsoft.AspNetCore.Components.Forms.IBrowserFile.OpenReadStream(long maxAllowedSize = 512000, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.IO.Stream! +Microsoft.AspNetCore.Components.Forms.IBrowserFile.Size.get -> long +Microsoft.AspNetCore.Components.Forms.InputBase +Microsoft.AspNetCore.Components.Forms.InputBase.AdditionalAttributes.get -> System.Collections.Generic.IReadOnlyDictionary? +Microsoft.AspNetCore.Components.Forms.InputBase.AdditionalAttributes.set -> void +Microsoft.AspNetCore.Components.Forms.InputBase.CssClass.get -> string! +Microsoft.AspNetCore.Components.Forms.InputBase.CurrentValue.get -> TValue +Microsoft.AspNetCore.Components.Forms.InputBase.CurrentValue.set -> void +Microsoft.AspNetCore.Components.Forms.InputBase.CurrentValueAsString.get -> string? +Microsoft.AspNetCore.Components.Forms.InputBase.CurrentValueAsString.set -> void +Microsoft.AspNetCore.Components.Forms.InputBase.DisplayName.get -> string? +Microsoft.AspNetCore.Components.Forms.InputBase.DisplayName.set -> void +Microsoft.AspNetCore.Components.Forms.InputBase.EditContext.get -> Microsoft.AspNetCore.Components.Forms.EditContext! +Microsoft.AspNetCore.Components.Forms.InputBase.EditContext.set -> void +Microsoft.AspNetCore.Components.Forms.InputBase.FieldIdentifier.get -> Microsoft.AspNetCore.Components.Forms.FieldIdentifier +Microsoft.AspNetCore.Components.Forms.InputBase.FieldIdentifier.set -> void +Microsoft.AspNetCore.Components.Forms.InputBase.InputBase() -> void +Microsoft.AspNetCore.Components.Forms.InputBase.Value.get -> TValue +Microsoft.AspNetCore.Components.Forms.InputBase.Value.set -> void +Microsoft.AspNetCore.Components.Forms.InputBase.ValueChanged.get -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.Forms.InputBase.ValueChanged.set -> void +Microsoft.AspNetCore.Components.Forms.InputBase.ValueExpression.get -> System.Linq.Expressions.Expression!>? +Microsoft.AspNetCore.Components.Forms.InputBase.ValueExpression.set -> void +Microsoft.AspNetCore.Components.Forms.InputCheckbox +Microsoft.AspNetCore.Components.Forms.InputCheckbox.InputCheckbox() -> void +Microsoft.AspNetCore.Components.Forms.InputDate +Microsoft.AspNetCore.Components.Forms.InputDate.InputDate() -> void +Microsoft.AspNetCore.Components.Forms.InputDate.ParsingErrorMessage.get -> string! +Microsoft.AspNetCore.Components.Forms.InputDate.ParsingErrorMessage.set -> void +Microsoft.AspNetCore.Components.Forms.InputFile +Microsoft.AspNetCore.Components.Forms.InputFile.AdditionalAttributes.get -> System.Collections.Generic.IDictionary? +Microsoft.AspNetCore.Components.Forms.InputFile.AdditionalAttributes.set -> void +Microsoft.AspNetCore.Components.Forms.InputFile.InputFile() -> void +Microsoft.AspNetCore.Components.Forms.InputFile.OnChange.get -> Microsoft.AspNetCore.Components.EventCallback +Microsoft.AspNetCore.Components.Forms.InputFile.OnChange.set -> void +Microsoft.AspNetCore.Components.Forms.InputFileChangeEventArgs +Microsoft.AspNetCore.Components.Forms.InputFileChangeEventArgs.File.get -> Microsoft.AspNetCore.Components.Forms.IBrowserFile! +Microsoft.AspNetCore.Components.Forms.InputFileChangeEventArgs.FileCount.get -> int +Microsoft.AspNetCore.Components.Forms.InputFileChangeEventArgs.GetMultipleFiles(int maximumFileCount = 10) -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Components.Forms.InputFileChangeEventArgs.InputFileChangeEventArgs(System.Collections.Generic.IReadOnlyList! files) -> void +Microsoft.AspNetCore.Components.Forms.InputNumber +Microsoft.AspNetCore.Components.Forms.InputNumber.InputNumber() -> void +Microsoft.AspNetCore.Components.Forms.InputNumber.ParsingErrorMessage.get -> string! +Microsoft.AspNetCore.Components.Forms.InputNumber.ParsingErrorMessage.set -> void +Microsoft.AspNetCore.Components.Forms.InputRadio +Microsoft.AspNetCore.Components.Forms.InputRadio.AdditionalAttributes.get -> System.Collections.Generic.IReadOnlyDictionary? +Microsoft.AspNetCore.Components.Forms.InputRadio.AdditionalAttributes.set -> void +Microsoft.AspNetCore.Components.Forms.InputRadio.InputRadio() -> void +Microsoft.AspNetCore.Components.Forms.InputRadio.Name.get -> string? +Microsoft.AspNetCore.Components.Forms.InputRadio.Name.set -> void +Microsoft.AspNetCore.Components.Forms.InputRadio.Value.get -> TValue +Microsoft.AspNetCore.Components.Forms.InputRadio.Value.set -> void +Microsoft.AspNetCore.Components.Forms.InputRadioGroup +Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent.set -> void +Microsoft.AspNetCore.Components.Forms.InputRadioGroup.InputRadioGroup() -> void +Microsoft.AspNetCore.Components.Forms.InputRadioGroup.Name.get -> string? +Microsoft.AspNetCore.Components.Forms.InputRadioGroup.Name.set -> void +Microsoft.AspNetCore.Components.Forms.InputSelect +Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent.set -> void +Microsoft.AspNetCore.Components.Forms.InputSelect.InputSelect() -> void +Microsoft.AspNetCore.Components.Forms.InputText +Microsoft.AspNetCore.Components.Forms.InputText.InputText() -> void +Microsoft.AspNetCore.Components.Forms.InputTextArea +Microsoft.AspNetCore.Components.Forms.InputTextArea.InputTextArea() -> void +Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions +Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.MaxBufferSize.get -> int +Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.MaxBufferSize.set -> void +Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.MaxSegmentSize.get -> int +Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.MaxSegmentSize.set -> void +Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.RemoteBrowserFileStreamOptions() -> void +Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.SegmentFetchTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.Components.Forms.RemoteBrowserFileStreamOptions.SegmentFetchTimeout.set -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessage +Microsoft.AspNetCore.Components.Forms.ValidationMessage.AdditionalAttributes.get -> System.Collections.Generic.IReadOnlyDictionary? +Microsoft.AspNetCore.Components.Forms.ValidationMessage.AdditionalAttributes.set -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessage.For.get -> System.Linq.Expressions.Expression!>? +Microsoft.AspNetCore.Components.Forms.ValidationMessage.For.set -> void +Microsoft.AspNetCore.Components.Forms.ValidationMessage.ValidationMessage() -> void +Microsoft.AspNetCore.Components.Forms.ValidationSummary +Microsoft.AspNetCore.Components.Forms.ValidationSummary.AdditionalAttributes.get -> System.Collections.Generic.IReadOnlyDictionary? +Microsoft.AspNetCore.Components.Forms.ValidationSummary.AdditionalAttributes.set -> void +Microsoft.AspNetCore.Components.Forms.ValidationSummary.Model.get -> object? +Microsoft.AspNetCore.Components.Forms.ValidationSummary.Model.set -> void +Microsoft.AspNetCore.Components.Forms.ValidationSummary.ValidationSummary() -> void +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.BrowserRendererId.get -> int +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.BrowserRendererId.set -> void +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.EventArgsType.get -> string! +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.EventArgsType.set -> void +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.EventFieldInfo.get -> Microsoft.AspNetCore.Components.RenderTree.EventFieldInfo? +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.EventFieldInfo.set -> void +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.EventHandlerId.get -> ulong +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.EventHandlerId.set -> void +Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor.WebEventDescriptor() -> void +Microsoft.AspNetCore.Components.Routing.NavLink +Microsoft.AspNetCore.Components.Routing.NavLink.ActiveClass.get -> string? +Microsoft.AspNetCore.Components.Routing.NavLink.ActiveClass.set -> void +Microsoft.AspNetCore.Components.Routing.NavLink.AdditionalAttributes.get -> System.Collections.Generic.IReadOnlyDictionary? +Microsoft.AspNetCore.Components.Routing.NavLink.AdditionalAttributes.set -> void +Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent.set -> void +Microsoft.AspNetCore.Components.Routing.NavLink.CssClass.get -> string? +Microsoft.AspNetCore.Components.Routing.NavLink.CssClass.set -> void +Microsoft.AspNetCore.Components.Routing.NavLink.Dispose() -> void +Microsoft.AspNetCore.Components.Routing.NavLink.Match.get -> Microsoft.AspNetCore.Components.Routing.NavLinkMatch +Microsoft.AspNetCore.Components.Routing.NavLink.Match.set -> void +Microsoft.AspNetCore.Components.Routing.NavLink.NavLink() -> void +Microsoft.AspNetCore.Components.Routing.NavLinkMatch +Microsoft.AspNetCore.Components.Routing.NavLinkMatch.All = 1 -> Microsoft.AspNetCore.Components.Routing.NavLinkMatch +Microsoft.AspNetCore.Components.Routing.NavLinkMatch.Prefix = 0 -> Microsoft.AspNetCore.Components.Routing.NavLinkMatch +Microsoft.AspNetCore.Components.Web.BindAttributes +Microsoft.AspNetCore.Components.Web.ClipboardEventArgs +Microsoft.AspNetCore.Components.Web.ClipboardEventArgs.ClipboardEventArgs() -> void +Microsoft.AspNetCore.Components.Web.ClipboardEventArgs.Type.get -> string! +Microsoft.AspNetCore.Components.Web.ClipboardEventArgs.Type.set -> void +Microsoft.AspNetCore.Components.Web.DataTransfer +Microsoft.AspNetCore.Components.Web.DataTransfer.DataTransfer() -> void +Microsoft.AspNetCore.Components.Web.DataTransfer.DropEffect.get -> string! +Microsoft.AspNetCore.Components.Web.DataTransfer.DropEffect.set -> void +Microsoft.AspNetCore.Components.Web.DataTransfer.EffectAllowed.get -> string? +Microsoft.AspNetCore.Components.Web.DataTransfer.EffectAllowed.set -> void +Microsoft.AspNetCore.Components.Web.DataTransfer.Files.get -> string![]! +Microsoft.AspNetCore.Components.Web.DataTransfer.Files.set -> void +Microsoft.AspNetCore.Components.Web.DataTransfer.Items.get -> Microsoft.AspNetCore.Components.Web.DataTransferItem![]! +Microsoft.AspNetCore.Components.Web.DataTransfer.Items.set -> void +Microsoft.AspNetCore.Components.Web.DataTransfer.Types.get -> string![]! +Microsoft.AspNetCore.Components.Web.DataTransfer.Types.set -> void +Microsoft.AspNetCore.Components.Web.DataTransferItem +Microsoft.AspNetCore.Components.Web.DataTransferItem.DataTransferItem() -> void +Microsoft.AspNetCore.Components.Web.DataTransferItem.Kind.get -> string! +Microsoft.AspNetCore.Components.Web.DataTransferItem.Kind.set -> void +Microsoft.AspNetCore.Components.Web.DataTransferItem.Type.get -> string! +Microsoft.AspNetCore.Components.Web.DataTransferItem.Type.set -> void +Microsoft.AspNetCore.Components.Web.DragEventArgs +Microsoft.AspNetCore.Components.Web.DragEventArgs.DataTransfer.get -> Microsoft.AspNetCore.Components.Web.DataTransfer! +Microsoft.AspNetCore.Components.Web.DragEventArgs.DataTransfer.set -> void +Microsoft.AspNetCore.Components.Web.DragEventArgs.DragEventArgs() -> void +Microsoft.AspNetCore.Components.Web.ErrorEventArgs +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Colno.get -> int +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Colno.set -> void +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.ErrorEventArgs() -> void +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Filename.get -> string? +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Filename.set -> void +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Lineno.get -> int +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Lineno.set -> void +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Message.get -> string? +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Message.set -> void +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Type.get -> string? +Microsoft.AspNetCore.Components.Web.ErrorEventArgs.Type.set -> void +Microsoft.AspNetCore.Components.Web.EventHandlers +Microsoft.AspNetCore.Components.Web.FocusEventArgs +Microsoft.AspNetCore.Components.Web.FocusEventArgs.FocusEventArgs() -> void +Microsoft.AspNetCore.Components.Web.FocusEventArgs.Type.get -> string? +Microsoft.AspNetCore.Components.Web.FocusEventArgs.Type.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.AltKey.get -> bool +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.AltKey.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Code.get -> string! +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Code.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.CtrlKey.get -> bool +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.CtrlKey.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Key.get -> string! +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Key.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.KeyboardEventArgs() -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Location.get -> float +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Location.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.MetaKey.get -> bool +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.MetaKey.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Repeat.get -> bool +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Repeat.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.ShiftKey.get -> bool +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.ShiftKey.set -> void +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Type.get -> string! +Microsoft.AspNetCore.Components.Web.KeyboardEventArgs.Type.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs +Microsoft.AspNetCore.Components.Web.MouseEventArgs.AltKey.get -> bool +Microsoft.AspNetCore.Components.Web.MouseEventArgs.AltKey.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.Button.get -> long +Microsoft.AspNetCore.Components.Web.MouseEventArgs.Button.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.Buttons.get -> long +Microsoft.AspNetCore.Components.Web.MouseEventArgs.Buttons.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ClientX.get -> double +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ClientX.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ClientY.get -> double +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ClientY.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.CtrlKey.get -> bool +Microsoft.AspNetCore.Components.Web.MouseEventArgs.CtrlKey.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.Detail.get -> long +Microsoft.AspNetCore.Components.Web.MouseEventArgs.Detail.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.MetaKey.get -> bool +Microsoft.AspNetCore.Components.Web.MouseEventArgs.MetaKey.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.MouseEventArgs() -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.OffsetX.get -> double +Microsoft.AspNetCore.Components.Web.MouseEventArgs.OffsetX.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.OffsetY.get -> double +Microsoft.AspNetCore.Components.Web.MouseEventArgs.OffsetY.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ScreenX.get -> double +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ScreenX.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ScreenY.get -> double +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ScreenY.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ShiftKey.get -> bool +Microsoft.AspNetCore.Components.Web.MouseEventArgs.ShiftKey.set -> void +Microsoft.AspNetCore.Components.Web.MouseEventArgs.Type.get -> string! +Microsoft.AspNetCore.Components.Web.MouseEventArgs.Type.set -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs +Microsoft.AspNetCore.Components.Web.PointerEventArgs.Height.get -> float +Microsoft.AspNetCore.Components.Web.PointerEventArgs.Height.set -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs.IsPrimary.get -> bool +Microsoft.AspNetCore.Components.Web.PointerEventArgs.IsPrimary.set -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs.PointerEventArgs() -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs.PointerId.get -> long +Microsoft.AspNetCore.Components.Web.PointerEventArgs.PointerId.set -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs.PointerType.get -> string! +Microsoft.AspNetCore.Components.Web.PointerEventArgs.PointerType.set -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs.Pressure.get -> float +Microsoft.AspNetCore.Components.Web.PointerEventArgs.Pressure.set -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs.TiltX.get -> float +Microsoft.AspNetCore.Components.Web.PointerEventArgs.TiltX.set -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs.TiltY.get -> float +Microsoft.AspNetCore.Components.Web.PointerEventArgs.TiltY.set -> void +Microsoft.AspNetCore.Components.Web.PointerEventArgs.Width.get -> float +Microsoft.AspNetCore.Components.Web.PointerEventArgs.Width.set -> void +Microsoft.AspNetCore.Components.Web.ProgressEventArgs +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.LengthComputable.get -> bool +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.LengthComputable.set -> void +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.Loaded.get -> long +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.Loaded.set -> void +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.ProgressEventArgs() -> void +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.Total.get -> long +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.Total.set -> void +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.Type.get -> string! +Microsoft.AspNetCore.Components.Web.ProgressEventArgs.Type.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs +Microsoft.AspNetCore.Components.Web.TouchEventArgs.AltKey.get -> bool +Microsoft.AspNetCore.Components.Web.TouchEventArgs.AltKey.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.ChangedTouches.get -> Microsoft.AspNetCore.Components.Web.TouchPoint![]! +Microsoft.AspNetCore.Components.Web.TouchEventArgs.ChangedTouches.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.CtrlKey.get -> bool +Microsoft.AspNetCore.Components.Web.TouchEventArgs.CtrlKey.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.Detail.get -> long +Microsoft.AspNetCore.Components.Web.TouchEventArgs.Detail.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.MetaKey.get -> bool +Microsoft.AspNetCore.Components.Web.TouchEventArgs.MetaKey.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.ShiftKey.get -> bool +Microsoft.AspNetCore.Components.Web.TouchEventArgs.ShiftKey.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.TargetTouches.get -> Microsoft.AspNetCore.Components.Web.TouchPoint![]! +Microsoft.AspNetCore.Components.Web.TouchEventArgs.TargetTouches.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.TouchEventArgs() -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.Touches.get -> Microsoft.AspNetCore.Components.Web.TouchPoint![]! +Microsoft.AspNetCore.Components.Web.TouchEventArgs.Touches.set -> void +Microsoft.AspNetCore.Components.Web.TouchEventArgs.Type.get -> string! +Microsoft.AspNetCore.Components.Web.TouchEventArgs.Type.set -> void +Microsoft.AspNetCore.Components.Web.TouchPoint +Microsoft.AspNetCore.Components.Web.TouchPoint.ClientX.get -> double +Microsoft.AspNetCore.Components.Web.TouchPoint.ClientX.set -> void +Microsoft.AspNetCore.Components.Web.TouchPoint.ClientY.get -> double +Microsoft.AspNetCore.Components.Web.TouchPoint.ClientY.set -> void +Microsoft.AspNetCore.Components.Web.TouchPoint.Identifier.get -> long +Microsoft.AspNetCore.Components.Web.TouchPoint.Identifier.set -> void +Microsoft.AspNetCore.Components.Web.TouchPoint.PageX.get -> double +Microsoft.AspNetCore.Components.Web.TouchPoint.PageX.set -> void +Microsoft.AspNetCore.Components.Web.TouchPoint.PageY.get -> double +Microsoft.AspNetCore.Components.Web.TouchPoint.PageY.set -> void +Microsoft.AspNetCore.Components.Web.TouchPoint.ScreenX.get -> double +Microsoft.AspNetCore.Components.Web.TouchPoint.ScreenX.set -> void +Microsoft.AspNetCore.Components.Web.TouchPoint.ScreenY.get -> double +Microsoft.AspNetCore.Components.Web.TouchPoint.ScreenY.set -> void +Microsoft.AspNetCore.Components.Web.TouchPoint.TouchPoint() -> void +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest.CancellationToken.get -> System.Threading.CancellationToken +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest.Count.get -> int +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest.ItemsProviderRequest(int startIndex, int count, System.Threading.CancellationToken cancellationToken) -> void +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderRequest.StartIndex.get -> int +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderResult +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderResult.Items.get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderResult.ItemsProviderResult(System.Collections.Generic.IEnumerable! items, int totalItemCount) -> void +Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderResult.TotalItemCount.get -> int +Microsoft.AspNetCore.Components.Web.Virtualization.PlaceholderContext +Microsoft.AspNetCore.Components.Web.Virtualization.PlaceholderContext.Index.get -> int +Microsoft.AspNetCore.Components.Web.Virtualization.PlaceholderContext.PlaceholderContext(int index, float size = 0) -> void +Microsoft.AspNetCore.Components.Web.Virtualization.PlaceholderContext.Size.get -> float +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent.set -> void +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent.set -> void +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemSize.get -> float +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemSize.set -> void +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Items.get -> System.Collections.Generic.ICollection? +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Items.set -> void +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemsProvider.get -> Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate? +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemsProvider.set -> void +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.OverscanCount.get -> int +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.OverscanCount.set -> void +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder.get -> Microsoft.AspNetCore.Components.RenderFragment? +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder.set -> void +Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Virtualize() -> void +Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions +Microsoft.AspNetCore.Components.Web.WebRenderTreeBuilderExtensions +Microsoft.AspNetCore.Components.Web.WheelEventArgs +Microsoft.AspNetCore.Components.Web.WheelEventArgs.DeltaMode.get -> long +Microsoft.AspNetCore.Components.Web.WheelEventArgs.DeltaMode.set -> void +Microsoft.AspNetCore.Components.Web.WheelEventArgs.DeltaX.get -> double +Microsoft.AspNetCore.Components.Web.WheelEventArgs.DeltaX.set -> void +Microsoft.AspNetCore.Components.Web.WheelEventArgs.DeltaY.get -> double +Microsoft.AspNetCore.Components.Web.WheelEventArgs.DeltaY.set -> void +Microsoft.AspNetCore.Components.Web.WheelEventArgs.DeltaZ.get -> double +Microsoft.AspNetCore.Components.Web.WheelEventArgs.DeltaZ.set -> void +Microsoft.AspNetCore.Components.Web.WheelEventArgs.WheelEventArgs() -> void +Microsoft.AspNetCore.Components.WebElementReferenceContext +Microsoft.AspNetCore.Components.WebElementReferenceContext.WebElementReferenceContext(Microsoft.JSInterop.IJSRuntime! jsRuntime) -> void +abstract Microsoft.AspNetCore.Components.Forms.InputBase.TryParseValueFromString(string? value, out TValue result, out string? validationErrorMessage) -> bool +override Microsoft.AspNetCore.Components.Forms.EditForm.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.EditForm.OnParametersSet() -> void +override Microsoft.AspNetCore.Components.Forms.InputBase.SetParametersAsync(Microsoft.AspNetCore.Components.ParameterView parameters) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.Components.Forms.InputCheckbox.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputCheckbox.TryParseValueFromString(string? value, out bool result, out string? validationErrorMessage) -> bool +override Microsoft.AspNetCore.Components.Forms.InputDate.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputDate.FormatValueAsString(TValue value) -> string! +override Microsoft.AspNetCore.Components.Forms.InputDate.TryParseValueFromString(string? value, out TValue result, out string? validationErrorMessage) -> bool +override Microsoft.AspNetCore.Components.Forms.InputFile.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputFile.OnAfterRenderAsync(bool firstRender) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.Components.Forms.InputFile.OnInitialized() -> void +override Microsoft.AspNetCore.Components.Forms.InputNumber.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputNumber.FormatValueAsString(TValue value) -> string? +override Microsoft.AspNetCore.Components.Forms.InputNumber.TryParseValueFromString(string? value, out TValue result, out string? validationErrorMessage) -> bool +override Microsoft.AspNetCore.Components.Forms.InputRadio.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputRadio.OnParametersSet() -> void +override Microsoft.AspNetCore.Components.Forms.InputRadioGroup.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputRadioGroup.OnParametersSet() -> void +override Microsoft.AspNetCore.Components.Forms.InputRadioGroup.TryParseValueFromString(string? value, out TValue result, out string? validationErrorMessage) -> bool +override Microsoft.AspNetCore.Components.Forms.InputSelect.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputSelect.TryParseValueFromString(string? value, out TValue result, out string? validationErrorMessage) -> bool +override Microsoft.AspNetCore.Components.Forms.InputText.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputText.TryParseValueFromString(string? value, out string? result, out string? validationErrorMessage) -> bool +override Microsoft.AspNetCore.Components.Forms.InputTextArea.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.InputTextArea.TryParseValueFromString(string? value, out string? result, out string? validationErrorMessage) -> bool +override Microsoft.AspNetCore.Components.Forms.ValidationMessage.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.ValidationMessage.OnParametersSet() -> void +override Microsoft.AspNetCore.Components.Forms.ValidationSummary.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Forms.ValidationSummary.OnParametersSet() -> void +override Microsoft.AspNetCore.Components.Routing.NavLink.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder) -> void +override Microsoft.AspNetCore.Components.Routing.NavLink.OnInitialized() -> void +override Microsoft.AspNetCore.Components.Routing.NavLink.OnParametersSet() -> void +static Microsoft.AspNetCore.Components.ElementReferenceExtensions.FocusAsync(this Microsoft.AspNetCore.Components.ElementReference elementReference) -> System.Threading.Tasks.ValueTask +static Microsoft.AspNetCore.Components.Forms.BrowserFileExtensions.RequestImageFileAsync(this Microsoft.AspNetCore.Components.Forms.IBrowserFile! browserFile, string! format, int maxWith, int maxHeight) -> System.Threading.Tasks.ValueTask +static Microsoft.AspNetCore.Components.Forms.EditContextFieldClassExtensions.FieldCssClass(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext, in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) -> string! +static Microsoft.AspNetCore.Components.Forms.EditContextFieldClassExtensions.FieldCssClass(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext, System.Linq.Expressions.Expression!>! accessor) -> string! +static Microsoft.AspNetCore.Components.Forms.EditContextFieldClassExtensions.SetFieldCssClassProvider(this Microsoft.AspNetCore.Components.Forms.EditContext! editContext, Microsoft.AspNetCore.Components.Forms.FieldCssClassProvider! fieldCssClassProvider) -> void +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Action! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebEventCallbackFactoryEventArgsExtensions.Create(this Microsoft.AspNetCore.Components.EventCallbackFactory! factory, object! receiver, System.Func! callback) -> Microsoft.AspNetCore.Components.EventCallback +static Microsoft.AspNetCore.Components.Web.WebRenderTreeBuilderExtensions.AddEventPreventDefaultAttribute(this Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder, int sequence, string! eventName, bool value) -> void +static Microsoft.AspNetCore.Components.Web.WebRenderTreeBuilderExtensions.AddEventStopPropagationAttribute(this Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder! builder, int sequence, string! eventName, bool value) -> void +virtual Microsoft.AspNetCore.Components.Forms.FieldCssClassProvider.GetFieldCssClass(Microsoft.AspNetCore.Components.Forms.EditContext! editContext, in Microsoft.AspNetCore.Components.Forms.FieldIdentifier fieldIdentifier) -> string! +virtual Microsoft.AspNetCore.Components.Forms.InputBase.Dispose(bool disposing) -> void +virtual Microsoft.AspNetCore.Components.Forms.InputBase.FormatValueAsString(TValue value) -> string? +virtual Microsoft.AspNetCore.Components.Forms.ValidationMessage.Dispose(bool disposing) -> void +virtual Microsoft.AspNetCore.Components.Forms.ValidationSummary.Dispose(bool disposing) -> void \ No newline at end of file diff --git a/src/Components/WebAssembly/Authentication.Msal/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/Authentication.Msal/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/WebAssembly/Authentication.Msal/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/WebAssembly/Authentication.Msal/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/Authentication.Msal/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..29c41fb053d4 --- /dev/null +++ b/src/Components/WebAssembly/Authentication.Msal/src/PublicAPI.Unshipped.txt @@ -0,0 +1,39 @@ +#nullable enable +Microsoft.Authentication.WebAssembly.Msal.Models.MsalCacheOptions +Microsoft.Authentication.WebAssembly.Msal.Models.MsalCacheOptions.MsalCacheOptions() -> void +Microsoft.Authentication.WebAssembly.Msal.Models.MsalCacheOptions.StoreAuthStateInCookie.get -> bool +Microsoft.Authentication.WebAssembly.Msal.Models.MsalCacheOptions.StoreAuthStateInCookie.set -> void +Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions +Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.MsalProviderOptions() -> void +Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions +Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.MsalAuthenticationOptions() -> void +Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.NavigateToLoginRequestUrl.get -> bool +Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.NavigateToLoginRequestUrl.set -> void +Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.ValidateAuthority.get -> bool +Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.ValidateAuthority.set -> void +Microsoft.Extensions.DependencyInjection.MsalWebAssemblyServiceCollectionExtensions +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalCacheOptions.CacheLocation.get -> string +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalCacheOptions.CacheLocation.set -> void +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.AdditionalScopesToConsent.get -> System.Collections.Generic.IList +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.AdditionalScopesToConsent.set -> void +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.Authentication.get -> Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.Authentication.set -> void +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.Cache.get -> Microsoft.Authentication.WebAssembly.Msal.Models.MsalCacheOptions +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.Cache.set -> void +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.DefaultAccessTokenScopes.get -> System.Collections.Generic.IList +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.DefaultAccessTokenScopes.set -> void +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.LoginMode.get -> string +~Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions.LoginMode.set -> void +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.Authority.get -> string +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.Authority.set -> void +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.ClientId.get -> string +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.ClientId.set -> void +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.KnownAuthorities.get -> System.Collections.Generic.IList +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.KnownAuthorities.set -> void +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.PostLogoutRedirectUri.get -> string +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.PostLogoutRedirectUri.set -> void +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.RedirectUri.get -> string +~Microsoft.Authentication.WebAssembly.Msal.MsalAuthenticationOptions.RedirectUri.set -> void +~static Microsoft.Extensions.DependencyInjection.MsalWebAssemblyServiceCollectionExtensions.AddMsalAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.MsalWebAssemblyServiceCollectionExtensions.AddMsalAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.MsalWebAssemblyServiceCollectionExtensions.AddMsalAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder diff --git a/src/Components/WebAssembly/DevServer/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/DevServer/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/WebAssembly/DevServer/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/WebAssembly/DevServer/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/DevServer/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..e6777be07cae --- /dev/null +++ b/src/Components/WebAssembly/DevServer/src/PublicAPI.Unshipped.txt @@ -0,0 +1,4 @@ +#nullable enable +Microsoft.AspNetCore.Components.WebAssembly.DevServer.Server.Program +Microsoft.AspNetCore.Components.WebAssembly.DevServer.Server.Program.Program() -> void +~static Microsoft.AspNetCore.Components.WebAssembly.DevServer.Server.Program.BuildWebHost(string[] args) -> Microsoft.Extensions.Hosting.IHost diff --git a/src/Components/WebAssembly/JSInterop/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/JSInterop/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/WebAssembly/JSInterop/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/WebAssembly/JSInterop/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/JSInterop/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..d565dd9b1761 --- /dev/null +++ b/src/Components/WebAssembly/JSInterop/src/PublicAPI.Unshipped.txt @@ -0,0 +1,10 @@ +#nullable enable +Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime +Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.WebAssemblyJSRuntime() -> void +override Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.EndInvokeDotNet(Microsoft.JSInterop.Infrastructure.DotNetInvocationInfo callInfo, in Microsoft.JSInterop.Infrastructure.DotNetInvocationResult dispatchResult) -> void +~Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1, T2 arg2) -> TResult +~Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled(string identifier, T0 arg0, T1 arg1) -> TResult +~Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled(string identifier, T0 arg0) -> TResult +~Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeUnmarshalled(string identifier) -> TResult +~override Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.BeginInvokeJS(long asyncHandle, string identifier, string argsJson, Microsoft.JSInterop.JSCallResultType resultType, long targetInstanceId) -> void +~override Microsoft.JSInterop.WebAssembly.WebAssemblyJSRuntime.InvokeJS(string identifier, string argsJson, Microsoft.JSInterop.JSCallResultType resultType, long targetInstanceId) -> string diff --git a/src/Components/WebAssembly/Server/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/Server/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/WebAssembly/Server/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/WebAssembly/Server/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/Server/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..ba007b89a11d --- /dev/null +++ b/src/Components/WebAssembly/Server/src/PublicAPI.Unshipped.txt @@ -0,0 +1,9 @@ +#nullable enable +Microsoft.AspNetCore.Builder.ComponentsWebAssemblyApplicationBuilderExtensions +Microsoft.AspNetCore.Builder.WebAssemblyNetDebugProxyAppBuilderExtensions +Microsoft.AspNetCore.Components.WebAssembly.Server.TargetPickerUi +~Microsoft.AspNetCore.Components.WebAssembly.Server.TargetPickerUi.Display(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Components.WebAssembly.Server.TargetPickerUi.TargetPickerUi(string debugProxyUrl, string devToolsHost) -> void +~static Microsoft.AspNetCore.Builder.ComponentsWebAssemblyApplicationBuilderExtensions.UseBlazorFrameworkFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ComponentsWebAssemblyApplicationBuilderExtensions.UseBlazorFrameworkFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, Microsoft.AspNetCore.Http.PathString pathPrefix) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.WebAssemblyNetDebugProxyAppBuilderExtensions.UseWebAssemblyDebugging(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> void diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..3e3c985f0365 --- /dev/null +++ b/src/Components/WebAssembly/WebAssembly.Authentication/src/PublicAPI.Unshipped.txt @@ -0,0 +1,226 @@ +#nullable enable +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken.AccessToken() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken.Expires.get -> System.DateTimeOffset +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken.Expires.set -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenNotAvailableException +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenNotAvailableException.Redirect() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.AccessTokenRequestOptions() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.Status.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus.RequiresRedirect = 1 -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus.Success = 0 -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.ApiAuthorizationProviderOptions +Microsoft.AspNetCore.Components.WebAssembly.Authentication.ApiAuthorizationProviderOptions.ApiAuthorizationProviderOptions() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.AuthorizationMessageHandler +Microsoft.AspNetCore.Components.WebAssembly.Authentication.BaseAddressAuthorizationMessageHandler +Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider +Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal.IAccessTokenProviderAccessor +Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions +Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.OidcProviderOptions() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.RemoteAuthenticationActions() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.RemoteAuthenticationApplicationPathsOptions() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext.RemoteAuthenticationContext() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.RemoteAuthenticationDefaults() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationOptions +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationOptions.ProviderOptions.get -> TRemoteAuthenticationProviderOptions +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationOptions.RemoteAuthenticationOptions() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationResult.RemoteAuthenticationResult() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationResult.Status.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationResult.Status.set -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationState +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationState.RemoteAuthenticationState() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus.Failure = 2 -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus.OperationCompleted = 3 -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus.Redirect = 0 -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus.Success = 1 -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationStatus +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.RemoteAuthenticationUserOptions() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorView +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorView.RemoteAuthenticatorView() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.RemoteAuthenticatorViewCore() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount +Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.RemoteUserAccount() -> void +Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager +Microsoft.Extensions.DependencyInjection.RemoteAuthenticationBuilderExtensions +Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions +virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.SetSignOutState() -> System.Threading.Tasks.ValueTask +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken.GrantedScopes.get -> System.Collections.Generic.IReadOnlyList +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken.GrantedScopes.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken.Value.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken.Value.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenNotAvailableException.AccessTokenNotAvailableException(Microsoft.AspNetCore.Components.NavigationManager navigation, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult tokenResult, System.Collections.Generic.IEnumerable scopes) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.ReturnUrl.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.ReturnUrl.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.Scopes.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions.Scopes.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.AccessTokenResult(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResultStatus status, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken token, string redirectUrl) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.RedirectUrl.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenResult.TryGetToken(out Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessToken accessToken) -> bool +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory.AccountClaimsPrincipalFactory(Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal.IAccessTokenProviderAccessor accessor) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory.TokenProvider.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.ApiAuthorizationProviderOptions.ConfigurationEndpoint.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.ApiAuthorizationProviderOptions.ConfigurationEndpoint.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AuthorizationMessageHandler.AuthorizationMessageHandler(Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider provider, Microsoft.AspNetCore.Components.NavigationManager navigation) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.AuthorizationMessageHandler.ConfigureHandler(System.Collections.Generic.IEnumerable authorizedUrls, System.Collections.Generic.IEnumerable scopes = null, string returnUrl = null) -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.AuthorizationMessageHandler +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.BaseAddressAuthorizationMessageHandler.BaseAddressAuthorizationMessageHandler(Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider provider, Microsoft.AspNetCore.Components.NavigationManager navigationManager) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider.RequestAccessToken() -> System.Threading.Tasks.ValueTask +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider.RequestAccessToken(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions options) -> System.Threading.Tasks.ValueTask +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.IRemoteAuthenticationService +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.IRemoteAuthenticationService.CompleteSignInAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext context) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.IRemoteAuthenticationService.CompleteSignOutAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext context) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.IRemoteAuthenticationService.SignInAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext context) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.IRemoteAuthenticationService.SignOutAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext context) -> System.Threading.Tasks.Task> +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.Internal.IAccessTokenProviderAccessor.TokenProvider.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.IAccessTokenProvider +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.Authority.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.Authority.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.ClientId.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.ClientId.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.DefaultScopes.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.MetadataUrl.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.MetadataUrl.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.PostLogoutRedirectUri.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.PostLogoutRedirectUri.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.RedirectUri.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.RedirectUri.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.ResponseMode.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.ResponseMode.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.ResponseType.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.OidcProviderOptions.ResponseType.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogInCallbackPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogInCallbackPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogInFailedPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogInFailedPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogInPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogInPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogOutCallbackPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogOutCallbackPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogOutFailedPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogOutFailedPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogOutPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogOutPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogOutSucceededPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.LogOutSucceededPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.ProfilePath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.ProfilePath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.RegisterPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.RegisterPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.RemoteProfilePath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.RemoteProfilePath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.RemoteRegisterPath.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions.RemoteRegisterPath.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext.State.get -> TRemoteAuthenticationState +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext.State.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext.Url.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext.Url.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationOptions.AuthenticationPaths.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationOptions.UserOptions.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationResult +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationResult.ErrorMessage.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationResult.ErrorMessage.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationResult.State.get -> TRemoteAuthenticationState +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationResult.State.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.AccountClaimsPrincipalFactory.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.JsRuntime.get -> Microsoft.JSInterop.IJSRuntime +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.Navigation.get -> Microsoft.AspNetCore.Components.NavigationManager +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.Options.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationOptions +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RemoteAuthenticationService(Microsoft.JSInterop.IJSRuntime jsRuntime, Microsoft.Extensions.Options.IOptions> options, Microsoft.AspNetCore.Components.NavigationManager navigation, Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory accountClaimsPrincipalFactory) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationState.ReturnUrl.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationState.ReturnUrl.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.AuthenticationType.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.AuthenticationType.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.NameClaim.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.NameClaim.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.RoleClaim.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.RoleClaim.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.ScopeClaim.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions.ScopeClaim.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.Action.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.Action.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.ApplicationPaths.get -> Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationApplicationPathsOptions +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.ApplicationPaths.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.AuthenticationState.get -> TAuthenticationState +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.AuthenticationState.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.CompletingLogOut.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.CompletingLogOut.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.CompletingLoggingIn.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.CompletingLoggingIn.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LogInFailed.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LogInFailed.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LogOut.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LogOut.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LogOutFailed.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LogOutFailed.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LogOutSucceeded.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LogOutSucceeded.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LoggingIn.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.LoggingIn.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.OnLogInSucceeded.get -> Microsoft.AspNetCore.Components.EventCallback +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.OnLogInSucceeded.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.OnLogOutSucceeded.get -> Microsoft.AspNetCore.Components.EventCallback +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.OnLogOutSucceeded.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.Registering.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.Registering.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.UserProfile.get -> Microsoft.AspNetCore.Components.RenderFragment +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.UserProfile.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.AdditionalProperties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteUserAccount.AdditionalProperties.set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.SignOutSessionStateManager(Microsoft.JSInterop.IJSRuntime jsRuntime) -> void +~Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.LogIn = "login" -> string +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.LogInCallback = "login-callback" -> string +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.LogInFailed = "login-failed" -> string +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.LogOut = "logout" -> string +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.LogOutCallback = "logout-callback" -> string +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.LogOutFailed = "logout-failed" -> string +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.LogOutSucceeded = "logged-out" -> string +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.Profile = "profile" -> string +~const Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.Register = "register" -> string +~override Microsoft.AspNetCore.Components.WebAssembly.Authentication.AuthorizationMessageHandler.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.GetAuthenticationStateAsync() -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.BuildRenderTree(Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder builder) -> void +~override Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticatorViewCore.OnParametersSetAsync() -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationActions.IsAction(string action, string candidate) -> bool +~static Microsoft.Extensions.DependencyInjection.RemoteAuthenticationBuilderExtensions.AddAccountClaimsPrincipalFactory(this Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder builder) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.RemoteAuthenticationBuilderExtensions.AddAccountClaimsPrincipalFactory(this Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder builder) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.RemoteAuthenticationBuilderExtensions.AddAccountClaimsPrincipalFactory(this Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder builder) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddApiAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddApiAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddApiAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddApiAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddApiAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddApiAuthorization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddOidcAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddOidcAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddOidcAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddRemoteAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static Microsoft.Extensions.DependencyInjection.WebAssemblyAuthenticationServiceCollectionExtensions.AddRemoteAuthentication(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action> configure) -> Microsoft.Extensions.DependencyInjection.IRemoteAuthenticationBuilder +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.LoginCallbackPath -> string +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.LoginFailedPath -> string +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.LoginPath -> string +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.LogoutCallbackPath -> string +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.LogoutFailedPath -> string +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.LogoutPath -> string +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.LogoutSucceededPath -> string +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.ProfilePath -> string +~static readonly Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationDefaults.RegisterPath -> string +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccountClaimsPrincipalFactory.CreateUserAsync(TAccount account, Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationUserOptions options) -> System.Threading.Tasks.ValueTask +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.CompleteSignInAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext context) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.CompleteSignOutAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext context) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.GetAuthenticatedUser() -> System.Threading.Tasks.ValueTask +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RequestAccessToken() -> System.Threading.Tasks.ValueTask +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.RequestAccessToken(Microsoft.AspNetCore.Components.WebAssembly.Authentication.AccessTokenRequestOptions options) -> System.Threading.Tasks.ValueTask +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.SignInAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext context) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationService.SignOutAsync(Microsoft.AspNetCore.Components.WebAssembly.Authentication.RemoteAuthenticationContext context) -> System.Threading.Tasks.Task> +~virtual Microsoft.AspNetCore.Components.WebAssembly.Authentication.SignOutSessionStateManager.ValidateSignOutState() -> System.Threading.Tasks.Task diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..ab058de62d44 --- /dev/null +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..831880cbcba2 --- /dev/null +++ b/src/Components/WebAssembly/WebAssembly/src/PublicAPI.Unshipped.txt @@ -0,0 +1,74 @@ +#nullable enable +Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment +Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMapping +Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMapping.Parameters.get -> Microsoft.AspNetCore.Components.ParameterView +Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMappingCollection +Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMappingCollection.RootComponentMappingCollection() -> void +Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHost +Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHost.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder +Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration +Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.Dispose() -> void +Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.Reload() -> void +Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.WebAssemblyHostConfiguration() -> void +Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache.Default = 0 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache.ForceCache = 4 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache.NoCache = 3 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache.NoStore = 1 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache.OnlyIfCached = 5 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache.Reload = 2 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials.Include = 2 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials.Omit = 0 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials.SameOrigin = 1 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode.Cors = 2 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode.Navigate = 3 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode.NoCors = 1 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode +Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode.SameOrigin = 0 -> Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode +Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions +Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods +Microsoft.AspNetCore.Components.WebAssembly.Services.LazyAssemblyLoader +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.BaseAddress.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment.Environment.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMapping.ComponentType.get -> System.Type +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMapping.RootComponentMapping(System.Type componentType, string selector) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMapping.RootComponentMapping(System.Type componentType, string selector, Microsoft.AspNetCore.Components.ParameterView parameters) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMapping.Selector.get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMappingCollection.Add(System.Type componentType, string selector) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMappingCollection.Add(System.Type componentType, string selector, Microsoft.AspNetCore.Components.ParameterView parameters) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMappingCollection.Add(string selector) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMappingCollection.AddRange(System.Collections.Generic.IEnumerable items) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHost.Configuration.get -> Microsoft.Extensions.Configuration.IConfiguration +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHost.RunAsync() -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHost.Services.get -> System.IServiceProvider +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.Build() -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHost +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.Configuration.get -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.ConfigureContainer(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory factory, System.Action configure = null) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.HostEnvironment.get -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.Logging.get -> Microsoft.Extensions.Logging.ILoggingBuilder +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.RootComponents.get -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.RootComponentMappingCollection +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.Services.get -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.Add(Microsoft.Extensions.Configuration.IConfigurationSource source) -> Microsoft.Extensions.Configuration.IConfigurationBuilder +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.Build() -> Microsoft.Extensions.Configuration.IConfigurationRoot +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.GetReloadToken() -> Microsoft.Extensions.Primitives.IChangeToken +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.GetSection(string key) -> Microsoft.Extensions.Configuration.IConfigurationSection +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.this[string key].get -> string +~Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostConfiguration.this[string key].set -> void +~Microsoft.AspNetCore.Components.WebAssembly.Services.LazyAssemblyLoader.LazyAssemblyLoader(Microsoft.JSInterop.IJSRuntime jsRuntime) -> void +~Microsoft.AspNetCore.Components.WebAssembly.Services.LazyAssemblyLoader.LoadAssembliesAsync(System.Collections.Generic.IEnumerable assembliesToLoad) -> System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder.CreateDefault(string[] args = null) -> Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostBuilder +~static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsDevelopment(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment hostingEnvironment) -> bool +~static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsEnvironment(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment hostingEnvironment, string environmentName) -> bool +~static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsProduction(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment hostingEnvironment) -> bool +~static Microsoft.AspNetCore.Components.WebAssembly.Hosting.WebAssemblyHostEnvironmentExtensions.IsStaging(this Microsoft.AspNetCore.Components.WebAssembly.Hosting.IWebAssemblyHostEnvironment hostingEnvironment) -> bool +~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestCache(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCache requestCache) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestCredentials(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestCredentials requestCredentials) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestIntegrity(this System.Net.Http.HttpRequestMessage requestMessage, string integrity) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestMode(this System.Net.Http.HttpRequestMessage requestMessage, Microsoft.AspNetCore.Components.WebAssembly.Http.BrowserRequestMode requestMode) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserRequestOption(this System.Net.Http.HttpRequestMessage requestMessage, string name, object value) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Http.WebAssemblyHttpRequestMessageExtensions.SetBrowserResponseStreamingEnabled(this System.Net.Http.HttpRequestMessage requestMessage, bool streamingEnabled) -> System.Net.Http.HttpRequestMessage +~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.DispatchEvent(Microsoft.AspNetCore.Components.RenderTree.WebEventDescriptor eventDescriptor, string eventArgsJson) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Components.WebAssembly.Infrastructure.JSInteropMethods.NotifyLocationChanged(string uri, bool isInterceptedLink) -> void diff --git a/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/BasicTestAppWebDriverExtensions.cs b/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/BasicTestAppWebDriverExtensions.cs index 1d744ab26def..77b77275bd9c 100644 --- a/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/BasicTestAppWebDriverExtensions.cs +++ b/src/Components/test/E2ETest/Infrastructure/WebDriverExtensions/BasicTestAppWebDriverExtensions.cs @@ -8,7 +8,10 @@ internal static class BasicTestAppWebDriverExtensions { public static IWebElement MountTestComponent(this IWebDriver browser) where TComponent : IComponent { - var componentTypeName = typeof(TComponent).FullName; + var componentType = typeof(TComponent); + var componentTypeName = componentType.Assembly == typeof(BasicTestApp.Program).Assembly ? + componentType.FullName : + componentType.AssemblyQualifiedName; var testSelector = browser.WaitUntilTestSelectorReady(); testSelector.SelectByValue("none"); testSelector.SelectByValue(componentTypeName); diff --git a/src/Components/test/E2ETest/ServerExecutionTests/ProtectedBrowserStorageUsageTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/ProtectedBrowserStorageUsageTest.cs index 5908dffc4b83..1e692eff4de1 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/ProtectedBrowserStorageUsageTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/ProtectedBrowserStorageUsageTest.cs @@ -5,25 +5,24 @@ using System.Linq; using System.Runtime.InteropServices; using System.Threading.Tasks; -using BasicTestApp; +using Components.TestServer; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; using OpenQA.Selenium; using OpenQA.Selenium.Interactions; -using TestServer; using Xunit; using Xunit.Abstractions; namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests { - public class ProtectedBrowserStorageUsageTest : ServerTestBase> + public class ProtectedBrowserStorageUsageTest : ServerTestBase> { public ProtectedBrowserStorageUsageTest( BrowserFixture browserFixture, - BasicTestAppServerSiteFixture serverFixture, + ToggleExecutionModeServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture.WithServerExecution(), output) { } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/TestSubclasses.cs b/src/Components/test/E2ETest/ServerExecutionTests/TestSubclasses.cs index 8de1d8a7c6d1..d6f45c2d5e5b 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/TestSubclasses.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/TestSubclasses.cs @@ -83,4 +83,12 @@ public ServerInputFileTest(BrowserFixture browserFixture, ToggleExecutionModeSer { } } + + public class ServerVirtualizationTest : VirtualizationTest + { + public ServerVirtualizationTest(BrowserFixture browserFixture, ToggleExecutionModeServerFixture serverFixture, ITestOutputHelper output) + : base(browserFixture, serverFixture.WithServerExecution(), output) + { + } + } } diff --git a/src/Components/test/E2ETest/Tests/BootResourceCachingTest.cs b/src/Components/test/E2ETest/Tests/BootResourceCachingTest.cs index 1dd32e822112..889f96a1b2cf 100644 --- a/src/Components/test/E2ETest/Tests/BootResourceCachingTest.cs +++ b/src/Components/test/E2ETest/Tests/BootResourceCachingTest.cs @@ -71,16 +71,16 @@ public void IncrementallyUpdatesCache() Navigate("/"); WaitUntilLoaded(); var cacheEntryUrls1 = GetCacheEntryUrls(); - var cacheEntryForMsCorLib = cacheEntryUrls1.Single(url => url.Contains("/mscorlib.dll")); + var cacheEntryForComponentsDll = cacheEntryUrls1.Single(url => url.Contains("/Microsoft.AspNetCore.Components.dll")); var cacheEntryForDotNetWasm = cacheEntryUrls1.Single(url => url.Contains("/dotnet.wasm")); var cacheEntryForDotNetWasmWithChangedHash = cacheEntryForDotNetWasm.Replace(".sha256-", ".sha256-different"); // Remove some items we do need, and add an item we don't need - RemoveCacheEntry(cacheEntryForMsCorLib); + RemoveCacheEntry(cacheEntryForComponentsDll); RemoveCacheEntry(cacheEntryForDotNetWasm); AddCacheEntry(cacheEntryForDotNetWasmWithChangedHash, "ignored content"); var cacheEntryUrls2 = GetCacheEntryUrls(); - Assert.DoesNotContain(cacheEntryForMsCorLib, cacheEntryUrls2); + Assert.DoesNotContain(cacheEntryForComponentsDll, cacheEntryUrls2); Assert.DoesNotContain(cacheEntryForDotNetWasm, cacheEntryUrls2); Assert.Contains(cacheEntryForDotNetWasmWithChangedHash, cacheEntryUrls2); @@ -91,13 +91,13 @@ public void IncrementallyUpdatesCache() WaitUntilLoaded(); var subsequentResourcesRequested = GetAndClearRequestedPaths(); Assert.Collection(subsequentResourcesRequested.Where(url => url.Contains(".dll")), - requestedDll => Assert.Contains("/mscorlib.dll", requestedDll)); + requestedDll => Assert.Contains("/Microsoft.AspNetCore.Components.dll", requestedDll)); Assert.Collection(subsequentResourcesRequested.Where(url => url.Contains(".wasm")), requestedDll => Assert.Contains("/dotnet.wasm", requestedDll)); // We also update the cache (add new items, remove unnecessary items) var cacheEntryUrls3 = GetCacheEntryUrls(); - Assert.Contains(cacheEntryForMsCorLib, cacheEntryUrls3); + Assert.Contains(cacheEntryForComponentsDll, cacheEntryUrls3); Assert.Contains(cacheEntryForDotNetWasm, cacheEntryUrls3); Assert.DoesNotContain(cacheEntryForDotNetWasmWithChangedHash, cacheEntryUrls3); } diff --git a/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs b/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs index 7e4df2898e75..8ac2563fc2fa 100644 --- a/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs +++ b/src/Components/test/E2ETest/Tests/ClientRenderingMultpleComponentsTest.cs @@ -14,7 +14,7 @@ using Xunit; using Xunit.Abstractions; -namespace Microsoft.AspNetCore.Components.E2ETests.Tests +namespace Microsoft.AspNetCore.Components.E2ETest.Tests { public class ClientRenderingMultpleComponentsTest : ServerTestBase> { diff --git a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs index f84f0b1bce47..86abf7802cdb 100644 --- a/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs +++ b/src/Components/test/E2ETest/Tests/HeadComponentsTest.cs @@ -3,7 +3,6 @@ using System.Linq; using BasicTestApp; -using Microsoft.AspNetCore.Components.E2ETest; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; @@ -11,7 +10,7 @@ using Xunit; using Xunit.Abstractions; -namespace Microsoft.AspNetCore.Components.E2ETests.Tests +namespace Microsoft.AspNetCore.Components.E2ETest.Tests { public class HeadComponentsTest : ServerTestBase> { diff --git a/src/Components/test/E2ETest/Tests/InputFileTest.cs b/src/Components/test/E2ETest/Tests/InputFileTest.cs index c140f996c6fa..5a8a940efd14 100644 --- a/src/Components/test/E2ETest/Tests/InputFileTest.cs +++ b/src/Components/test/E2ETest/Tests/InputFileTest.cs @@ -7,7 +7,6 @@ using System.Text; using BasicTestApp; using BasicTestApp.FormsTest; -using Microsoft.AspNetCore.Components.E2ETest; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; @@ -50,11 +49,17 @@ public void CanUploadSingleSmallFile() inputFile.SendKeys(file.Path); var fileContainer = Browser.FindElement(By.Id($"file-{file.Name}")); + var fileNameElement = fileContainer.FindElement(By.Id("file-name")); + var fileLastModifiedElement = fileContainer.FindElement(By.Id("file-last-modified")); var fileSizeElement = fileContainer.FindElement(By.Id("file-size")); + var fileContentTypeElement = fileContainer.FindElement(By.Id("file-content-type")); var fileContentElement = fileContainer.FindElement(By.Id("file-content")); - // Validate that the file was uploaded correctly + // Validate that the file was uploaded correctly and all fields are present + Browser.False(() => string.IsNullOrWhiteSpace(fileNameElement.Text)); + Browser.NotEqual(default, () => DateTimeOffset.Parse(fileLastModifiedElement.Text)); Browser.Equal(file.Contents.Length.ToString(), () => fileSizeElement.Text); + Browser.Equal("text/plain", () => fileContentTypeElement.Text); Browser.Equal(file.Text, () => fileContentElement.Text); } @@ -77,11 +82,17 @@ public void CanUploadSingleLargeFile() inputFile.SendKeys(file.Path); var fileContainer = Browser.FindElement(By.Id($"file-{file.Name}")); + var fileNameElement = fileContainer.FindElement(By.Id("file-name")); + var fileLastModifiedElement = fileContainer.FindElement(By.Id("file-last-modified")); var fileSizeElement = fileContainer.FindElement(By.Id("file-size")); + var fileContentTypeElement = fileContainer.FindElement(By.Id("file-content-type")); var fileContentElement = fileContainer.FindElement(By.Id("file-content")); - // Validate that the file was uploaded correctly + // Validate that the file was uploaded correctly and all fields are present + Browser.False(() => string.IsNullOrWhiteSpace(fileNameElement.Text)); + Browser.NotEqual(default, () => DateTimeOffset.Parse(fileLastModifiedElement.Text)); Browser.Equal(file.Contents.Length.ToString(), () => fileSizeElement.Text); + Browser.Equal("text/plain", () => fileContentTypeElement.Text); Browser.Equal(file.Text, () => fileContentElement.Text); } @@ -97,14 +108,21 @@ public void CanUploadMultipleFiles() var inputFile = Browser.FindElement(By.Id("input-file")); inputFile.SendKeys(string.Join("\n", files.Select(f => f.Path))); - // VAlidate that each file was uploaded correctly + // Validate that each file was uploaded correctly Assert.All(files, file => { var fileContainer = Browser.FindElement(By.Id($"file-{file.Name}")); + var fileNameElement = fileContainer.FindElement(By.Id("file-name")); + var fileLastModifiedElement = fileContainer.FindElement(By.Id("file-last-modified")); var fileSizeElement = fileContainer.FindElement(By.Id("file-size")); + var fileContentTypeElement = fileContainer.FindElement(By.Id("file-content-type")); var fileContentElement = fileContainer.FindElement(By.Id("file-content")); + // Validate that the file was uploaded correctly and all fields are present + Browser.False(() => string.IsNullOrWhiteSpace(fileNameElement.Text)); + Browser.NotEqual(default, () => DateTimeOffset.Parse(fileLastModifiedElement.Text)); Browser.Equal(file.Contents.Length.ToString(), () => fileSizeElement.Text); + Browser.Equal("text/plain", () => fileContentTypeElement.Text); Browser.Equal(file.Text, () => fileContentElement.Text); }); } diff --git a/src/Components/test/E2ETest/Tests/ProtectedBrowserStorageInjectionTest.cs b/src/Components/test/E2ETest/Tests/ProtectedBrowserStorageInjectionTest.cs index d3ae79c94437..2cd415087e9d 100644 --- a/src/Components/test/E2ETest/Tests/ProtectedBrowserStorageInjectionTest.cs +++ b/src/Components/test/E2ETest/Tests/ProtectedBrowserStorageInjectionTest.cs @@ -3,6 +3,7 @@ using System; using BasicTestApp; +using Components.TestServer; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; @@ -10,7 +11,7 @@ using Xunit; using Xunit.Abstractions; -namespace Microsoft.AspNetCore.Components.E2ETest.Tests +namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests { public class ProtectedBrowserStorageInjectionTest : ServerTestBase> { @@ -18,7 +19,7 @@ public ProtectedBrowserStorageInjectionTest( BrowserFixture browserFixture, ToggleExecutionModeServerFixture serverFixture, ITestOutputHelper output) - : base(browserFixture, serverFixture, output) + : base(browserFixture, serverFixture.WithServerExecution(), output) { } diff --git a/src/Components/test/E2ETest/Tests/VirtualizationTest.cs b/src/Components/test/E2ETest/Tests/VirtualizationTest.cs index 6894af066af3..1dc34c69e9ac 100644 --- a/src/Components/test/E2ETest/Tests/VirtualizationTest.cs +++ b/src/Components/test/E2ETest/Tests/VirtualizationTest.cs @@ -2,7 +2,6 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using BasicTestApp; -using Microsoft.AspNetCore.Components.E2ETest; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure; using Microsoft.AspNetCore.Components.E2ETest.Infrastructure.ServerFixtures; using Microsoft.AspNetCore.E2ETesting; @@ -12,7 +11,7 @@ using Xunit; using Xunit.Abstractions; -namespace Microsoft.AspNetCore.Components.E2ETests.Tests +namespace Microsoft.AspNetCore.Components.E2ETest.Tests { public class VirtualizationTest : ServerTestBase> { @@ -121,7 +120,7 @@ public void RerendersWhenItemSizeShrinks_Sync() var itemSizeInput = Browser.FindElement(By.Id("item-size-input")); // Change the item size. - itemSizeInput.SendKeys("\b\b\b50\n"); + itemSizeInput.SendKeys("\b\b\b10\n"); // Validate that the list has been re-rendered to show more items. Browser.True(() => GetItemCount() > initialItemCount); @@ -146,7 +145,7 @@ public void RerendersWhenItemSizeShrinks_Async() var itemSizeInput = Browser.FindElement(By.Id("item-size-input")); // Change the item size. - itemSizeInput.SendKeys("\b\b\b50\n"); + itemSizeInput.SendKeys("\b\b\b10\n"); // Validate that the same number of loaded items is rendered. Browser.Equal(initialItemCount, GetItemCount); diff --git a/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj b/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj index d25ab757956b..13f08442bf56 100644 --- a/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj +++ b/src/Components/test/testassets/BasicTestApp/BasicTestApp.csproj @@ -15,7 +15,6 @@ - diff --git a/src/Components/test/testassets/BasicTestApp/FormsTest/InputFileComponent.razor b/src/Components/test/testassets/BasicTestApp/FormsTest/InputFileComponent.razor index 44a555fe4f9e..7e163e304787 100644 --- a/src/Components/test/testassets/BasicTestApp/FormsTest/InputFileComponent.razor +++ b/src/Components/test/testassets/BasicTestApp/FormsTest/InputFileComponent.razor @@ -27,9 +27,11 @@ Max allowed files: @foreach (var (file, content) in loadedFiles) {

- File name: @(file.Name)
- File size (bytes): @(file.Size)
- File content: @content
+ Name: @(file.Name)
+ Last modified: @(file.LastModified.ToString())
+ Size (bytes): @(file.Size)
+ Content type: @(file.ContentType)
+ Content: @content

} diff --git a/src/Components/test/testassets/BasicTestApp/Index.razor b/src/Components/test/testassets/BasicTestApp/Index.razor index f2abaa1ba948..d73fb75fbfd7 100644 --- a/src/Components/test/testassets/BasicTestApp/Index.razor +++ b/src/Components/test/testassets/BasicTestApp/Index.razor @@ -66,8 +66,8 @@ - - + + @@ -108,7 +108,7 @@ string SelectedComponentTypeName { get; set; } = "none"; Type SelectedComponentType - => SelectedComponentTypeName == "none" ? null : Type.GetType(SelectedComponentTypeName); + => SelectedComponentTypeName == "none" ? null : Type.GetType(SelectedComponentTypeName, throwOnError: true); void RenderSelectedComponent(RenderTreeBuilder builder) { @@ -118,4 +118,13 @@ builder.CloseComponent(); } } + + static string GetTestServerProjectComponent(string componentName) + { + var serverAssembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(f => f.GetName().Name == "Components.TestServer"); + // If the server project isn't loaded return the component name as-is. Calculating the SelectedComponentType property will result in an error. + return serverAssembly is null ? + componentName : + serverAssembly.GetType(componentName, throwOnError: true).AssemblyQualifiedName; + } } diff --git a/src/Components/test/testassets/BasicTestApp/Program.cs b/src/Components/test/testassets/BasicTestApp/Program.cs index 09f652e62e8f..0a33c288da0d 100644 --- a/src/Components/test/testassets/BasicTestApp/Program.cs +++ b/src/Components/test/testassets/BasicTestApp/Program.cs @@ -19,7 +19,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Configuration; using Microsoft.JSInterop; -using Microsoft.AspNetCore.Components.ProtectedBrowserStorage; namespace BasicTestApp { @@ -40,11 +39,6 @@ public static async Task Main(string[] args) policy.RequireAssertion(ctx => ctx.User.Identity.Name?.StartsWith("B") ?? false)); }); - builder.Services.AddDataProtection(); - - builder.Services.AddTransient(); - builder.Services.AddTransient(); - builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); builder.Logging.Services.AddSingleton(s => diff --git a/src/Components/test/testassets/BasicTestApp/wwwroot/index.html b/src/Components/test/testassets/BasicTestApp/wwwroot/index.html index 584dcc44bb9f..ed8bf6a89fe7 100644 --- a/src/Components/test/testassets/BasicTestApp/wwwroot/index.html +++ b/src/Components/test/testassets/BasicTestApp/wwwroot/index.html @@ -6,6 +6,7 @@ Basic test app + diff --git a/src/Components/test/testassets/TestServer/Components.TestServer.csproj b/src/Components/test/testassets/TestServer/Components.TestServer.csproj index 5030a5fc7818..ebe6254a9054 100644 --- a/src/Components/test/testassets/TestServer/Components.TestServer.csproj +++ b/src/Components/test/testassets/TestServer/Components.TestServer.csproj @@ -7,7 +7,6 @@ - diff --git a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml index 2421d246ad61..1276708a8e85 100644 --- a/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml +++ b/src/Components/test/testassets/TestServer/Pages/_ServerHost.cshtml @@ -7,6 +7,7 @@ Basic test app + diff --git a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs index 961333fb6e20..c4d7ad3c94dd 100644 --- a/src/Components/test/testassets/TestServer/PrerenderedStartup.cs +++ b/src/Components/test/testassets/TestServer/PrerenderedStartup.cs @@ -23,7 +23,7 @@ public void ConfigureServices(IServiceCollection services) services.AddMvc(); services.AddServerSideBlazor(); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(); - services.AddSingleton(); + services.AddScoped(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/Components/test/testassets/BasicTestApp/ProtectedBrowserStorageInjectionComponent.razor b/src/Components/test/testassets/TestServer/ProtectedBrowserStorageInjectionComponent.razor similarity index 82% rename from src/Components/test/testassets/BasicTestApp/ProtectedBrowserStorageInjectionComponent.razor rename to src/Components/test/testassets/TestServer/ProtectedBrowserStorageInjectionComponent.razor index 1fc1b40c0d3e..54ec048f77a0 100644 --- a/src/Components/test/testassets/BasicTestApp/ProtectedBrowserStorageInjectionComponent.razor +++ b/src/Components/test/testassets/TestServer/ProtectedBrowserStorageInjectionComponent.razor @@ -1,6 +1,5 @@ -@using Microsoft.Extensions.DependencyInjection -@using Microsoft.AspNetCore.Components.Web.Extensions -@using Microsoft.AspNetCore.Components.ProtectedBrowserStorage +@using Microsoft.Extensions.DependencyInjection +@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage @inject IServiceProvider ServiceProvider diff --git a/src/Components/test/testassets/BasicTestApp/ProtectedBrowserStorageUsageComponent.razor b/src/Components/test/testassets/TestServer/ProtectedBrowserStorageUsageComponent.razor similarity index 93% rename from src/Components/test/testassets/BasicTestApp/ProtectedBrowserStorageUsageComponent.razor rename to src/Components/test/testassets/TestServer/ProtectedBrowserStorageUsageComponent.razor index fd9c65d4c9d0..8f9da1a79a27 100644 --- a/src/Components/test/testassets/BasicTestApp/ProtectedBrowserStorageUsageComponent.razor +++ b/src/Components/test/testassets/TestServer/ProtectedBrowserStorageUsageComponent.razor @@ -1,5 +1,4 @@ -@using Microsoft.AspNetCore.Components.Web.Extensions -@using Microsoft.AspNetCore.Components.ProtectedBrowserStorage +@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage @inject ProtectedLocalStorage ProtectedLocalStore @inject ProtectedSessionStorage ProtectedSessionStore diff --git a/src/Components/test/testassets/TestServer/ServerStartup.cs b/src/Components/test/testassets/TestServer/ServerStartup.cs index 90d6e862fa91..83578c5dcb3a 100644 --- a/src/Components/test/testassets/TestServer/ServerStartup.cs +++ b/src/Components/test/testassets/TestServer/ServerStartup.cs @@ -19,8 +19,7 @@ public ServerStartup(IConfiguration configuration) public void ConfigureServices(IServiceCollection services) { services.AddMvc(); - services.AddServerSideBlazor(); - services.AddProtectedBrowserStorage(); + services.AddServerSideBlazor(options => options.DetailedErrors = true); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/src/Components/test/testassets/TestServer/_Imports.razor b/src/Components/test/testassets/TestServer/_Imports.razor new file mode 100644 index 000000000000..a71616835c7b --- /dev/null +++ b/src/Components/test/testassets/TestServer/_Imports.razor @@ -0,0 +1,2 @@ +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization diff --git a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj index f642976df34c..096f7df9da01 100644 --- a/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj +++ b/src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj @@ -288,7 +288,14 @@ This package is an internal implementation of the .NET Core SDK and is not meant - + + + %(BuiltProjectOutputGroupOutput.Identity) + + + + + diff --git a/src/Framework/Framework.slnf b/src/Framework/Framework.slnf new file mode 100644 index 000000000000..542719a43272 --- /dev/null +++ b/src/Framework/Framework.slnf @@ -0,0 +1,104 @@ +{ + "solution": { + "path": "..\\..\\AspNetCore.sln", + "projects": [ + "src\\Antiforgery\\src\\Microsoft.AspNetCore.Antiforgery.csproj", + "src\\Components\\Authorization\\src\\Microsoft.AspNetCore.Components.Authorization.csproj", + "src\\Components\\Components\\src\\Microsoft.AspNetCore.Components.csproj", + "src\\Components\\Forms\\src\\Microsoft.AspNetCore.Components.Forms.csproj", + "src\\Components\\Server\\src\\Microsoft.AspNetCore.Components.Server.csproj", + "src\\Components\\Web\\src\\Microsoft.AspNetCore.Components.Web.csproj", + "src\\Configuration.KeyPerFile\\src\\Microsoft.Extensions.Configuration.KeyPerFile.csproj", + "src\\DataProtection\\Abstractions\\src\\Microsoft.AspNetCore.DataProtection.Abstractions.csproj", + "src\\DataProtection\\Cryptography.Internal\\src\\Microsoft.AspNetCore.Cryptography.Internal.csproj", + "src\\DataProtection\\Cryptography.KeyDerivation\\src\\Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj", + "src\\DataProtection\\DataProtection\\src\\Microsoft.AspNetCore.DataProtection.csproj", + "src\\DataProtection\\Extensions\\src\\Microsoft.AspNetCore.DataProtection.Extensions.csproj", + "src\\DefaultBuilder\\src\\Microsoft.AspNetCore.csproj", + "src\\FileProviders\\Embedded\\src\\Microsoft.Extensions.FileProviders.Embedded.csproj", + "src\\FileProviders\\Manifest.MSBuildTask\\src\\Microsoft.Extensions.FileProviders.Embedded.Manifest.Task.csproj", + "src\\Framework\\App.Ref\\src\\Microsoft.AspNetCore.App.Ref.csproj", + "src\\Framework\\App.Runtime\\src\\Microsoft.AspNetCore.App.Runtime.csproj", + "src\\Framework\\test\\Microsoft.AspNetCore.App.UnitTests.csproj", + "src\\HealthChecks\\Abstractions\\src\\Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.csproj", + "src\\HealthChecks\\HealthChecks\\src\\Microsoft.Extensions.Diagnostics.HealthChecks.csproj", + "src\\Hosting\\Abstractions\\src\\Microsoft.AspNetCore.Hosting.Abstractions.csproj", + "src\\Hosting\\Hosting\\src\\Microsoft.AspNetCore.Hosting.csproj", + "src\\Hosting\\Server.Abstractions\\src\\Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj", + "src\\Html\\Abstractions\\src\\Microsoft.AspNetCore.Html.Abstractions.csproj", + "src\\Http\\Authentication.Abstractions\\src\\Microsoft.AspNetCore.Authentication.Abstractions.csproj", + "src\\Http\\Authentication.Core\\src\\Microsoft.AspNetCore.Authentication.Core.csproj", + "src\\Http\\Headers\\src\\Microsoft.Net.Http.Headers.csproj", + "src\\Http\\Http.Abstractions\\src\\Microsoft.AspNetCore.Http.Abstractions.csproj", + "src\\Http\\Http.Extensions\\src\\Microsoft.AspNetCore.Http.Extensions.csproj", + "src\\Http\\Http.Features\\src\\Microsoft.AspNetCore.Http.Features.csproj", + "src\\Http\\Http\\src\\Microsoft.AspNetCore.Http.csproj", + "src\\Http\\Metadata\\src\\Microsoft.AspNetCore.Metadata.csproj", + "src\\Http\\Routing.Abstractions\\src\\Microsoft.AspNetCore.Routing.Abstractions.csproj", + "src\\Http\\Routing\\src\\Microsoft.AspNetCore.Routing.csproj", + "src\\Http\\WebUtilities\\src\\Microsoft.AspNetCore.WebUtilities.csproj", + "src\\Identity\\Core\\src\\Microsoft.AspNetCore.Identity.csproj", + "src\\Identity\\Extensions.Core\\src\\Microsoft.Extensions.Identity.Core.csproj", + "src\\Identity\\Extensions.Stores\\src\\Microsoft.Extensions.Identity.Stores.csproj", + "src\\JSInterop\\Microsoft.JSInterop\\src\\Microsoft.JSInterop.csproj", + "src\\Middleware\\CORS\\src\\Microsoft.AspNetCore.Cors.csproj", + "src\\Middleware\\Diagnostics.Abstractions\\src\\Microsoft.AspNetCore.Diagnostics.Abstractions.csproj", + "src\\Middleware\\Diagnostics\\src\\Microsoft.AspNetCore.Diagnostics.csproj", + "src\\Middleware\\HealthChecks\\src\\Microsoft.AspNetCore.Diagnostics.HealthChecks.csproj", + "src\\Middleware\\HostFiltering\\src\\Microsoft.AspNetCore.HostFiltering.csproj", + "src\\Middleware\\HttpOverrides\\src\\Microsoft.AspNetCore.HttpOverrides.csproj", + "src\\Middleware\\HttpsPolicy\\src\\Microsoft.AspNetCore.HttpsPolicy.csproj", + "src\\Middleware\\Localization.Routing\\src\\Microsoft.AspNetCore.Localization.Routing.csproj", + "src\\Middleware\\Localization\\src\\Microsoft.AspNetCore.Localization.csproj", + "src\\Middleware\\ResponseCaching.Abstractions\\src\\Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj", + "src\\Middleware\\ResponseCaching\\src\\Microsoft.AspNetCore.ResponseCaching.csproj", + "src\\Middleware\\ResponseCompression\\src\\Microsoft.AspNetCore.ResponseCompression.csproj", + "src\\Middleware\\Rewrite\\src\\Microsoft.AspNetCore.Rewrite.csproj", + "src\\Middleware\\Session\\src\\Microsoft.AspNetCore.Session.csproj", + "src\\Middleware\\StaticFiles\\src\\Microsoft.AspNetCore.StaticFiles.csproj", + "src\\Middleware\\WebSockets\\src\\Microsoft.AspNetCore.WebSockets.csproj", + "src\\Mvc\\Mvc.Abstractions\\src\\Microsoft.AspNetCore.Mvc.Abstractions.csproj", + "src\\Mvc\\Mvc.ApiExplorer\\src\\Microsoft.AspNetCore.Mvc.ApiExplorer.csproj", + "src\\Mvc\\Mvc.Core\\src\\Microsoft.AspNetCore.Mvc.Core.csproj", + "src\\Mvc\\Mvc.Cors\\src\\Microsoft.AspNetCore.Mvc.Cors.csproj", + "src\\Mvc\\Mvc.DataAnnotations\\src\\Microsoft.AspNetCore.Mvc.DataAnnotations.csproj", + "src\\Mvc\\Mvc.Formatters.Json\\src\\Microsoft.AspNetCore.Mvc.Formatters.Json.csproj", + "src\\Mvc\\Mvc.Formatters.Xml\\src\\Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj", + "src\\Mvc\\Mvc.Localization\\src\\Microsoft.AspNetCore.Mvc.Localization.csproj", + "src\\Mvc\\Mvc.RazorPages\\src\\Microsoft.AspNetCore.Mvc.RazorPages.csproj", + "src\\Mvc\\Mvc.Razor\\src\\Microsoft.AspNetCore.Mvc.Razor.csproj", + "src\\Mvc\\Mvc.TagHelpers\\src\\Microsoft.AspNetCore.Mvc.TagHelpers.csproj", + "src\\Mvc\\Mvc.ViewFeatures\\src\\Microsoft.AspNetCore.Mvc.ViewFeatures.csproj", + "src\\Mvc\\Mvc\\src\\Microsoft.AspNetCore.Mvc.csproj", + "src\\ObjectPool\\src\\Microsoft.Extensions.ObjectPool.csproj", + "src\\Razor\\Microsoft.AspNetCore.Mvc.Razor.Extensions\\src\\Microsoft.AspNetCore.Mvc.Razor.Extensions.csproj", + "src\\Razor\\Microsoft.AspNetCore.Razor.Language\\src\\Microsoft.AspNetCore.Razor.Language.csproj", + "src\\Razor\\Microsoft.AspNetCore.Razor.Tools\\src\\rzc.csproj", + "src\\Razor\\Microsoft.CodeAnalysis.Razor\\src\\Microsoft.CodeAnalysis.Razor.csproj", + "src\\Razor\\Microsoft.NET.Sdk.Razor\\src\\Microsoft.NET.Sdk.Razor.csproj", + "src\\Razor\\Razor.Runtime\\src\\Microsoft.AspNetCore.Razor.Runtime.csproj", + "src\\Razor\\Razor\\src\\Microsoft.AspNetCore.Razor.csproj", + "src\\Security\\Authentication\\Cookies\\src\\Microsoft.AspNetCore.Authentication.Cookies.csproj", + "src\\Security\\Authentication\\Core\\src\\Microsoft.AspNetCore.Authentication.csproj", + "src\\Security\\Authentication\\OAuth\\src\\Microsoft.AspNetCore.Authentication.OAuth.csproj", + "src\\Security\\Authorization\\Core\\src\\Microsoft.AspNetCore.Authorization.csproj", + "src\\Security\\Authorization\\Policy\\src\\Microsoft.AspNetCore.Authorization.Policy.csproj", + "src\\Security\\CookiePolicy\\src\\Microsoft.AspNetCore.CookiePolicy.csproj", + "src\\Servers\\Connections.Abstractions\\src\\Microsoft.AspNetCore.Connections.Abstractions.csproj", + "src\\Servers\\HttpSys\\src\\Microsoft.AspNetCore.Server.HttpSys.csproj", + "src\\Servers\\IIS\\IISIntegration\\src\\Microsoft.AspNetCore.Server.IISIntegration.csproj", + "src\\Servers\\IIS\\IIS\\src\\Microsoft.AspNetCore.Server.IIS.csproj", + "src\\Servers\\Kestrel\\Core\\src\\Microsoft.AspNetCore.Server.Kestrel.Core.csproj", + "src\\Servers\\Kestrel\\Kestrel\\src\\Microsoft.AspNetCore.Server.Kestrel.csproj", + "src\\Servers\\Kestrel\\Transport.Sockets\\src\\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj", + "src\\SignalR\\common\\Http.Connections.Common\\src\\Microsoft.AspNetCore.Http.Connections.Common.csproj", + "src\\SignalR\\common\\Http.Connections\\src\\Microsoft.AspNetCore.Http.Connections.csproj", + "src\\SignalR\\common\\Protocols.Json\\src\\Microsoft.AspNetCore.SignalR.Protocols.Json.csproj", + "src\\SignalR\\common\\SignalR.Common\\src\\Microsoft.AspNetCore.SignalR.Common.csproj", + "src\\SignalR\\server\\Core\\src\\Microsoft.AspNetCore.SignalR.Core.csproj", + "src\\SignalR\\server\\SignalR\\src\\Microsoft.AspNetCore.SignalR.csproj", + "src\\Testing\\src\\Microsoft.AspNetCore.Testing.csproj", + "src\\WebEncoders\\src\\Microsoft.Extensions.WebEncoders.csproj" + ] + } +} \ No newline at end of file diff --git a/src/Framework/startvs.cmd b/src/Framework/startvs.cmd new file mode 100644 index 000000000000..565f65298758 --- /dev/null +++ b/src/Framework/startvs.cmd @@ -0,0 +1,3 @@ +@ECHO OFF + +%~dp0..\..\startvs.cmd %~dp0Framework.slnf diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index 519681e80c9a..d39f6dbbe485 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -102,15 +102,22 @@ public void RefAssemblyReferencesHaveExpectedAssemblyVersions() Assert.All(dlls, path => { - using var fileStream = File.OpenRead(path); - using var peReader = new PEReader(fileStream, PEStreamOptions.Default); - var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default); - - Assert.All(reader.AssemblyReferences, handle => + // Skip netstandard2.0 System.IO.Pipelines assembly. References have old versions. + var filename = Path.GetFileName(path); + if (!string.Equals("System.IO.Pipelines.dll", filename, StringComparison.OrdinalIgnoreCase)) { - var reference = reader.GetAssemblyReference(handle); - Assert.Equal(0, reference.Version.Revision); - }); + using var fileStream = File.OpenRead(path); + using var peReader = new PEReader(fileStream, PEStreamOptions.Default); + var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default); + + Assert.All(reader.AssemblyReferences, handle => + { + var reference = reader.GetAssemblyReference(handle); + var result = 0 == reference.Version.Revision; + + Assert.True(result, $"In {filename}, {reference.GetAssemblyName()} has unexpected version {reference.Version}."); + }); + } }); } diff --git a/src/Analyzers/Analyzers/src/PublicAPI.Shipped.txt b/src/Html/Abstractions/src/PublicAPI.Shipped.txt similarity index 100% rename from src/Analyzers/Analyzers/src/PublicAPI.Shipped.txt rename to src/Html/Abstractions/src/PublicAPI.Shipped.txt diff --git a/src/Html/Abstractions/src/PublicAPI.Unshipped.txt b/src/Html/Abstractions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..32f03547bf81 --- /dev/null +++ b/src/Html/Abstractions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,44 @@ +#nullable enable +Microsoft.AspNetCore.Html.HtmlContentBuilder +Microsoft.AspNetCore.Html.HtmlContentBuilder.Append(string? unencoded) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +Microsoft.AspNetCore.Html.HtmlContentBuilder.AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent? htmlContent) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +Microsoft.AspNetCore.Html.HtmlContentBuilder.AppendHtml(string? encoded) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +Microsoft.AspNetCore.Html.HtmlContentBuilder.Clear() -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +Microsoft.AspNetCore.Html.HtmlContentBuilder.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder! destination) -> void +Microsoft.AspNetCore.Html.HtmlContentBuilder.Count.get -> int +Microsoft.AspNetCore.Html.HtmlContentBuilder.HtmlContentBuilder() -> void +Microsoft.AspNetCore.Html.HtmlContentBuilder.HtmlContentBuilder(System.Collections.Generic.IList! entries) -> void +Microsoft.AspNetCore.Html.HtmlContentBuilder.HtmlContentBuilder(int capacity) -> void +Microsoft.AspNetCore.Html.HtmlContentBuilder.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder! destination) -> void +Microsoft.AspNetCore.Html.HtmlContentBuilder.WriteTo(System.IO.TextWriter! writer, System.Text.Encodings.Web.HtmlEncoder! encoder) -> void +Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions +Microsoft.AspNetCore.Html.HtmlFormattableString +Microsoft.AspNetCore.Html.HtmlFormattableString.HtmlFormattableString(System.IFormatProvider? formatProvider, string! format, params object![]! args) -> void +Microsoft.AspNetCore.Html.HtmlFormattableString.HtmlFormattableString(string! format, params object![]! args) -> void +Microsoft.AspNetCore.Html.HtmlFormattableString.WriteTo(System.IO.TextWriter! writer, System.Text.Encodings.Web.HtmlEncoder! encoder) -> void +Microsoft.AspNetCore.Html.HtmlString +Microsoft.AspNetCore.Html.HtmlString.HtmlString(string? value) -> void +Microsoft.AspNetCore.Html.HtmlString.Value.get -> string? +Microsoft.AspNetCore.Html.HtmlString.WriteTo(System.IO.TextWriter! writer, System.Text.Encodings.Web.HtmlEncoder! encoder) -> void +Microsoft.AspNetCore.Html.IHtmlContent +Microsoft.AspNetCore.Html.IHtmlContent.WriteTo(System.IO.TextWriter! writer, System.Text.Encodings.Web.HtmlEncoder! encoder) -> void +Microsoft.AspNetCore.Html.IHtmlContentBuilder +Microsoft.AspNetCore.Html.IHtmlContentBuilder.Append(string! unencoded) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +Microsoft.AspNetCore.Html.IHtmlContentBuilder.AppendHtml(Microsoft.AspNetCore.Html.IHtmlContent! content) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +Microsoft.AspNetCore.Html.IHtmlContentBuilder.AppendHtml(string! encoded) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +Microsoft.AspNetCore.Html.IHtmlContentBuilder.Clear() -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +Microsoft.AspNetCore.Html.IHtmlContentContainer +Microsoft.AspNetCore.Html.IHtmlContentContainer.CopyTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder) -> void +Microsoft.AspNetCore.Html.IHtmlContentContainer.MoveTo(Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder) -> void +override Microsoft.AspNetCore.Html.HtmlString.ToString() -> string! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.AppendFormat(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder, System.IFormatProvider! formatProvider, string! format, params object![]! args) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.AppendFormat(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder, string! format, params object![]! args) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.AppendHtmlLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder, string! encoded) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.AppendLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.AppendLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder, Microsoft.AspNetCore.Html.IHtmlContent! content) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.AppendLine(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder, string! unencoded) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.SetContent(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder, string! unencoded) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.SetHtmlContent(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder, Microsoft.AspNetCore.Html.IHtmlContent! content) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static Microsoft.AspNetCore.Html.HtmlContentBuilderExtensions.SetHtmlContent(this Microsoft.AspNetCore.Html.IHtmlContentBuilder! builder, string! encoded) -> Microsoft.AspNetCore.Html.IHtmlContentBuilder! +static readonly Microsoft.AspNetCore.Html.HtmlString.Empty -> Microsoft.AspNetCore.Html.HtmlString! +static readonly Microsoft.AspNetCore.Html.HtmlString.NewLine -> Microsoft.AspNetCore.Html.HtmlString! diff --git a/src/Analyzers/Analyzers/src/PublicAPI.Unshipped.txt b/src/Http/Authentication.Abstractions/src/PublicAPI.Shipped.txt similarity index 100% rename from src/Analyzers/Analyzers/src/PublicAPI.Unshipped.txt rename to src/Http/Authentication.Abstractions/src/PublicAPI.Shipped.txt diff --git a/src/Http/Authentication.Abstractions/src/PublicAPI.Unshipped.txt b/src/Http/Authentication.Abstractions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..099028895557 --- /dev/null +++ b/src/Http/Authentication.Abstractions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,157 @@ +#nullable enable +Microsoft.AspNetCore.Authentication.AuthenticateResult +Microsoft.AspNetCore.Authentication.AuthenticateResult.AuthenticateResult() -> void +Microsoft.AspNetCore.Authentication.AuthenticateResult.Clone() -> Microsoft.AspNetCore.Authentication.AuthenticateResult! +Microsoft.AspNetCore.Authentication.AuthenticateResult.Failure.get -> System.Exception? +Microsoft.AspNetCore.Authentication.AuthenticateResult.Failure.set -> void +Microsoft.AspNetCore.Authentication.AuthenticateResult.None.get -> bool +Microsoft.AspNetCore.Authentication.AuthenticateResult.None.set -> void +Microsoft.AspNetCore.Authentication.AuthenticateResult.Principal.get -> System.Security.Claims.ClaimsPrincipal? +Microsoft.AspNetCore.Authentication.AuthenticateResult.Properties.get -> Microsoft.AspNetCore.Authentication.AuthenticationProperties? +Microsoft.AspNetCore.Authentication.AuthenticateResult.Properties.set -> void +Microsoft.AspNetCore.Authentication.AuthenticateResult.Succeeded.get -> bool +Microsoft.AspNetCore.Authentication.AuthenticateResult.Ticket.get -> Microsoft.AspNetCore.Authentication.AuthenticationTicket? +Microsoft.AspNetCore.Authentication.AuthenticateResult.Ticket.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions +Microsoft.AspNetCore.Authentication.AuthenticationOptions +Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(string! name, System.Action! configureBuilder) -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(string! name, string? displayName) -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.AuthenticationOptions() -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultAuthenticateScheme.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultAuthenticateScheme.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultChallengeScheme.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultChallengeScheme.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultForbidScheme.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultForbidScheme.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultScheme.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultScheme.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultSignInScheme.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultSignInScheme.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultSignOutScheme.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationOptions.DefaultSignOutScheme.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.RequireAuthenticatedSignIn.get -> bool +Microsoft.AspNetCore.Authentication.AuthenticationOptions.RequireAuthenticatedSignIn.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationOptions.SchemeMap.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Authentication.AuthenticationOptions.Schemes.get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Authentication.AuthenticationProperties +Microsoft.AspNetCore.Authentication.AuthenticationProperties.AllowRefresh.get -> bool? +Microsoft.AspNetCore.Authentication.AuthenticationProperties.AllowRefresh.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.AuthenticationProperties() -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.AuthenticationProperties(System.Collections.Generic.IDictionary! items) -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.AuthenticationProperties(System.Collections.Generic.IDictionary? items, System.Collections.Generic.IDictionary? parameters) -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.Clone() -> Microsoft.AspNetCore.Authentication.AuthenticationProperties! +Microsoft.AspNetCore.Authentication.AuthenticationProperties.ExpiresUtc.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Authentication.AuthenticationProperties.ExpiresUtc.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.GetBool(string! key) -> bool? +Microsoft.AspNetCore.Authentication.AuthenticationProperties.GetDateTimeOffset(string! key) -> System.DateTimeOffset? +Microsoft.AspNetCore.Authentication.AuthenticationProperties.GetParameter(string! key) -> T +Microsoft.AspNetCore.Authentication.AuthenticationProperties.GetString(string! key) -> string? +Microsoft.AspNetCore.Authentication.AuthenticationProperties.IsPersistent.get -> bool +Microsoft.AspNetCore.Authentication.AuthenticationProperties.IsPersistent.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.IssuedUtc.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Authentication.AuthenticationProperties.IssuedUtc.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.Items.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Authentication.AuthenticationProperties.Parameters.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Authentication.AuthenticationProperties.RedirectUri.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationProperties.RedirectUri.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.SetBool(string! key, bool? value) -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.SetDateTimeOffset(string! key, System.DateTimeOffset? value) -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.SetParameter(string! key, T value) -> void +Microsoft.AspNetCore.Authentication.AuthenticationProperties.SetString(string! key, string? value) -> void +Microsoft.AspNetCore.Authentication.AuthenticationScheme +Microsoft.AspNetCore.Authentication.AuthenticationScheme.AuthenticationScheme(string! name, string? displayName, System.Type! handlerType) -> void +Microsoft.AspNetCore.Authentication.AuthenticationScheme.DisplayName.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationScheme.HandlerType.get -> System.Type! +Microsoft.AspNetCore.Authentication.AuthenticationScheme.Name.get -> string! +Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder +Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder.AuthenticationSchemeBuilder(string! name) -> void +Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder.Build() -> Microsoft.AspNetCore.Authentication.AuthenticationScheme! +Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder.DisplayName.get -> string? +Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder.DisplayName.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder.HandlerType.get -> System.Type? +Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder.HandlerType.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationSchemeBuilder.Name.get -> string! +Microsoft.AspNetCore.Authentication.AuthenticationTicket +Microsoft.AspNetCore.Authentication.AuthenticationTicket.AuthenticationScheme.get -> string! +Microsoft.AspNetCore.Authentication.AuthenticationTicket.AuthenticationTicket(System.Security.Claims.ClaimsPrincipal! principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties, string! authenticationScheme) -> void +Microsoft.AspNetCore.Authentication.AuthenticationTicket.AuthenticationTicket(System.Security.Claims.ClaimsPrincipal! principal, string! authenticationScheme) -> void +Microsoft.AspNetCore.Authentication.AuthenticationTicket.Clone() -> Microsoft.AspNetCore.Authentication.AuthenticationTicket! +Microsoft.AspNetCore.Authentication.AuthenticationTicket.Principal.get -> System.Security.Claims.ClaimsPrincipal! +Microsoft.AspNetCore.Authentication.AuthenticationTicket.Properties.get -> Microsoft.AspNetCore.Authentication.AuthenticationProperties! +Microsoft.AspNetCore.Authentication.AuthenticationToken +Microsoft.AspNetCore.Authentication.AuthenticationToken.AuthenticationToken() -> void +Microsoft.AspNetCore.Authentication.AuthenticationToken.Name.get -> string! +Microsoft.AspNetCore.Authentication.AuthenticationToken.Name.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationToken.Value.get -> string! +Microsoft.AspNetCore.Authentication.AuthenticationToken.Value.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions +Microsoft.AspNetCore.Authentication.IAuthenticationFeature +Microsoft.AspNetCore.Authentication.IAuthenticationFeature.OriginalPath.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Authentication.IAuthenticationFeature.OriginalPath.set -> void +Microsoft.AspNetCore.Authentication.IAuthenticationFeature.OriginalPathBase.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Authentication.IAuthenticationFeature.OriginalPathBase.set -> void +Microsoft.AspNetCore.Authentication.IAuthenticationHandler +Microsoft.AspNetCore.Authentication.IAuthenticationHandler.AuthenticateAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationHandler.ChallengeAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationHandler.ForbidAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationHandler.InitializeAsync(Microsoft.AspNetCore.Authentication.AuthenticationScheme! scheme, Microsoft.AspNetCore.Http.HttpContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider +Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider.GetHandlerAsync(Microsoft.AspNetCore.Http.HttpContext! context, string! authenticationScheme) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler +Microsoft.AspNetCore.Authentication.IAuthenticationRequestHandler.HandleRequestAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.AddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme! scheme) -> void +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.GetAllSchemesAsync() -> System.Threading.Tasks.Task!>! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.GetDefaultAuthenticateSchemeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.GetDefaultChallengeSchemeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.GetDefaultForbidSchemeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.GetDefaultSignInSchemeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.GetDefaultSignOutSchemeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.GetRequestHandlerSchemesAsync() -> System.Threading.Tasks.Task!>! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.GetSchemeAsync(string! name) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.RemoveScheme(string! name) -> void +Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider.TryAddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme! scheme) -> bool +Microsoft.AspNetCore.Authentication.IAuthenticationService +Microsoft.AspNetCore.Authentication.IAuthenticationService.AuthenticateAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationService.ChallengeAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationService.ForbidAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationService.SignInAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, System.Security.Claims.ClaimsPrincipal! principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationService.SignOutAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler +Microsoft.AspNetCore.Authentication.IAuthenticationSignInHandler.SignInAsync(System.Security.Claims.ClaimsPrincipal! user, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler +Microsoft.AspNetCore.Authentication.IAuthenticationSignOutHandler.SignOutAsync(Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.IClaimsTransformation +Microsoft.AspNetCore.Authentication.IClaimsTransformation.TransformAsync(System.Security.Claims.ClaimsPrincipal! principal) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticateResult.Fail(System.Exception! failure) -> Microsoft.AspNetCore.Authentication.AuthenticateResult! +static Microsoft.AspNetCore.Authentication.AuthenticateResult.Fail(System.Exception! failure, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> Microsoft.AspNetCore.Authentication.AuthenticateResult! +static Microsoft.AspNetCore.Authentication.AuthenticateResult.Fail(string! failureMessage) -> Microsoft.AspNetCore.Authentication.AuthenticateResult! +static Microsoft.AspNetCore.Authentication.AuthenticateResult.Fail(string! failureMessage, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> Microsoft.AspNetCore.Authentication.AuthenticateResult! +static Microsoft.AspNetCore.Authentication.AuthenticateResult.NoResult() -> Microsoft.AspNetCore.Authentication.AuthenticateResult! +static Microsoft.AspNetCore.Authentication.AuthenticateResult.Success(Microsoft.AspNetCore.Authentication.AuthenticationTicket! ticket) -> Microsoft.AspNetCore.Authentication.AuthenticateResult! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.AuthenticateAsync(this Microsoft.AspNetCore.Http.HttpContext! context) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.AuthenticateAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext! context) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext! context, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.ChallengeAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext! context) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext! context, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.ForbidAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.GetTokenAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string! tokenName) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.GetTokenAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, string! tokenName) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.SignInAsync(this Microsoft.AspNetCore.Http.HttpContext! context, System.Security.Claims.ClaimsPrincipal! principal) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.SignInAsync(this Microsoft.AspNetCore.Http.HttpContext! context, System.Security.Claims.ClaimsPrincipal! principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.SignInAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, System.Security.Claims.ClaimsPrincipal! principal) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.SignInAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, System.Security.Claims.ClaimsPrincipal! principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext! context) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext! context, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationHttpContextExtensions.SignOutAsync(this Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions.GetTokenAsync(this Microsoft.AspNetCore.Authentication.IAuthenticationService! auth, Microsoft.AspNetCore.Http.HttpContext! context, string! tokenName) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions.GetTokenAsync(this Microsoft.AspNetCore.Authentication.IAuthenticationService! auth, Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, string! tokenName) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions.GetTokenValue(this Microsoft.AspNetCore.Authentication.AuthenticationProperties! properties, string! tokenName) -> string? +static Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions.GetTokens(this Microsoft.AspNetCore.Authentication.AuthenticationProperties! properties) -> System.Collections.Generic.IEnumerable! +static Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions.StoreTokens(this Microsoft.AspNetCore.Authentication.AuthenticationProperties! properties, System.Collections.Generic.IEnumerable! tokens) -> void +static Microsoft.AspNetCore.Authentication.AuthenticationTokenExtensions.UpdateTokenValue(this Microsoft.AspNetCore.Authentication.AuthenticationProperties! properties, string! tokenName, string! tokenValue) -> bool diff --git a/src/Http/Authentication.Core/src/PublicAPI.Shipped.txt b/src/Http/Authentication.Core/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Authentication.Core/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Authentication.Core/src/PublicAPI.Unshipped.txt b/src/Http/Authentication.Core/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..937ba9eb7668 --- /dev/null +++ b/src/Http/Authentication.Core/src/PublicAPI.Unshipped.txt @@ -0,0 +1,42 @@ +#nullable enable +Microsoft.AspNetCore.Authentication.AuthenticationFeature +Microsoft.AspNetCore.Authentication.AuthenticationFeature.AuthenticationFeature() -> void +Microsoft.AspNetCore.Authentication.AuthenticationFeature.OriginalPath.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Authentication.AuthenticationFeature.OriginalPath.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationFeature.OriginalPathBase.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Authentication.AuthenticationFeature.OriginalPathBase.set -> void +Microsoft.AspNetCore.Authentication.AuthenticationHandlerProvider +Microsoft.AspNetCore.Authentication.AuthenticationHandlerProvider.AuthenticationHandlerProvider(Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider! schemes) -> void +Microsoft.AspNetCore.Authentication.AuthenticationHandlerProvider.GetHandlerAsync(Microsoft.AspNetCore.Http.HttpContext! context, string! authenticationScheme) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Authentication.AuthenticationHandlerProvider.Schemes.get -> Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider! +Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider +Microsoft.AspNetCore.Authentication.AuthenticationService +Microsoft.AspNetCore.Authentication.AuthenticationService.Handlers.get -> Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider! +Microsoft.AspNetCore.Authentication.AuthenticationService.Options.get -> Microsoft.AspNetCore.Authentication.AuthenticationOptions! +Microsoft.AspNetCore.Authentication.AuthenticationService.Schemes.get -> Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider! +Microsoft.AspNetCore.Authentication.AuthenticationService.Transform.get -> Microsoft.AspNetCore.Authentication.IClaimsTransformation! +Microsoft.AspNetCore.Authentication.NoopClaimsTransformation +Microsoft.AspNetCore.Authentication.NoopClaimsTransformation.NoopClaimsTransformation() -> void +Microsoft.Extensions.DependencyInjection.AuthenticationCoreServiceCollectionExtensions +static Microsoft.Extensions.DependencyInjection.AuthenticationCoreServiceCollectionExtensions.AddAuthenticationCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +static Microsoft.Extensions.DependencyInjection.AuthenticationCoreServiceCollectionExtensions.AddAuthenticationCore(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.AddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme! scheme) -> void +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.GetAllSchemesAsync() -> System.Threading.Tasks.Task!>! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.GetDefaultAuthenticateSchemeAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.GetDefaultChallengeSchemeAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.GetDefaultForbidSchemeAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.GetDefaultSignInSchemeAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.GetDefaultSignOutSchemeAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.GetRequestHandlerSchemesAsync() -> System.Threading.Tasks.Task!>! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.GetSchemeAsync(string! name) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.RemoveScheme(string! name) -> void +virtual Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.TryAddScheme(Microsoft.AspNetCore.Authentication.AuthenticationScheme! scheme) -> bool +virtual Microsoft.AspNetCore.Authentication.AuthenticationService.AuthenticateAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationService.ChallengeAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationService.ForbidAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationService.SignInAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, System.Security.Claims.ClaimsPrincipal! principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.AuthenticationService.SignOutAsync(Microsoft.AspNetCore.Http.HttpContext! context, string? scheme, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Authentication.NoopClaimsTransformation.TransformAsync(System.Security.Claims.ClaimsPrincipal! principal) -> System.Threading.Tasks.Task! +~Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.AuthenticationSchemeProvider(Microsoft.Extensions.Options.IOptions! options) -> void +~Microsoft.AspNetCore.Authentication.AuthenticationSchemeProvider.AuthenticationSchemeProvider(Microsoft.Extensions.Options.IOptions! options, System.Collections.Generic.IDictionary! schemes) -> void +~Microsoft.AspNetCore.Authentication.AuthenticationService.AuthenticationService(Microsoft.AspNetCore.Authentication.IAuthenticationSchemeProvider! schemes, Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider! handlers, Microsoft.AspNetCore.Authentication.IClaimsTransformation! transform, Microsoft.Extensions.Options.IOptions! options) -> void diff --git a/src/Http/Headers/src/PublicAPI.Shipped.txt b/src/Http/Headers/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Headers/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Headers/src/PublicAPI.Unshipped.txt b/src/Http/Headers/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..d79c9d7fba76 --- /dev/null +++ b/src/Http/Headers/src/PublicAPI.Unshipped.txt @@ -0,0 +1,373 @@ +#nullable enable +Microsoft.Net.Http.Headers.CacheControlHeaderValue +Microsoft.Net.Http.Headers.CacheControlHeaderValue.CacheControlHeaderValue() -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.Extensions.get -> System.Collections.Generic.IList! +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MaxAge.get -> System.TimeSpan? +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MaxAge.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MaxStale.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MaxStale.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MaxStaleLimit.get -> System.TimeSpan? +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MaxStaleLimit.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MinFresh.get -> System.TimeSpan? +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MinFresh.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MustRevalidate.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.MustRevalidate.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoCache.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoCache.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoCacheHeaders.get -> System.Collections.Generic.ICollection! +Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoStore.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoStore.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoTransform.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoTransform.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.OnlyIfCached.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.OnlyIfCached.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.Private.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.Private.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.PrivateHeaders.get -> System.Collections.Generic.ICollection! +Microsoft.Net.Http.Headers.CacheControlHeaderValue.ProxyRevalidate.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.ProxyRevalidate.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.Public.get -> bool +Microsoft.Net.Http.Headers.CacheControlHeaderValue.Public.set -> void +Microsoft.Net.Http.Headers.CacheControlHeaderValue.SharedMaxAge.get -> System.TimeSpan? +Microsoft.Net.Http.Headers.CacheControlHeaderValue.SharedMaxAge.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.ContentDispositionHeaderValue(Microsoft.Extensions.Primitives.StringSegment dispositionType) -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.CreationDate.get -> System.DateTimeOffset? +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.CreationDate.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.DispositionType.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.DispositionType.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.FileName.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.FileName.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.FileNameStar.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.FileNameStar.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.ModificationDate.get -> System.DateTimeOffset? +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.ModificationDate.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.Name.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.Name.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.Parameters.get -> System.Collections.Generic.IList! +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.ReadDate.get -> System.DateTimeOffset? +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.ReadDate.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.SetHttpFileName(Microsoft.Extensions.Primitives.StringSegment fileName) -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.SetMimeFileName(Microsoft.Extensions.Primitives.StringSegment fileName) -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.Size.get -> long? +Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.Size.set -> void +Microsoft.Net.Http.Headers.ContentDispositionHeaderValueIdentityExtensions +Microsoft.Net.Http.Headers.ContentRangeHeaderValue +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.ContentRangeHeaderValue(long from, long to) -> void +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.ContentRangeHeaderValue(long from, long to, long length) -> void +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.ContentRangeHeaderValue(long length) -> void +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.From.get -> long? +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.HasLength.get -> bool +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.HasRange.get -> bool +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.Length.get -> long? +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.To.get -> long? +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.Unit.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.ContentRangeHeaderValue.Unit.set -> void +Microsoft.Net.Http.Headers.CookieHeaderValue +Microsoft.Net.Http.Headers.CookieHeaderValue.CookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name) -> void +Microsoft.Net.Http.Headers.CookieHeaderValue.CookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) -> void +Microsoft.Net.Http.Headers.CookieHeaderValue.Name.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.CookieHeaderValue.Name.set -> void +Microsoft.Net.Http.Headers.CookieHeaderValue.Value.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.CookieHeaderValue.Value.set -> void +Microsoft.Net.Http.Headers.EntityTagHeaderValue +Microsoft.Net.Http.Headers.EntityTagHeaderValue.Compare(Microsoft.Net.Http.Headers.EntityTagHeaderValue? other, bool useStrongComparison) -> bool +Microsoft.Net.Http.Headers.EntityTagHeaderValue.EntityTagHeaderValue(Microsoft.Extensions.Primitives.StringSegment tag) -> void +Microsoft.Net.Http.Headers.EntityTagHeaderValue.EntityTagHeaderValue(Microsoft.Extensions.Primitives.StringSegment tag, bool isWeak) -> void +Microsoft.Net.Http.Headers.EntityTagHeaderValue.IsWeak.get -> bool +Microsoft.Net.Http.Headers.EntityTagHeaderValue.Tag.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.HeaderNames +Microsoft.Net.Http.Headers.HeaderQuality +Microsoft.Net.Http.Headers.HeaderUtilities +Microsoft.Net.Http.Headers.MediaTypeHeaderValue +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Boundary.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Boundary.set -> void +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Charset.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Charset.set -> void +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Copy() -> Microsoft.Net.Http.Headers.MediaTypeHeaderValue! +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.CopyAsReadOnly() -> Microsoft.Net.Http.Headers.MediaTypeHeaderValue! +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Encoding.get -> System.Text.Encoding? +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Encoding.set -> void +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Facets.get -> System.Collections.Generic.IEnumerable! +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.IsReadOnly.get -> bool +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.IsSubsetOf(Microsoft.Net.Http.Headers.MediaTypeHeaderValue! otherMediaType) -> bool +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.MatchesAllSubTypes.get -> bool +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.MatchesAllSubTypesWithoutSuffix.get -> bool +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.MatchesAllTypes.get -> bool +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.MediaType.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.MediaType.set -> void +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.MediaTypeHeaderValue(Microsoft.Extensions.Primitives.StringSegment mediaType) -> void +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.MediaTypeHeaderValue(Microsoft.Extensions.Primitives.StringSegment mediaType, double quality) -> void +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Parameters.get -> System.Collections.Generic.IList! +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Quality.get -> double? +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Quality.set -> void +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.SubType.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.SubTypeWithoutSuffix.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Suffix.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Type.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.MediaTypeHeaderValueComparer +Microsoft.Net.Http.Headers.MediaTypeHeaderValueComparer.Compare(Microsoft.Net.Http.Headers.MediaTypeHeaderValue? mediaType1, Microsoft.Net.Http.Headers.MediaTypeHeaderValue? mediaType2) -> int +Microsoft.Net.Http.Headers.NameValueHeaderValue +Microsoft.Net.Http.Headers.NameValueHeaderValue.Copy() -> Microsoft.Net.Http.Headers.NameValueHeaderValue! +Microsoft.Net.Http.Headers.NameValueHeaderValue.CopyAsReadOnly() -> Microsoft.Net.Http.Headers.NameValueHeaderValue! +Microsoft.Net.Http.Headers.NameValueHeaderValue.GetUnescapedValue() -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.NameValueHeaderValue.IsReadOnly.get -> bool +Microsoft.Net.Http.Headers.NameValueHeaderValue.Name.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.NameValueHeaderValue.NameValueHeaderValue(Microsoft.Extensions.Primitives.StringSegment name) -> void +Microsoft.Net.Http.Headers.NameValueHeaderValue.NameValueHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) -> void +Microsoft.Net.Http.Headers.NameValueHeaderValue.SetAndEscapeValue(Microsoft.Extensions.Primitives.StringSegment value) -> void +Microsoft.Net.Http.Headers.NameValueHeaderValue.Value.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.NameValueHeaderValue.Value.set -> void +Microsoft.Net.Http.Headers.RangeConditionHeaderValue +Microsoft.Net.Http.Headers.RangeConditionHeaderValue.EntityTag.get -> Microsoft.Net.Http.Headers.EntityTagHeaderValue? +Microsoft.Net.Http.Headers.RangeConditionHeaderValue.LastModified.get -> System.DateTimeOffset? +Microsoft.Net.Http.Headers.RangeConditionHeaderValue.RangeConditionHeaderValue(Microsoft.Net.Http.Headers.EntityTagHeaderValue? entityTag) -> void +Microsoft.Net.Http.Headers.RangeConditionHeaderValue.RangeConditionHeaderValue(System.DateTimeOffset lastModified) -> void +Microsoft.Net.Http.Headers.RangeConditionHeaderValue.RangeConditionHeaderValue(string? entityTag) -> void +Microsoft.Net.Http.Headers.RangeHeaderValue +Microsoft.Net.Http.Headers.RangeHeaderValue.RangeHeaderValue() -> void +Microsoft.Net.Http.Headers.RangeHeaderValue.RangeHeaderValue(long? from, long? to) -> void +Microsoft.Net.Http.Headers.RangeHeaderValue.Ranges.get -> System.Collections.Generic.ICollection! +Microsoft.Net.Http.Headers.RangeHeaderValue.Unit.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.RangeHeaderValue.Unit.set -> void +Microsoft.Net.Http.Headers.RangeItemHeaderValue +Microsoft.Net.Http.Headers.RangeItemHeaderValue.From.get -> long? +Microsoft.Net.Http.Headers.RangeItemHeaderValue.RangeItemHeaderValue(long? from, long? to) -> void +Microsoft.Net.Http.Headers.RangeItemHeaderValue.To.get -> long? +Microsoft.Net.Http.Headers.SameSiteMode +Microsoft.Net.Http.Headers.SameSiteMode.Lax = 1 -> Microsoft.Net.Http.Headers.SameSiteMode +Microsoft.Net.Http.Headers.SameSiteMode.None = 0 -> Microsoft.Net.Http.Headers.SameSiteMode +Microsoft.Net.Http.Headers.SameSiteMode.Strict = 2 -> Microsoft.Net.Http.Headers.SameSiteMode +Microsoft.Net.Http.Headers.SameSiteMode.Unspecified = -1 -> Microsoft.Net.Http.Headers.SameSiteMode +Microsoft.Net.Http.Headers.SetCookieHeaderValue +Microsoft.Net.Http.Headers.SetCookieHeaderValue.AppendToStringBuilder(System.Text.StringBuilder! builder) -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Domain.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Domain.set -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Expires.get -> System.DateTimeOffset? +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Expires.set -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Extensions.get -> System.Collections.Generic.IList! +Microsoft.Net.Http.Headers.SetCookieHeaderValue.HttpOnly.get -> bool +Microsoft.Net.Http.Headers.SetCookieHeaderValue.HttpOnly.set -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.MaxAge.get -> System.TimeSpan? +Microsoft.Net.Http.Headers.SetCookieHeaderValue.MaxAge.set -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Name.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Name.set -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Path.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Path.set -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.SameSite.get -> Microsoft.Net.Http.Headers.SameSiteMode +Microsoft.Net.Http.Headers.SetCookieHeaderValue.SameSite.set -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Secure.get -> bool +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Secure.set -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.SetCookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name) -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.SetCookieHeaderValue(Microsoft.Extensions.Primitives.StringSegment name, Microsoft.Extensions.Primitives.StringSegment value) -> void +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Value.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.SetCookieHeaderValue.Value.set -> void +Microsoft.Net.Http.Headers.StringWithQualityHeaderValue +Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.Quality.get -> double? +Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.StringWithQualityHeaderValue(Microsoft.Extensions.Primitives.StringSegment value) -> void +Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.StringWithQualityHeaderValue(Microsoft.Extensions.Primitives.StringSegment value, double quality) -> void +Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.Value.get -> Microsoft.Extensions.Primitives.StringSegment +Microsoft.Net.Http.Headers.StringWithQualityHeaderValueComparer +Microsoft.Net.Http.Headers.StringWithQualityHeaderValueComparer.Compare(Microsoft.Net.Http.Headers.StringWithQualityHeaderValue? stringWithQuality1, Microsoft.Net.Http.Headers.StringWithQualityHeaderValue? stringWithQuality2) -> int +const Microsoft.Net.Http.Headers.HeaderQuality.Match = 1 -> double +const Microsoft.Net.Http.Headers.HeaderQuality.NoMatch = 0 -> double +override Microsoft.Net.Http.Headers.CacheControlHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.CacheControlHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.CacheControlHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.ContentRangeHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.ContentRangeHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.ContentRangeHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.CookieHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.CookieHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.CookieHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.EntityTagHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.EntityTagHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.EntityTagHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.MediaTypeHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.MediaTypeHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.NameValueHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.NameValueHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.NameValueHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.RangeConditionHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.RangeConditionHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.RangeConditionHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.RangeHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.RangeHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.RangeHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.RangeItemHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.RangeItemHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.RangeItemHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.SetCookieHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.SetCookieHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.SetCookieHeaderValue.ToString() -> string! +override Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.Equals(object? obj) -> bool +override Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.GetHashCode() -> int +override Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.ToString() -> string! +static Microsoft.Net.Http.Headers.CacheControlHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.CacheControlHeaderValue! +static Microsoft.Net.Http.Headers.CacheControlHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.CacheControlHeaderValue? parsedValue) -> bool +static Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.ContentDispositionHeaderValue! +static Microsoft.Net.Http.Headers.ContentDispositionHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.ContentDispositionHeaderValue? parsedValue) -> bool +static Microsoft.Net.Http.Headers.ContentDispositionHeaderValueIdentityExtensions.IsFileDisposition(this Microsoft.Net.Http.Headers.ContentDispositionHeaderValue! header) -> bool +static Microsoft.Net.Http.Headers.ContentDispositionHeaderValueIdentityExtensions.IsFormDisposition(this Microsoft.Net.Http.Headers.ContentDispositionHeaderValue! header) -> bool +static Microsoft.Net.Http.Headers.ContentRangeHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.ContentRangeHeaderValue! +static Microsoft.Net.Http.Headers.ContentRangeHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.ContentRangeHeaderValue! parsedValue) -> bool +static Microsoft.Net.Http.Headers.CookieHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.CookieHeaderValue! +static Microsoft.Net.Http.Headers.CookieHeaderValue.ParseList(System.Collections.Generic.IList? inputs) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.CookieHeaderValue.ParseStrictList(System.Collections.Generic.IList? inputs) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.CookieHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.CookieHeaderValue? parsedValue) -> bool +static Microsoft.Net.Http.Headers.CookieHeaderValue.TryParseList(System.Collections.Generic.IList? inputs, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.CookieHeaderValue.TryParseStrictList(System.Collections.Generic.IList? inputs, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.EntityTagHeaderValue.Any.get -> Microsoft.Net.Http.Headers.EntityTagHeaderValue! +static Microsoft.Net.Http.Headers.EntityTagHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.EntityTagHeaderValue! +static Microsoft.Net.Http.Headers.EntityTagHeaderValue.ParseList(System.Collections.Generic.IList? inputs) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.EntityTagHeaderValue.ParseStrictList(System.Collections.Generic.IList? inputs) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.EntityTagHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.EntityTagHeaderValue! parsedValue) -> bool +static Microsoft.Net.Http.Headers.EntityTagHeaderValue.TryParseList(System.Collections.Generic.IList? inputs, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.EntityTagHeaderValue.TryParseStrictList(System.Collections.Generic.IList? inputs, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.HeaderUtilities.ContainsCacheDirective(Microsoft.Extensions.Primitives.StringValues cacheControlDirectives, string! targetDirectives) -> bool +static Microsoft.Net.Http.Headers.HeaderUtilities.EscapeAsQuotedString(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Extensions.Primitives.StringSegment +static Microsoft.Net.Http.Headers.HeaderUtilities.FormatDate(System.DateTimeOffset dateTime) -> string! +static Microsoft.Net.Http.Headers.HeaderUtilities.FormatDate(System.DateTimeOffset dateTime, bool quoted) -> string! +static Microsoft.Net.Http.Headers.HeaderUtilities.FormatNonNegativeInt64(long value) -> string! +static Microsoft.Net.Http.Headers.HeaderUtilities.IsQuoted(Microsoft.Extensions.Primitives.StringSegment input) -> bool +static Microsoft.Net.Http.Headers.HeaderUtilities.RemoveQuotes(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Extensions.Primitives.StringSegment +static Microsoft.Net.Http.Headers.HeaderUtilities.TryParseDate(Microsoft.Extensions.Primitives.StringSegment input, out System.DateTimeOffset result) -> bool +static Microsoft.Net.Http.Headers.HeaderUtilities.TryParseNonNegativeInt32(Microsoft.Extensions.Primitives.StringSegment value, out int result) -> bool +static Microsoft.Net.Http.Headers.HeaderUtilities.TryParseNonNegativeInt64(Microsoft.Extensions.Primitives.StringSegment value, out long result) -> bool +static Microsoft.Net.Http.Headers.HeaderUtilities.TryParseSeconds(Microsoft.Extensions.Primitives.StringValues headerValues, string! targetValue, out System.TimeSpan? value) -> bool +static Microsoft.Net.Http.Headers.HeaderUtilities.UnescapeAsQuotedString(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Extensions.Primitives.StringSegment +static Microsoft.Net.Http.Headers.MediaTypeHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.MediaTypeHeaderValue! +static Microsoft.Net.Http.Headers.MediaTypeHeaderValue.ParseList(System.Collections.Generic.IList? inputs) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.MediaTypeHeaderValue.ParseStrictList(System.Collections.Generic.IList? inputs) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.MediaTypeHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.MediaTypeHeaderValue? parsedValue) -> bool +static Microsoft.Net.Http.Headers.MediaTypeHeaderValue.TryParseList(System.Collections.Generic.IList? inputs, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.MediaTypeHeaderValue.TryParseStrictList(System.Collections.Generic.IList? inputs, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.MediaTypeHeaderValueComparer.QualityComparer.get -> Microsoft.Net.Http.Headers.MediaTypeHeaderValueComparer! +static Microsoft.Net.Http.Headers.NameValueHeaderValue.Find(System.Collections.Generic.IList? values, Microsoft.Extensions.Primitives.StringSegment name) -> Microsoft.Net.Http.Headers.NameValueHeaderValue? +static Microsoft.Net.Http.Headers.NameValueHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.NameValueHeaderValue! +static Microsoft.Net.Http.Headers.NameValueHeaderValue.ParseList(System.Collections.Generic.IList? input) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.NameValueHeaderValue.ParseStrictList(System.Collections.Generic.IList? input) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.NameValueHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.NameValueHeaderValue? parsedValue) -> bool +static Microsoft.Net.Http.Headers.NameValueHeaderValue.TryParseList(System.Collections.Generic.IList? input, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.NameValueHeaderValue.TryParseStrictList(System.Collections.Generic.IList? input, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.RangeConditionHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.RangeConditionHeaderValue! +static Microsoft.Net.Http.Headers.RangeConditionHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.RangeConditionHeaderValue? parsedValue) -> bool +static Microsoft.Net.Http.Headers.RangeHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.RangeHeaderValue! +static Microsoft.Net.Http.Headers.RangeHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.RangeHeaderValue! parsedValue) -> bool +static Microsoft.Net.Http.Headers.SetCookieHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.SetCookieHeaderValue! +static Microsoft.Net.Http.Headers.SetCookieHeaderValue.ParseList(System.Collections.Generic.IList? inputs) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.SetCookieHeaderValue.ParseStrictList(System.Collections.Generic.IList? inputs) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.SetCookieHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.SetCookieHeaderValue? parsedValue) -> bool +static Microsoft.Net.Http.Headers.SetCookieHeaderValue.TryParseList(System.Collections.Generic.IList? inputs, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.SetCookieHeaderValue.TryParseStrictList(System.Collections.Generic.IList? inputs, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.Parse(Microsoft.Extensions.Primitives.StringSegment input) -> Microsoft.Net.Http.Headers.StringWithQualityHeaderValue! +static Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.ParseList(System.Collections.Generic.IList? input) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.ParseStrictList(System.Collections.Generic.IList? input) -> System.Collections.Generic.IList! +static Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.TryParse(Microsoft.Extensions.Primitives.StringSegment input, out Microsoft.Net.Http.Headers.StringWithQualityHeaderValue! parsedValue) -> bool +static Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.TryParseList(System.Collections.Generic.IList? input, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.StringWithQualityHeaderValue.TryParseStrictList(System.Collections.Generic.IList? input, out System.Collections.Generic.IList? parsedValues) -> bool +static Microsoft.Net.Http.Headers.StringWithQualityHeaderValueComparer.QualityComparer.get -> Microsoft.Net.Http.Headers.StringWithQualityHeaderValueComparer! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.MaxAgeString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.MaxStaleString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.MinFreshString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.MustRevalidateString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoCacheString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoStoreString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.NoTransformString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.OnlyIfCachedString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.PrivateString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.ProxyRevalidateString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.PublicString -> string! +static readonly Microsoft.Net.Http.Headers.CacheControlHeaderValue.SharedMaxAgeString -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Accept -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AcceptCharset -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AcceptEncoding -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AcceptLanguage -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AcceptRanges -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AccessControlAllowCredentials -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AccessControlAllowHeaders -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AccessControlAllowMethods -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AccessControlAllowOrigin -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AccessControlExposeHeaders -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AccessControlMaxAge -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AccessControlRequestHeaders -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AccessControlRequestMethod -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Age -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Allow -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.AltSvc -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Authority -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Authorization -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.CacheControl -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Connection -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentDisposition -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentEncoding -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentLanguage -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentLength -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentLocation -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentMD5 -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentRange -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentSecurityPolicy -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentSecurityPolicyReportOnly -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ContentType -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Cookie -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.CorrelationContext -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.DNT -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Date -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ETag -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Expect -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Expires -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.From -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.GrpcAcceptEncoding -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.GrpcEncoding -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.GrpcMessage -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.GrpcStatus -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.GrpcTimeout -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Host -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.IfMatch -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.IfModifiedSince -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.IfNoneMatch -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.IfRange -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.IfUnmodifiedSince -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.KeepAlive -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.LastModified -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Location -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.MaxForwards -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Method -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Origin -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Path -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Pragma -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ProxyAuthenticate -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.ProxyAuthorization -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Range -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Referer -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.RequestId -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.RetryAfter -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Scheme -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.SecWebSocketAccept -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.SecWebSocketKey -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.SecWebSocketProtocol -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.SecWebSocketVersion -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Server -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.SetCookie -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Status -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.StrictTransportSecurity -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.TE -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.TraceParent -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.TraceState -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Trailer -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.TransferEncoding -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Translate -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Upgrade -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.UpgradeInsecureRequests -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.UserAgent -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Vary -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Via -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.WWWAuthenticate -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.Warning -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.WebSocketSubProtocols -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.XFrameOptions -> string! +static readonly Microsoft.Net.Http.Headers.HeaderNames.XRequestedWith -> string! diff --git a/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs b/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs index c94118a82edc..6e218d2c14aa 100644 --- a/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs +++ b/src/Http/Http.Abstractions/src/Extensions/HttpResponseWritingExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.IO.Pipelines; using System.Text; using System.Threading; @@ -23,6 +24,7 @@ public static class HttpResponseWritingExtensions /// The text to write to the response. /// Notifies when request operations should be cancelled. /// A task that represents the completion of the write operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsync(this HttpResponse response, string text, CancellationToken cancellationToken = default(CancellationToken)) { if (response == null) @@ -46,6 +48,7 @@ public static class HttpResponseWritingExtensions /// The encoding to use. /// Notifies when request operations should be cancelled. /// A task that represents the completion of the write operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsync(this HttpResponse response, string text, Encoding encoding, CancellationToken cancellationToken = default(CancellationToken)) { if (response == null) diff --git a/src/Http/Http.Abstractions/src/PublicAPI.Shipped.txt b/src/Http/Http.Abstractions/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Http.Abstractions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Http.Abstractions/src/PublicAPI.Unshipped.txt b/src/Http/Http.Abstractions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..0ea10c72ef1b --- /dev/null +++ b/src/Http/Http.Abstractions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,453 @@ +#nullable enable +Microsoft.AspNetCore.Builder.EndpointBuilder +Microsoft.AspNetCore.Builder.EndpointBuilder.DisplayName.get -> string? +Microsoft.AspNetCore.Builder.EndpointBuilder.DisplayName.set -> void +Microsoft.AspNetCore.Builder.EndpointBuilder.EndpointBuilder() -> void +Microsoft.AspNetCore.Builder.EndpointBuilder.Metadata.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Builder.EndpointBuilder.RequestDelegate.get -> Microsoft.AspNetCore.Http.RequestDelegate? +Microsoft.AspNetCore.Builder.EndpointBuilder.RequestDelegate.set -> void +Microsoft.AspNetCore.Builder.Extensions.MapMiddleware +Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.MapMiddleware(Microsoft.AspNetCore.Http.RequestDelegate! next, Microsoft.AspNetCore.Builder.Extensions.MapOptions! options) -> void +Microsoft.AspNetCore.Builder.Extensions.MapOptions +Microsoft.AspNetCore.Builder.Extensions.MapOptions.Branch.get -> Microsoft.AspNetCore.Http.RequestDelegate? +Microsoft.AspNetCore.Builder.Extensions.MapOptions.Branch.set -> void +Microsoft.AspNetCore.Builder.Extensions.MapOptions.MapOptions() -> void +Microsoft.AspNetCore.Builder.Extensions.MapOptions.PathMatch.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Builder.Extensions.MapOptions.PathMatch.set -> void +Microsoft.AspNetCore.Builder.Extensions.MapOptions.PreserveMatchedPathSegment.get -> bool +Microsoft.AspNetCore.Builder.Extensions.MapOptions.PreserveMatchedPathSegment.set -> void +Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware +Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.MapWhenMiddleware(Microsoft.AspNetCore.Http.RequestDelegate! next, Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions! options) -> void +Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions +Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions.Branch.get -> Microsoft.AspNetCore.Http.RequestDelegate? +Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions.Branch.set -> void +Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions.MapWhenOptions() -> void +Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions.Predicate.get -> System.Func? +Microsoft.AspNetCore.Builder.Extensions.MapWhenOptions.Predicate.set -> void +Microsoft.AspNetCore.Builder.Extensions.UsePathBaseMiddleware +Microsoft.AspNetCore.Builder.Extensions.UsePathBaseMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Builder.Extensions.UsePathBaseMiddleware.UsePathBaseMiddleware(Microsoft.AspNetCore.Http.RequestDelegate! next, Microsoft.AspNetCore.Http.PathString pathBase) -> void +Microsoft.AspNetCore.Builder.IApplicationBuilder +Microsoft.AspNetCore.Builder.IApplicationBuilder.ApplicationServices.get -> System.IServiceProvider! +Microsoft.AspNetCore.Builder.IApplicationBuilder.ApplicationServices.set -> void +Microsoft.AspNetCore.Builder.IApplicationBuilder.Build() -> Microsoft.AspNetCore.Http.RequestDelegate! +Microsoft.AspNetCore.Builder.IApplicationBuilder.New() -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +Microsoft.AspNetCore.Builder.IApplicationBuilder.Properties.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Builder.IApplicationBuilder.ServerFeatures.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection! +Microsoft.AspNetCore.Builder.IApplicationBuilder.Use(System.Func! middleware) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +Microsoft.AspNetCore.Builder.IEndpointConventionBuilder.Add(System.Action! convention) -> void +Microsoft.AspNetCore.Builder.MapExtensions +Microsoft.AspNetCore.Builder.MapWhenExtensions +Microsoft.AspNetCore.Builder.RunExtensions +Microsoft.AspNetCore.Builder.UseExtensions +Microsoft.AspNetCore.Builder.UseMiddlewareExtensions +Microsoft.AspNetCore.Builder.UsePathBaseExtensions +Microsoft.AspNetCore.Builder.UseWhenExtensions +Microsoft.AspNetCore.Cors.Infrastructure.ICorsMetadata +Microsoft.AspNetCore.Http.BadHttpRequestException +Microsoft.AspNetCore.Http.BadHttpRequestException.BadHttpRequestException(string! message) -> void +Microsoft.AspNetCore.Http.BadHttpRequestException.BadHttpRequestException(string! message, System.Exception! innerException) -> void +Microsoft.AspNetCore.Http.BadHttpRequestException.BadHttpRequestException(string! message, int statusCode) -> void +Microsoft.AspNetCore.Http.BadHttpRequestException.BadHttpRequestException(string! message, int statusCode, System.Exception! innerException) -> void +Microsoft.AspNetCore.Http.BadHttpRequestException.StatusCode.get -> int +Microsoft.AspNetCore.Http.ConnectionInfo +Microsoft.AspNetCore.Http.ConnectionInfo.ConnectionInfo() -> void +Microsoft.AspNetCore.Http.CookieBuilder +Microsoft.AspNetCore.Http.CookieBuilder.Build(Microsoft.AspNetCore.Http.HttpContext! context) -> Microsoft.AspNetCore.Http.CookieOptions! +Microsoft.AspNetCore.Http.CookieBuilder.CookieBuilder() -> void +Microsoft.AspNetCore.Http.CookieSecurePolicy +Microsoft.AspNetCore.Http.CookieSecurePolicy.Always = 1 -> Microsoft.AspNetCore.Http.CookieSecurePolicy +Microsoft.AspNetCore.Http.CookieSecurePolicy.None = 2 -> Microsoft.AspNetCore.Http.CookieSecurePolicy +Microsoft.AspNetCore.Http.CookieSecurePolicy.SameAsRequest = 0 -> Microsoft.AspNetCore.Http.CookieSecurePolicy +Microsoft.AspNetCore.Http.Endpoint +Microsoft.AspNetCore.Http.Endpoint.DisplayName.get -> string? +Microsoft.AspNetCore.Http.Endpoint.Endpoint(Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate, Microsoft.AspNetCore.Http.EndpointMetadataCollection? metadata, string? displayName) -> void +Microsoft.AspNetCore.Http.Endpoint.Metadata.get -> Microsoft.AspNetCore.Http.EndpointMetadataCollection! +Microsoft.AspNetCore.Http.Endpoint.RequestDelegate.get -> Microsoft.AspNetCore.Http.RequestDelegate! +Microsoft.AspNetCore.Http.EndpointHttpContextExtensions +Microsoft.AspNetCore.Http.EndpointMetadataCollection +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Count.get -> int +Microsoft.AspNetCore.Http.EndpointMetadataCollection.EndpointMetadataCollection(System.Collections.Generic.IEnumerable! items) -> void +Microsoft.AspNetCore.Http.EndpointMetadataCollection.EndpointMetadataCollection(params object![]! items) -> void +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.Current.get -> object? +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.Reset() -> void +Microsoft.AspNetCore.Http.EndpointMetadataCollection.GetEnumerator() -> Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator +Microsoft.AspNetCore.Http.EndpointMetadataCollection.GetMetadata() -> T? +Microsoft.AspNetCore.Http.EndpointMetadataCollection.GetOrderedMetadata() -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Http.EndpointMetadataCollection.this[int index].get -> object! +Microsoft.AspNetCore.Http.Features.IEndpointFeature +Microsoft.AspNetCore.Http.Features.IEndpointFeature.Endpoint.get -> Microsoft.AspNetCore.Http.Endpoint? +Microsoft.AspNetCore.Http.Features.IEndpointFeature.Endpoint.set -> void +Microsoft.AspNetCore.Http.Features.IRouteValuesFeature +Microsoft.AspNetCore.Http.Features.IRouteValuesFeature.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Http.Features.IRouteValuesFeature.RouteValues.set -> void +Microsoft.AspNetCore.Http.FragmentString +Microsoft.AspNetCore.Http.FragmentString.Equals(Microsoft.AspNetCore.Http.FragmentString other) -> bool +Microsoft.AspNetCore.Http.FragmentString.FragmentString(string! value) -> void +Microsoft.AspNetCore.Http.FragmentString.HasValue.get -> bool +Microsoft.AspNetCore.Http.FragmentString.ToUriComponent() -> string! +Microsoft.AspNetCore.Http.FragmentString.Value.get -> string! +Microsoft.AspNetCore.Http.HeaderDictionaryExtensions +Microsoft.AspNetCore.Http.HostString +Microsoft.AspNetCore.Http.HostString.Equals(Microsoft.AspNetCore.Http.HostString other) -> bool +Microsoft.AspNetCore.Http.HostString.HasValue.get -> bool +Microsoft.AspNetCore.Http.HostString.Host.get -> string! +Microsoft.AspNetCore.Http.HostString.HostString(string! host, int port) -> void +Microsoft.AspNetCore.Http.HostString.HostString(string! value) -> void +Microsoft.AspNetCore.Http.HostString.Port.get -> int? +Microsoft.AspNetCore.Http.HostString.ToUriComponent() -> string! +Microsoft.AspNetCore.Http.HostString.Value.get -> string! +Microsoft.AspNetCore.Http.HttpContext +Microsoft.AspNetCore.Http.HttpContext.HttpContext() -> void +Microsoft.AspNetCore.Http.HttpMethods +Microsoft.AspNetCore.Http.HttpProtocol +Microsoft.AspNetCore.Http.HttpRequest +Microsoft.AspNetCore.Http.HttpRequest.HttpRequest() -> void +Microsoft.AspNetCore.Http.HttpResponse +Microsoft.AspNetCore.Http.HttpResponse.HttpResponse() -> void +Microsoft.AspNetCore.Http.HttpResponseWritingExtensions +Microsoft.AspNetCore.Http.IHttpContextAccessor +Microsoft.AspNetCore.Http.IHttpContextAccessor.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext? +Microsoft.AspNetCore.Http.IHttpContextAccessor.HttpContext.set -> void +Microsoft.AspNetCore.Http.IHttpContextFactory +Microsoft.AspNetCore.Http.IHttpContextFactory.Create(Microsoft.AspNetCore.Http.Features.IFeatureCollection! featureCollection) -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Http.IHttpContextFactory.Dispose(Microsoft.AspNetCore.Http.HttpContext! httpContext) -> void +Microsoft.AspNetCore.Http.IMiddleware +Microsoft.AspNetCore.Http.IMiddleware.InvokeAsync(Microsoft.AspNetCore.Http.HttpContext! context, Microsoft.AspNetCore.Http.RequestDelegate! next) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.IMiddlewareFactory +Microsoft.AspNetCore.Http.IMiddlewareFactory.Create(System.Type! middlewareType) -> Microsoft.AspNetCore.Http.IMiddleware? +Microsoft.AspNetCore.Http.IMiddlewareFactory.Release(Microsoft.AspNetCore.Http.IMiddleware! middleware) -> void +Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Http.PathString.Add(Microsoft.AspNetCore.Http.PathString other) -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Http.PathString.Add(Microsoft.AspNetCore.Http.QueryString other) -> string! +Microsoft.AspNetCore.Http.PathString.Equals(Microsoft.AspNetCore.Http.PathString other) -> bool +Microsoft.AspNetCore.Http.PathString.Equals(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType) -> bool +Microsoft.AspNetCore.Http.PathString.HasValue.get -> bool +Microsoft.AspNetCore.Http.PathString.PathString(string? value) -> void +Microsoft.AspNetCore.Http.PathString.StartsWithSegments(Microsoft.AspNetCore.Http.PathString other) -> bool +Microsoft.AspNetCore.Http.PathString.StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType) -> bool +Microsoft.AspNetCore.Http.PathString.StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType, out Microsoft.AspNetCore.Http.PathString matched, out Microsoft.AspNetCore.Http.PathString remaining) -> bool +Microsoft.AspNetCore.Http.PathString.StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, System.StringComparison comparisonType, out Microsoft.AspNetCore.Http.PathString remaining) -> bool +Microsoft.AspNetCore.Http.PathString.StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, out Microsoft.AspNetCore.Http.PathString matched, out Microsoft.AspNetCore.Http.PathString remaining) -> bool +Microsoft.AspNetCore.Http.PathString.StartsWithSegments(Microsoft.AspNetCore.Http.PathString other, out Microsoft.AspNetCore.Http.PathString remaining) -> bool +Microsoft.AspNetCore.Http.PathString.ToUriComponent() -> string! +Microsoft.AspNetCore.Http.PathString.Value.get -> string? +Microsoft.AspNetCore.Http.QueryString +Microsoft.AspNetCore.Http.QueryString.Add(Microsoft.AspNetCore.Http.QueryString other) -> Microsoft.AspNetCore.Http.QueryString +Microsoft.AspNetCore.Http.QueryString.Add(string! name, string! value) -> Microsoft.AspNetCore.Http.QueryString +Microsoft.AspNetCore.Http.QueryString.Equals(Microsoft.AspNetCore.Http.QueryString other) -> bool +Microsoft.AspNetCore.Http.QueryString.HasValue.get -> bool +Microsoft.AspNetCore.Http.QueryString.QueryString(string? value) -> void +Microsoft.AspNetCore.Http.QueryString.ToUriComponent() -> string! +Microsoft.AspNetCore.Http.QueryString.Value.get -> string? +Microsoft.AspNetCore.Http.RequestDelegate +Microsoft.AspNetCore.Http.RequestTrailerExtensions +Microsoft.AspNetCore.Http.ResponseTrailerExtensions +Microsoft.AspNetCore.Http.StatusCodes +Microsoft.AspNetCore.Http.WebSocketManager +Microsoft.AspNetCore.Http.WebSocketManager.WebSocketManager() -> void +Microsoft.AspNetCore.Routing.RouteValueDictionary +Microsoft.AspNetCore.Routing.RouteValueDictionary.Add(string! key, object? value) -> void +Microsoft.AspNetCore.Routing.RouteValueDictionary.Clear() -> void +Microsoft.AspNetCore.Routing.RouteValueDictionary.Comparer.get -> System.Collections.Generic.IEqualityComparer! +Microsoft.AspNetCore.Routing.RouteValueDictionary.ContainsKey(string! key) -> bool +Microsoft.AspNetCore.Routing.RouteValueDictionary.Count.get -> int +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.Enumerator(Microsoft.AspNetCore.Routing.RouteValueDictionary! dictionary) -> void +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.Reset() -> void +Microsoft.AspNetCore.Routing.RouteValueDictionary.GetEnumerator() -> Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator +Microsoft.AspNetCore.Routing.RouteValueDictionary.Keys.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Routing.RouteValueDictionary.Remove(string! key) -> bool +Microsoft.AspNetCore.Routing.RouteValueDictionary.Remove(string! key, out object? value) -> bool +Microsoft.AspNetCore.Routing.RouteValueDictionary.RouteValueDictionary() -> void +Microsoft.AspNetCore.Routing.RouteValueDictionary.RouteValueDictionary(object? values) -> void +Microsoft.AspNetCore.Routing.RouteValueDictionary.TryAdd(string! key, object! value) -> bool +Microsoft.AspNetCore.Routing.RouteValueDictionary.TryGetValue(string! key, out object? value) -> bool +Microsoft.AspNetCore.Routing.RouteValueDictionary.Values.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Routing.RouteValueDictionary.this[string! key].get -> object? +Microsoft.AspNetCore.Routing.RouteValueDictionary.this[string! key].set -> void +abstract Microsoft.AspNetCore.Builder.EndpointBuilder.Build() -> Microsoft.AspNetCore.Http.Endpoint! +abstract Microsoft.AspNetCore.Http.ConnectionInfo.ClientCertificate.get -> System.Security.Cryptography.X509Certificates.X509Certificate2? +abstract Microsoft.AspNetCore.Http.ConnectionInfo.ClientCertificate.set -> void +abstract Microsoft.AspNetCore.Http.ConnectionInfo.GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Http.ConnectionInfo.Id.get -> string! +abstract Microsoft.AspNetCore.Http.ConnectionInfo.Id.set -> void +abstract Microsoft.AspNetCore.Http.ConnectionInfo.LocalIpAddress.get -> System.Net.IPAddress? +abstract Microsoft.AspNetCore.Http.ConnectionInfo.LocalIpAddress.set -> void +abstract Microsoft.AspNetCore.Http.ConnectionInfo.LocalPort.get -> int +abstract Microsoft.AspNetCore.Http.ConnectionInfo.LocalPort.set -> void +abstract Microsoft.AspNetCore.Http.ConnectionInfo.RemoteIpAddress.get -> System.Net.IPAddress? +abstract Microsoft.AspNetCore.Http.ConnectionInfo.RemoteIpAddress.set -> void +abstract Microsoft.AspNetCore.Http.ConnectionInfo.RemotePort.get -> int +abstract Microsoft.AspNetCore.Http.ConnectionInfo.RemotePort.set -> void +abstract Microsoft.AspNetCore.Http.HttpContext.Abort() -> void +abstract Microsoft.AspNetCore.Http.HttpContext.Connection.get -> Microsoft.AspNetCore.Http.ConnectionInfo! +abstract Microsoft.AspNetCore.Http.HttpContext.Features.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection! +abstract Microsoft.AspNetCore.Http.HttpContext.Items.get -> System.Collections.Generic.IDictionary! +abstract Microsoft.AspNetCore.Http.HttpContext.Items.set -> void +abstract Microsoft.AspNetCore.Http.HttpContext.Request.get -> Microsoft.AspNetCore.Http.HttpRequest! +abstract Microsoft.AspNetCore.Http.HttpContext.RequestAborted.get -> System.Threading.CancellationToken +abstract Microsoft.AspNetCore.Http.HttpContext.RequestAborted.set -> void +abstract Microsoft.AspNetCore.Http.HttpContext.RequestServices.get -> System.IServiceProvider! +abstract Microsoft.AspNetCore.Http.HttpContext.RequestServices.set -> void +abstract Microsoft.AspNetCore.Http.HttpContext.Response.get -> Microsoft.AspNetCore.Http.HttpResponse! +abstract Microsoft.AspNetCore.Http.HttpContext.Session.get -> Microsoft.AspNetCore.Http.ISession! +abstract Microsoft.AspNetCore.Http.HttpContext.Session.set -> void +abstract Microsoft.AspNetCore.Http.HttpContext.TraceIdentifier.get -> string! +abstract Microsoft.AspNetCore.Http.HttpContext.TraceIdentifier.set -> void +abstract Microsoft.AspNetCore.Http.HttpContext.User.get -> System.Security.Claims.ClaimsPrincipal! +abstract Microsoft.AspNetCore.Http.HttpContext.User.set -> void +abstract Microsoft.AspNetCore.Http.HttpContext.WebSockets.get -> Microsoft.AspNetCore.Http.WebSocketManager! +abstract Microsoft.AspNetCore.Http.HttpRequest.Body.get -> System.IO.Stream! +abstract Microsoft.AspNetCore.Http.HttpRequest.Body.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.ContentLength.get -> long? +abstract Microsoft.AspNetCore.Http.HttpRequest.ContentLength.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.ContentType.get -> string! +abstract Microsoft.AspNetCore.Http.HttpRequest.ContentType.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.Cookies.get -> Microsoft.AspNetCore.Http.IRequestCookieCollection! +abstract Microsoft.AspNetCore.Http.HttpRequest.Cookies.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.Form.get -> Microsoft.AspNetCore.Http.IFormCollection! +abstract Microsoft.AspNetCore.Http.HttpRequest.Form.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.HasFormContentType.get -> bool +abstract Microsoft.AspNetCore.Http.HttpRequest.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +abstract Microsoft.AspNetCore.Http.HttpRequest.Host.get -> Microsoft.AspNetCore.Http.HostString +abstract Microsoft.AspNetCore.Http.HttpRequest.Host.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +abstract Microsoft.AspNetCore.Http.HttpRequest.IsHttps.get -> bool +abstract Microsoft.AspNetCore.Http.HttpRequest.IsHttps.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.Method.get -> string! +abstract Microsoft.AspNetCore.Http.HttpRequest.Method.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.Path.get -> Microsoft.AspNetCore.Http.PathString +abstract Microsoft.AspNetCore.Http.HttpRequest.Path.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.PathBase.get -> Microsoft.AspNetCore.Http.PathString +abstract Microsoft.AspNetCore.Http.HttpRequest.PathBase.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.Protocol.get -> string! +abstract Microsoft.AspNetCore.Http.HttpRequest.Protocol.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.Query.get -> Microsoft.AspNetCore.Http.IQueryCollection! +abstract Microsoft.AspNetCore.Http.HttpRequest.Query.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.QueryString.get -> Microsoft.AspNetCore.Http.QueryString +abstract Microsoft.AspNetCore.Http.HttpRequest.QueryString.set -> void +abstract Microsoft.AspNetCore.Http.HttpRequest.ReadFormAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Http.HttpRequest.Scheme.get -> string! +abstract Microsoft.AspNetCore.Http.HttpRequest.Scheme.set -> void +abstract Microsoft.AspNetCore.Http.HttpResponse.Body.get -> System.IO.Stream! +abstract Microsoft.AspNetCore.Http.HttpResponse.Body.set -> void +abstract Microsoft.AspNetCore.Http.HttpResponse.ContentLength.get -> long? +abstract Microsoft.AspNetCore.Http.HttpResponse.ContentLength.set -> void +abstract Microsoft.AspNetCore.Http.HttpResponse.ContentType.get -> string! +abstract Microsoft.AspNetCore.Http.HttpResponse.ContentType.set -> void +abstract Microsoft.AspNetCore.Http.HttpResponse.Cookies.get -> Microsoft.AspNetCore.Http.IResponseCookies! +abstract Microsoft.AspNetCore.Http.HttpResponse.HasStarted.get -> bool +abstract Microsoft.AspNetCore.Http.HttpResponse.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +abstract Microsoft.AspNetCore.Http.HttpResponse.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +abstract Microsoft.AspNetCore.Http.HttpResponse.OnCompleted(System.Func! callback, object! state) -> void +abstract Microsoft.AspNetCore.Http.HttpResponse.OnStarting(System.Func! callback, object! state) -> void +abstract Microsoft.AspNetCore.Http.HttpResponse.Redirect(string! location, bool permanent) -> void +abstract Microsoft.AspNetCore.Http.HttpResponse.StatusCode.get -> int +abstract Microsoft.AspNetCore.Http.HttpResponse.StatusCode.set -> void +abstract Microsoft.AspNetCore.Http.WebSocketManager.AcceptWebSocketAsync(string? subProtocol) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Http.WebSocketManager.IsWebSocketRequest.get -> bool +abstract Microsoft.AspNetCore.Http.WebSocketManager.WebSocketRequestedProtocols.get -> System.Collections.Generic.IList! +const Microsoft.AspNetCore.Http.StatusCodes.Status100Continue = 100 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status101SwitchingProtocols = 101 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status102Processing = 102 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status200OK = 200 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status201Created = 201 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status202Accepted = 202 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status203NonAuthoritative = 203 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status204NoContent = 204 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status205ResetContent = 205 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status206PartialContent = 206 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status207MultiStatus = 207 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status208AlreadyReported = 208 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status226IMUsed = 226 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status300MultipleChoices = 300 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status301MovedPermanently = 301 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status302Found = 302 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status303SeeOther = 303 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status304NotModified = 304 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status305UseProxy = 305 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status306SwitchProxy = 306 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status307TemporaryRedirect = 307 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status308PermanentRedirect = 308 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status400BadRequest = 400 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status401Unauthorized = 401 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status402PaymentRequired = 402 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status403Forbidden = 403 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status404NotFound = 404 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status405MethodNotAllowed = 405 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status406NotAcceptable = 406 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status407ProxyAuthenticationRequired = 407 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status408RequestTimeout = 408 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status409Conflict = 409 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status410Gone = 410 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status411LengthRequired = 411 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status412PreconditionFailed = 412 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status413PayloadTooLarge = 413 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status413RequestEntityTooLarge = 413 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status414RequestUriTooLong = 414 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status414UriTooLong = 414 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status415UnsupportedMediaType = 415 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status416RangeNotSatisfiable = 416 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status416RequestedRangeNotSatisfiable = 416 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status417ExpectationFailed = 417 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status418ImATeapot = 418 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status419AuthenticationTimeout = 419 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status421MisdirectedRequest = 421 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status422UnprocessableEntity = 422 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status423Locked = 423 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status424FailedDependency = 424 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status426UpgradeRequired = 426 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status428PreconditionRequired = 428 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status429TooManyRequests = 429 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status431RequestHeaderFieldsTooLarge = 431 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status451UnavailableForLegalReasons = 451 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status500InternalServerError = 500 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status501NotImplemented = 501 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status502BadGateway = 502 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status503ServiceUnavailable = 503 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status504GatewayTimeout = 504 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status505HttpVersionNotsupported = 505 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status506VariantAlsoNegotiates = 506 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status507InsufficientStorage = 507 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status508LoopDetected = 508 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status510NotExtended = 510 -> int +const Microsoft.AspNetCore.Http.StatusCodes.Status511NetworkAuthenticationRequired = 511 -> int +override Microsoft.AspNetCore.Http.Endpoint.ToString() -> string? +override Microsoft.AspNetCore.Http.FragmentString.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Http.FragmentString.GetHashCode() -> int +override Microsoft.AspNetCore.Http.FragmentString.ToString() -> string! +override Microsoft.AspNetCore.Http.HostString.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Http.HostString.GetHashCode() -> int +override Microsoft.AspNetCore.Http.HostString.ToString() -> string! +override Microsoft.AspNetCore.Http.PathString.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Http.PathString.GetHashCode() -> int +override Microsoft.AspNetCore.Http.PathString.ToString() -> string! +override Microsoft.AspNetCore.Http.QueryString.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Http.QueryString.GetHashCode() -> int +override Microsoft.AspNetCore.Http.QueryString.ToString() -> string! +static Microsoft.AspNetCore.Builder.MapExtensions.Map(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, Microsoft.AspNetCore.Http.PathString pathMatch, System.Action! configuration) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.MapExtensions.Map(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, Microsoft.AspNetCore.Http.PathString pathMatch, bool preserveMatchedPathSegment, System.Action! configuration) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.MapWhenExtensions.MapWhen(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, System.Func! predicate, System.Action! configuration) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.RunExtensions.Run(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, Microsoft.AspNetCore.Http.RequestDelegate! handler) -> void +static Microsoft.AspNetCore.Builder.UseExtensions.Use(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, System.Func!, System.Threading.Tasks.Task!>! middleware) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.UseMiddleware(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, System.Type! middleware, params object![]! args) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.UseMiddleware(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, params object![]! args) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.UsePathBaseExtensions.UsePathBase(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, Microsoft.AspNetCore.Http.PathString pathBase) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.UseWhenExtensions.UseWhen(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, System.Func! predicate, System.Action! configuration) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Http.EndpointHttpContextExtensions.GetEndpoint(this Microsoft.AspNetCore.Http.HttpContext! context) -> Microsoft.AspNetCore.Http.Endpoint? +static Microsoft.AspNetCore.Http.EndpointHttpContextExtensions.SetEndpoint(this Microsoft.AspNetCore.Http.HttpContext! context, Microsoft.AspNetCore.Http.Endpoint? endpoint) -> void +static Microsoft.AspNetCore.Http.FragmentString.FromUriComponent(System.Uri! uri) -> Microsoft.AspNetCore.Http.FragmentString +static Microsoft.AspNetCore.Http.FragmentString.FromUriComponent(string! uriComponent) -> Microsoft.AspNetCore.Http.FragmentString +static Microsoft.AspNetCore.Http.FragmentString.operator !=(Microsoft.AspNetCore.Http.FragmentString left, Microsoft.AspNetCore.Http.FragmentString right) -> bool +static Microsoft.AspNetCore.Http.FragmentString.operator ==(Microsoft.AspNetCore.Http.FragmentString left, Microsoft.AspNetCore.Http.FragmentString right) -> bool +static Microsoft.AspNetCore.Http.HeaderDictionaryExtensions.Append(this Microsoft.AspNetCore.Http.IHeaderDictionary! headers, string! key, Microsoft.Extensions.Primitives.StringValues value) -> void +static Microsoft.AspNetCore.Http.HeaderDictionaryExtensions.AppendCommaSeparatedValues(this Microsoft.AspNetCore.Http.IHeaderDictionary! headers, string! key, params string![]! values) -> void +static Microsoft.AspNetCore.Http.HeaderDictionaryExtensions.GetCommaSeparatedValues(this Microsoft.AspNetCore.Http.IHeaderDictionary! headers, string! key) -> string![]! +static Microsoft.AspNetCore.Http.HeaderDictionaryExtensions.SetCommaSeparatedValues(this Microsoft.AspNetCore.Http.IHeaderDictionary! headers, string! key, params string![]! values) -> void +static Microsoft.AspNetCore.Http.HostString.FromUriComponent(System.Uri! uri) -> Microsoft.AspNetCore.Http.HostString +static Microsoft.AspNetCore.Http.HostString.FromUriComponent(string! uriComponent) -> Microsoft.AspNetCore.Http.HostString +static Microsoft.AspNetCore.Http.HostString.MatchesAny(Microsoft.Extensions.Primitives.StringSegment value, System.Collections.Generic.IList! patterns) -> bool +static Microsoft.AspNetCore.Http.HostString.operator !=(Microsoft.AspNetCore.Http.HostString left, Microsoft.AspNetCore.Http.HostString right) -> bool +static Microsoft.AspNetCore.Http.HostString.operator ==(Microsoft.AspNetCore.Http.HostString left, Microsoft.AspNetCore.Http.HostString right) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.Equals(string! methodA, string! methodB) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.GetCanonicalizedValue(string! method) -> string! +static Microsoft.AspNetCore.Http.HttpMethods.IsConnect(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.IsDelete(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.IsGet(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.IsHead(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.IsOptions(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.IsPatch(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.IsPost(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.IsPut(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpMethods.IsTrace(string! method) -> bool +static Microsoft.AspNetCore.Http.HttpProtocol.GetHttpProtocol(System.Version! version) -> string! +static Microsoft.AspNetCore.Http.HttpProtocol.IsHttp10(string! protocol) -> bool +static Microsoft.AspNetCore.Http.HttpProtocol.IsHttp11(string! protocol) -> bool +static Microsoft.AspNetCore.Http.HttpProtocol.IsHttp2(string! protocol) -> bool +static Microsoft.AspNetCore.Http.HttpProtocol.IsHttp3(string! protocol) -> bool +static Microsoft.AspNetCore.Http.HttpResponseWritingExtensions.WriteAsync(this Microsoft.AspNetCore.Http.HttpResponse! response, string! text, System.Text.Encoding! encoding, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Http.HttpResponseWritingExtensions.WriteAsync(this Microsoft.AspNetCore.Http.HttpResponse! response, string! text, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Http.PathString.FromUriComponent(System.Uri! uri) -> Microsoft.AspNetCore.Http.PathString +static Microsoft.AspNetCore.Http.PathString.FromUriComponent(string! uriComponent) -> Microsoft.AspNetCore.Http.PathString +static Microsoft.AspNetCore.Http.PathString.implicit operator Microsoft.AspNetCore.Http.PathString(string? s) -> Microsoft.AspNetCore.Http.PathString +static Microsoft.AspNetCore.Http.PathString.implicit operator string!(Microsoft.AspNetCore.Http.PathString path) -> string! +static Microsoft.AspNetCore.Http.PathString.operator !=(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) -> bool +static Microsoft.AspNetCore.Http.PathString.operator +(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) -> Microsoft.AspNetCore.Http.PathString +static Microsoft.AspNetCore.Http.PathString.operator +(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.QueryString right) -> string! +static Microsoft.AspNetCore.Http.PathString.operator +(Microsoft.AspNetCore.Http.PathString left, string? right) -> string! +static Microsoft.AspNetCore.Http.PathString.operator +(string! left, Microsoft.AspNetCore.Http.PathString right) -> string! +static Microsoft.AspNetCore.Http.PathString.operator ==(Microsoft.AspNetCore.Http.PathString left, Microsoft.AspNetCore.Http.PathString right) -> bool +static Microsoft.AspNetCore.Http.QueryString.Create(System.Collections.Generic.IEnumerable>! parameters) -> Microsoft.AspNetCore.Http.QueryString +static Microsoft.AspNetCore.Http.QueryString.Create(System.Collections.Generic.IEnumerable>! parameters) -> Microsoft.AspNetCore.Http.QueryString +static Microsoft.AspNetCore.Http.QueryString.Create(string! name, string! value) -> Microsoft.AspNetCore.Http.QueryString +static Microsoft.AspNetCore.Http.QueryString.FromUriComponent(System.Uri! uri) -> Microsoft.AspNetCore.Http.QueryString +static Microsoft.AspNetCore.Http.QueryString.FromUriComponent(string! uriComponent) -> Microsoft.AspNetCore.Http.QueryString +static Microsoft.AspNetCore.Http.QueryString.operator !=(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) -> bool +static Microsoft.AspNetCore.Http.QueryString.operator +(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) -> Microsoft.AspNetCore.Http.QueryString +static Microsoft.AspNetCore.Http.QueryString.operator ==(Microsoft.AspNetCore.Http.QueryString left, Microsoft.AspNetCore.Http.QueryString right) -> bool +static Microsoft.AspNetCore.Http.RequestTrailerExtensions.CheckTrailersAvailable(this Microsoft.AspNetCore.Http.HttpRequest! request) -> bool +static Microsoft.AspNetCore.Http.RequestTrailerExtensions.GetDeclaredTrailers(this Microsoft.AspNetCore.Http.HttpRequest! request) -> Microsoft.Extensions.Primitives.StringValues +static Microsoft.AspNetCore.Http.RequestTrailerExtensions.GetTrailer(this Microsoft.AspNetCore.Http.HttpRequest! request, string! trailerName) -> Microsoft.Extensions.Primitives.StringValues +static Microsoft.AspNetCore.Http.RequestTrailerExtensions.SupportsTrailers(this Microsoft.AspNetCore.Http.HttpRequest! request) -> bool +static Microsoft.AspNetCore.Http.ResponseTrailerExtensions.AppendTrailer(this Microsoft.AspNetCore.Http.HttpResponse! response, string! trailerName, Microsoft.Extensions.Primitives.StringValues trailerValues) -> void +static Microsoft.AspNetCore.Http.ResponseTrailerExtensions.DeclareTrailer(this Microsoft.AspNetCore.Http.HttpResponse! response, string! trailerName) -> void +static Microsoft.AspNetCore.Http.ResponseTrailerExtensions.SupportsTrailers(this Microsoft.AspNetCore.Http.HttpResponse! response) -> bool +static Microsoft.AspNetCore.Routing.RouteValueDictionary.FromArray(System.Collections.Generic.KeyValuePair[]! items) -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +static readonly Microsoft.AspNetCore.Http.EndpointMetadataCollection.Empty -> Microsoft.AspNetCore.Http.EndpointMetadataCollection! +static readonly Microsoft.AspNetCore.Http.FragmentString.Empty -> Microsoft.AspNetCore.Http.FragmentString +static readonly Microsoft.AspNetCore.Http.HttpMethods.Connect -> string! +static readonly Microsoft.AspNetCore.Http.HttpMethods.Delete -> string! +static readonly Microsoft.AspNetCore.Http.HttpMethods.Get -> string! +static readonly Microsoft.AspNetCore.Http.HttpMethods.Head -> string! +static readonly Microsoft.AspNetCore.Http.HttpMethods.Options -> string! +static readonly Microsoft.AspNetCore.Http.HttpMethods.Patch -> string! +static readonly Microsoft.AspNetCore.Http.HttpMethods.Post -> string! +static readonly Microsoft.AspNetCore.Http.HttpMethods.Put -> string! +static readonly Microsoft.AspNetCore.Http.HttpMethods.Trace -> string! +static readonly Microsoft.AspNetCore.Http.HttpProtocol.Http10 -> string! +static readonly Microsoft.AspNetCore.Http.HttpProtocol.Http11 -> string! +static readonly Microsoft.AspNetCore.Http.HttpProtocol.Http2 -> string! +static readonly Microsoft.AspNetCore.Http.HttpProtocol.Http3 -> string! +static readonly Microsoft.AspNetCore.Http.PathString.Empty -> Microsoft.AspNetCore.Http.PathString +static readonly Microsoft.AspNetCore.Http.QueryString.Empty -> Microsoft.AspNetCore.Http.QueryString +virtual Microsoft.AspNetCore.Http.CookieBuilder.Build(Microsoft.AspNetCore.Http.HttpContext! context, System.DateTimeOffset expiresFrom) -> Microsoft.AspNetCore.Http.CookieOptions! +virtual Microsoft.AspNetCore.Http.CookieBuilder.Domain.get -> string? +virtual Microsoft.AspNetCore.Http.CookieBuilder.Domain.set -> void +virtual Microsoft.AspNetCore.Http.CookieBuilder.Expiration.get -> System.TimeSpan? +virtual Microsoft.AspNetCore.Http.CookieBuilder.Expiration.set -> void +virtual Microsoft.AspNetCore.Http.CookieBuilder.HttpOnly.get -> bool +virtual Microsoft.AspNetCore.Http.CookieBuilder.HttpOnly.set -> void +virtual Microsoft.AspNetCore.Http.CookieBuilder.IsEssential.get -> bool +virtual Microsoft.AspNetCore.Http.CookieBuilder.IsEssential.set -> void +virtual Microsoft.AspNetCore.Http.CookieBuilder.MaxAge.get -> System.TimeSpan? +virtual Microsoft.AspNetCore.Http.CookieBuilder.MaxAge.set -> void +virtual Microsoft.AspNetCore.Http.CookieBuilder.Name.get -> string? +virtual Microsoft.AspNetCore.Http.CookieBuilder.Name.set -> void +virtual Microsoft.AspNetCore.Http.CookieBuilder.Path.get -> string? +virtual Microsoft.AspNetCore.Http.CookieBuilder.Path.set -> void +virtual Microsoft.AspNetCore.Http.CookieBuilder.SameSite.get -> Microsoft.AspNetCore.Http.SameSiteMode +virtual Microsoft.AspNetCore.Http.CookieBuilder.SameSite.set -> void +virtual Microsoft.AspNetCore.Http.CookieBuilder.SecurePolicy.get -> Microsoft.AspNetCore.Http.CookieSecurePolicy +virtual Microsoft.AspNetCore.Http.CookieBuilder.SecurePolicy.set -> void +virtual Microsoft.AspNetCore.Http.HttpRequest.BodyReader.get -> System.IO.Pipelines.PipeReader! +virtual Microsoft.AspNetCore.Http.HttpRequest.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +virtual Microsoft.AspNetCore.Http.HttpRequest.RouteValues.set -> void +virtual Microsoft.AspNetCore.Http.HttpResponse.BodyWriter.get -> System.IO.Pipelines.PipeWriter! +virtual Microsoft.AspNetCore.Http.HttpResponse.CompleteAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Http.HttpResponse.OnCompleted(System.Func! callback) -> void +virtual Microsoft.AspNetCore.Http.HttpResponse.OnStarting(System.Func! callback) -> void +virtual Microsoft.AspNetCore.Http.HttpResponse.Redirect(string! location) -> void +virtual Microsoft.AspNetCore.Http.HttpResponse.RegisterForDispose(System.IDisposable! disposable) -> void +virtual Microsoft.AspNetCore.Http.HttpResponse.RegisterForDisposeAsync(System.IAsyncDisposable! disposable) -> void +virtual Microsoft.AspNetCore.Http.HttpResponse.StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Http.WebSocketManager.AcceptWebSocketAsync() -> System.Threading.Tasks.Task! diff --git a/src/Http/Http.Extensions/src/HttpRequestJsonExtensions.cs b/src/Http/Http.Extensions/src/HttpRequestJsonExtensions.cs index ebf27459018d..ab07d6456adb 100644 --- a/src/Http/Http.Extensions/src/HttpRequestJsonExtensions.cs +++ b/src/Http/Http.Extensions/src/HttpRequestJsonExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Text; using System.Text.Json; @@ -27,6 +28,7 @@ public static class HttpRequestJsonExtensions /// The request to read from. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static ValueTask ReadFromJsonAsync( this HttpRequest request, CancellationToken cancellationToken = default) @@ -43,6 +45,7 @@ public static class HttpRequestJsonExtensions /// The serializer options use when deserializing the content. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static async ValueTask ReadFromJsonAsync( this HttpRequest request, JsonSerializerOptions? options, @@ -84,6 +87,7 @@ public static class HttpRequestJsonExtensions /// The type of object to read. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static ValueTask ReadFromJsonAsync( this HttpRequest request, Type type, @@ -101,6 +105,7 @@ public static class HttpRequestJsonExtensions /// The serializer options use when deserializing the content. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static async ValueTask ReadFromJsonAsync( this HttpRequest request, Type type, diff --git a/src/Http/Http.Extensions/src/HttpResponseJsonExtensions.cs b/src/Http/Http.Extensions/src/HttpResponseJsonExtensions.cs index c8ae32c3f902..802bb7f85d7c 100644 --- a/src/Http/Http.Extensions/src/HttpResponseJsonExtensions.cs +++ b/src/Http/Http.Extensions/src/HttpResponseJsonExtensions.cs @@ -25,6 +25,7 @@ public static partial class HttpResponseJsonExtensions /// The value to write as JSON. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, [AllowNull] TValue value, @@ -43,6 +44,7 @@ public static Task WriteAsJsonAsync( /// The serializer options use when serializing the value. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, [AllowNull] TValue value, @@ -63,6 +65,7 @@ public static Task WriteAsJsonAsync( /// The content-type to set on the response. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, [AllowNull] TValue value, @@ -90,6 +93,7 @@ public static Task WriteAsJsonAsync( /// The type of object to write. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, object? value, @@ -109,6 +113,7 @@ public static Task WriteAsJsonAsync( /// The serializer options use when serializing the value. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, object? value, @@ -130,6 +135,7 @@ public static Task WriteAsJsonAsync( /// The content-type to set on the response. /// A used to cancel the operation. /// The task object representing the asynchronous operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task WriteAsJsonAsync( this HttpResponse response, object? value, diff --git a/src/Http/Http.Extensions/src/PublicAPI.Shipped.txt b/src/Http/Http.Extensions/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Http.Extensions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt b/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..2855807c9ada --- /dev/null +++ b/src/Http/Http.Extensions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,143 @@ +#nullable enable +Microsoft.AspNetCore.Http.Extensions.HttpRequestMultipartExtensions +Microsoft.AspNetCore.Http.Extensions.QueryBuilder +Microsoft.AspNetCore.Http.Extensions.QueryBuilder.QueryBuilder() -> void +Microsoft.AspNetCore.Http.Extensions.QueryBuilder.ToQueryString() -> Microsoft.AspNetCore.Http.QueryString +Microsoft.AspNetCore.Http.Extensions.StreamCopyOperation +Microsoft.AspNetCore.Http.Extensions.UriHelper +Microsoft.AspNetCore.Http.HeaderDictionaryTypeExtensions +Microsoft.AspNetCore.Http.Headers.RequestHeaders +Microsoft.AspNetCore.Http.Headers.RequestHeaders.ContentLength.get -> long? +Microsoft.AspNetCore.Http.Headers.RequestHeaders.ContentLength.set -> void +Microsoft.AspNetCore.Http.Headers.RequestHeaders.Date.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.Headers.RequestHeaders.Date.set -> void +Microsoft.AspNetCore.Http.Headers.RequestHeaders.Expires.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.Headers.RequestHeaders.Expires.set -> void +Microsoft.AspNetCore.Http.Headers.RequestHeaders.Host.get -> Microsoft.AspNetCore.Http.HostString +Microsoft.AspNetCore.Http.Headers.RequestHeaders.Host.set -> void +Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfModifiedSince.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfModifiedSince.set -> void +Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfUnmodifiedSince.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfUnmodifiedSince.set -> void +Microsoft.AspNetCore.Http.Headers.RequestHeaders.LastModified.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.Headers.RequestHeaders.LastModified.set -> void +Microsoft.AspNetCore.Http.Headers.ResponseHeaders +Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ContentLength.get -> long? +Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ContentLength.set -> void +Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Date.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Date.set -> void +Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Expires.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Expires.set -> void +Microsoft.AspNetCore.Http.Headers.ResponseHeaders.LastModified.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.Headers.ResponseHeaders.LastModified.set -> void +Microsoft.AspNetCore.Http.HttpContextServerVariableExtensions +Microsoft.AspNetCore.Http.HttpRequestJsonExtensions +Microsoft.AspNetCore.Http.HttpResponseJsonExtensions +Microsoft.AspNetCore.Http.Json.JsonOptions +Microsoft.AspNetCore.Http.Json.JsonOptions.JsonOptions() -> void +Microsoft.AspNetCore.Http.Json.JsonOptions.SerializerOptions.get -> System.Text.Json.JsonSerializerOptions! +Microsoft.AspNetCore.Http.ResponseExtensions +Microsoft.AspNetCore.Http.SendFileResponseExtensions +Microsoft.AspNetCore.Http.SessionExtensions +override Microsoft.AspNetCore.Http.Extensions.QueryBuilder.GetHashCode() -> int +static Microsoft.AspNetCore.Http.HttpRequestJsonExtensions.HasJsonContentType(this Microsoft.AspNetCore.Http.HttpRequest! request) -> bool +static Microsoft.AspNetCore.Http.HttpRequestJsonExtensions.ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest! request, System.Type! type, System.Text.Json.JsonSerializerOptions? options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +static Microsoft.AspNetCore.Http.HttpRequestJsonExtensions.ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest! request, System.Type! type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +static Microsoft.AspNetCore.Http.HttpRequestJsonExtensions.ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest! request, System.Text.Json.JsonSerializerOptions? options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +static Microsoft.AspNetCore.Http.HttpRequestJsonExtensions.ReadFromJsonAsync(this Microsoft.AspNetCore.Http.HttpRequest! request, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +static Microsoft.AspNetCore.Http.HttpResponseJsonExtensions.WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse! response, object? value, System.Type! type, System.Text.Json.JsonSerializerOptions? options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Http.HttpResponseJsonExtensions.WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse! response, object? value, System.Type! type, System.Text.Json.JsonSerializerOptions? options, string? contentType, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Http.HttpResponseJsonExtensions.WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse! response, object? value, System.Type! type, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Http.HttpResponseJsonExtensions.WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse! response, TValue value, System.Text.Json.JsonSerializerOptions? options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Http.HttpResponseJsonExtensions.WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse! response, TValue value, System.Text.Json.JsonSerializerOptions? options, string? contentType, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Http.HttpResponseJsonExtensions.WriteAsJsonAsync(this Microsoft.AspNetCore.Http.HttpResponse! response, TValue value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +~Microsoft.AspNetCore.Http.Extensions.QueryBuilder.Add(string key, System.Collections.Generic.IEnumerable values) -> void +~Microsoft.AspNetCore.Http.Extensions.QueryBuilder.Add(string key, string value) -> void +~Microsoft.AspNetCore.Http.Extensions.QueryBuilder.GetEnumerator() -> System.Collections.Generic.IEnumerator> +~Microsoft.AspNetCore.Http.Extensions.QueryBuilder.QueryBuilder(System.Collections.Generic.IEnumerable> parameters) -> void +~Microsoft.AspNetCore.Http.Extensions.QueryBuilder.QueryBuilder(System.Collections.Generic.IEnumerable> parameters) -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Accept.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Accept.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.AcceptCharset.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.AcceptCharset.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.AcceptEncoding.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.AcceptEncoding.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.AcceptLanguage.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.AcceptLanguage.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Append(string name, object value) -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.AppendList(string name, System.Collections.Generic.IList values) -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.CacheControl.get -> Microsoft.Net.Http.Headers.CacheControlHeaderValue +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.CacheControl.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.ContentDisposition.get -> Microsoft.Net.Http.Headers.ContentDispositionHeaderValue +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.ContentDisposition.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.ContentRange.get -> Microsoft.Net.Http.Headers.ContentRangeHeaderValue +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.ContentRange.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.ContentType.get -> Microsoft.Net.Http.Headers.MediaTypeHeaderValue +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.ContentType.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Cookie.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Cookie.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Get(string name) -> T +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.GetList(string name) -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfMatch.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfMatch.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfNoneMatch.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfNoneMatch.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfRange.get -> Microsoft.Net.Http.Headers.RangeConditionHeaderValue +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.IfRange.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Range.get -> Microsoft.Net.Http.Headers.RangeHeaderValue +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Range.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Referer.get -> System.Uri +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Referer.set -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.RequestHeaders(Microsoft.AspNetCore.Http.IHeaderDictionary headers) -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.Set(string name, object value) -> void +~Microsoft.AspNetCore.Http.Headers.RequestHeaders.SetList(string name, System.Collections.Generic.IList values) -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Append(string name, object value) -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.AppendList(string name, System.Collections.Generic.IList values) -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.CacheControl.get -> Microsoft.Net.Http.Headers.CacheControlHeaderValue +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.CacheControl.set -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ContentDisposition.get -> Microsoft.Net.Http.Headers.ContentDispositionHeaderValue +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ContentDisposition.set -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ContentRange.get -> Microsoft.Net.Http.Headers.ContentRangeHeaderValue +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ContentRange.set -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ContentType.get -> Microsoft.Net.Http.Headers.MediaTypeHeaderValue +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ContentType.set -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ETag.get -> Microsoft.Net.Http.Headers.EntityTagHeaderValue +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ETag.set -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Get(string name) -> T +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.GetList(string name) -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Location.get -> System.Uri +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Location.set -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.ResponseHeaders(Microsoft.AspNetCore.Http.IHeaderDictionary headers) -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.Set(string name, object value) -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.SetCookie.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.SetCookie.set -> void +~Microsoft.AspNetCore.Http.Headers.ResponseHeaders.SetList(string name, System.Collections.Generic.IList values) -> void +~override Microsoft.AspNetCore.Http.Extensions.QueryBuilder.Equals(object obj) -> bool +~override Microsoft.AspNetCore.Http.Extensions.QueryBuilder.ToString() -> string +~static Microsoft.AspNetCore.Http.Extensions.HttpRequestMultipartExtensions.GetMultipartBoundary(this Microsoft.AspNetCore.Http.HttpRequest request) -> string +~static Microsoft.AspNetCore.Http.Extensions.StreamCopyOperation.CopyToAsync(System.IO.Stream source, System.IO.Stream destination, long? count, System.Threading.CancellationToken cancel) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Http.Extensions.StreamCopyOperation.CopyToAsync(System.IO.Stream source, System.IO.Stream destination, long? count, int bufferSize, System.Threading.CancellationToken cancel) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Http.Extensions.UriHelper.BuildAbsolute(string scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.PathString path = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.QueryString query = default(Microsoft.AspNetCore.Http.QueryString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString)) -> string +~static Microsoft.AspNetCore.Http.Extensions.UriHelper.BuildRelative(Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.PathString path = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.QueryString query = default(Microsoft.AspNetCore.Http.QueryString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString)) -> string +~static Microsoft.AspNetCore.Http.Extensions.UriHelper.Encode(System.Uri uri) -> string +~static Microsoft.AspNetCore.Http.Extensions.UriHelper.FromAbsolute(string uri, out string scheme, out Microsoft.AspNetCore.Http.HostString host, out Microsoft.AspNetCore.Http.PathString path, out Microsoft.AspNetCore.Http.QueryString query, out Microsoft.AspNetCore.Http.FragmentString fragment) -> void +~static Microsoft.AspNetCore.Http.Extensions.UriHelper.GetDisplayUrl(this Microsoft.AspNetCore.Http.HttpRequest request) -> string +~static Microsoft.AspNetCore.Http.Extensions.UriHelper.GetEncodedPathAndQuery(this Microsoft.AspNetCore.Http.HttpRequest request) -> string +~static Microsoft.AspNetCore.Http.Extensions.UriHelper.GetEncodedUrl(this Microsoft.AspNetCore.Http.HttpRequest request) -> string +~static Microsoft.AspNetCore.Http.HeaderDictionaryTypeExtensions.AppendList(this Microsoft.AspNetCore.Http.IHeaderDictionary Headers, string name, System.Collections.Generic.IList values) -> void +~static Microsoft.AspNetCore.Http.HeaderDictionaryTypeExtensions.GetTypedHeaders(this Microsoft.AspNetCore.Http.HttpRequest request) -> Microsoft.AspNetCore.Http.Headers.RequestHeaders +~static Microsoft.AspNetCore.Http.HeaderDictionaryTypeExtensions.GetTypedHeaders(this Microsoft.AspNetCore.Http.HttpResponse response) -> Microsoft.AspNetCore.Http.Headers.ResponseHeaders +~static Microsoft.AspNetCore.Http.HttpContextServerVariableExtensions.GetServerVariable(this Microsoft.AspNetCore.Http.HttpContext context, string variableName) -> string +~static Microsoft.AspNetCore.Http.ResponseExtensions.Clear(this Microsoft.AspNetCore.Http.HttpResponse response) -> void +~static Microsoft.AspNetCore.Http.ResponseExtensions.Redirect(this Microsoft.AspNetCore.Http.HttpResponse response, string location, bool permanent, bool preserveMethod) -> void +~static Microsoft.AspNetCore.Http.SendFileResponseExtensions.SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, Microsoft.Extensions.FileProviders.IFileInfo file, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Http.SendFileResponseExtensions.SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, Microsoft.Extensions.FileProviders.IFileInfo file, long offset, long? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Http.SendFileResponseExtensions.SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, string fileName, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Http.SendFileResponseExtensions.SendFileAsync(this Microsoft.AspNetCore.Http.HttpResponse response, string fileName, long offset, long? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Http.SessionExtensions.Get(this Microsoft.AspNetCore.Http.ISession session, string key) -> byte[] +~static Microsoft.AspNetCore.Http.SessionExtensions.GetInt32(this Microsoft.AspNetCore.Http.ISession session, string key) -> int? +~static Microsoft.AspNetCore.Http.SessionExtensions.GetString(this Microsoft.AspNetCore.Http.ISession session, string key) -> string +~static Microsoft.AspNetCore.Http.SessionExtensions.SetInt32(this Microsoft.AspNetCore.Http.ISession session, string key, int value) -> void +~static Microsoft.AspNetCore.Http.SessionExtensions.SetString(this Microsoft.AspNetCore.Http.ISession session, string key, string value) -> void diff --git a/src/Http/Http.Extensions/src/SendFileResponseExtensions.cs b/src/Http/Http.Extensions/src/SendFileResponseExtensions.cs index 8dfae44bdc12..a9fd30908b9a 100644 --- a/src/Http/Http.Extensions/src/SendFileResponseExtensions.cs +++ b/src/Http/Http.Extensions/src/SendFileResponseExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Threading; using System.Threading.Tasks; @@ -24,6 +25,7 @@ public static class SendFileResponseExtensions /// /// The file. /// The . + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendFileAsync(this HttpResponse response, IFileInfo file, CancellationToken cancellationToken = default) { if (response == null) @@ -47,6 +49,7 @@ public static Task SendFileAsync(this HttpResponse response, IFileInfo file, Can /// The number of bytes to send, or null to send the remainder of the file. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendFileAsync(this HttpResponse response, IFileInfo file, long offset, long? count, CancellationToken cancellationToken = default) { if (response == null) @@ -68,6 +71,7 @@ public static Task SendFileAsync(this HttpResponse response, IFileInfo file, lon /// The full path to the file. /// The . /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendFileAsync(this HttpResponse response, string fileName, CancellationToken cancellationToken = default) { if (response == null) @@ -92,6 +96,7 @@ public static Task SendFileAsync(this HttpResponse response, string fileName, Ca /// The number of bytes to send, or null to send the remainder of the file. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static Task SendFileAsync(this HttpResponse response, string fileName, long offset, long? count, CancellationToken cancellationToken = default) { if (response == null) diff --git a/src/Http/Http.Features/src/PublicAPI.Shipped.txt b/src/Http/Http.Features/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Http.Features/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Http.Features/src/PublicAPI.Unshipped.txt b/src/Http/Http.Features/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..a50c2b5ba3ea --- /dev/null +++ b/src/Http/Http.Features/src/PublicAPI.Unshipped.txt @@ -0,0 +1,247 @@ +#nullable enable +Microsoft.AspNetCore.Http.CookieOptions +Microsoft.AspNetCore.Http.CookieOptions.CookieOptions() -> void +Microsoft.AspNetCore.Http.CookieOptions.Domain.get -> string? +Microsoft.AspNetCore.Http.CookieOptions.Domain.set -> void +Microsoft.AspNetCore.Http.CookieOptions.Expires.get -> System.DateTimeOffset? +Microsoft.AspNetCore.Http.CookieOptions.Expires.set -> void +Microsoft.AspNetCore.Http.CookieOptions.HttpOnly.get -> bool +Microsoft.AspNetCore.Http.CookieOptions.HttpOnly.set -> void +Microsoft.AspNetCore.Http.CookieOptions.IsEssential.get -> bool +Microsoft.AspNetCore.Http.CookieOptions.IsEssential.set -> void +Microsoft.AspNetCore.Http.CookieOptions.MaxAge.get -> System.TimeSpan? +Microsoft.AspNetCore.Http.CookieOptions.MaxAge.set -> void +Microsoft.AspNetCore.Http.CookieOptions.Path.get -> string? +Microsoft.AspNetCore.Http.CookieOptions.Path.set -> void +Microsoft.AspNetCore.Http.CookieOptions.SameSite.get -> Microsoft.AspNetCore.Http.SameSiteMode +Microsoft.AspNetCore.Http.CookieOptions.SameSite.set -> void +Microsoft.AspNetCore.Http.CookieOptions.Secure.get -> bool +Microsoft.AspNetCore.Http.CookieOptions.Secure.set -> void +Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature +Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature.User.get -> System.Security.Claims.ClaimsPrincipal? +Microsoft.AspNetCore.Http.Features.Authentication.IHttpAuthenticationFeature.User.set -> void +Microsoft.AspNetCore.Http.Features.FeatureCollection +Microsoft.AspNetCore.Http.Features.FeatureCollection.FeatureCollection() -> void +Microsoft.AspNetCore.Http.Features.FeatureCollection.FeatureCollection(Microsoft.AspNetCore.Http.Features.IFeatureCollection! defaults) -> void +Microsoft.AspNetCore.Http.Features.FeatureCollection.Get() -> TFeature +Microsoft.AspNetCore.Http.Features.FeatureCollection.GetEnumerator() -> System.Collections.Generic.IEnumerator>! +Microsoft.AspNetCore.Http.Features.FeatureCollection.IsReadOnly.get -> bool +Microsoft.AspNetCore.Http.Features.FeatureCollection.Set(TFeature instance) -> void +Microsoft.AspNetCore.Http.Features.FeatureCollection.this[System.Type! key].get -> object? +Microsoft.AspNetCore.Http.Features.FeatureCollection.this[System.Type! key].set -> void +Microsoft.AspNetCore.Http.Features.FeatureReference +Microsoft.AspNetCore.Http.Features.FeatureReference.Fetch(Microsoft.AspNetCore.Http.Features.IFeatureCollection! features) -> T +Microsoft.AspNetCore.Http.Features.FeatureReference.Update(Microsoft.AspNetCore.Http.Features.IFeatureCollection! features, T feature) -> T +Microsoft.AspNetCore.Http.Features.FeatureReferences +Microsoft.AspNetCore.Http.Features.FeatureReferences.Cache -> TCache +Microsoft.AspNetCore.Http.Features.FeatureReferences.Collection.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection! +Microsoft.AspNetCore.Http.Features.FeatureReferences.FeatureReferences(Microsoft.AspNetCore.Http.Features.IFeatureCollection! collection) -> void +Microsoft.AspNetCore.Http.Features.FeatureReferences.Fetch(ref TFeature cached, TState state, System.Func! factory) -> TFeature +Microsoft.AspNetCore.Http.Features.FeatureReferences.Fetch(ref TFeature cached, System.Func! factory) -> TFeature +Microsoft.AspNetCore.Http.Features.FeatureReferences.Initalize(Microsoft.AspNetCore.Http.Features.IFeatureCollection! collection) -> void +Microsoft.AspNetCore.Http.Features.FeatureReferences.Initalize(Microsoft.AspNetCore.Http.Features.IFeatureCollection! collection, int revision) -> void +Microsoft.AspNetCore.Http.Features.FeatureReferences.Revision.get -> int +Microsoft.AspNetCore.Http.Features.HttpsCompressionMode +Microsoft.AspNetCore.Http.Features.HttpsCompressionMode.Compress = 2 -> Microsoft.AspNetCore.Http.Features.HttpsCompressionMode +Microsoft.AspNetCore.Http.Features.HttpsCompressionMode.Default = 0 -> Microsoft.AspNetCore.Http.Features.HttpsCompressionMode +Microsoft.AspNetCore.Http.Features.HttpsCompressionMode.DoNotCompress = 1 -> Microsoft.AspNetCore.Http.Features.HttpsCompressionMode +Microsoft.AspNetCore.Http.Features.IFeatureCollection +Microsoft.AspNetCore.Http.Features.IFeatureCollection.Get() -> TFeature +Microsoft.AspNetCore.Http.Features.IFeatureCollection.IsReadOnly.get -> bool +Microsoft.AspNetCore.Http.Features.IFeatureCollection.Revision.get -> int +Microsoft.AspNetCore.Http.Features.IFeatureCollection.Set(TFeature instance) -> void +Microsoft.AspNetCore.Http.Features.IFeatureCollection.this[System.Type! key].get -> object? +Microsoft.AspNetCore.Http.Features.IFeatureCollection.this[System.Type! key].set -> void +Microsoft.AspNetCore.Http.Features.IFormFeature +Microsoft.AspNetCore.Http.Features.IFormFeature.Form.get -> Microsoft.AspNetCore.Http.IFormCollection? +Microsoft.AspNetCore.Http.Features.IFormFeature.Form.set -> void +Microsoft.AspNetCore.Http.Features.IFormFeature.HasFormContentType.get -> bool +Microsoft.AspNetCore.Http.Features.IFormFeature.ReadForm() -> Microsoft.AspNetCore.Http.IFormCollection! +Microsoft.AspNetCore.Http.Features.IFormFeature.ReadFormAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature +Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature.AllowSynchronousIO.get -> bool +Microsoft.AspNetCore.Http.Features.IHttpBodyControlFeature.AllowSynchronousIO.set -> void +Microsoft.AspNetCore.Http.Features.IHttpBufferingFeature +Microsoft.AspNetCore.Http.Features.IHttpBufferingFeature.DisableRequestBuffering() -> void +Microsoft.AspNetCore.Http.Features.IHttpBufferingFeature.DisableResponseBuffering() -> void +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.ConnectionId.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.ConnectionId.set -> void +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.LocalIpAddress.get -> System.Net.IPAddress? +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.LocalIpAddress.set -> void +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.LocalPort.get -> int +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.LocalPort.set -> void +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.RemoteIpAddress.get -> System.Net.IPAddress? +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.RemoteIpAddress.set -> void +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.RemotePort.get -> int +Microsoft.AspNetCore.Http.Features.IHttpConnectionFeature.RemotePort.set -> void +Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature +Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature.IsReadOnly.get -> bool +Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature.MaxRequestBodySize.get -> long? +Microsoft.AspNetCore.Http.Features.IHttpMaxRequestBodySizeFeature.MaxRequestBodySize.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestBodyDetectionFeature +Microsoft.AspNetCore.Http.Features.IHttpRequestBodyDetectionFeature.CanHaveBody.get -> bool +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Body.get -> System.IO.Stream! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Body.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Headers.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Method.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Method.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Path.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Path.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.PathBase.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.PathBase.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Protocol.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Protocol.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.QueryString.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.QueryString.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.RawTarget.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.RawTarget.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Scheme.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpRequestFeature.Scheme.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature +Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature.TraceIdentifier.get -> string! +Microsoft.AspNetCore.Http.Features.IHttpRequestIdentifierFeature.TraceIdentifier.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature +Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature.Abort() -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature.RequestAborted.get -> System.Threading.CancellationToken +Microsoft.AspNetCore.Http.Features.IHttpRequestLifetimeFeature.RequestAborted.set -> void +Microsoft.AspNetCore.Http.Features.IHttpRequestTrailersFeature +Microsoft.AspNetCore.Http.Features.IHttpRequestTrailersFeature.Available.get -> bool +Microsoft.AspNetCore.Http.Features.IHttpRequestTrailersFeature.Trailers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +Microsoft.AspNetCore.Http.Features.IHttpResetFeature +Microsoft.AspNetCore.Http.Features.IHttpResetFeature.Reset(int errorCode) -> void +Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature +Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.CompleteAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.DisableBuffering() -> void +Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.SendFileAsync(string! path, long offset, long? count, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.Stream.get -> System.IO.Stream! +Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature.Writer.get -> System.IO.Pipelines.PipeWriter! +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.Body.get -> System.IO.Stream! +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.Body.set -> void +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.HasStarted.get -> bool +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.Headers.set -> void +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.OnCompleted(System.Func! callback, object! state) -> void +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.OnStarting(System.Func! callback, object! state) -> void +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.ReasonPhrase.get -> string? +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.ReasonPhrase.set -> void +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.StatusCode.get -> int +Microsoft.AspNetCore.Http.Features.IHttpResponseFeature.StatusCode.set -> void +Microsoft.AspNetCore.Http.Features.IHttpResponseTrailersFeature +Microsoft.AspNetCore.Http.Features.IHttpResponseTrailersFeature.Trailers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +Microsoft.AspNetCore.Http.Features.IHttpResponseTrailersFeature.Trailers.set -> void +Microsoft.AspNetCore.Http.Features.IHttpSendFileFeature +Microsoft.AspNetCore.Http.Features.IHttpSendFileFeature.SendFileAsync(string! path, long offset, long? count, System.Threading.CancellationToken cancellation) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature +Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature.IsUpgradableRequest.get -> bool +Microsoft.AspNetCore.Http.Features.IHttpUpgradeFeature.UpgradeAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.IHttpWebSocketFeature +Microsoft.AspNetCore.Http.Features.IHttpWebSocketFeature.AcceptAsync(Microsoft.AspNetCore.Http.WebSocketAcceptContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.IHttpWebSocketFeature.IsWebSocketRequest.get -> bool +Microsoft.AspNetCore.Http.Features.IHttpsCompressionFeature +Microsoft.AspNetCore.Http.Features.IHttpsCompressionFeature.Mode.get -> Microsoft.AspNetCore.Http.Features.HttpsCompressionMode +Microsoft.AspNetCore.Http.Features.IHttpsCompressionFeature.Mode.set -> void +Microsoft.AspNetCore.Http.Features.IItemsFeature +Microsoft.AspNetCore.Http.Features.IItemsFeature.Items.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Http.Features.IItemsFeature.Items.set -> void +Microsoft.AspNetCore.Http.Features.IQueryFeature +Microsoft.AspNetCore.Http.Features.IQueryFeature.Query.get -> Microsoft.AspNetCore.Http.IQueryCollection! +Microsoft.AspNetCore.Http.Features.IQueryFeature.Query.set -> void +Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature +Microsoft.AspNetCore.Http.Features.IRequestBodyPipeFeature.Reader.get -> System.IO.Pipelines.PipeReader! +Microsoft.AspNetCore.Http.Features.IRequestCookiesFeature +Microsoft.AspNetCore.Http.Features.IRequestCookiesFeature.Cookies.get -> Microsoft.AspNetCore.Http.IRequestCookieCollection! +Microsoft.AspNetCore.Http.Features.IRequestCookiesFeature.Cookies.set -> void +Microsoft.AspNetCore.Http.Features.IResponseCookiesFeature +Microsoft.AspNetCore.Http.Features.IResponseCookiesFeature.Cookies.get -> Microsoft.AspNetCore.Http.IResponseCookies! +Microsoft.AspNetCore.Http.Features.IServerVariablesFeature +Microsoft.AspNetCore.Http.Features.IServerVariablesFeature.this[string! variableName].get -> string! +Microsoft.AspNetCore.Http.Features.IServerVariablesFeature.this[string! variableName].set -> void +Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature +Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature.RequestServices.get -> System.IServiceProvider! +Microsoft.AspNetCore.Http.Features.IServiceProvidersFeature.RequestServices.set -> void +Microsoft.AspNetCore.Http.Features.ISessionFeature +Microsoft.AspNetCore.Http.Features.ISessionFeature.Session.get -> Microsoft.AspNetCore.Http.ISession! +Microsoft.AspNetCore.Http.Features.ISessionFeature.Session.set -> void +Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature +Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature.ClientCertificate.get -> System.Security.Cryptography.X509Certificates.X509Certificate2? +Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature.ClientCertificate.set -> void +Microsoft.AspNetCore.Http.Features.ITlsConnectionFeature.GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.ITlsTokenBindingFeature +Microsoft.AspNetCore.Http.Features.ITlsTokenBindingFeature.GetProvidedTokenBindingId() -> byte[]! +Microsoft.AspNetCore.Http.Features.ITlsTokenBindingFeature.GetReferredTokenBindingId() -> byte[]! +Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature +Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature.CanTrack.get -> bool +Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature.CreateConsentCookie() -> string! +Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature.GrantConsent() -> void +Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature.HasConsent.get -> bool +Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature.IsConsentNeeded.get -> bool +Microsoft.AspNetCore.Http.Features.ITrackingConsentFeature.WithdrawConsent() -> void +Microsoft.AspNetCore.Http.IFormCollection +Microsoft.AspNetCore.Http.IFormCollection.ContainsKey(string! key) -> bool +Microsoft.AspNetCore.Http.IFormCollection.Count.get -> int +Microsoft.AspNetCore.Http.IFormCollection.Files.get -> Microsoft.AspNetCore.Http.IFormFileCollection! +Microsoft.AspNetCore.Http.IFormCollection.Keys.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Http.IFormCollection.TryGetValue(string! key, out Microsoft.Extensions.Primitives.StringValues value) -> bool +Microsoft.AspNetCore.Http.IFormCollection.this[string! key].get -> Microsoft.Extensions.Primitives.StringValues +Microsoft.AspNetCore.Http.IFormFile +Microsoft.AspNetCore.Http.IFormFile.ContentDisposition.get -> string! +Microsoft.AspNetCore.Http.IFormFile.ContentType.get -> string! +Microsoft.AspNetCore.Http.IFormFile.CopyTo(System.IO.Stream! target) -> void +Microsoft.AspNetCore.Http.IFormFile.CopyToAsync(System.IO.Stream! target, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.IFormFile.FileName.get -> string! +Microsoft.AspNetCore.Http.IFormFile.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +Microsoft.AspNetCore.Http.IFormFile.Length.get -> long +Microsoft.AspNetCore.Http.IFormFile.Name.get -> string! +Microsoft.AspNetCore.Http.IFormFile.OpenReadStream() -> System.IO.Stream! +Microsoft.AspNetCore.Http.IFormFileCollection +Microsoft.AspNetCore.Http.IFormFileCollection.GetFile(string! name) -> Microsoft.AspNetCore.Http.IFormFile? +Microsoft.AspNetCore.Http.IFormFileCollection.GetFiles(string! name) -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Http.IFormFileCollection.this[string! name].get -> Microsoft.AspNetCore.Http.IFormFile? +Microsoft.AspNetCore.Http.IHeaderDictionary +Microsoft.AspNetCore.Http.IHeaderDictionary.ContentLength.get -> long? +Microsoft.AspNetCore.Http.IHeaderDictionary.ContentLength.set -> void +Microsoft.AspNetCore.Http.IHeaderDictionary.this[string! key].get -> Microsoft.Extensions.Primitives.StringValues +Microsoft.AspNetCore.Http.IHeaderDictionary.this[string! key].set -> void +Microsoft.AspNetCore.Http.IQueryCollection +Microsoft.AspNetCore.Http.IQueryCollection.ContainsKey(string! key) -> bool +Microsoft.AspNetCore.Http.IQueryCollection.Count.get -> int +Microsoft.AspNetCore.Http.IQueryCollection.Keys.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Http.IQueryCollection.TryGetValue(string! key, out Microsoft.Extensions.Primitives.StringValues value) -> bool +Microsoft.AspNetCore.Http.IQueryCollection.this[string! key].get -> Microsoft.Extensions.Primitives.StringValues +Microsoft.AspNetCore.Http.IRequestCookieCollection +Microsoft.AspNetCore.Http.IRequestCookieCollection.ContainsKey(string! key) -> bool +Microsoft.AspNetCore.Http.IRequestCookieCollection.Count.get -> int +Microsoft.AspNetCore.Http.IRequestCookieCollection.Keys.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Http.IRequestCookieCollection.TryGetValue(string! key, out string? value) -> bool +Microsoft.AspNetCore.Http.IRequestCookieCollection.this[string! key].get -> string? +Microsoft.AspNetCore.Http.IResponseCookies +Microsoft.AspNetCore.Http.IResponseCookies.Append(string! key, string! value) -> void +Microsoft.AspNetCore.Http.IResponseCookies.Append(string! key, string! value, Microsoft.AspNetCore.Http.CookieOptions! options) -> void +Microsoft.AspNetCore.Http.IResponseCookies.Delete(string! key) -> void +Microsoft.AspNetCore.Http.IResponseCookies.Delete(string! key, Microsoft.AspNetCore.Http.CookieOptions! options) -> void +Microsoft.AspNetCore.Http.ISession +Microsoft.AspNetCore.Http.ISession.Clear() -> void +Microsoft.AspNetCore.Http.ISession.CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.ISession.Id.get -> string! +Microsoft.AspNetCore.Http.ISession.IsAvailable.get -> bool +Microsoft.AspNetCore.Http.ISession.Keys.get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Http.ISession.LoadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.ISession.Remove(string! key) -> void +Microsoft.AspNetCore.Http.ISession.Set(string! key, byte[]! value) -> void +Microsoft.AspNetCore.Http.ISession.TryGetValue(string! key, out byte[]! value) -> bool +Microsoft.AspNetCore.Http.SameSiteMode +Microsoft.AspNetCore.Http.SameSiteMode.Lax = 1 -> Microsoft.AspNetCore.Http.SameSiteMode +Microsoft.AspNetCore.Http.SameSiteMode.None = 0 -> Microsoft.AspNetCore.Http.SameSiteMode +Microsoft.AspNetCore.Http.SameSiteMode.Strict = 2 -> Microsoft.AspNetCore.Http.SameSiteMode +Microsoft.AspNetCore.Http.SameSiteMode.Unspecified = -1 -> Microsoft.AspNetCore.Http.SameSiteMode +Microsoft.AspNetCore.Http.WebSocketAcceptContext +Microsoft.AspNetCore.Http.WebSocketAcceptContext.WebSocketAcceptContext() -> void +static readonly Microsoft.AspNetCore.Http.Features.FeatureReference.Default -> Microsoft.AspNetCore.Http.Features.FeatureReference +virtual Microsoft.AspNetCore.Http.Features.FeatureCollection.Revision.get -> int +virtual Microsoft.AspNetCore.Http.WebSocketAcceptContext.SubProtocol.get -> string? +virtual Microsoft.AspNetCore.Http.WebSocketAcceptContext.SubProtocol.set -> void diff --git a/src/Http/Http/src/PublicAPI.Shipped.txt b/src/Http/Http/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Http/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Http/src/PublicAPI.Unshipped.txt b/src/Http/Http/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..799760495e13 --- /dev/null +++ b/src/Http/Http/src/PublicAPI.Unshipped.txt @@ -0,0 +1,302 @@ +#nullable enable +Microsoft.AspNetCore.Builder.ApplicationBuilder +Microsoft.AspNetCore.Builder.ApplicationBuilder.ApplicationBuilder(System.IServiceProvider! serviceProvider) -> void +Microsoft.AspNetCore.Builder.ApplicationBuilder.ApplicationBuilder(System.IServiceProvider! serviceProvider, object! server) -> void +Microsoft.AspNetCore.Builder.ApplicationBuilder.ApplicationServices.get -> System.IServiceProvider! +Microsoft.AspNetCore.Builder.ApplicationBuilder.ApplicationServices.set -> void +Microsoft.AspNetCore.Builder.ApplicationBuilder.Build() -> Microsoft.AspNetCore.Http.RequestDelegate! +Microsoft.AspNetCore.Builder.ApplicationBuilder.New() -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +Microsoft.AspNetCore.Builder.ApplicationBuilder.Properties.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Builder.ApplicationBuilder.ServerFeatures.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection! +Microsoft.AspNetCore.Builder.ApplicationBuilder.Use(System.Func! middleware) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +Microsoft.AspNetCore.Http.BindingAddress +Microsoft.AspNetCore.Http.BindingAddress.BindingAddress() -> void +Microsoft.AspNetCore.Http.BindingAddress.Host.get -> string! +Microsoft.AspNetCore.Http.BindingAddress.IsUnixPipe.get -> bool +Microsoft.AspNetCore.Http.BindingAddress.PathBase.get -> string! +Microsoft.AspNetCore.Http.BindingAddress.Port.get -> int +Microsoft.AspNetCore.Http.BindingAddress.Scheme.get -> string! +Microsoft.AspNetCore.Http.BindingAddress.UnixPipePath.get -> string! +Microsoft.AspNetCore.Http.DefaultHttpContext +Microsoft.AspNetCore.Http.DefaultHttpContext.DefaultHttpContext() -> void +Microsoft.AspNetCore.Http.DefaultHttpContext.DefaultHttpContext(Microsoft.AspNetCore.Http.Features.IFeatureCollection! features) -> void +Microsoft.AspNetCore.Http.DefaultHttpContext.FormOptions.get -> Microsoft.AspNetCore.Http.Features.FormOptions! +Microsoft.AspNetCore.Http.DefaultHttpContext.FormOptions.set -> void +Microsoft.AspNetCore.Http.DefaultHttpContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Http.DefaultHttpContext.Initialize(Microsoft.AspNetCore.Http.Features.IFeatureCollection! features) -> void +Microsoft.AspNetCore.Http.DefaultHttpContext.ServiceScopeFactory.get -> Microsoft.Extensions.DependencyInjection.IServiceScopeFactory! +Microsoft.AspNetCore.Http.DefaultHttpContext.ServiceScopeFactory.set -> void +Microsoft.AspNetCore.Http.DefaultHttpContext.Uninitialize() -> void +Microsoft.AspNetCore.Http.Features.Authentication.HttpAuthenticationFeature +Microsoft.AspNetCore.Http.Features.Authentication.HttpAuthenticationFeature.HttpAuthenticationFeature() -> void +Microsoft.AspNetCore.Http.Features.Authentication.HttpAuthenticationFeature.User.get -> System.Security.Claims.ClaimsPrincipal? +Microsoft.AspNetCore.Http.Features.Authentication.HttpAuthenticationFeature.User.set -> void +Microsoft.AspNetCore.Http.Features.DefaultSessionFeature +Microsoft.AspNetCore.Http.Features.DefaultSessionFeature.DefaultSessionFeature() -> void +Microsoft.AspNetCore.Http.Features.DefaultSessionFeature.Session.get -> Microsoft.AspNetCore.Http.ISession! +Microsoft.AspNetCore.Http.Features.DefaultSessionFeature.Session.set -> void +Microsoft.AspNetCore.Http.Features.FormFeature +Microsoft.AspNetCore.Http.Features.FormFeature.Form.get -> Microsoft.AspNetCore.Http.IFormCollection? +Microsoft.AspNetCore.Http.Features.FormFeature.Form.set -> void +Microsoft.AspNetCore.Http.Features.FormFeature.FormFeature(Microsoft.AspNetCore.Http.HttpRequest! request) -> void +Microsoft.AspNetCore.Http.Features.FormFeature.FormFeature(Microsoft.AspNetCore.Http.HttpRequest! request, Microsoft.AspNetCore.Http.Features.FormOptions! options) -> void +Microsoft.AspNetCore.Http.Features.FormFeature.FormFeature(Microsoft.AspNetCore.Http.IFormCollection! form) -> void +Microsoft.AspNetCore.Http.Features.FormFeature.HasFormContentType.get -> bool +Microsoft.AspNetCore.Http.Features.FormFeature.ReadForm() -> Microsoft.AspNetCore.Http.IFormCollection! +Microsoft.AspNetCore.Http.Features.FormFeature.ReadFormAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.FormFeature.ReadFormAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.FormOptions +Microsoft.AspNetCore.Http.Features.FormOptions.BufferBody.get -> bool +Microsoft.AspNetCore.Http.Features.FormOptions.BufferBody.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.BufferBodyLengthLimit.get -> long +Microsoft.AspNetCore.Http.Features.FormOptions.BufferBodyLengthLimit.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.FormOptions() -> void +Microsoft.AspNetCore.Http.Features.FormOptions.KeyLengthLimit.get -> int +Microsoft.AspNetCore.Http.Features.FormOptions.KeyLengthLimit.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.MemoryBufferThreshold.get -> int +Microsoft.AspNetCore.Http.Features.FormOptions.MemoryBufferThreshold.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.MultipartBodyLengthLimit.get -> long +Microsoft.AspNetCore.Http.Features.FormOptions.MultipartBodyLengthLimit.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.MultipartBoundaryLengthLimit.get -> int +Microsoft.AspNetCore.Http.Features.FormOptions.MultipartBoundaryLengthLimit.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.MultipartHeadersCountLimit.get -> int +Microsoft.AspNetCore.Http.Features.FormOptions.MultipartHeadersCountLimit.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.MultipartHeadersLengthLimit.get -> int +Microsoft.AspNetCore.Http.Features.FormOptions.MultipartHeadersLengthLimit.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.ValueCountLimit.get -> int +Microsoft.AspNetCore.Http.Features.FormOptions.ValueCountLimit.set -> void +Microsoft.AspNetCore.Http.Features.FormOptions.ValueLengthLimit.get -> int +Microsoft.AspNetCore.Http.Features.FormOptions.ValueLengthLimit.set -> void +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.ConnectionId.get -> string! +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.ConnectionId.set -> void +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.HttpConnectionFeature() -> void +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.LocalIpAddress.get -> System.Net.IPAddress? +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.LocalIpAddress.set -> void +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.LocalPort.get -> int +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.LocalPort.set -> void +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.RemoteIpAddress.get -> System.Net.IPAddress? +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.RemoteIpAddress.set -> void +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.RemotePort.get -> int +Microsoft.AspNetCore.Http.Features.HttpConnectionFeature.RemotePort.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Body.get -> System.IO.Stream! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Body.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Headers.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.HttpRequestFeature() -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Method.get -> string! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Method.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Path.get -> string! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Path.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.PathBase.get -> string! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.PathBase.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Protocol.get -> string! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Protocol.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.QueryString.get -> string! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.QueryString.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.RawTarget.get -> string! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.RawTarget.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Scheme.get -> string! +Microsoft.AspNetCore.Http.Features.HttpRequestFeature.Scheme.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestIdentifierFeature +Microsoft.AspNetCore.Http.Features.HttpRequestIdentifierFeature.HttpRequestIdentifierFeature() -> void +Microsoft.AspNetCore.Http.Features.HttpRequestIdentifierFeature.TraceIdentifier.get -> string! +Microsoft.AspNetCore.Http.Features.HttpRequestIdentifierFeature.TraceIdentifier.set -> void +Microsoft.AspNetCore.Http.Features.HttpRequestLifetimeFeature +Microsoft.AspNetCore.Http.Features.HttpRequestLifetimeFeature.Abort() -> void +Microsoft.AspNetCore.Http.Features.HttpRequestLifetimeFeature.HttpRequestLifetimeFeature() -> void +Microsoft.AspNetCore.Http.Features.HttpRequestLifetimeFeature.RequestAborted.get -> System.Threading.CancellationToken +Microsoft.AspNetCore.Http.Features.HttpRequestLifetimeFeature.RequestAborted.set -> void +Microsoft.AspNetCore.Http.Features.HttpResponseFeature +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.Body.get -> System.IO.Stream! +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.Body.set -> void +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.Headers.set -> void +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.HttpResponseFeature() -> void +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.ReasonPhrase.get -> string? +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.ReasonPhrase.set -> void +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.StatusCode.get -> int +Microsoft.AspNetCore.Http.Features.HttpResponseFeature.StatusCode.set -> void +Microsoft.AspNetCore.Http.Features.ItemsFeature +Microsoft.AspNetCore.Http.Features.ItemsFeature.Items.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Http.Features.ItemsFeature.Items.set -> void +Microsoft.AspNetCore.Http.Features.ItemsFeature.ItemsFeature() -> void +Microsoft.AspNetCore.Http.Features.QueryFeature +Microsoft.AspNetCore.Http.Features.QueryFeature.Query.get -> Microsoft.AspNetCore.Http.IQueryCollection! +Microsoft.AspNetCore.Http.Features.QueryFeature.Query.set -> void +Microsoft.AspNetCore.Http.Features.QueryFeature.QueryFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection! features) -> void +Microsoft.AspNetCore.Http.Features.QueryFeature.QueryFeature(Microsoft.AspNetCore.Http.IQueryCollection! query) -> void +Microsoft.AspNetCore.Http.Features.RequestBodyPipeFeature +Microsoft.AspNetCore.Http.Features.RequestBodyPipeFeature.Reader.get -> System.IO.Pipelines.PipeReader! +Microsoft.AspNetCore.Http.Features.RequestBodyPipeFeature.RequestBodyPipeFeature(Microsoft.AspNetCore.Http.HttpContext! context) -> void +Microsoft.AspNetCore.Http.Features.RequestCookiesFeature +Microsoft.AspNetCore.Http.Features.RequestCookiesFeature.Cookies.get -> Microsoft.AspNetCore.Http.IRequestCookieCollection! +Microsoft.AspNetCore.Http.Features.RequestCookiesFeature.Cookies.set -> void +Microsoft.AspNetCore.Http.Features.RequestCookiesFeature.RequestCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection! features) -> void +Microsoft.AspNetCore.Http.Features.RequestCookiesFeature.RequestCookiesFeature(Microsoft.AspNetCore.Http.IRequestCookieCollection! cookies) -> void +Microsoft.AspNetCore.Http.Features.RequestServicesFeature +Microsoft.AspNetCore.Http.Features.RequestServicesFeature.Dispose() -> void +Microsoft.AspNetCore.Http.Features.RequestServicesFeature.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.Http.Features.RequestServicesFeature.RequestServices.get -> System.IServiceProvider! +Microsoft.AspNetCore.Http.Features.RequestServicesFeature.RequestServices.set -> void +Microsoft.AspNetCore.Http.Features.RequestServicesFeature.RequestServicesFeature(Microsoft.AspNetCore.Http.HttpContext! context, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory? scopeFactory) -> void +Microsoft.AspNetCore.Http.Features.ResponseCookiesFeature +Microsoft.AspNetCore.Http.Features.ResponseCookiesFeature.Cookies.get -> Microsoft.AspNetCore.Http.IResponseCookies! +Microsoft.AspNetCore.Http.Features.ResponseCookiesFeature.ResponseCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection! features) -> void +Microsoft.AspNetCore.Http.Features.ResponseCookiesFeature.ResponseCookiesFeature(Microsoft.AspNetCore.Http.Features.IFeatureCollection! features, Microsoft.Extensions.ObjectPool.ObjectPool? builderPool) -> void +Microsoft.AspNetCore.Http.Features.RouteValuesFeature +Microsoft.AspNetCore.Http.Features.RouteValuesFeature.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Http.Features.RouteValuesFeature.RouteValues.set -> void +Microsoft.AspNetCore.Http.Features.RouteValuesFeature.RouteValuesFeature() -> void +Microsoft.AspNetCore.Http.Features.ServiceProvidersFeature +Microsoft.AspNetCore.Http.Features.ServiceProvidersFeature.RequestServices.get -> System.IServiceProvider! +Microsoft.AspNetCore.Http.Features.ServiceProvidersFeature.RequestServices.set -> void +Microsoft.AspNetCore.Http.Features.ServiceProvidersFeature.ServiceProvidersFeature() -> void +Microsoft.AspNetCore.Http.Features.TlsConnectionFeature +Microsoft.AspNetCore.Http.Features.TlsConnectionFeature.ClientCertificate.get -> System.Security.Cryptography.X509Certificates.X509Certificate2? +Microsoft.AspNetCore.Http.Features.TlsConnectionFeature.ClientCertificate.set -> void +Microsoft.AspNetCore.Http.Features.TlsConnectionFeature.GetClientCertificateAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.Features.TlsConnectionFeature.TlsConnectionFeature() -> void +Microsoft.AspNetCore.Http.FormCollection +Microsoft.AspNetCore.Http.FormCollection.ContainsKey(string! key) -> bool +Microsoft.AspNetCore.Http.FormCollection.Count.get -> int +Microsoft.AspNetCore.Http.FormCollection.Enumerator +Microsoft.AspNetCore.Http.FormCollection.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair +Microsoft.AspNetCore.Http.FormCollection.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Http.FormCollection.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Http.FormCollection.Files.get -> Microsoft.AspNetCore.Http.IFormFileCollection! +Microsoft.AspNetCore.Http.FormCollection.FormCollection(System.Collections.Generic.Dictionary? fields, Microsoft.AspNetCore.Http.IFormFileCollection? files = null) -> void +Microsoft.AspNetCore.Http.FormCollection.GetEnumerator() -> Microsoft.AspNetCore.Http.FormCollection.Enumerator +Microsoft.AspNetCore.Http.FormCollection.Keys.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Http.FormCollection.TryGetValue(string! key, out Microsoft.Extensions.Primitives.StringValues value) -> bool +Microsoft.AspNetCore.Http.FormCollection.this[string! key].get -> Microsoft.Extensions.Primitives.StringValues +Microsoft.AspNetCore.Http.FormFile +Microsoft.AspNetCore.Http.FormFile.ContentDisposition.get -> string! +Microsoft.AspNetCore.Http.FormFile.ContentDisposition.set -> void +Microsoft.AspNetCore.Http.FormFile.ContentType.get -> string! +Microsoft.AspNetCore.Http.FormFile.ContentType.set -> void +Microsoft.AspNetCore.Http.FormFile.CopyTo(System.IO.Stream! target) -> void +Microsoft.AspNetCore.Http.FormFile.CopyToAsync(System.IO.Stream! target, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Http.FormFile.FileName.get -> string! +Microsoft.AspNetCore.Http.FormFile.FormFile(System.IO.Stream! baseStream, long baseStreamOffset, long length, string! name, string! fileName) -> void +Microsoft.AspNetCore.Http.FormFile.Headers.get -> Microsoft.AspNetCore.Http.IHeaderDictionary! +Microsoft.AspNetCore.Http.FormFile.Headers.set -> void +Microsoft.AspNetCore.Http.FormFile.Length.get -> long +Microsoft.AspNetCore.Http.FormFile.Name.get -> string! +Microsoft.AspNetCore.Http.FormFile.OpenReadStream() -> System.IO.Stream! +Microsoft.AspNetCore.Http.FormFileCollection +Microsoft.AspNetCore.Http.FormFileCollection.FormFileCollection() -> void +Microsoft.AspNetCore.Http.FormFileCollection.GetFile(string! name) -> Microsoft.AspNetCore.Http.IFormFile? +Microsoft.AspNetCore.Http.FormFileCollection.GetFiles(string! name) -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Http.FormFileCollection.this[string! name].get -> Microsoft.AspNetCore.Http.IFormFile? +Microsoft.AspNetCore.Http.HeaderDictionary +Microsoft.AspNetCore.Http.HeaderDictionary.Add(System.Collections.Generic.KeyValuePair item) -> void +Microsoft.AspNetCore.Http.HeaderDictionary.Add(string! key, Microsoft.Extensions.Primitives.StringValues value) -> void +Microsoft.AspNetCore.Http.HeaderDictionary.Clear() -> void +Microsoft.AspNetCore.Http.HeaderDictionary.Contains(System.Collections.Generic.KeyValuePair item) -> bool +Microsoft.AspNetCore.Http.HeaderDictionary.ContainsKey(string! key) -> bool +Microsoft.AspNetCore.Http.HeaderDictionary.ContentLength.get -> long? +Microsoft.AspNetCore.Http.HeaderDictionary.ContentLength.set -> void +Microsoft.AspNetCore.Http.HeaderDictionary.CopyTo(System.Collections.Generic.KeyValuePair[]! array, int arrayIndex) -> void +Microsoft.AspNetCore.Http.HeaderDictionary.Count.get -> int +Microsoft.AspNetCore.Http.HeaderDictionary.Enumerator +Microsoft.AspNetCore.Http.HeaderDictionary.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair +Microsoft.AspNetCore.Http.HeaderDictionary.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Http.HeaderDictionary.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Http.HeaderDictionary.GetEnumerator() -> Microsoft.AspNetCore.Http.HeaderDictionary.Enumerator +Microsoft.AspNetCore.Http.HeaderDictionary.HeaderDictionary() -> void +Microsoft.AspNetCore.Http.HeaderDictionary.HeaderDictionary(System.Collections.Generic.Dictionary? store) -> void +Microsoft.AspNetCore.Http.HeaderDictionary.HeaderDictionary(int capacity) -> void +Microsoft.AspNetCore.Http.HeaderDictionary.IsReadOnly.get -> bool +Microsoft.AspNetCore.Http.HeaderDictionary.IsReadOnly.set -> void +Microsoft.AspNetCore.Http.HeaderDictionary.Keys.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Http.HeaderDictionary.Remove(System.Collections.Generic.KeyValuePair item) -> bool +Microsoft.AspNetCore.Http.HeaderDictionary.Remove(string! key) -> bool +Microsoft.AspNetCore.Http.HeaderDictionary.TryGetValue(string! key, out Microsoft.Extensions.Primitives.StringValues value) -> bool +Microsoft.AspNetCore.Http.HeaderDictionary.Values.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Http.HeaderDictionary.this[string! key].get -> Microsoft.Extensions.Primitives.StringValues +Microsoft.AspNetCore.Http.HeaderDictionary.this[string! key].set -> void +Microsoft.AspNetCore.Http.HttpContextAccessor +Microsoft.AspNetCore.Http.HttpContextAccessor.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext? +Microsoft.AspNetCore.Http.HttpContextAccessor.HttpContext.set -> void +Microsoft.AspNetCore.Http.HttpContextAccessor.HttpContextAccessor() -> void +Microsoft.AspNetCore.Http.HttpContextFactory +Microsoft.AspNetCore.Http.HttpContextFactory.Create(Microsoft.AspNetCore.Http.Features.IFeatureCollection! featureCollection) -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Http.HttpContextFactory.Dispose(Microsoft.AspNetCore.Http.HttpContext! httpContext) -> void +Microsoft.AspNetCore.Http.HttpRequestRewindExtensions +Microsoft.AspNetCore.Http.MiddlewareFactory +Microsoft.AspNetCore.Http.MiddlewareFactory.Create(System.Type! middlewareType) -> Microsoft.AspNetCore.Http.IMiddleware? +Microsoft.AspNetCore.Http.MiddlewareFactory.MiddlewareFactory(System.IServiceProvider! serviceProvider) -> void +Microsoft.AspNetCore.Http.MiddlewareFactory.Release(Microsoft.AspNetCore.Http.IMiddleware! middleware) -> void +Microsoft.AspNetCore.Http.QueryCollection +Microsoft.AspNetCore.Http.QueryCollection.ContainsKey(string! key) -> bool +Microsoft.AspNetCore.Http.QueryCollection.Count.get -> int +Microsoft.AspNetCore.Http.QueryCollection.Enumerator +Microsoft.AspNetCore.Http.QueryCollection.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair +Microsoft.AspNetCore.Http.QueryCollection.Enumerator.Dispose() -> void +Microsoft.AspNetCore.Http.QueryCollection.Enumerator.MoveNext() -> bool +Microsoft.AspNetCore.Http.QueryCollection.GetEnumerator() -> Microsoft.AspNetCore.Http.QueryCollection.Enumerator +Microsoft.AspNetCore.Http.QueryCollection.Keys.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Http.QueryCollection.QueryCollection() -> void +Microsoft.AspNetCore.Http.QueryCollection.QueryCollection(Microsoft.AspNetCore.Http.QueryCollection! store) -> void +Microsoft.AspNetCore.Http.QueryCollection.QueryCollection(System.Collections.Generic.Dictionary! store) -> void +Microsoft.AspNetCore.Http.QueryCollection.QueryCollection(int capacity) -> void +Microsoft.AspNetCore.Http.QueryCollection.TryGetValue(string! key, out Microsoft.Extensions.Primitives.StringValues value) -> bool +Microsoft.AspNetCore.Http.QueryCollection.this[string! key].get -> Microsoft.Extensions.Primitives.StringValues +Microsoft.AspNetCore.Http.RequestFormReaderExtensions +Microsoft.AspNetCore.Http.SendFileFallback +Microsoft.AspNetCore.Http.StreamResponseBodyFeature +Microsoft.AspNetCore.Http.StreamResponseBodyFeature.Dispose() -> void +Microsoft.AspNetCore.Http.StreamResponseBodyFeature.PriorFeature.get -> Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature? +Microsoft.AspNetCore.Http.StreamResponseBodyFeature.Stream.get -> System.IO.Stream! +Microsoft.AspNetCore.Http.StreamResponseBodyFeature.StreamResponseBodyFeature(System.IO.Stream! stream) -> void +Microsoft.AspNetCore.Http.StreamResponseBodyFeature.StreamResponseBodyFeature(System.IO.Stream! stream, Microsoft.AspNetCore.Http.Features.IHttpResponseBodyFeature! priorFeature) -> void +Microsoft.AspNetCore.Http.StreamResponseBodyFeature.Writer.get -> System.IO.Pipelines.PipeWriter! +Microsoft.Extensions.DependencyInjection.HttpServiceCollectionExtensions +const Microsoft.AspNetCore.Http.Features.FormOptions.DefaultBufferBodyLengthLimit = 134217728 -> int +const Microsoft.AspNetCore.Http.Features.FormOptions.DefaultMemoryBufferThreshold = 65536 -> int +const Microsoft.AspNetCore.Http.Features.FormOptions.DefaultMultipartBodyLengthLimit = 134217728 -> long +const Microsoft.AspNetCore.Http.Features.FormOptions.DefaultMultipartBoundaryLengthLimit = 128 -> int +override Microsoft.AspNetCore.Http.BindingAddress.Equals(object? obj) -> bool +override Microsoft.AspNetCore.Http.BindingAddress.GetHashCode() -> int +override Microsoft.AspNetCore.Http.BindingAddress.ToString() -> string! +override Microsoft.AspNetCore.Http.DefaultHttpContext.Abort() -> void +override Microsoft.AspNetCore.Http.DefaultHttpContext.Connection.get -> Microsoft.AspNetCore.Http.ConnectionInfo! +override Microsoft.AspNetCore.Http.DefaultHttpContext.Features.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection! +override Microsoft.AspNetCore.Http.DefaultHttpContext.Items.get -> System.Collections.Generic.IDictionary! +override Microsoft.AspNetCore.Http.DefaultHttpContext.Items.set -> void +override Microsoft.AspNetCore.Http.DefaultHttpContext.Request.get -> Microsoft.AspNetCore.Http.HttpRequest! +override Microsoft.AspNetCore.Http.DefaultHttpContext.RequestAborted.get -> System.Threading.CancellationToken +override Microsoft.AspNetCore.Http.DefaultHttpContext.RequestAborted.set -> void +override Microsoft.AspNetCore.Http.DefaultHttpContext.RequestServices.get -> System.IServiceProvider! +override Microsoft.AspNetCore.Http.DefaultHttpContext.RequestServices.set -> void +override Microsoft.AspNetCore.Http.DefaultHttpContext.Response.get -> Microsoft.AspNetCore.Http.HttpResponse! +override Microsoft.AspNetCore.Http.DefaultHttpContext.Session.get -> Microsoft.AspNetCore.Http.ISession! +override Microsoft.AspNetCore.Http.DefaultHttpContext.Session.set -> void +override Microsoft.AspNetCore.Http.DefaultHttpContext.TraceIdentifier.get -> string! +override Microsoft.AspNetCore.Http.DefaultHttpContext.TraceIdentifier.set -> void +override Microsoft.AspNetCore.Http.DefaultHttpContext.User.get -> System.Security.Claims.ClaimsPrincipal! +override Microsoft.AspNetCore.Http.DefaultHttpContext.User.set -> void +override Microsoft.AspNetCore.Http.DefaultHttpContext.WebSockets.get -> Microsoft.AspNetCore.Http.WebSocketManager! +static Microsoft.AspNetCore.Http.BindingAddress.Parse(string! address) -> Microsoft.AspNetCore.Http.BindingAddress! +static Microsoft.AspNetCore.Http.HttpRequestRewindExtensions.EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest! request) -> void +static Microsoft.AspNetCore.Http.HttpRequestRewindExtensions.EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest! request, int bufferThreshold) -> void +static Microsoft.AspNetCore.Http.HttpRequestRewindExtensions.EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest! request, int bufferThreshold, long bufferLimit) -> void +static Microsoft.AspNetCore.Http.HttpRequestRewindExtensions.EnableBuffering(this Microsoft.AspNetCore.Http.HttpRequest! request, long bufferLimit) -> void +static Microsoft.AspNetCore.Http.RequestFormReaderExtensions.ReadFormAsync(this Microsoft.AspNetCore.Http.HttpRequest! request, Microsoft.AspNetCore.Http.Features.FormOptions! options, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.Http.SendFileFallback.SendFileAsync(System.IO.Stream! destination, string! filePath, long offset, long? count, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Extensions.DependencyInjection.HttpServiceCollectionExtensions.AddHttpContextAccessor(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +static readonly Microsoft.AspNetCore.Http.FormCollection.Empty -> Microsoft.AspNetCore.Http.FormCollection! +static readonly Microsoft.AspNetCore.Http.QueryCollection.Empty -> Microsoft.AspNetCore.Http.QueryCollection! +virtual Microsoft.AspNetCore.Http.Features.HttpResponseFeature.HasStarted.get -> bool +virtual Microsoft.AspNetCore.Http.Features.HttpResponseFeature.OnCompleted(System.Func! callback, object! state) -> void +virtual Microsoft.AspNetCore.Http.Features.HttpResponseFeature.OnStarting(System.Func! callback, object! state) -> void +virtual Microsoft.AspNetCore.Http.StreamResponseBodyFeature.CompleteAsync() -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Http.StreamResponseBodyFeature.DisableBuffering() -> void +virtual Microsoft.AspNetCore.Http.StreamResponseBodyFeature.SendFileAsync(string! path, long offset, long? count, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Http.StreamResponseBodyFeature.StartAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +~Microsoft.AspNetCore.Http.HttpContextFactory.HttpContextFactory(Microsoft.Extensions.Options.IOptions! formOptions) -> void +~Microsoft.AspNetCore.Http.HttpContextFactory.HttpContextFactory(Microsoft.Extensions.Options.IOptions! formOptions, Microsoft.AspNetCore.Http.IHttpContextAccessor? httpContextAccessor) -> void +~Microsoft.AspNetCore.Http.HttpContextFactory.HttpContextFactory(Microsoft.Extensions.Options.IOptions! formOptions, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory! serviceScopeFactory) -> void +~Microsoft.AspNetCore.Http.HttpContextFactory.HttpContextFactory(Microsoft.Extensions.Options.IOptions! formOptions, Microsoft.Extensions.DependencyInjection.IServiceScopeFactory! serviceScopeFactory, Microsoft.AspNetCore.Http.IHttpContextAccessor? httpContextAccessor) -> void diff --git a/src/Http/Metadata/src/PublicAPI.Shipped.txt b/src/Http/Metadata/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Metadata/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Metadata/src/PublicAPI.Unshipped.txt b/src/Http/Metadata/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..da7ef6a19e48 --- /dev/null +++ b/src/Http/Metadata/src/PublicAPI.Unshipped.txt @@ -0,0 +1,9 @@ +#nullable enable +Microsoft.AspNetCore.Authorization.IAllowAnonymous +Microsoft.AspNetCore.Authorization.IAuthorizeData +Microsoft.AspNetCore.Authorization.IAuthorizeData.AuthenticationSchemes.get -> string? +Microsoft.AspNetCore.Authorization.IAuthorizeData.AuthenticationSchemes.set -> void +Microsoft.AspNetCore.Authorization.IAuthorizeData.Policy.get -> string? +Microsoft.AspNetCore.Authorization.IAuthorizeData.Policy.set -> void +Microsoft.AspNetCore.Authorization.IAuthorizeData.Roles.get -> string? +Microsoft.AspNetCore.Authorization.IAuthorizeData.Roles.set -> void diff --git a/src/Http/Owin/src/PublicAPI.Shipped.txt b/src/Http/Owin/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Owin/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Owin/src/PublicAPI.Unshipped.txt b/src/Http/Owin/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..9908b666bad8 --- /dev/null +++ b/src/Http/Owin/src/PublicAPI.Unshipped.txt @@ -0,0 +1,72 @@ +#nullable enable +Microsoft.AspNetCore.Builder.OwinExtensions +Microsoft.AspNetCore.Owin.IOwinEnvironmentFeature +Microsoft.AspNetCore.Owin.OwinEnvironment +Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap +Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.CanSet.get -> bool +Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap +Microsoft.AspNetCore.Owin.OwinEnvironmentFeature +Microsoft.AspNetCore.Owin.OwinEnvironmentFeature.OwinEnvironmentFeature() -> void +Microsoft.AspNetCore.Owin.OwinFeatureCollection +Microsoft.AspNetCore.Owin.OwinFeatureCollection.Dispose() -> void +Microsoft.AspNetCore.Owin.OwinFeatureCollection.Get() -> TFeature +Microsoft.AspNetCore.Owin.OwinFeatureCollection.IsReadOnly.get -> bool +Microsoft.AspNetCore.Owin.OwinFeatureCollection.Revision.get -> int +Microsoft.AspNetCore.Owin.OwinFeatureCollection.Set(TFeature instance) -> void +Microsoft.AspNetCore.Owin.OwinFeatureCollection.SupportsWebSockets.get -> bool +Microsoft.AspNetCore.Owin.OwinFeatureCollection.SupportsWebSockets.set -> void +Microsoft.AspNetCore.Owin.OwinWebSocketAcceptAdapter +Microsoft.AspNetCore.Owin.OwinWebSocketAcceptContext +Microsoft.AspNetCore.Owin.OwinWebSocketAcceptContext.OwinWebSocketAcceptContext() -> void +Microsoft.AspNetCore.Owin.OwinWebSocketAdapter +Microsoft.AspNetCore.Owin.WebSocketAcceptAdapter +Microsoft.AspNetCore.Owin.WebSocketAdapter +override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.Abort() -> void +override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.CloseStatus.get -> System.Net.WebSockets.WebSocketCloseStatus? +override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.Dispose() -> void +override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.State.get -> System.Net.WebSockets.WebSocketState +~Microsoft.AspNetCore.Owin.IOwinEnvironmentFeature.Environment.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Owin.IOwinEnvironmentFeature.Environment.set -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Type featureInterface, System.Func getter) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Type featureInterface, System.Func getter, System.Action setter) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Type featureInterface, System.Func getter, System.Func defaultFactory) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Type featureInterface, System.Func getter, System.Func defaultFactory, System.Action setter) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Type featureInterface, System.Func getter, System.Func defaultFactory, System.Action setter, System.Func featureFactory) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Func getter) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Func getter, System.Action setter) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Func getter, System.Func defaultFactory) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Func getter, System.Func defaultFactory, System.Action setter) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMap.FeatureMap(System.Func getter, System.Func defaultFactory, System.Action setter, System.Func featureFactory) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironment.FeatureMaps.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Owin.OwinEnvironment.GetEnumerator() -> System.Collections.Generic.IEnumerator> +~Microsoft.AspNetCore.Owin.OwinEnvironment.OwinEnvironment(Microsoft.AspNetCore.Http.HttpContext context) -> void +~Microsoft.AspNetCore.Owin.OwinEnvironmentFeature.Environment.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Owin.OwinEnvironmentFeature.Environment.set -> void +~Microsoft.AspNetCore.Owin.OwinFeatureCollection.Environment.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Owin.OwinFeatureCollection.Environment.set -> void +~Microsoft.AspNetCore.Owin.OwinFeatureCollection.Get(System.Type key) -> object +~Microsoft.AspNetCore.Owin.OwinFeatureCollection.GetEnumerator() -> System.Collections.Generic.IEnumerator> +~Microsoft.AspNetCore.Owin.OwinFeatureCollection.OwinFeatureCollection(System.Collections.Generic.IDictionary environment) -> void +~Microsoft.AspNetCore.Owin.OwinFeatureCollection.Set(System.Type key, object value) -> void +~Microsoft.AspNetCore.Owin.OwinFeatureCollection.this[System.Type key].get -> object +~Microsoft.AspNetCore.Owin.OwinFeatureCollection.this[System.Type key].set -> void +~Microsoft.AspNetCore.Owin.OwinWebSocketAcceptContext.Options.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Owin.OwinWebSocketAcceptContext.OwinWebSocketAcceptContext(System.Collections.Generic.IDictionary options) -> void +~Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.OwinWebSocketAdapter(System.Collections.Generic.IDictionary websocketContext, string subProtocol) -> void +~Microsoft.AspNetCore.Owin.WebSocketAcceptAdapter.WebSocketAcceptAdapter(System.Collections.Generic.IDictionary env, System.Func> accept) -> void +~override Microsoft.AspNetCore.Owin.OwinWebSocketAcceptContext.SubProtocol.get -> string +~override Microsoft.AspNetCore.Owin.OwinWebSocketAcceptContext.SubProtocol.set -> void +~override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.CloseAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string statusDescription, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.CloseOutputAsync(System.Net.WebSockets.WebSocketCloseStatus closeStatus, string statusDescription, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.CloseStatusDescription.get -> string +~override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.ReceiveAsync(System.ArraySegment buffer, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.SendAsync(System.ArraySegment buffer, System.Net.WebSockets.WebSocketMessageType messageType, bool endOfMessage, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Owin.OwinWebSocketAdapter.SubProtocol.get -> string +~static Microsoft.AspNetCore.Builder.OwinExtensions.UseBuilder(this System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>>> app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.OwinExtensions.UseBuilder(this System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>>> app, System.Action pipeline) -> System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>>> +~static Microsoft.AspNetCore.Builder.OwinExtensions.UseBuilder(this System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>>> app, System.Action pipeline, System.IServiceProvider serviceProvider) -> System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>>> +~static Microsoft.AspNetCore.Builder.OwinExtensions.UseBuilder(this System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>>> app, System.IServiceProvider serviceProvider) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.OwinExtensions.UseOwin(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) -> System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>>> +~static Microsoft.AspNetCore.Builder.OwinExtensions.UseOwin(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>>>> pipeline) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Owin.OwinWebSocketAcceptAdapter.AdaptWebSockets(System.Func, System.Threading.Tasks.Task> next) -> System.Func, System.Threading.Tasks.Task> +~static Microsoft.AspNetCore.Owin.WebSocketAcceptAdapter.AdaptWebSockets(System.Func, System.Threading.Tasks.Task> next) -> System.Func, System.Threading.Tasks.Task> diff --git a/src/Http/Routing.Abstractions/src/LinkGenerator.cs b/src/Http/Routing.Abstractions/src/LinkGenerator.cs index 45bf7cd1cd3c..5700c3792862 100644 --- a/src/Http/Routing.Abstractions/src/LinkGenerator.cs +++ b/src/Http/Routing.Abstractions/src/LinkGenerator.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System.Diagnostics.CodeAnalysis; using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.Routing @@ -41,6 +42,7 @@ public abstract class LinkGenerator /// names from RouteOptions. /// /// A URI with an absolute path, or null. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public abstract string? GetPathByAddress( HttpContext httpContext, TAddress address, @@ -63,6 +65,7 @@ public abstract class LinkGenerator /// names from RouteOptions. /// /// A URI with an absolute path, or null. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public abstract string? GetPathByAddress( TAddress address, RouteValueDictionary values, @@ -102,6 +105,7 @@ public abstract class LinkGenerator /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public abstract string? GetUriByAddress( HttpContext httpContext, TAddress address, @@ -139,6 +143,7 @@ public abstract class LinkGenerator /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public abstract string? GetUriByAddress( TAddress address, RouteValueDictionary values, diff --git a/src/Http/Routing.Abstractions/src/PublicAPI.Shipped.txt b/src/Http/Routing.Abstractions/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Routing.Abstractions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Routing.Abstractions/src/PublicAPI.Unshipped.txt b/src/Http/Routing.Abstractions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..fd025c23fb01 --- /dev/null +++ b/src/Http/Routing.Abstractions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,119 @@ +#nullable enable +Microsoft.AspNetCore.Http.Endpoint (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Endpoint.DisplayName.get -> string? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Endpoint.Endpoint(Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate, Microsoft.AspNetCore.Http.EndpointMetadataCollection? metadata, string? displayName) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Endpoint.Metadata.get -> Microsoft.AspNetCore.Http.EndpointMetadataCollection! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Endpoint.RequestDelegate.get -> Microsoft.AspNetCore.Http.RequestDelegate! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Count.get -> int (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.EndpointMetadataCollection(System.Collections.Generic.IEnumerable! items) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.EndpointMetadataCollection(params object![]! items) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.Current.get -> object? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.Dispose() -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.Enumerator() -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.MoveNext() -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator.Reset() -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.GetEnumerator() -> Microsoft.AspNetCore.Http.EndpointMetadataCollection.Enumerator (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.GetMetadata() -> T? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.GetOrderedMetadata() -> System.Collections.Generic.IReadOnlyList! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.EndpointMetadataCollection.this[int index].get -> object! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Features.IEndpointFeature (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Features.IEndpointFeature.Endpoint.get -> Microsoft.AspNetCore.Http.Endpoint? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Features.IEndpointFeature.Endpoint.set -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Features.IRouteValuesFeature (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Features.IRouteValuesFeature.RouteValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Http.Features.IRouteValuesFeature.RouteValues.set -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.IOutboundParameterTransformer +Microsoft.AspNetCore.Routing.IOutboundParameterTransformer.TransformOutbound(object? value) -> string? +Microsoft.AspNetCore.Routing.IParameterPolicy +Microsoft.AspNetCore.Routing.IRouteConstraint +Microsoft.AspNetCore.Routing.IRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.IRouteHandler +Microsoft.AspNetCore.Routing.IRouteHandler.GetRequestHandler(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.RouteData! routeData) -> Microsoft.AspNetCore.Http.RequestDelegate! +Microsoft.AspNetCore.Routing.IRouter +Microsoft.AspNetCore.Routing.IRouter.GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext! context) -> Microsoft.AspNetCore.Routing.VirtualPathData? +Microsoft.AspNetCore.Routing.IRouter.RouteAsync(Microsoft.AspNetCore.Routing.RouteContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Routing.IRoutingFeature +Microsoft.AspNetCore.Routing.IRoutingFeature.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData? +Microsoft.AspNetCore.Routing.IRoutingFeature.RouteData.set -> void +Microsoft.AspNetCore.Routing.LinkGenerator +Microsoft.AspNetCore.Routing.LinkGenerator.LinkGenerator() -> void +Microsoft.AspNetCore.Routing.LinkOptions +Microsoft.AspNetCore.Routing.LinkOptions.AppendTrailingSlash.get -> bool? +Microsoft.AspNetCore.Routing.LinkOptions.AppendTrailingSlash.set -> void +Microsoft.AspNetCore.Routing.LinkOptions.LinkOptions() -> void +Microsoft.AspNetCore.Routing.LinkOptions.LowercaseQueryStrings.get -> bool? +Microsoft.AspNetCore.Routing.LinkOptions.LowercaseQueryStrings.set -> void +Microsoft.AspNetCore.Routing.LinkOptions.LowercaseUrls.get -> bool? +Microsoft.AspNetCore.Routing.LinkOptions.LowercaseUrls.set -> void +Microsoft.AspNetCore.Routing.RouteContext +Microsoft.AspNetCore.Routing.RouteContext.Handler.get -> Microsoft.AspNetCore.Http.RequestDelegate? +Microsoft.AspNetCore.Routing.RouteContext.Handler.set -> void +Microsoft.AspNetCore.Routing.RouteContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Routing.RouteContext.RouteContext(Microsoft.AspNetCore.Http.HttpContext! httpContext) -> void +Microsoft.AspNetCore.Routing.RouteContext.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData! +Microsoft.AspNetCore.Routing.RouteContext.RouteData.set -> void +Microsoft.AspNetCore.Routing.RouteData +Microsoft.AspNetCore.Routing.RouteData.DataTokens.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.RouteData.PushState(Microsoft.AspNetCore.Routing.IRouter? router, Microsoft.AspNetCore.Routing.RouteValueDictionary? values, Microsoft.AspNetCore.Routing.RouteValueDictionary? dataTokens) -> Microsoft.AspNetCore.Routing.RouteData.RouteDataSnapshot +Microsoft.AspNetCore.Routing.RouteData.RouteData() -> void +Microsoft.AspNetCore.Routing.RouteData.RouteData(Microsoft.AspNetCore.Routing.RouteData! other) -> void +Microsoft.AspNetCore.Routing.RouteData.RouteData(Microsoft.AspNetCore.Routing.RouteValueDictionary! values) -> void +Microsoft.AspNetCore.Routing.RouteData.RouteDataSnapshot +Microsoft.AspNetCore.Routing.RouteData.RouteDataSnapshot.Restore() -> void +Microsoft.AspNetCore.Routing.RouteData.RouteDataSnapshot.RouteDataSnapshot(Microsoft.AspNetCore.Routing.RouteData! routeData, Microsoft.AspNetCore.Routing.RouteValueDictionary? dataTokens, System.Collections.Generic.IList? routers, Microsoft.AspNetCore.Routing.RouteValueDictionary? values) -> void +Microsoft.AspNetCore.Routing.RouteData.Routers.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Routing.RouteData.Values.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.RouteDirection +Microsoft.AspNetCore.Routing.RouteDirection.IncomingRequest = 0 -> Microsoft.AspNetCore.Routing.RouteDirection +Microsoft.AspNetCore.Routing.RouteDirection.UrlGeneration = 1 -> Microsoft.AspNetCore.Routing.RouteDirection +Microsoft.AspNetCore.Routing.RouteValueDictionary (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Add(string! key, object? value) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Clear() -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Comparer.get -> System.Collections.Generic.IEqualityComparer! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.ContainsKey(string! key) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Count.get -> int (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.Dispose() -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.Enumerator(Microsoft.AspNetCore.Routing.RouteValueDictionary! dictionary) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.MoveNext() -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator.Reset() -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.GetEnumerator() -> Microsoft.AspNetCore.Routing.RouteValueDictionary.Enumerator (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Keys.get -> System.Collections.Generic.ICollection! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Remove(string! key) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Remove(string! key, out object? value) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.RouteValueDictionary() -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.RouteValueDictionary(object? values) -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.TryAdd(string! key, object! value) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.TryGetValue(string! key, out object? value) -> bool (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.Values.get -> System.Collections.Generic.ICollection! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.this[string! key].get -> object? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RouteValueDictionary.this[string! key].set -> void (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +Microsoft.AspNetCore.Routing.RoutingHttpContextExtensions +Microsoft.AspNetCore.Routing.VirtualPathContext +Microsoft.AspNetCore.Routing.VirtualPathContext.AmbientValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.VirtualPathContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! +Microsoft.AspNetCore.Routing.VirtualPathContext.RouteName.get -> string? +Microsoft.AspNetCore.Routing.VirtualPathContext.Values.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.VirtualPathContext.Values.set -> void +Microsoft.AspNetCore.Routing.VirtualPathContext.VirtualPathContext(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary! ambientValues, Microsoft.AspNetCore.Routing.RouteValueDictionary! values) -> void +Microsoft.AspNetCore.Routing.VirtualPathContext.VirtualPathContext(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary! ambientValues, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, string? routeName) -> void +Microsoft.AspNetCore.Routing.VirtualPathData +Microsoft.AspNetCore.Routing.VirtualPathData.DataTokens.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.VirtualPathData.Router.get -> Microsoft.AspNetCore.Routing.IRouter! +Microsoft.AspNetCore.Routing.VirtualPathData.Router.set -> void +Microsoft.AspNetCore.Routing.VirtualPathData.VirtualPath.get -> string! +Microsoft.AspNetCore.Routing.VirtualPathData.VirtualPath.set -> void +Microsoft.AspNetCore.Routing.VirtualPathData.VirtualPathData(Microsoft.AspNetCore.Routing.IRouter! router, string! virtualPath) -> void +Microsoft.AspNetCore.Routing.VirtualPathData.VirtualPathData(Microsoft.AspNetCore.Routing.IRouter! router, string! virtualPath, Microsoft.AspNetCore.Routing.RouteValueDictionary! dataTokens) -> void +abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetPathByAddress(Microsoft.AspNetCore.Http.HttpContext! httpContext, TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteValueDictionary? ambientValues = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetPathByAddress(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetUriByAddress(Microsoft.AspNetCore.Http.HttpContext! httpContext, TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteValueDictionary? ambientValues = null, string? scheme = null, Microsoft.AspNetCore.Http.HostString? host = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +abstract Microsoft.AspNetCore.Routing.LinkGenerator.GetUriByAddress(TAddress address, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, string! scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +override Microsoft.AspNetCore.Http.Endpoint.ToString() -> string? (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +static Microsoft.AspNetCore.Routing.RouteValueDictionary.FromArray(System.Collections.Generic.KeyValuePair[]! items) -> Microsoft.AspNetCore.Routing.RouteValueDictionary! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) +static Microsoft.AspNetCore.Routing.RoutingHttpContextExtensions.GetRouteData(this Microsoft.AspNetCore.Http.HttpContext! httpContext) -> Microsoft.AspNetCore.Routing.RouteData! +static Microsoft.AspNetCore.Routing.RoutingHttpContextExtensions.GetRouteValue(this Microsoft.AspNetCore.Http.HttpContext! httpContext, string! key) -> object? +static readonly Microsoft.AspNetCore.Http.EndpointMetadataCollection.Empty -> Microsoft.AspNetCore.Http.EndpointMetadataCollection! (forwarded, contained in Microsoft.AspNetCore.Http.Abstractions) diff --git a/src/Http/Routing/src/LinkGeneratorEndpointNameAddressExtensions.cs b/src/Http/Routing/src/LinkGeneratorEndpointNameAddressExtensions.cs index bc6ca2fc241c..73a541747c4a 100644 --- a/src/Http/Routing/src/LinkGeneratorEndpointNameAddressExtensions.cs +++ b/src/Http/Routing/src/LinkGeneratorEndpointNameAddressExtensions.cs @@ -1,8 +1,9 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using Microsoft.AspNetCore.Http; using System; +using System.Diagnostics.CodeAnalysis; +using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.Routing { @@ -27,6 +28,7 @@ public static class LinkGeneratorEndpointNameAddressExtensions /// names from RouteOptions. /// /// A URI with an absolute path, or null. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? GetPathByName( this LinkGenerator generator, HttpContext httpContext, @@ -74,6 +76,7 @@ public static class LinkGeneratorEndpointNameAddressExtensions /// names from RouteOptions. /// /// A URI with an absolute path, or null. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? GetPathByName( this LinkGenerator generator, string endpointName, @@ -126,6 +129,7 @@ public static class LinkGeneratorEndpointNameAddressExtensions /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? GetUriByName( this LinkGenerator generator, HttpContext httpContext, @@ -190,6 +194,7 @@ public static class LinkGeneratorEndpointNameAddressExtensions /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? GetUriByName( this LinkGenerator generator, string endpointName, diff --git a/src/Http/Routing/src/LinkGeneratorRouteValuesAddressExtensions.cs b/src/Http/Routing/src/LinkGeneratorRouteValuesAddressExtensions.cs index ddf4bb9e917e..c4cbe8890cb7 100644 --- a/src/Http/Routing/src/LinkGeneratorRouteValuesAddressExtensions.cs +++ b/src/Http/Routing/src/LinkGeneratorRouteValuesAddressExtensions.cs @@ -1,8 +1,9 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -using Microsoft.AspNetCore.Http; using System; +using System.Diagnostics.CodeAnalysis; +using Microsoft.AspNetCore.Http; namespace Microsoft.AspNetCore.Routing { @@ -27,6 +28,7 @@ public static class LinkGeneratorRouteValuesAddressExtensions /// names from RouteOptions. /// /// A URI with an absolute path, or null. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? GetPathByRouteValues( this LinkGenerator generator, HttpContext httpContext, @@ -70,6 +72,7 @@ public static class LinkGeneratorRouteValuesAddressExtensions /// names from RouteOptions. /// /// A URI with an absolute path, or null. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? GetPathByRouteValues( this LinkGenerator generator, string? routeName, @@ -118,6 +121,7 @@ public static class LinkGeneratorRouteValuesAddressExtensions /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? GetUriByRouteValues( this LinkGenerator generator, HttpContext httpContext, @@ -178,6 +182,7 @@ public static class LinkGeneratorRouteValuesAddressExtensions /// your deployment environment. /// /// + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public static string? GetUriByRouteValues( this LinkGenerator generator, string? routeName, diff --git a/src/Http/Routing/src/PublicAPI.Shipped.txt b/src/Http/Routing/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/Routing/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/Routing/src/PublicAPI.Unshipped.txt b/src/Http/Routing/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..9cc07471bf97 --- /dev/null +++ b/src/Http/Routing/src/PublicAPI.Unshipped.txt @@ -0,0 +1,614 @@ +#nullable enable +Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions +Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions +Microsoft.AspNetCore.Builder.FallbackEndpointRouteBuilderExtensions +Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions +Microsoft.AspNetCore.Builder.RouterMiddleware +Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext! httpContext) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Builder.RouterMiddleware.RouterMiddleware(Microsoft.AspNetCore.Http.RequestDelegate! next, Microsoft.Extensions.Logging.ILoggerFactory! loggerFactory, Microsoft.AspNetCore.Routing.IRouter! router) -> void +Microsoft.AspNetCore.Builder.RoutingBuilderExtensions +Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions +Microsoft.AspNetCore.Routing.CompositeEndpointDataSource +Microsoft.AspNetCore.Routing.CompositeEndpointDataSource.CompositeEndpointDataSource(System.Collections.Generic.IEnumerable! endpointDataSources) -> void +Microsoft.AspNetCore.Routing.CompositeEndpointDataSource.DataSources.get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Routing.Constraints.AlphaRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.AlphaRouteConstraint.AlphaRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.BoolRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.BoolRouteConstraint.BoolRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.BoolRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.CompositeRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.CompositeRouteConstraint.CompositeRouteConstraint(System.Collections.Generic.IEnumerable! constraints) -> void +Microsoft.AspNetCore.Routing.Constraints.CompositeRouteConstraint.Constraints.get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Routing.Constraints.CompositeRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.DateTimeRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.DateTimeRouteConstraint.DateTimeRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.DateTimeRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.DecimalRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.DecimalRouteConstraint.DecimalRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.DecimalRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.DoubleRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.DoubleRouteConstraint.DoubleRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.DoubleRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.FileNameRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.FileNameRouteConstraint.FileNameRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.FileNameRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.FloatRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.FloatRouteConstraint.FloatRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.FloatRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.GuidRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.GuidRouteConstraint.GuidRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.GuidRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.HttpMethodRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.HttpMethodRouteConstraint.AllowedMethods.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Routing.Constraints.HttpMethodRouteConstraint.HttpMethodRouteConstraint(params string![]! allowedMethods) -> void +Microsoft.AspNetCore.Routing.Constraints.IntRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.IntRouteConstraint.IntRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.IntRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.LengthRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.LengthRouteConstraint.LengthRouteConstraint(int length) -> void +Microsoft.AspNetCore.Routing.Constraints.LengthRouteConstraint.LengthRouteConstraint(int minLength, int maxLength) -> void +Microsoft.AspNetCore.Routing.Constraints.LengthRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.LengthRouteConstraint.MaxLength.get -> int +Microsoft.AspNetCore.Routing.Constraints.LengthRouteConstraint.MinLength.get -> int +Microsoft.AspNetCore.Routing.Constraints.LongRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.LongRouteConstraint.LongRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.LongRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.MaxLengthRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.MaxLengthRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.MaxLengthRouteConstraint.MaxLength.get -> int +Microsoft.AspNetCore.Routing.Constraints.MaxLengthRouteConstraint.MaxLengthRouteConstraint(int maxLength) -> void +Microsoft.AspNetCore.Routing.Constraints.MaxRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.MaxRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.MaxRouteConstraint.Max.get -> long +Microsoft.AspNetCore.Routing.Constraints.MaxRouteConstraint.MaxRouteConstraint(long max) -> void +Microsoft.AspNetCore.Routing.Constraints.MinLengthRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.MinLengthRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.MinLengthRouteConstraint.MinLength.get -> int +Microsoft.AspNetCore.Routing.Constraints.MinLengthRouteConstraint.MinLengthRouteConstraint(int minLength) -> void +Microsoft.AspNetCore.Routing.Constraints.MinRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.MinRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.MinRouteConstraint.Min.get -> long +Microsoft.AspNetCore.Routing.Constraints.MinRouteConstraint.MinRouteConstraint(long min) -> void +Microsoft.AspNetCore.Routing.Constraints.NonFileNameRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.NonFileNameRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.NonFileNameRouteConstraint.NonFileNameRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.OptionalRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.OptionalRouteConstraint.InnerConstraint.get -> Microsoft.AspNetCore.Routing.IRouteConstraint! +Microsoft.AspNetCore.Routing.Constraints.OptionalRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.OptionalRouteConstraint.OptionalRouteConstraint(Microsoft.AspNetCore.Routing.IRouteConstraint! innerConstraint) -> void +Microsoft.AspNetCore.Routing.Constraints.RangeRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.RangeRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.RangeRouteConstraint.Max.get -> long +Microsoft.AspNetCore.Routing.Constraints.RangeRouteConstraint.Min.get -> long +Microsoft.AspNetCore.Routing.Constraints.RangeRouteConstraint.RangeRouteConstraint(long min, long max) -> void +Microsoft.AspNetCore.Routing.Constraints.RegexInlineRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.RegexInlineRouteConstraint.RegexInlineRouteConstraint(string! regexPattern) -> void +Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint.Constraint.get -> System.Text.RegularExpressions.Regex! +Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint.RegexRouteConstraint(System.Text.RegularExpressions.Regex! regex) -> void +Microsoft.AspNetCore.Routing.Constraints.RegexRouteConstraint.RegexRouteConstraint(string! regexPattern) -> void +Microsoft.AspNetCore.Routing.Constraints.RequiredRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.RequiredRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.RequiredRouteConstraint.RequiredRouteConstraint() -> void +Microsoft.AspNetCore.Routing.Constraints.StringRouteConstraint +Microsoft.AspNetCore.Routing.Constraints.StringRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +Microsoft.AspNetCore.Routing.Constraints.StringRouteConstraint.StringRouteConstraint(string! value) -> void +Microsoft.AspNetCore.Routing.DataTokensMetadata +Microsoft.AspNetCore.Routing.DataTokensMetadata.DataTokens.get -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.AspNetCore.Routing.DataTokensMetadata.DataTokensMetadata(System.Collections.Generic.IReadOnlyDictionary! dataTokens) -> void +Microsoft.AspNetCore.Routing.DefaultEndpointDataSource +Microsoft.AspNetCore.Routing.DefaultEndpointDataSource.DefaultEndpointDataSource(System.Collections.Generic.IEnumerable! endpoints) -> void +Microsoft.AspNetCore.Routing.DefaultEndpointDataSource.DefaultEndpointDataSource(params Microsoft.AspNetCore.Http.Endpoint![]! endpoints) -> void +Microsoft.AspNetCore.Routing.DefaultInlineConstraintResolver +Microsoft.AspNetCore.Routing.EndpointDataSource +Microsoft.AspNetCore.Routing.EndpointDataSource.EndpointDataSource() -> void +Microsoft.AspNetCore.Routing.EndpointNameMetadata +Microsoft.AspNetCore.Routing.EndpointNameMetadata.EndpointName.get -> string! +Microsoft.AspNetCore.Routing.EndpointNameMetadata.EndpointNameMetadata(string! endpointName) -> void +Microsoft.AspNetCore.Routing.HostAttribute +Microsoft.AspNetCore.Routing.HostAttribute.HostAttribute(params string![]! hosts) -> void +Microsoft.AspNetCore.Routing.HostAttribute.HostAttribute(string! host) -> void +Microsoft.AspNetCore.Routing.HostAttribute.Hosts.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.HttpMethodMetadata +Microsoft.AspNetCore.Routing.HttpMethodMetadata.AcceptCorsPreflight.get -> bool +Microsoft.AspNetCore.Routing.HttpMethodMetadata.HttpMethodMetadata(System.Collections.Generic.IEnumerable! httpMethods) -> void +Microsoft.AspNetCore.Routing.HttpMethodMetadata.HttpMethodMetadata(System.Collections.Generic.IEnumerable! httpMethods, bool acceptCorsPreflight) -> void +Microsoft.AspNetCore.Routing.HttpMethodMetadata.HttpMethods.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.IDataTokensMetadata +Microsoft.AspNetCore.Routing.IDataTokensMetadata.DataTokens.get -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata +Microsoft.AspNetCore.Routing.IDynamicEndpointMetadata.IsDynamic.get -> bool +Microsoft.AspNetCore.Routing.IEndpointAddressScheme +Microsoft.AspNetCore.Routing.IEndpointAddressScheme.FindEndpoints(TAddress address) -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Routing.IEndpointNameMetadata +Microsoft.AspNetCore.Routing.IEndpointNameMetadata.EndpointName.get -> string! +Microsoft.AspNetCore.Routing.IEndpointRouteBuilder +Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.CreateApplicationBuilder() -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.DataSources.get -> System.Collections.Generic.ICollection! +Microsoft.AspNetCore.Routing.IEndpointRouteBuilder.ServiceProvider.get -> System.IServiceProvider! +Microsoft.AspNetCore.Routing.IHostMetadata +Microsoft.AspNetCore.Routing.IHostMetadata.Hosts.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.IHttpMethodMetadata +Microsoft.AspNetCore.Routing.IHttpMethodMetadata.AcceptCorsPreflight.get -> bool +Microsoft.AspNetCore.Routing.IHttpMethodMetadata.HttpMethods.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.IInlineConstraintResolver +Microsoft.AspNetCore.Routing.IInlineConstraintResolver.ResolveConstraint(string! inlineConstraint) -> Microsoft.AspNetCore.Routing.IRouteConstraint? +Microsoft.AspNetCore.Routing.INamedRouter +Microsoft.AspNetCore.Routing.INamedRouter.Name.get -> string? +Microsoft.AspNetCore.Routing.IRouteBuilder +Microsoft.AspNetCore.Routing.IRouteBuilder.ApplicationBuilder.get -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +Microsoft.AspNetCore.Routing.IRouteBuilder.Build() -> Microsoft.AspNetCore.Routing.IRouter! +Microsoft.AspNetCore.Routing.IRouteBuilder.DefaultHandler.get -> Microsoft.AspNetCore.Routing.IRouter? +Microsoft.AspNetCore.Routing.IRouteBuilder.DefaultHandler.set -> void +Microsoft.AspNetCore.Routing.IRouteBuilder.Routes.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Routing.IRouteBuilder.ServiceProvider.get -> System.IServiceProvider! +Microsoft.AspNetCore.Routing.IRouteCollection +Microsoft.AspNetCore.Routing.IRouteCollection.Add(Microsoft.AspNetCore.Routing.IRouter! router) -> void +Microsoft.AspNetCore.Routing.IRouteNameMetadata +Microsoft.AspNetCore.Routing.IRouteNameMetadata.RouteName.get -> string! +Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata +Microsoft.AspNetCore.Routing.ISuppressLinkGenerationMetadata.SuppressLinkGeneration.get -> bool +Microsoft.AspNetCore.Routing.ISuppressMatchingMetadata +Microsoft.AspNetCore.Routing.ISuppressMatchingMetadata.SuppressMatching.get -> bool +Microsoft.AspNetCore.Routing.InlineRouteParameterParser +Microsoft.AspNetCore.Routing.Internal.DfaGraphWriter +Microsoft.AspNetCore.Routing.Internal.DfaGraphWriter.DfaGraphWriter(System.IServiceProvider! services) -> void +Microsoft.AspNetCore.Routing.Internal.DfaGraphWriter.Write(Microsoft.AspNetCore.Routing.EndpointDataSource! dataSource, System.IO.TextWriter! writer) -> void +Microsoft.AspNetCore.Routing.LinkGeneratorEndpointNameAddressExtensions +Microsoft.AspNetCore.Routing.LinkGeneratorRouteValuesAddressExtensions +Microsoft.AspNetCore.Routing.LinkParser +Microsoft.AspNetCore.Routing.LinkParser.LinkParser() -> void +Microsoft.AspNetCore.Routing.LinkParserEndpointNameAddressExtensions +Microsoft.AspNetCore.Routing.MatcherPolicy +Microsoft.AspNetCore.Routing.MatcherPolicy.MatcherPolicy() -> void +Microsoft.AspNetCore.Routing.Matching.CandidateSet +Microsoft.AspNetCore.Routing.Matching.CandidateSet.CandidateSet(Microsoft.AspNetCore.Http.Endpoint![]! endpoints, Microsoft.AspNetCore.Routing.RouteValueDictionary![]! values, int[]! scores) -> void +Microsoft.AspNetCore.Routing.Matching.CandidateSet.Count.get -> int +Microsoft.AspNetCore.Routing.Matching.CandidateSet.ExpandEndpoint(int index, System.Collections.Generic.IReadOnlyList! endpoints, System.Collections.Generic.IComparer! comparer) -> void +Microsoft.AspNetCore.Routing.Matching.CandidateSet.IsValidCandidate(int index) -> bool +Microsoft.AspNetCore.Routing.Matching.CandidateSet.ReplaceEndpoint(int index, Microsoft.AspNetCore.Http.Endpoint? endpoint, Microsoft.AspNetCore.Routing.RouteValueDictionary? values) -> void +Microsoft.AspNetCore.Routing.Matching.CandidateSet.SetValidity(int index, bool value) -> void +Microsoft.AspNetCore.Routing.Matching.CandidateSet.this[int index].get -> Microsoft.AspNetCore.Routing.Matching.CandidateState +Microsoft.AspNetCore.Routing.Matching.CandidateState +Microsoft.AspNetCore.Routing.Matching.CandidateState.Endpoint.get -> Microsoft.AspNetCore.Http.Endpoint! +Microsoft.AspNetCore.Routing.Matching.CandidateState.Score.get -> int +Microsoft.AspNetCore.Routing.Matching.CandidateState.Values.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary? +Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer +Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer +Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer.Compare(Microsoft.AspNetCore.Http.Endpoint? x, Microsoft.AspNetCore.Http.Endpoint? y) -> int +Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer.EndpointMetadataComparer() -> void +Microsoft.AspNetCore.Routing.Matching.EndpointSelector +Microsoft.AspNetCore.Routing.Matching.EndpointSelector.EndpointSelector() -> void +Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy +Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy.ApplyAsync(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet! candidates) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy.BuildJumpTable(int exitDestination, System.Collections.Generic.IReadOnlyList! edges) -> Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable! +Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy.Comparer.get -> System.Collections.Generic.IComparer! +Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy.GetEdges(System.Collections.Generic.IReadOnlyList! endpoints) -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy.HostMatcherPolicy() -> void +Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy +Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.ApplyAsync(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet! candidates) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.BuildJumpTable(int exitDestination, System.Collections.Generic.IReadOnlyList! edges) -> Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable! +Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.Comparer.get -> System.Collections.Generic.IComparer! +Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.GetEdges(System.Collections.Generic.IReadOnlyList! endpoints) -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.HttpMethodMatcherPolicy() -> void +Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy +Microsoft.AspNetCore.Routing.Matching.IEndpointComparerPolicy.Comparer.get -> System.Collections.Generic.IComparer! +Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy +Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList! endpoints) -> bool +Microsoft.AspNetCore.Routing.Matching.IEndpointSelectorPolicy.ApplyAsync(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet! candidates) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy +Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.AppliesToEndpoints(System.Collections.Generic.IReadOnlyList! endpoints) -> bool +Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.BuildJumpTable(int exitDestination, System.Collections.Generic.IReadOnlyList! edges) -> Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable! +Microsoft.AspNetCore.Routing.Matching.INodeBuilderPolicy.GetEdges(System.Collections.Generic.IReadOnlyList! endpoints) -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable +Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable.PolicyJumpTable() -> void +Microsoft.AspNetCore.Routing.Matching.PolicyJumpTableEdge +Microsoft.AspNetCore.Routing.Matching.PolicyJumpTableEdge.Destination.get -> int +Microsoft.AspNetCore.Routing.Matching.PolicyJumpTableEdge.PolicyJumpTableEdge(object! state, int destination) -> void +Microsoft.AspNetCore.Routing.Matching.PolicyJumpTableEdge.State.get -> object! +Microsoft.AspNetCore.Routing.Matching.PolicyNodeEdge +Microsoft.AspNetCore.Routing.Matching.PolicyNodeEdge.Endpoints.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.Matching.PolicyNodeEdge.PolicyNodeEdge(object! state, System.Collections.Generic.IReadOnlyList! endpoints) -> void +Microsoft.AspNetCore.Routing.Matching.PolicyNodeEdge.State.get -> object! +Microsoft.AspNetCore.Routing.ParameterPolicyFactory +Microsoft.AspNetCore.Routing.ParameterPolicyFactory.Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart? parameter, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference! reference) -> Microsoft.AspNetCore.Routing.IParameterPolicy! +Microsoft.AspNetCore.Routing.ParameterPolicyFactory.ParameterPolicyFactory() -> void +Microsoft.AspNetCore.Routing.Patterns.RoutePattern +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.Defaults.get -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.GetParameter(string! name) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart? +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.InboundPrecedence.get -> decimal +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.OutboundPrecedence.get -> decimal +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.ParameterPolicies.get -> System.Collections.Generic.IReadOnlyDictionary!>! +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.Parameters.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.PathSegments.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.RawText.get -> string? +Microsoft.AspNetCore.Routing.Patterns.RoutePattern.RequiredValues.get -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.AspNetCore.Routing.Patterns.RoutePatternException +Microsoft.AspNetCore.Routing.Patterns.RoutePatternException.Pattern.get -> string! +Microsoft.AspNetCore.Routing.Patterns.RoutePatternException.RoutePatternException(string! pattern, string! message) -> void +Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory +Microsoft.AspNetCore.Routing.Patterns.RoutePatternLiteralPart +Microsoft.AspNetCore.Routing.Patterns.RoutePatternLiteralPart.Content.get -> string! +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind.CatchAll = 2 -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind.Optional = 1 -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind.Standard = 0 -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart.Default.get -> object? +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart.EncodeSlashes.get -> bool +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart.IsCatchAll.get -> bool +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart.IsOptional.get -> bool +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart.Name.get -> string! +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart.ParameterKind.get -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart.ParameterPolicies.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference.Content.get -> string? +Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference.ParameterPolicy.get -> Microsoft.AspNetCore.Routing.IParameterPolicy? +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart.IsLiteral.get -> bool +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart.IsParameter.get -> bool +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart.IsSeparator.get -> bool +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart.PartKind.get -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind.Literal = 0 -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind.Parameter = 1 -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind.Separator = 2 -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternPartKind +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment.IsSimple.get -> bool +Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment.Parts.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.AspNetCore.Routing.Patterns.RoutePatternSeparatorPart +Microsoft.AspNetCore.Routing.Patterns.RoutePatternSeparatorPart.Content.get -> string! +Microsoft.AspNetCore.Routing.Patterns.RoutePatternTransformer +Microsoft.AspNetCore.Routing.Patterns.RoutePatternTransformer.RoutePatternTransformer() -> void +Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions +Microsoft.AspNetCore.Routing.Route +Microsoft.AspNetCore.Routing.Route.Route(Microsoft.AspNetCore.Routing.IRouter! target, string! routeTemplate, Microsoft.AspNetCore.Routing.IInlineConstraintResolver! inlineConstraintResolver) -> void +Microsoft.AspNetCore.Routing.Route.Route(Microsoft.AspNetCore.Routing.IRouter! target, string! routeTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary? defaults, System.Collections.Generic.IDictionary? constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary? dataTokens, Microsoft.AspNetCore.Routing.IInlineConstraintResolver! inlineConstraintResolver) -> void +Microsoft.AspNetCore.Routing.Route.Route(Microsoft.AspNetCore.Routing.IRouter! target, string? routeName, string? routeTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary? defaults, System.Collections.Generic.IDictionary? constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary? dataTokens, Microsoft.AspNetCore.Routing.IInlineConstraintResolver! inlineConstraintResolver) -> void +Microsoft.AspNetCore.Routing.Route.RouteTemplate.get -> string? +Microsoft.AspNetCore.Routing.RouteBase +Microsoft.AspNetCore.Routing.RouteBase.RouteBase(string? template, string? name, Microsoft.AspNetCore.Routing.IInlineConstraintResolver! constraintResolver, Microsoft.AspNetCore.Routing.RouteValueDictionary? defaults, System.Collections.Generic.IDictionary? constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary? dataTokens) -> void +Microsoft.AspNetCore.Routing.RouteBuilder +Microsoft.AspNetCore.Routing.RouteBuilder.ApplicationBuilder.get -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +Microsoft.AspNetCore.Routing.RouteBuilder.Build() -> Microsoft.AspNetCore.Routing.IRouter! +Microsoft.AspNetCore.Routing.RouteBuilder.DefaultHandler.get -> Microsoft.AspNetCore.Routing.IRouter? +Microsoft.AspNetCore.Routing.RouteBuilder.DefaultHandler.set -> void +Microsoft.AspNetCore.Routing.RouteBuilder.RouteBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder! applicationBuilder) -> void +Microsoft.AspNetCore.Routing.RouteBuilder.RouteBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder! applicationBuilder, Microsoft.AspNetCore.Routing.IRouter? defaultHandler) -> void +Microsoft.AspNetCore.Routing.RouteBuilder.Routes.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Routing.RouteBuilder.ServiceProvider.get -> System.IServiceProvider! +Microsoft.AspNetCore.Routing.RouteCollection +Microsoft.AspNetCore.Routing.RouteCollection.Add(Microsoft.AspNetCore.Routing.IRouter! router) -> void +Microsoft.AspNetCore.Routing.RouteCollection.Count.get -> int +Microsoft.AspNetCore.Routing.RouteCollection.RouteCollection() -> void +Microsoft.AspNetCore.Routing.RouteCollection.this[int index].get -> Microsoft.AspNetCore.Routing.IRouter! +Microsoft.AspNetCore.Routing.RouteConstraintBuilder +Microsoft.AspNetCore.Routing.RouteConstraintBuilder.AddConstraint(string! key, object! value) -> void +Microsoft.AspNetCore.Routing.RouteConstraintBuilder.AddResolvedConstraint(string! key, string! constraintText) -> void +Microsoft.AspNetCore.Routing.RouteConstraintBuilder.Build() -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Routing.RouteConstraintBuilder.RouteConstraintBuilder(Microsoft.AspNetCore.Routing.IInlineConstraintResolver! inlineConstraintResolver, string! displayName) -> void +Microsoft.AspNetCore.Routing.RouteConstraintBuilder.SetOptional(string! key) -> void +Microsoft.AspNetCore.Routing.RouteConstraintMatcher +Microsoft.AspNetCore.Routing.RouteCreationException +Microsoft.AspNetCore.Routing.RouteCreationException.RouteCreationException(string! message) -> void +Microsoft.AspNetCore.Routing.RouteCreationException.RouteCreationException(string! message, System.Exception! innerException) -> void +Microsoft.AspNetCore.Routing.RouteEndpoint +Microsoft.AspNetCore.Routing.RouteEndpoint.Order.get -> int +Microsoft.AspNetCore.Routing.RouteEndpoint.RouteEndpoint(Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate, Microsoft.AspNetCore.Routing.Patterns.RoutePattern! routePattern, int order, Microsoft.AspNetCore.Http.EndpointMetadataCollection? metadata, string? displayName) -> void +Microsoft.AspNetCore.Routing.RouteEndpoint.RoutePattern.get -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +Microsoft.AspNetCore.Routing.RouteEndpointBuilder +Microsoft.AspNetCore.Routing.RouteEndpointBuilder.Order.get -> int +Microsoft.AspNetCore.Routing.RouteEndpointBuilder.Order.set -> void +Microsoft.AspNetCore.Routing.RouteEndpointBuilder.RouteEndpointBuilder(Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate, Microsoft.AspNetCore.Routing.Patterns.RoutePattern! routePattern, int order) -> void +Microsoft.AspNetCore.Routing.RouteEndpointBuilder.RoutePattern.get -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +Microsoft.AspNetCore.Routing.RouteEndpointBuilder.RoutePattern.set -> void +Microsoft.AspNetCore.Routing.RouteHandler +Microsoft.AspNetCore.Routing.RouteHandler.GetRequestHandler(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.RouteData! routeData) -> Microsoft.AspNetCore.Http.RequestDelegate! +Microsoft.AspNetCore.Routing.RouteHandler.GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext! context) -> Microsoft.AspNetCore.Routing.VirtualPathData? +Microsoft.AspNetCore.Routing.RouteHandler.RouteAsync(Microsoft.AspNetCore.Routing.RouteContext! context) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Routing.RouteHandler.RouteHandler(Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> void +Microsoft.AspNetCore.Routing.RouteNameMetadata +Microsoft.AspNetCore.Routing.RouteNameMetadata.RouteName.get -> string! +Microsoft.AspNetCore.Routing.RouteNameMetadata.RouteNameMetadata(string! routeName) -> void +Microsoft.AspNetCore.Routing.RouteOptions +Microsoft.AspNetCore.Routing.RouteOptions.AppendTrailingSlash.get -> bool +Microsoft.AspNetCore.Routing.RouteOptions.AppendTrailingSlash.set -> void +Microsoft.AspNetCore.Routing.RouteOptions.ConstraintMap.get -> System.Collections.Generic.IDictionary! +Microsoft.AspNetCore.Routing.RouteOptions.ConstraintMap.set -> void +Microsoft.AspNetCore.Routing.RouteOptions.LowercaseQueryStrings.get -> bool +Microsoft.AspNetCore.Routing.RouteOptions.LowercaseQueryStrings.set -> void +Microsoft.AspNetCore.Routing.RouteOptions.LowercaseUrls.get -> bool +Microsoft.AspNetCore.Routing.RouteOptions.LowercaseUrls.set -> void +Microsoft.AspNetCore.Routing.RouteOptions.RouteOptions() -> void +Microsoft.AspNetCore.Routing.RouteOptions.SuppressCheckForUnhandledSecurityMetadata.get -> bool +Microsoft.AspNetCore.Routing.RouteOptions.SuppressCheckForUnhandledSecurityMetadata.set -> void +Microsoft.AspNetCore.Routing.RouteValueEqualityComparer +Microsoft.AspNetCore.Routing.RouteValueEqualityComparer.Equals(object? x, object? y) -> bool +Microsoft.AspNetCore.Routing.RouteValueEqualityComparer.GetHashCode(object! obj) -> int +Microsoft.AspNetCore.Routing.RouteValueEqualityComparer.RouteValueEqualityComparer() -> void +Microsoft.AspNetCore.Routing.RouteValuesAddress +Microsoft.AspNetCore.Routing.RouteValuesAddress.AmbientValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary? +Microsoft.AspNetCore.Routing.RouteValuesAddress.AmbientValues.set -> void +Microsoft.AspNetCore.Routing.RouteValuesAddress.ExplicitValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.RouteValuesAddress.ExplicitValues.set -> void +Microsoft.AspNetCore.Routing.RouteValuesAddress.RouteName.get -> string? +Microsoft.AspNetCore.Routing.RouteValuesAddress.RouteName.set -> void +Microsoft.AspNetCore.Routing.RouteValuesAddress.RouteValuesAddress() -> void +Microsoft.AspNetCore.Routing.RoutingFeature +Microsoft.AspNetCore.Routing.RoutingFeature.RouteData.get -> Microsoft.AspNetCore.Routing.RouteData? +Microsoft.AspNetCore.Routing.RoutingFeature.RouteData.set -> void +Microsoft.AspNetCore.Routing.RoutingFeature.RoutingFeature() -> void +Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata +Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata.SuppressLinkGeneration.get -> bool +Microsoft.AspNetCore.Routing.SuppressLinkGenerationMetadata.SuppressLinkGenerationMetadata() -> void +Microsoft.AspNetCore.Routing.SuppressMatchingMetadata +Microsoft.AspNetCore.Routing.SuppressMatchingMetadata.SuppressMatching.get -> bool +Microsoft.AspNetCore.Routing.SuppressMatchingMetadata.SuppressMatchingMetadata() -> void +Microsoft.AspNetCore.Routing.Template.InlineConstraint +Microsoft.AspNetCore.Routing.Template.InlineConstraint.Constraint.get -> string! +Microsoft.AspNetCore.Routing.Template.InlineConstraint.InlineConstraint(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference! other) -> void +Microsoft.AspNetCore.Routing.Template.InlineConstraint.InlineConstraint(string! constraint) -> void +Microsoft.AspNetCore.Routing.Template.RoutePrecedence +Microsoft.AspNetCore.Routing.Template.RouteTemplate +Microsoft.AspNetCore.Routing.Template.RouteTemplate.GetParameter(string! name) -> Microsoft.AspNetCore.Routing.Template.TemplatePart? +Microsoft.AspNetCore.Routing.Template.RouteTemplate.GetSegment(int index) -> Microsoft.AspNetCore.Routing.Template.TemplateSegment? +Microsoft.AspNetCore.Routing.Template.RouteTemplate.Parameters.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Routing.Template.RouteTemplate.RouteTemplate(Microsoft.AspNetCore.Routing.Patterns.RoutePattern! other) -> void +Microsoft.AspNetCore.Routing.Template.RouteTemplate.RouteTemplate(string! template, System.Collections.Generic.List! segments) -> void +Microsoft.AspNetCore.Routing.Template.RouteTemplate.Segments.get -> System.Collections.Generic.IList! +Microsoft.AspNetCore.Routing.Template.RouteTemplate.TemplateText.get -> string? +Microsoft.AspNetCore.Routing.Template.RouteTemplate.ToRoutePattern() -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +Microsoft.AspNetCore.Routing.Template.TemplateBinder +Microsoft.AspNetCore.Routing.Template.TemplateBinder.BindValues(Microsoft.AspNetCore.Routing.RouteValueDictionary! acceptedValues) -> string? +Microsoft.AspNetCore.Routing.Template.TemplateBinder.GetValues(Microsoft.AspNetCore.Routing.RouteValueDictionary? ambientValues, Microsoft.AspNetCore.Routing.RouteValueDictionary! values) -> Microsoft.AspNetCore.Routing.Template.TemplateValuesResult? +Microsoft.AspNetCore.Routing.Template.TemplateBinder.TryProcessConstraints(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.RouteValueDictionary! combinedValues, out string? parameterName, out Microsoft.AspNetCore.Routing.IRouteConstraint? constraint) -> bool +Microsoft.AspNetCore.Routing.Template.TemplateBinderFactory +Microsoft.AspNetCore.Routing.Template.TemplateBinderFactory.TemplateBinderFactory() -> void +Microsoft.AspNetCore.Routing.Template.TemplateMatcher +Microsoft.AspNetCore.Routing.Template.TemplateMatcher.Defaults.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.Template.TemplateMatcher.Template.get -> Microsoft.AspNetCore.Routing.Template.RouteTemplate! +Microsoft.AspNetCore.Routing.Template.TemplateMatcher.TemplateMatcher(Microsoft.AspNetCore.Routing.Template.RouteTemplate! template, Microsoft.AspNetCore.Routing.RouteValueDictionary! defaults) -> void +Microsoft.AspNetCore.Routing.Template.TemplateMatcher.TryMatch(Microsoft.AspNetCore.Http.PathString path, Microsoft.AspNetCore.Routing.RouteValueDictionary! values) -> bool +Microsoft.AspNetCore.Routing.Template.TemplateParser +Microsoft.AspNetCore.Routing.Template.TemplatePart +Microsoft.AspNetCore.Routing.Template.TemplatePart.DefaultValue.get -> object? +Microsoft.AspNetCore.Routing.Template.TemplatePart.InlineConstraints.get -> System.Collections.Generic.IEnumerable! +Microsoft.AspNetCore.Routing.Template.TemplatePart.IsCatchAll.get -> bool +Microsoft.AspNetCore.Routing.Template.TemplatePart.IsLiteral.get -> bool +Microsoft.AspNetCore.Routing.Template.TemplatePart.IsOptional.get -> bool +Microsoft.AspNetCore.Routing.Template.TemplatePart.IsOptionalSeperator.get -> bool +Microsoft.AspNetCore.Routing.Template.TemplatePart.IsOptionalSeperator.set -> void +Microsoft.AspNetCore.Routing.Template.TemplatePart.IsParameter.get -> bool +Microsoft.AspNetCore.Routing.Template.TemplatePart.Name.get -> string? +Microsoft.AspNetCore.Routing.Template.TemplatePart.TemplatePart() -> void +Microsoft.AspNetCore.Routing.Template.TemplatePart.TemplatePart(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart! other) -> void +Microsoft.AspNetCore.Routing.Template.TemplatePart.Text.get -> string? +Microsoft.AspNetCore.Routing.Template.TemplatePart.ToRoutePatternPart() -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart! +Microsoft.AspNetCore.Routing.Template.TemplateSegment +Microsoft.AspNetCore.Routing.Template.TemplateSegment.IsSimple.get -> bool +Microsoft.AspNetCore.Routing.Template.TemplateSegment.Parts.get -> System.Collections.Generic.List! +Microsoft.AspNetCore.Routing.Template.TemplateSegment.TemplateSegment() -> void +Microsoft.AspNetCore.Routing.Template.TemplateSegment.TemplateSegment(Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment! other) -> void +Microsoft.AspNetCore.Routing.Template.TemplateSegment.ToRoutePatternPathSegment() -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment! +Microsoft.AspNetCore.Routing.Template.TemplateValuesResult +Microsoft.AspNetCore.Routing.Template.TemplateValuesResult.AcceptedValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.Template.TemplateValuesResult.AcceptedValues.set -> void +Microsoft.AspNetCore.Routing.Template.TemplateValuesResult.CombinedValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +Microsoft.AspNetCore.Routing.Template.TemplateValuesResult.CombinedValues.set -> void +Microsoft.AspNetCore.Routing.Template.TemplateValuesResult.TemplateValuesResult() -> void +Microsoft.AspNetCore.Routing.Tree.InboundMatch +Microsoft.AspNetCore.Routing.Tree.InboundMatch.InboundMatch() -> void +Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry +Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.InboundRouteEntry() -> void +Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Order.get -> int +Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Order.set -> void +Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Precedence.get -> decimal +Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Precedence.set -> void +Microsoft.AspNetCore.Routing.Tree.OutboundMatch +Microsoft.AspNetCore.Routing.Tree.OutboundMatch.OutboundMatch() -> void +Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry +Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Order.get -> int +Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Order.set -> void +Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.OutboundRouteEntry() -> void +Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Precedence.get -> decimal +Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Precedence.set -> void +Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder +Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder.Clear() -> void +Microsoft.AspNetCore.Routing.Tree.TreeRouter +Microsoft.AspNetCore.Routing.Tree.TreeRouter.Version.get -> int +Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode +Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.Depth.get -> int +Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.IsCatchAll.get -> bool +Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.IsCatchAll.set -> void +Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.UrlMatchingNode(int length) -> void +Microsoft.AspNetCore.Routing.Tree.UrlMatchingTree +Microsoft.AspNetCore.Routing.Tree.UrlMatchingTree.Order.get -> int +Microsoft.AspNetCore.Routing.Tree.UrlMatchingTree.Root.get -> Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode! +Microsoft.AspNetCore.Routing.Tree.UrlMatchingTree.UrlMatchingTree(int order) -> void +Microsoft.Extensions.DependencyInjection.RoutingServiceCollectionExtensions +abstract Microsoft.AspNetCore.Routing.EndpointDataSource.Endpoints.get -> System.Collections.Generic.IReadOnlyList! +abstract Microsoft.AspNetCore.Routing.EndpointDataSource.GetChangeToken() -> Microsoft.Extensions.Primitives.IChangeToken! +abstract Microsoft.AspNetCore.Routing.LinkParser.ParsePathByAddress(TAddress address, Microsoft.AspNetCore.Http.PathString path) -> Microsoft.AspNetCore.Routing.RouteValueDictionary? +abstract Microsoft.AspNetCore.Routing.MatcherPolicy.Order.get -> int +abstract Microsoft.AspNetCore.Routing.Matching.EndpointSelector.SelectAsync(Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.Matching.CandidateSet! candidates) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Routing.Matching.PolicyJumpTable.GetDestination(Microsoft.AspNetCore.Http.HttpContext! httpContext) -> int +abstract Microsoft.AspNetCore.Routing.ParameterPolicyFactory.Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart? parameter, Microsoft.AspNetCore.Routing.IParameterPolicy! parameterPolicy) -> Microsoft.AspNetCore.Routing.IParameterPolicy! +abstract Microsoft.AspNetCore.Routing.ParameterPolicyFactory.Create(Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart? parameter, string! inlineText) -> Microsoft.AspNetCore.Routing.IParameterPolicy! +abstract Microsoft.AspNetCore.Routing.Patterns.RoutePatternTransformer.SubstituteRequiredValues(Microsoft.AspNetCore.Routing.Patterns.RoutePattern! original, object! requiredValues) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern? +abstract Microsoft.AspNetCore.Routing.RouteBase.OnRouteMatched(Microsoft.AspNetCore.Routing.RouteContext! context) -> System.Threading.Tasks.Task! +abstract Microsoft.AspNetCore.Routing.RouteBase.OnVirtualPathGenerated(Microsoft.AspNetCore.Routing.VirtualPathContext! context) -> Microsoft.AspNetCore.Routing.VirtualPathData? +abstract Microsoft.AspNetCore.Routing.Template.TemplateBinderFactory.Create(Microsoft.AspNetCore.Routing.Patterns.RoutePattern! pattern) -> Microsoft.AspNetCore.Routing.Template.TemplateBinder! +abstract Microsoft.AspNetCore.Routing.Template.TemplateBinderFactory.Create(Microsoft.AspNetCore.Routing.Template.RouteTemplate! template, Microsoft.AspNetCore.Routing.RouteValueDictionary! defaults) -> Microsoft.AspNetCore.Routing.Template.TemplateBinder! +override Microsoft.AspNetCore.Routing.CompositeEndpointDataSource.Endpoints.get -> System.Collections.Generic.IReadOnlyList! +override Microsoft.AspNetCore.Routing.CompositeEndpointDataSource.GetChangeToken() -> Microsoft.Extensions.Primitives.IChangeToken! +override Microsoft.AspNetCore.Routing.DefaultEndpointDataSource.Endpoints.get -> System.Collections.Generic.IReadOnlyList! +override Microsoft.AspNetCore.Routing.DefaultEndpointDataSource.GetChangeToken() -> Microsoft.Extensions.Primitives.IChangeToken! +override Microsoft.AspNetCore.Routing.Matching.HostMatcherPolicy.Order.get -> int +override Microsoft.AspNetCore.Routing.Matching.HttpMethodMatcherPolicy.Order.get -> int +override Microsoft.AspNetCore.Routing.Patterns.RoutePatternException.GetObjectData(System.Runtime.Serialization.SerializationInfo! info, System.Runtime.Serialization.StreamingContext context) -> void +override Microsoft.AspNetCore.Routing.Route.OnRouteMatched(Microsoft.AspNetCore.Routing.RouteContext! context) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.Routing.Route.OnVirtualPathGenerated(Microsoft.AspNetCore.Routing.VirtualPathContext! context) -> Microsoft.AspNetCore.Routing.VirtualPathData? +override Microsoft.AspNetCore.Routing.RouteBase.ToString() -> string! +override Microsoft.AspNetCore.Routing.RouteEndpointBuilder.Build() -> Microsoft.AspNetCore.Http.Endpoint! +static Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions.Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, Microsoft.AspNetCore.Routing.Patterns.RoutePattern! pattern, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions.Map(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions.MapDelete(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions.MapGet(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions.MapMethods(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, System.Collections.Generic.IEnumerable! httpMethods, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions.MapPost(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.EndpointRouteBuilderExtensions.MapPut(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(this Microsoft.AspNetCore.Builder.IApplicationBuilder! builder, System.Action! configure) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseRouting(this Microsoft.AspNetCore.Builder.IApplicationBuilder! builder) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.FallbackEndpointRouteBuilderExtensions.MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.FallbackEndpointRouteBuilderExtensions.MapFallback(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder! endpoints, string! pattern, Microsoft.AspNetCore.Http.RequestDelegate! requestDelegate) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder! +static Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions.MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder! routeBuilder, string? name, string? template) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions.MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder! routeBuilder, string? name, string? template, object? defaults) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions.MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder! routeBuilder, string? name, string? template, object? defaults, object? constraints) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Builder.MapRouteRouteBuilderExtensions.MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder! routeBuilder, string? name, string? template, object? defaults, object? constraints, object? dataTokens) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Builder.RoutingBuilderExtensions.UseRouter(this Microsoft.AspNetCore.Builder.IApplicationBuilder! builder, Microsoft.AspNetCore.Routing.IRouter! router) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.RoutingBuilderExtensions.UseRouter(this Microsoft.AspNetCore.Builder.IApplicationBuilder! builder, System.Action! action) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions.RequireHost(this TBuilder builder, params string![]! hosts) -> TBuilder +static Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions.WithDisplayName(this TBuilder builder, System.Func! func) -> TBuilder +static Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions.WithDisplayName(this TBuilder builder, string! displayName) -> TBuilder +static Microsoft.AspNetCore.Builder.RoutingEndpointConventionBuilderExtensions.WithMetadata(this TBuilder builder, params object![]! items) -> TBuilder +static Microsoft.AspNetCore.Routing.InlineRouteParameterParser.ParseRouteParameter(string! routeParameter) -> Microsoft.AspNetCore.Routing.Template.TemplatePart! +static Microsoft.AspNetCore.Routing.LinkGeneratorEndpointNameAddressExtensions.GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator! generator, Microsoft.AspNetCore.Http.HttpContext! httpContext, string! endpointName, object? values, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +static Microsoft.AspNetCore.Routing.LinkGeneratorEndpointNameAddressExtensions.GetPathByName(this Microsoft.AspNetCore.Routing.LinkGenerator! generator, string! endpointName, object? values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +static Microsoft.AspNetCore.Routing.LinkGeneratorEndpointNameAddressExtensions.GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator! generator, Microsoft.AspNetCore.Http.HttpContext! httpContext, string! endpointName, object? values, string? scheme = null, Microsoft.AspNetCore.Http.HostString? host = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +static Microsoft.AspNetCore.Routing.LinkGeneratorEndpointNameAddressExtensions.GetUriByName(this Microsoft.AspNetCore.Routing.LinkGenerator! generator, string! endpointName, object? values, string! scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +static Microsoft.AspNetCore.Routing.LinkGeneratorRouteValuesAddressExtensions.GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator! generator, Microsoft.AspNetCore.Http.HttpContext! httpContext, string? routeName, object? values, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +static Microsoft.AspNetCore.Routing.LinkGeneratorRouteValuesAddressExtensions.GetPathByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator! generator, string? routeName, object? values, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +static Microsoft.AspNetCore.Routing.LinkGeneratorRouteValuesAddressExtensions.GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator! generator, Microsoft.AspNetCore.Http.HttpContext! httpContext, string? routeName, object? values, string? scheme = null, Microsoft.AspNetCore.Http.HostString? host = null, Microsoft.AspNetCore.Http.PathString? pathBase = null, Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +static Microsoft.AspNetCore.Routing.LinkGeneratorRouteValuesAddressExtensions.GetUriByRouteValues(this Microsoft.AspNetCore.Routing.LinkGenerator! generator, string? routeName, object? values, string! scheme, Microsoft.AspNetCore.Http.HostString host, Microsoft.AspNetCore.Http.PathString pathBase = default(Microsoft.AspNetCore.Http.PathString), Microsoft.AspNetCore.Http.FragmentString fragment = default(Microsoft.AspNetCore.Http.FragmentString), Microsoft.AspNetCore.Routing.LinkOptions? options = null) -> string? +static Microsoft.AspNetCore.Routing.LinkParserEndpointNameAddressExtensions.ParsePathByEndpointName(this Microsoft.AspNetCore.Routing.LinkParser! parser, string! endpointName, Microsoft.AspNetCore.Http.PathString path) -> Microsoft.AspNetCore.Routing.RouteValueDictionary? +static Microsoft.AspNetCore.Routing.MatcherPolicy.ContainsDynamicEndpoints(System.Collections.Generic.IReadOnlyList! endpoints) -> bool +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Constraint(Microsoft.AspNetCore.Routing.IRouteConstraint! constraint) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Constraint(object! constraint) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Constraint(string! constraint) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.LiteralPart(string! content) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternLiteralPart! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.ParameterPart(string! parameterName) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.ParameterPart(string! parameterName, object! default) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.ParameterPart(string! parameterName, object? default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.ParameterPart(string! parameterName, object? default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind, System.Collections.Generic.IEnumerable! parameterPolicies) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.ParameterPart(string! parameterName, object? default, Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterKind parameterKind, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference![]! parameterPolicies) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPart! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.ParameterPolicy(Microsoft.AspNetCore.Routing.IParameterPolicy! parameterPolicy) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.ParameterPolicy(string! parameterPolicy) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternParameterPolicyReference! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Parse(string! pattern) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Parse(string! pattern, object? defaults, object? parameterPolicies) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Parse(string! pattern, object? defaults, object? parameterPolicies, object? requiredValues) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Pattern(System.Collections.Generic.IEnumerable! segments) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Pattern(object? defaults, object? parameterPolicies, System.Collections.Generic.IEnumerable! segments) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Pattern(object? defaults, object? parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment![]! segments) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Pattern(params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment![]! segments) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Pattern(string! rawText, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment![]! segments) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Pattern(string? rawText, System.Collections.Generic.IEnumerable! segments) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Pattern(string? rawText, object? defaults, object? parameterPolicies, System.Collections.Generic.IEnumerable! segments) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Pattern(string? rawText, object? defaults, object? parameterPolicies, params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment![]! segments) -> Microsoft.AspNetCore.Routing.Patterns.RoutePattern! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Segment(System.Collections.Generic.IEnumerable! parts) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.Segment(params Microsoft.AspNetCore.Routing.Patterns.RoutePatternPart![]! parts) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternPathSegment! +static Microsoft.AspNetCore.Routing.Patterns.RoutePatternFactory.SeparatorPart(string! content) -> Microsoft.AspNetCore.Routing.Patterns.RoutePatternSeparatorPart! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, Microsoft.AspNetCore.Http.RequestDelegate! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Func! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapGet(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, Microsoft.AspNetCore.Http.RequestDelegate! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapGet(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Func! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapMiddlewareDelete(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Action! action) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapMiddlewareGet(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Action! action) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapMiddlewarePost(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Action! action) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapMiddlewarePut(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Action! action) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapMiddlewareRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Action! action) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapMiddlewareVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! verb, string! template, System.Action! action) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapPost(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, Microsoft.AspNetCore.Http.RequestDelegate! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapPost(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Func! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapPut(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, Microsoft.AspNetCore.Http.RequestDelegate! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapPut(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, System.Func! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapRoute(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! template, Microsoft.AspNetCore.Http.RequestDelegate! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! verb, string! template, Microsoft.AspNetCore.Http.RequestDelegate! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RequestDelegateRouteBuilderExtensions.MapVerb(this Microsoft.AspNetCore.Routing.IRouteBuilder! builder, string! verb, string! template, System.Func! handler) -> Microsoft.AspNetCore.Routing.IRouteBuilder! +static Microsoft.AspNetCore.Routing.RouteBase.GetConstraints(Microsoft.AspNetCore.Routing.IInlineConstraintResolver! inlineConstraintResolver, Microsoft.AspNetCore.Routing.Template.RouteTemplate! parsedTemplate, System.Collections.Generic.IDictionary? constraints) -> System.Collections.Generic.IDictionary! +static Microsoft.AspNetCore.Routing.RouteBase.GetDefaults(Microsoft.AspNetCore.Routing.Template.RouteTemplate! parsedTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary? defaults) -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +static Microsoft.AspNetCore.Routing.RouteConstraintMatcher.Match(System.Collections.Generic.IDictionary! constraints, Microsoft.AspNetCore.Routing.RouteValueDictionary! routeValues, Microsoft.AspNetCore.Http.HttpContext! httpContext, Microsoft.AspNetCore.Routing.IRouter! route, Microsoft.AspNetCore.Routing.RouteDirection routeDirection, Microsoft.Extensions.Logging.ILogger! logger) -> bool +static Microsoft.AspNetCore.Routing.Template.RoutePrecedence.ComputeInbound(Microsoft.AspNetCore.Routing.Template.RouteTemplate! template) -> decimal +static Microsoft.AspNetCore.Routing.Template.RoutePrecedence.ComputeOutbound(Microsoft.AspNetCore.Routing.Template.RouteTemplate! template) -> decimal +static Microsoft.AspNetCore.Routing.Template.TemplateBinder.RoutePartsEqual(object? a, object? b) -> bool +static Microsoft.AspNetCore.Routing.Template.TemplateParser.Parse(string! routeTemplate) -> Microsoft.AspNetCore.Routing.Template.RouteTemplate! +static Microsoft.AspNetCore.Routing.Template.TemplatePart.CreateLiteral(string! text) -> Microsoft.AspNetCore.Routing.Template.TemplatePart! +static Microsoft.AspNetCore.Routing.Template.TemplatePart.CreateParameter(string! name, bool isCatchAll, bool isOptional, object? defaultValue, System.Collections.Generic.IEnumerable? inlineConstraints) -> Microsoft.AspNetCore.Routing.Template.TemplatePart! +static Microsoft.Extensions.DependencyInjection.RoutingServiceCollectionExtensions.AddRouting(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +static Microsoft.Extensions.DependencyInjection.RoutingServiceCollectionExtensions.AddRouting(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services, System.Action! configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +static readonly Microsoft.AspNetCore.Builder.FallbackEndpointRouteBuilderExtensions.DefaultPattern -> string! +static readonly Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer.Default -> Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer! +static readonly Microsoft.AspNetCore.Routing.Patterns.RoutePattern.RequiredValueAny -> object! +static readonly Microsoft.AspNetCore.Routing.RouteValueEqualityComparer.Default -> Microsoft.AspNetCore.Routing.RouteValueEqualityComparer! +virtual Microsoft.AspNetCore.Routing.Constraints.HttpMethodRouteConstraint.Match(Microsoft.AspNetCore.Http.HttpContext? httpContext, Microsoft.AspNetCore.Routing.IRouter? route, string! routeKey, Microsoft.AspNetCore.Routing.RouteValueDictionary! values, Microsoft.AspNetCore.Routing.RouteDirection routeDirection) -> bool +virtual Microsoft.AspNetCore.Routing.DefaultInlineConstraintResolver.ResolveConstraint(string! inlineConstraint) -> Microsoft.AspNetCore.Routing.IRouteConstraint? +virtual Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer.CompareMetadata(TMetadata? x, TMetadata? y) -> int +virtual Microsoft.AspNetCore.Routing.Matching.EndpointMetadataComparer.GetMetadata(Microsoft.AspNetCore.Http.Endpoint! endpoint) -> TMetadata? +virtual Microsoft.AspNetCore.Routing.RouteBase.ConstraintResolver.get -> Microsoft.AspNetCore.Routing.IInlineConstraintResolver! +virtual Microsoft.AspNetCore.Routing.RouteBase.ConstraintResolver.set -> void +virtual Microsoft.AspNetCore.Routing.RouteBase.Constraints.get -> System.Collections.Generic.IDictionary! +virtual Microsoft.AspNetCore.Routing.RouteBase.Constraints.set -> void +virtual Microsoft.AspNetCore.Routing.RouteBase.DataTokens.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +virtual Microsoft.AspNetCore.Routing.RouteBase.DataTokens.set -> void +virtual Microsoft.AspNetCore.Routing.RouteBase.Defaults.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary! +virtual Microsoft.AspNetCore.Routing.RouteBase.Defaults.set -> void +virtual Microsoft.AspNetCore.Routing.RouteBase.GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext! context) -> Microsoft.AspNetCore.Routing.VirtualPathData? +virtual Microsoft.AspNetCore.Routing.RouteBase.Name.get -> string? +virtual Microsoft.AspNetCore.Routing.RouteBase.Name.set -> void +virtual Microsoft.AspNetCore.Routing.RouteBase.ParsedTemplate.get -> Microsoft.AspNetCore.Routing.Template.RouteTemplate! +virtual Microsoft.AspNetCore.Routing.RouteBase.ParsedTemplate.set -> void +virtual Microsoft.AspNetCore.Routing.RouteBase.RouteAsync(Microsoft.AspNetCore.Routing.RouteContext! context) -> System.Threading.Tasks.Task! +virtual Microsoft.AspNetCore.Routing.RouteCollection.GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext! context) -> Microsoft.AspNetCore.Routing.VirtualPathData? +virtual Microsoft.AspNetCore.Routing.RouteCollection.RouteAsync(Microsoft.AspNetCore.Routing.RouteContext! context) -> System.Threading.Tasks.Task! +~Microsoft.AspNetCore.Routing.DefaultInlineConstraintResolver.DefaultInlineConstraintResolver(Microsoft.Extensions.Options.IOptions! routeOptions, System.IServiceProvider! serviceProvider) -> void +~Microsoft.AspNetCore.Routing.Tree.InboundMatch.Entry.get -> Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry +~Microsoft.AspNetCore.Routing.Tree.InboundMatch.Entry.set -> void +~Microsoft.AspNetCore.Routing.Tree.InboundMatch.TemplateMatcher.get -> Microsoft.AspNetCore.Routing.Template.TemplateMatcher +~Microsoft.AspNetCore.Routing.Tree.InboundMatch.TemplateMatcher.set -> void +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Constraints.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Constraints.set -> void +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Defaults.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Defaults.set -> void +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Handler.get -> Microsoft.AspNetCore.Routing.IRouter +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.Handler.set -> void +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.RouteName.get -> string +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.RouteName.set -> void +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.RouteTemplate.get -> Microsoft.AspNetCore.Routing.Template.RouteTemplate +~Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry.RouteTemplate.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundMatch.Entry.get -> Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry +~Microsoft.AspNetCore.Routing.Tree.OutboundMatch.Entry.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundMatch.TemplateBinder.get -> Microsoft.AspNetCore.Routing.Template.TemplateBinder +~Microsoft.AspNetCore.Routing.Tree.OutboundMatch.TemplateBinder.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Constraints.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Constraints.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Data.get -> object +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Data.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Defaults.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Defaults.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Handler.get -> Microsoft.AspNetCore.Routing.IRouter +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.Handler.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.RequiredLinkValues.get -> Microsoft.AspNetCore.Routing.RouteValueDictionary +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.RequiredLinkValues.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.RouteName.get -> string +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.RouteName.set -> void +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.RouteTemplate.get -> Microsoft.AspNetCore.Routing.Template.RouteTemplate +~Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry.RouteTemplate.set -> void +~Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder.Build() -> Microsoft.AspNetCore.Routing.Tree.TreeRouter +~Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder.Build(int version) -> Microsoft.AspNetCore.Routing.Tree.TreeRouter +~Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder.InboundEntries.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder.MapInbound(Microsoft.AspNetCore.Routing.IRouter handler, Microsoft.AspNetCore.Routing.Template.RouteTemplate routeTemplate, string routeName, int order) -> Microsoft.AspNetCore.Routing.Tree.InboundRouteEntry +~Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder.MapOutbound(Microsoft.AspNetCore.Routing.IRouter handler, Microsoft.AspNetCore.Routing.Template.RouteTemplate routeTemplate, Microsoft.AspNetCore.Routing.RouteValueDictionary requiredLinkValues, string routeName, int order) -> Microsoft.AspNetCore.Routing.Tree.OutboundRouteEntry +~Microsoft.AspNetCore.Routing.Tree.TreeRouteBuilder.OutboundEntries.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Routing.Tree.TreeRouter.GetVirtualPath(Microsoft.AspNetCore.Routing.VirtualPathContext context) -> Microsoft.AspNetCore.Routing.VirtualPathData +~Microsoft.AspNetCore.Routing.Tree.TreeRouter.RouteAsync(Microsoft.AspNetCore.Routing.RouteContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.CatchAlls.get -> Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.CatchAlls.set -> void +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.ConstrainedCatchAlls.get -> Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.ConstrainedCatchAlls.set -> void +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.ConstrainedParameters.get -> Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.ConstrainedParameters.set -> void +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.Literals.get -> System.Collections.Generic.Dictionary +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.Matches.get -> System.Collections.Generic.List +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.Parameters.get -> Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode +~Microsoft.AspNetCore.Routing.Tree.UrlMatchingNode.Parameters.set -> void +~static readonly Microsoft.AspNetCore.Routing.Tree.TreeRouter.RouteGroupKey -> string diff --git a/src/Http/WebUtilities/src/FileBufferingReadStream.cs b/src/Http/WebUtilities/src/FileBufferingReadStream.cs index 4ad95641570d..5f889933f18b 100644 --- a/src/Http/WebUtilities/src/FileBufferingReadStream.cs +++ b/src/Http/WebUtilities/src/FileBufferingReadStream.cs @@ -4,6 +4,7 @@ using System; using System.Buffers; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Threading; using System.Threading.Tasks; @@ -280,6 +281,7 @@ public override Task ReadAsync(byte[] buffer, int offset, int count, Cancel return ReadAsync(buffer.AsMemory(offset, count), cancellationToken).AsTask(); } + [SuppressMessage("ApiDesign", "RS0027:Public API with optional parameter(s) should have the most parameters amongst its public overloads.", Justification = "Required to maintain compatibility")] public override async ValueTask ReadAsync(Memory buffer, CancellationToken cancellationToken = default) { ThrowIfDisposed(); diff --git a/src/Http/WebUtilities/src/FileBufferingWriteStream.cs b/src/Http/WebUtilities/src/FileBufferingWriteStream.cs index 2c96ed29ae80..0d77cbfbc345 100644 --- a/src/Http/WebUtilities/src/FileBufferingWriteStream.cs +++ b/src/Http/WebUtilities/src/FileBufferingWriteStream.cs @@ -180,6 +180,7 @@ public override void Flush() /// The to drain buffered contents to. /// The . /// A that represents the asynchronous drain operation. + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public async Task DrainBufferAsync(Stream destination, CancellationToken cancellationToken = default) { // When not null, FileStream always has "older" spooled content. The PagedByteBuffer always has "newer" @@ -199,6 +200,7 @@ public async Task DrainBufferAsync(Stream destination, CancellationToken cancell await PagedByteBuffer.MoveToAsync(destination, cancellationToken); } + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required to maintain compatibility")] public async Task DrainBufferAsync(PipeWriter destination, CancellationToken cancellationToken = default) { // When not null, FileStream always has "older" spooled content. The PagedByteBuffer always has "newer" diff --git a/src/Http/WebUtilities/src/HttpRequestStreamReader.cs b/src/Http/WebUtilities/src/HttpRequestStreamReader.cs index 9dad0b553f9a..7b99271e87e6 100644 --- a/src/Http/WebUtilities/src/HttpRequestStreamReader.cs +++ b/src/Http/WebUtilities/src/HttpRequestStreamReader.cs @@ -4,6 +4,7 @@ using System; using System.Buffers; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.IO; using System.Text; using System.Threading; @@ -233,6 +234,7 @@ public override Task ReadAsync(char[] buffer, int index, int count) return ReadAsync(memory).AsTask(); } + [SuppressMessage("ApiDesign", "RS0027:Public API with optional parameter(s) should have the most parameters amongst its public overloads.", Justification = "Required to maintain compatibility")] public override async ValueTask ReadAsync(Memory buffer, CancellationToken cancellationToken = default) { if (_disposed) diff --git a/src/Http/WebUtilities/src/HttpResponseStreamWriter.cs b/src/Http/WebUtilities/src/HttpResponseStreamWriter.cs index ad3288a51576..46ec2e79410f 100644 --- a/src/Http/WebUtilities/src/HttpResponseStreamWriter.cs +++ b/src/Http/WebUtilities/src/HttpResponseStreamWriter.cs @@ -4,8 +4,8 @@ using System; using System.Buffers; using System.Diagnostics; +using System.Diagnostics.CodeAnalysis; using System.IO; -using System.Reflection.Metadata.Ecma335; using System.Runtime.CompilerServices; using System.Text; using System.Threading; @@ -145,7 +145,7 @@ public override void Write(ReadOnlySpan value) } var written = CopyToCharBuffer(value); - + remaining -= written; value = value.Slice(written); }; @@ -302,6 +302,7 @@ private async Task WriteAsyncAwaited(string value) } } + [SuppressMessage("ApiDesign", "RS0027:Public API with optional parameter(s) should have the most parameters amongst its public overloads.", Justification = "Required to maintain compatibility")] public override Task WriteAsync(ReadOnlyMemory value, CancellationToken cancellationToken = default) { if (_disposed) @@ -346,7 +347,7 @@ private async Task WriteAsyncAwaited(ReadOnlyMemory value) } var written = CopyToCharBuffer(value.Span); - + remaining -= written; value = value.Slice(written); }; diff --git a/src/Http/WebUtilities/src/PublicAPI.Shipped.txt b/src/Http/WebUtilities/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Http/WebUtilities/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Http/WebUtilities/src/PublicAPI.Unshipped.txt b/src/Http/WebUtilities/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..5d10a21b1b9c --- /dev/null +++ b/src/Http/WebUtilities/src/PublicAPI.Unshipped.txt @@ -0,0 +1,209 @@ +#nullable enable +Microsoft.AspNetCore.WebUtilities.Base64UrlTextEncoder +Microsoft.AspNetCore.WebUtilities.BufferedReadStream +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.BufferedData.get -> System.ArraySegment +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.BufferedReadStream(System.IO.Stream! inner, int bufferSize) -> void +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.BufferedReadStream(System.IO.Stream! inner, int bufferSize, System.Buffers.ArrayPool! bytePool) -> void +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.EnsureBuffered() -> bool +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.EnsureBuffered(int minCount) -> bool +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.EnsureBufferedAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.EnsureBufferedAsync(int minCount, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.ReadLine(int lengthLimit) -> string! +Microsoft.AspNetCore.WebUtilities.BufferedReadStream.ReadLineAsync(int lengthLimit, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream +Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.FileBufferingReadStream(System.IO.Stream! inner, int memoryThreshold) -> void +Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.FileBufferingReadStream(System.IO.Stream! inner, int memoryThreshold, long? bufferLimit, System.Func! tempFileDirectoryAccessor) -> void +Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.FileBufferingReadStream(System.IO.Stream! inner, int memoryThreshold, long? bufferLimit, System.Func! tempFileDirectoryAccessor, System.Buffers.ArrayPool! bytePool) -> void +Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.FileBufferingReadStream(System.IO.Stream! inner, int memoryThreshold, long? bufferLimit, string! tempFileDirectory) -> void +Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.FileBufferingReadStream(System.IO.Stream! inner, int memoryThreshold, long? bufferLimit, string! tempFileDirectory, System.Buffers.ArrayPool! bytePool) -> void +Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.InMemory.get -> bool +Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.TempFileName.get -> string? +Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream +Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.DrainBufferAsync(System.IO.Pipelines.PipeWriter! destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.DrainBufferAsync(System.IO.Stream! destination, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.FileBufferingWriteStream(int memoryThreshold = 32768, long? bufferLimit = null, System.Func? tempFileDirectoryAccessor = null) -> void +Microsoft.AspNetCore.WebUtilities.FileMultipartSection +Microsoft.AspNetCore.WebUtilities.FileMultipartSection.FileMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection! section) -> void +Microsoft.AspNetCore.WebUtilities.FileMultipartSection.FileMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection! section, Microsoft.Net.Http.Headers.ContentDispositionHeaderValue? header) -> void +Microsoft.AspNetCore.WebUtilities.FileMultipartSection.FileName.get -> string! +Microsoft.AspNetCore.WebUtilities.FileMultipartSection.FileStream.get -> System.IO.Stream? +Microsoft.AspNetCore.WebUtilities.FileMultipartSection.Name.get -> string! +Microsoft.AspNetCore.WebUtilities.FileMultipartSection.Section.get -> Microsoft.AspNetCore.WebUtilities.MultipartSection! +Microsoft.AspNetCore.WebUtilities.FormMultipartSection +Microsoft.AspNetCore.WebUtilities.FormMultipartSection.FormMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection! section) -> void +Microsoft.AspNetCore.WebUtilities.FormMultipartSection.FormMultipartSection(Microsoft.AspNetCore.WebUtilities.MultipartSection! section, Microsoft.Net.Http.Headers.ContentDispositionHeaderValue? header) -> void +Microsoft.AspNetCore.WebUtilities.FormMultipartSection.GetValueAsync() -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.WebUtilities.FormMultipartSection.Name.get -> string! +Microsoft.AspNetCore.WebUtilities.FormMultipartSection.Section.get -> Microsoft.AspNetCore.WebUtilities.MultipartSection! +Microsoft.AspNetCore.WebUtilities.FormPipeReader +Microsoft.AspNetCore.WebUtilities.FormPipeReader.FormPipeReader(System.IO.Pipelines.PipeReader! pipeReader) -> void +Microsoft.AspNetCore.WebUtilities.FormPipeReader.FormPipeReader(System.IO.Pipelines.PipeReader! pipeReader, System.Text.Encoding! encoding) -> void +Microsoft.AspNetCore.WebUtilities.FormPipeReader.KeyLengthLimit.get -> int +Microsoft.AspNetCore.WebUtilities.FormPipeReader.KeyLengthLimit.set -> void +Microsoft.AspNetCore.WebUtilities.FormPipeReader.ReadFormAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +Microsoft.AspNetCore.WebUtilities.FormPipeReader.ValueCountLimit.get -> int +Microsoft.AspNetCore.WebUtilities.FormPipeReader.ValueCountLimit.set -> void +Microsoft.AspNetCore.WebUtilities.FormPipeReader.ValueLengthLimit.get -> int +Microsoft.AspNetCore.WebUtilities.FormPipeReader.ValueLengthLimit.set -> void +Microsoft.AspNetCore.WebUtilities.FormReader +Microsoft.AspNetCore.WebUtilities.FormReader.Dispose() -> void +Microsoft.AspNetCore.WebUtilities.FormReader.FormReader(System.IO.Stream! stream) -> void +Microsoft.AspNetCore.WebUtilities.FormReader.FormReader(System.IO.Stream! stream, System.Text.Encoding! encoding) -> void +Microsoft.AspNetCore.WebUtilities.FormReader.FormReader(System.IO.Stream! stream, System.Text.Encoding! encoding, System.Buffers.ArrayPool! charPool) -> void +Microsoft.AspNetCore.WebUtilities.FormReader.FormReader(string! data) -> void +Microsoft.AspNetCore.WebUtilities.FormReader.FormReader(string! data, System.Buffers.ArrayPool! charPool) -> void +Microsoft.AspNetCore.WebUtilities.FormReader.KeyLengthLimit.get -> int +Microsoft.AspNetCore.WebUtilities.FormReader.KeyLengthLimit.set -> void +Microsoft.AspNetCore.WebUtilities.FormReader.ReadForm() -> System.Collections.Generic.Dictionary! +Microsoft.AspNetCore.WebUtilities.FormReader.ReadFormAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task!>! +Microsoft.AspNetCore.WebUtilities.FormReader.ReadNextPair() -> System.Collections.Generic.KeyValuePair? +Microsoft.AspNetCore.WebUtilities.FormReader.ReadNextPairAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task?>! +Microsoft.AspNetCore.WebUtilities.FormReader.ValueCountLimit.get -> int +Microsoft.AspNetCore.WebUtilities.FormReader.ValueCountLimit.set -> void +Microsoft.AspNetCore.WebUtilities.FormReader.ValueLengthLimit.get -> int +Microsoft.AspNetCore.WebUtilities.FormReader.ValueLengthLimit.set -> void +Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader +Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.HttpRequestStreamReader(System.IO.Stream! stream, System.Text.Encoding! encoding) -> void +Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.HttpRequestStreamReader(System.IO.Stream! stream, System.Text.Encoding! encoding, int bufferSize) -> void +Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.HttpRequestStreamReader(System.IO.Stream! stream, System.Text.Encoding! encoding, int bufferSize, System.Buffers.ArrayPool! bytePool, System.Buffers.ArrayPool! charPool) -> void +Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter +Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.HttpResponseStreamWriter(System.IO.Stream! stream, System.Text.Encoding! encoding) -> void +Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.HttpResponseStreamWriter(System.IO.Stream! stream, System.Text.Encoding! encoding, int bufferSize) -> void +Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.HttpResponseStreamWriter(System.IO.Stream! stream, System.Text.Encoding! encoding, int bufferSize, System.Buffers.ArrayPool! bytePool, System.Buffers.ArrayPool! charPool) -> void +Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator +Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator.Append(string! key, string! value) -> void +Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator.GetResults() -> System.Collections.Generic.Dictionary! +Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator.HasValues.get -> bool +Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator.KeyCount.get -> int +Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator.KeyValueAccumulator() -> void +Microsoft.AspNetCore.WebUtilities.KeyValueAccumulator.ValueCount.get -> int +Microsoft.AspNetCore.WebUtilities.MultipartReader +Microsoft.AspNetCore.WebUtilities.MultipartReader.BodyLengthLimit.get -> long? +Microsoft.AspNetCore.WebUtilities.MultipartReader.BodyLengthLimit.set -> void +Microsoft.AspNetCore.WebUtilities.MultipartReader.HeadersCountLimit.get -> int +Microsoft.AspNetCore.WebUtilities.MultipartReader.HeadersCountLimit.set -> void +Microsoft.AspNetCore.WebUtilities.MultipartReader.HeadersLengthLimit.get -> int +Microsoft.AspNetCore.WebUtilities.MultipartReader.HeadersLengthLimit.set -> void +Microsoft.AspNetCore.WebUtilities.MultipartReader.MultipartReader(string! boundary, System.IO.Stream! stream) -> void +Microsoft.AspNetCore.WebUtilities.MultipartReader.MultipartReader(string! boundary, System.IO.Stream! stream, int bufferSize) -> void +Microsoft.AspNetCore.WebUtilities.MultipartReader.ReadNextSectionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.WebUtilities.MultipartSection +Microsoft.AspNetCore.WebUtilities.MultipartSection.BaseStreamOffset.get -> long? +Microsoft.AspNetCore.WebUtilities.MultipartSection.BaseStreamOffset.set -> void +Microsoft.AspNetCore.WebUtilities.MultipartSection.Body.get -> System.IO.Stream! +Microsoft.AspNetCore.WebUtilities.MultipartSection.Body.set -> void +Microsoft.AspNetCore.WebUtilities.MultipartSection.ContentDisposition.get -> string? +Microsoft.AspNetCore.WebUtilities.MultipartSection.ContentType.get -> string? +Microsoft.AspNetCore.WebUtilities.MultipartSection.Headers.get -> System.Collections.Generic.Dictionary? +Microsoft.AspNetCore.WebUtilities.MultipartSection.Headers.set -> void +Microsoft.AspNetCore.WebUtilities.MultipartSection.MultipartSection() -> void +Microsoft.AspNetCore.WebUtilities.MultipartSectionConverterExtensions +Microsoft.AspNetCore.WebUtilities.MultipartSectionStreamExtensions +Microsoft.AspNetCore.WebUtilities.QueryHelpers +Microsoft.AspNetCore.WebUtilities.ReasonPhrases +Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions +Microsoft.AspNetCore.WebUtilities.WebEncoders +const Microsoft.AspNetCore.WebUtilities.FormReader.DefaultKeyLengthLimit = 2048 -> int +const Microsoft.AspNetCore.WebUtilities.FormReader.DefaultValueCountLimit = 1024 -> int +const Microsoft.AspNetCore.WebUtilities.FormReader.DefaultValueLengthLimit = 4194304 -> int +const Microsoft.AspNetCore.WebUtilities.MultipartReader.DefaultHeadersCountLimit = 16 -> int +const Microsoft.AspNetCore.WebUtilities.MultipartReader.DefaultHeadersLengthLimit = 16384 -> int +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.CanRead.get -> bool +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.CanSeek.get -> bool +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.CanTimeout.get -> bool +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.CanWrite.get -> bool +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.Dispose(bool disposing) -> void +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.Flush() -> void +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.FlushAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.Length.get -> long +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.Position.get -> long +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.Position.set -> void +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.Read(byte[]! buffer, int offset, int count) -> int +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.ReadAsync(byte[]! buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.Seek(long offset, System.IO.SeekOrigin origin) -> long +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.SetLength(long value) -> void +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.Write(byte[]! buffer, int offset, int count) -> void +override Microsoft.AspNetCore.WebUtilities.BufferedReadStream.WriteAsync(byte[]! buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.CanRead.get -> bool +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.CanSeek.get -> bool +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.CanWrite.get -> bool +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.CopyToAsync(System.IO.Stream! destination, int bufferSize, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Dispose(bool disposing) -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.DisposeAsync() -> System.Threading.Tasks.ValueTask +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Flush() -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Length.get -> long +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Position.get -> long +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Position.set -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Read(System.Span buffer) -> int +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Read(byte[]! buffer, int offset, int count) -> int +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.ReadAsync(byte[]! buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Seek(long offset, System.IO.SeekOrigin origin) -> long +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.SetLength(long value) -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.Write(byte[]! buffer, int offset, int count) -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream.WriteAsync(byte[]! buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.CanRead.get -> bool +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.CanSeek.get -> bool +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.CanWrite.get -> bool +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.DisposeAsync() -> System.Threading.Tasks.ValueTask +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.Flush() -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.FlushAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.Length.get -> long +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.Position.get -> long +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.Position.set -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.Read(byte[]! buffer, int offset, int count) -> int +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.ReadAsync(byte[]! buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.Seek(long offset, System.IO.SeekOrigin origin) -> long +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.SetLength(long value) -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.Write(byte[]! buffer, int offset, int count) -> void +override Microsoft.AspNetCore.WebUtilities.FileBufferingWriteStream.WriteAsync(byte[]! buffer, int offset, int count, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.Dispose(bool disposing) -> void +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.Peek() -> int +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.Read() -> int +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.Read(System.Span buffer) -> int +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.Read(char[]! buffer, int index, int count) -> int +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.ReadAsync(System.Memory buffer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.ReadAsync(char[]! buffer, int index, int count) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.ReadLine() -> string? +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.ReadLineAsync() -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpRequestStreamReader.ReadToEndAsync() -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.Dispose(bool disposing) -> void +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.DisposeAsync() -> System.Threading.Tasks.ValueTask +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.Encoding.get -> System.Text.Encoding! +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.Flush() -> void +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.FlushAsync() -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.Write(System.ReadOnlySpan value) -> void +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.Write(char value) -> void +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.Write(char[]! values, int index, int count) -> void +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.Write(string? value) -> void +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.WriteAsync(System.ReadOnlyMemory value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.WriteAsync(char value) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.WriteAsync(char[]! values, int index, int count) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.WriteAsync(string? value) -> System.Threading.Tasks.Task! +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.WriteLine(System.ReadOnlySpan value) -> void +override Microsoft.AspNetCore.WebUtilities.HttpResponseStreamWriter.WriteLineAsync(System.ReadOnlyMemory value, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.WebUtilities.Base64UrlTextEncoder.Decode(string! text) -> byte[]! +static Microsoft.AspNetCore.WebUtilities.Base64UrlTextEncoder.Encode(byte[]! data) -> string! +static Microsoft.AspNetCore.WebUtilities.MultipartSectionConverterExtensions.AsFileSection(this Microsoft.AspNetCore.WebUtilities.MultipartSection! section) -> Microsoft.AspNetCore.WebUtilities.FileMultipartSection? +static Microsoft.AspNetCore.WebUtilities.MultipartSectionConverterExtensions.AsFormDataSection(this Microsoft.AspNetCore.WebUtilities.MultipartSection! section) -> Microsoft.AspNetCore.WebUtilities.FormMultipartSection? +static Microsoft.AspNetCore.WebUtilities.MultipartSectionConverterExtensions.GetContentDispositionHeader(this Microsoft.AspNetCore.WebUtilities.MultipartSection! section) -> Microsoft.Net.Http.Headers.ContentDispositionHeaderValue? +static Microsoft.AspNetCore.WebUtilities.MultipartSectionStreamExtensions.ReadAsStringAsync(this Microsoft.AspNetCore.WebUtilities.MultipartSection! section) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(string! uri, System.Collections.Generic.IDictionary! queryString) -> string! +static Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(string! uri, System.Collections.Generic.IEnumerable>! queryString) -> string! +static Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(string! uri, System.Collections.Generic.IEnumerable>! queryString) -> string! +static Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(string! uri, string! name, string! value) -> string! +static Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseNullableQuery(string! queryString) -> System.Collections.Generic.Dictionary? +static Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(string! queryString) -> System.Collections.Generic.Dictionary! +static Microsoft.AspNetCore.WebUtilities.ReasonPhrases.GetReasonPhrase(int statusCode) -> string! +static Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions.DrainAsync(this System.IO.Stream! stream, System.Buffers.ArrayPool! bytePool, long? limit, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions.DrainAsync(this System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.WebUtilities.StreamHelperExtensions.DrainAsync(this System.IO.Stream! stream, long? limit, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlDecode(string! input) -> byte[]! +static Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlDecode(string! input, int offset, char[]! buffer, int bufferOffset, int count) -> byte[]! +static Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlDecode(string! input, int offset, int count) -> byte[]! +static Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlEncode(System.ReadOnlySpan input) -> string! +static Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlEncode(byte[]! input) -> string! +static Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlEncode(byte[]! input, int offset, char[]! output, int outputOffset, int count) -> int +static Microsoft.AspNetCore.WebUtilities.WebEncoders.Base64UrlEncode(byte[]! input, int offset, int count) -> string! +static Microsoft.AspNetCore.WebUtilities.WebEncoders.GetArraySizeRequiredToDecode(int count) -> int +static Microsoft.AspNetCore.WebUtilities.WebEncoders.GetArraySizeRequiredToEncode(int count) -> int diff --git a/src/Identity/ApiAuthorization.IdentityServer/samples/ApiAuthSample/Startup.cs b/src/Identity/ApiAuthorization.IdentityServer/samples/ApiAuthSample/Startup.cs index e734bb51aadf..03226a7b7788 100644 --- a/src/Identity/ApiAuthorization.IdentityServer/samples/ApiAuthSample/Startup.cs +++ b/src/Identity/ApiAuthorization.IdentityServer/samples/ApiAuthSample/Startup.cs @@ -50,6 +50,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); } else { diff --git a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml index f5157d41fc97..33a3c01acdb2 100644 --- a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml +++ b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Login.cshtml @@ -57,8 +57,8 @@ {

- There are no external authentication services configured. See this article - for details on setting up this ASP.NET application to support logging in via external services. + There are no external authentication services configured. See this article + about setting up this ASP.NET application to support logging in via external services.

} diff --git a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml index faa4a90888b1..dcfb7280b62a 100644 --- a/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml +++ b/src/Identity/UI/src/Areas/Identity/Pages/V4/Account/Register.cshtml @@ -39,8 +39,8 @@ {

- There are no external authentication services configured. See this article - for details on setting up this ASP.NET application to support logging in via external services. + There are no external authentication services configured. See this article + about setting up this ASP.NET application to support logging in via external services.

} diff --git a/src/Identity/UI/src/wwwroot/V4/css/site.css b/src/Identity/UI/src/wwwroot/V4/css/site.css index 52889ec4d5c9..d0420ca4fb74 100644 --- a/src/Identity/UI/src/wwwroot/V4/css/site.css +++ b/src/Identity/UI/src/wwwroot/V4/css/site.css @@ -24,6 +24,10 @@ a { border-color: #1861ac; } +.btn-link.nav-link:focus { + outline: black auto 1px; +} + /* Sticky footer styles -------------------------------------------------- */ html { diff --git a/src/Identity/samples/IdentitySample.DefaultUI/Startup.cs b/src/Identity/samples/IdentitySample.DefaultUI/Startup.cs index 69a36323bcbc..d3158994a24c 100644 --- a/src/Identity/samples/IdentitySample.DefaultUI/Startup.cs +++ b/src/Identity/samples/IdentitySample.DefaultUI/Startup.cs @@ -60,6 +60,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); } else { diff --git a/src/Identity/samples/IdentitySample.Mvc/Startup.cs b/src/Identity/samples/IdentitySample.Mvc/Startup.cs index 7415a7059ca7..8362bf25195a 100644 --- a/src/Identity/samples/IdentitySample.Mvc/Startup.cs +++ b/src/Identity/samples/IdentitySample.Mvc/Startup.cs @@ -63,6 +63,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); } else { diff --git a/src/Identity/testassets/Identity.DefaultUI.WebSite/NoIdentityStartup.cs b/src/Identity/testassets/Identity.DefaultUI.WebSite/NoIdentityStartup.cs index 2f7165144dc8..017f8e7a0d6e 100644 --- a/src/Identity/testassets/Identity.DefaultUI.WebSite/NoIdentityStartup.cs +++ b/src/Identity/testassets/Identity.DefaultUI.WebSite/NoIdentityStartup.cs @@ -49,6 +49,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); } else { diff --git a/src/Identity/testassets/Identity.DefaultUI.WebSite/StartupBase.cs b/src/Identity/testassets/Identity.DefaultUI.WebSite/StartupBase.cs index 91bb3bab8688..ba58d3c50491 100644 --- a/src/Identity/testassets/Identity.DefaultUI.WebSite/StartupBase.cs +++ b/src/Identity/testassets/Identity.DefaultUI.WebSite/StartupBase.cs @@ -65,6 +65,7 @@ public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); } else { diff --git a/src/Identity/testassets/Identity.DefaultUI.WebSite/StartupWithoutEndpointRouting.cs b/src/Identity/testassets/Identity.DefaultUI.WebSite/StartupWithoutEndpointRouting.cs index 2056a562782d..654f5948b825 100644 --- a/src/Identity/testassets/Identity.DefaultUI.WebSite/StartupWithoutEndpointRouting.cs +++ b/src/Identity/testassets/Identity.DefaultUI.WebSite/StartupWithoutEndpointRouting.cs @@ -34,6 +34,7 @@ public override void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); } else { diff --git a/src/Middleware/CORS/src/PublicAPI.Shipped.txt b/src/Middleware/CORS/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/CORS/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/CORS/src/PublicAPI.Unshipped.txt b/src/Middleware/CORS/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..0595d8268995 --- /dev/null +++ b/src/Middleware/CORS/src/PublicAPI.Unshipped.txt @@ -0,0 +1,118 @@ +#nullable enable +Microsoft.AspNetCore.Builder.CorsEndpointConventionBuilderExtensions +Microsoft.AspNetCore.Builder.CorsMiddlewareExtensions +Microsoft.AspNetCore.Cors.CorsPolicyMetadata +Microsoft.AspNetCore.Cors.DisableCorsAttribute +Microsoft.AspNetCore.Cors.DisableCorsAttribute.DisableCorsAttribute() -> void +Microsoft.AspNetCore.Cors.EnableCorsAttribute +Microsoft.AspNetCore.Cors.EnableCorsAttribute.EnableCorsAttribute() -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants +Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware +Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions +Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions.CorsOptions() -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.AllowAnyHeader.get -> bool +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.AllowAnyMethod.get -> bool +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.AllowAnyOrigin.get -> bool +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.CorsPolicy() -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.PreflightMaxAge.get -> System.TimeSpan? +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.PreflightMaxAge.set -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.SupportsCredentials.get -> bool +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.SupportsCredentials.set -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.CorsResult() -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.IsOriginAllowed.get -> bool +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.IsOriginAllowed.set -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.IsPreflightRequest.get -> bool +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.IsPreflightRequest.set -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.PreflightMaxAge.get -> System.TimeSpan? +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.PreflightMaxAge.set -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.SupportsCredentials.get -> bool +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.SupportsCredentials.set -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.VaryByOrigin.get -> bool +Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.VaryByOrigin.set -> void +Microsoft.AspNetCore.Cors.Infrastructure.CorsService +Microsoft.AspNetCore.Cors.Infrastructure.DefaultCorsPolicyProvider +Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata +Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider +Microsoft.AspNetCore.Cors.Infrastructure.ICorsService +Microsoft.AspNetCore.Cors.Infrastructure.IDisableCorsAttribute +Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute +Microsoft.Extensions.DependencyInjection.CorsServiceCollectionExtensions +~Microsoft.AspNetCore.Cors.CorsPolicyMetadata.CorsPolicyMetadata(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) -> void +~Microsoft.AspNetCore.Cors.CorsPolicyMetadata.Policy.get -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy +~Microsoft.AspNetCore.Cors.EnableCorsAttribute.EnableCorsAttribute(string policyName) -> void +~Microsoft.AspNetCore.Cors.EnableCorsAttribute.PolicyName.get -> string +~Microsoft.AspNetCore.Cors.EnableCorsAttribute.PolicyName.set -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.CorsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.CorsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.CorsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Cors.Infrastructure.ICorsService corsService, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, string policyName) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider corsPolicyProvider) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions.AddDefaultPolicy(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions.AddDefaultPolicy(System.Action configurePolicy) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions.AddPolicy(string name, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions.AddPolicy(string name, System.Action configurePolicy) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions.DefaultPolicyName.get -> string +~Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions.DefaultPolicyName.set -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsOptions.GetPolicy(string name) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.ExposedHeaders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.Headers.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.IsOriginAllowed.get -> System.Func +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.IsOriginAllowed.set -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.Methods.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.Origins.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.AllowAnyHeader() -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.AllowAnyMethod() -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.AllowAnyOrigin() -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.AllowCredentials() -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.Build() -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.CorsPolicyBuilder(Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.CorsPolicyBuilder(params string[] origins) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.DisallowCredentials() -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.SetIsOriginAllowed(System.Func isOriginAllowed) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.SetIsOriginAllowedToAllowWildcardSubdomains() -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.SetPreflightMaxAge(System.TimeSpan preflightMaxAge) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.WithExposedHeaders(params string[] exposedHeaders) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.WithHeaders(params string[] headers) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.WithMethods(params string[] methods) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder.WithOrigins(params string[] origins) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicyBuilder +~Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.AllowedExposedHeaders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.AllowedHeaders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.AllowedMethods.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.AllowedOrigin.get -> string +~Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.AllowedOrigin.set -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsService.CorsService(Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.CorsService.EvaluatePolicy(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsResult +~Microsoft.AspNetCore.Cors.Infrastructure.CorsService.EvaluatePolicy(Microsoft.AspNetCore.Http.HttpContext context, string policyName) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsResult +~Microsoft.AspNetCore.Cors.Infrastructure.DefaultCorsPolicyProvider.DefaultCorsPolicyProvider(Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.DefaultCorsPolicyProvider.GetPolicyAsync(Microsoft.AspNetCore.Http.HttpContext context, string policyName) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyMetadata.Policy.get -> Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy +~Microsoft.AspNetCore.Cors.Infrastructure.ICorsPolicyProvider.GetPolicyAsync(Microsoft.AspNetCore.Http.HttpContext context, string policyName) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Cors.Infrastructure.ICorsService.ApplyResult(Microsoft.AspNetCore.Cors.Infrastructure.CorsResult result, Microsoft.AspNetCore.Http.HttpResponse response) -> void +~Microsoft.AspNetCore.Cors.Infrastructure.ICorsService.EvaluatePolicy(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy) -> Microsoft.AspNetCore.Cors.Infrastructure.CorsResult +~Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute.PolicyName.get -> string +~Microsoft.AspNetCore.Cors.Infrastructure.IEnableCorsAttribute.PolicyName.set -> void +~override Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy.ToString() -> string +~override Microsoft.AspNetCore.Cors.Infrastructure.CorsResult.ToString() -> string +~static Microsoft.AspNetCore.Builder.CorsEndpointConventionBuilderExtensions.RequireCors(this TBuilder builder, System.Action configurePolicy) -> TBuilder +~static Microsoft.AspNetCore.Builder.CorsEndpointConventionBuilderExtensions.RequireCors(this TBuilder builder, string policyName) -> TBuilder +~static Microsoft.AspNetCore.Builder.CorsMiddlewareExtensions.UseCors(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.CorsMiddlewareExtensions.UseCors(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configurePolicy) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.CorsMiddlewareExtensions.UseCors(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string policyName) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.Extensions.DependencyInjection.CorsServiceCollectionExtensions.AddCors(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.Extensions.DependencyInjection.CorsServiceCollectionExtensions.AddCors(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action setupAction) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AccessControlAllowCredentials -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AccessControlAllowHeaders -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AccessControlAllowMethods -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AccessControlAllowOrigin -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AccessControlExposeHeaders -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AccessControlMaxAge -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AccessControlRequestHeaders -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AccessControlRequestMethod -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.AnyOrigin -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.Origin -> string +~static readonly Microsoft.AspNetCore.Cors.Infrastructure.CorsConstants.PreflightHttpMethod -> string +~virtual Microsoft.AspNetCore.Cors.Infrastructure.CorsService.ApplyResult(Microsoft.AspNetCore.Cors.Infrastructure.CorsResult result, Microsoft.AspNetCore.Http.HttpResponse response) -> void +~virtual Microsoft.AspNetCore.Cors.Infrastructure.CorsService.EvaluatePreflightRequest(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy, Microsoft.AspNetCore.Cors.Infrastructure.CorsResult result) -> void +~virtual Microsoft.AspNetCore.Cors.Infrastructure.CorsService.EvaluateRequest(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Cors.Infrastructure.CorsPolicy policy, Microsoft.AspNetCore.Cors.Infrastructure.CorsResult result) -> void diff --git a/src/Middleware/ConcurrencyLimiter/src/PublicAPI.Shipped.txt b/src/Middleware/ConcurrencyLimiter/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/ConcurrencyLimiter/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/ConcurrencyLimiter/src/PublicAPI.Unshipped.txt b/src/Middleware/ConcurrencyLimiter/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..c3556208364c --- /dev/null +++ b/src/Middleware/ConcurrencyLimiter/src/PublicAPI.Unshipped.txt @@ -0,0 +1,22 @@ +#nullable enable +Microsoft.AspNetCore.Builder.ConcurrencyLimiterExtensions +Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterMiddleware +Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterOptions +Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterOptions.ConcurrencyLimiterOptions() -> void +Microsoft.AspNetCore.ConcurrencyLimiter.IQueuePolicy +Microsoft.AspNetCore.ConcurrencyLimiter.IQueuePolicy.OnExit() -> void +Microsoft.AspNetCore.ConcurrencyLimiter.IQueuePolicy.TryEnterAsync() -> System.Threading.Tasks.ValueTask +Microsoft.AspNetCore.ConcurrencyLimiter.QueuePolicyOptions +Microsoft.AspNetCore.ConcurrencyLimiter.QueuePolicyOptions.MaxConcurrentRequests.get -> int +Microsoft.AspNetCore.ConcurrencyLimiter.QueuePolicyOptions.MaxConcurrentRequests.set -> void +Microsoft.AspNetCore.ConcurrencyLimiter.QueuePolicyOptions.QueuePolicyOptions() -> void +Microsoft.AspNetCore.ConcurrencyLimiter.QueuePolicyOptions.RequestQueueLimit.get -> int +Microsoft.AspNetCore.ConcurrencyLimiter.QueuePolicyOptions.RequestQueueLimit.set -> void +Microsoft.Extensions.DependencyInjection.QueuePolicyServiceCollectionExtensions +~Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterMiddleware.ConcurrencyLimiterMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.ConcurrencyLimiter.IQueuePolicy queue, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterOptions.OnRejected.get -> Microsoft.AspNetCore.Http.RequestDelegate +~Microsoft.AspNetCore.ConcurrencyLimiter.ConcurrencyLimiterOptions.OnRejected.set -> void +~static Microsoft.AspNetCore.Builder.ConcurrencyLimiterExtensions.UseConcurrencyLimiter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.Extensions.DependencyInjection.QueuePolicyServiceCollectionExtensions.AddQueuePolicy(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.Extensions.DependencyInjection.QueuePolicyServiceCollectionExtensions.AddStackPolicy(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/Middleware/Diagnostics.Abstractions/src/PublicAPI.Shipped.txt b/src/Middleware/Diagnostics.Abstractions/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/Diagnostics.Abstractions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/Diagnostics.Abstractions/src/PublicAPI.Unshipped.txt b/src/Middleware/Diagnostics.Abstractions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..d7a05c6667e2 --- /dev/null +++ b/src/Middleware/Diagnostics.Abstractions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,40 @@ +#nullable enable +Microsoft.AspNetCore.Diagnostics.CompilationFailure +Microsoft.AspNetCore.Diagnostics.DiagnosticMessage +Microsoft.AspNetCore.Diagnostics.DiagnosticMessage.EndColumn.get -> int +Microsoft.AspNetCore.Diagnostics.DiagnosticMessage.EndLine.get -> int +Microsoft.AspNetCore.Diagnostics.DiagnosticMessage.StartColumn.get -> int +Microsoft.AspNetCore.Diagnostics.DiagnosticMessage.StartLine.get -> int +Microsoft.AspNetCore.Diagnostics.ErrorContext +Microsoft.AspNetCore.Diagnostics.ICompilationException +Microsoft.AspNetCore.Diagnostics.IDeveloperPageExceptionFilter +Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature +Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature +Microsoft.AspNetCore.Diagnostics.IStatusCodePagesFeature +Microsoft.AspNetCore.Diagnostics.IStatusCodePagesFeature.Enabled.get -> bool +Microsoft.AspNetCore.Diagnostics.IStatusCodePagesFeature.Enabled.set -> void +Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature +~Microsoft.AspNetCore.Diagnostics.CompilationFailure.CompilationFailure(string sourceFilePath, string sourceFileContent, string compiledContent, System.Collections.Generic.IEnumerable messages) -> void +~Microsoft.AspNetCore.Diagnostics.CompilationFailure.CompilationFailure(string sourceFilePath, string sourceFileContent, string compiledContent, System.Collections.Generic.IEnumerable messages, string failureSummary) -> void +~Microsoft.AspNetCore.Diagnostics.CompilationFailure.CompiledContent.get -> string +~Microsoft.AspNetCore.Diagnostics.CompilationFailure.FailureSummary.get -> string +~Microsoft.AspNetCore.Diagnostics.CompilationFailure.Messages.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Diagnostics.CompilationFailure.SourceFileContent.get -> string +~Microsoft.AspNetCore.Diagnostics.CompilationFailure.SourceFilePath.get -> string +~Microsoft.AspNetCore.Diagnostics.DiagnosticMessage.DiagnosticMessage(string message, string formattedMessage, string filePath, int startLine, int startColumn, int endLine, int endColumn) -> void +~Microsoft.AspNetCore.Diagnostics.DiagnosticMessage.FormattedMessage.get -> string +~Microsoft.AspNetCore.Diagnostics.DiagnosticMessage.Message.get -> string +~Microsoft.AspNetCore.Diagnostics.DiagnosticMessage.SourceFilePath.get -> string +~Microsoft.AspNetCore.Diagnostics.ErrorContext.ErrorContext(Microsoft.AspNetCore.Http.HttpContext httpContext, System.Exception exception) -> void +~Microsoft.AspNetCore.Diagnostics.ErrorContext.Exception.get -> System.Exception +~Microsoft.AspNetCore.Diagnostics.ErrorContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Diagnostics.ICompilationException.CompilationFailures.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Diagnostics.IDeveloperPageExceptionFilter.HandleExceptionAsync(Microsoft.AspNetCore.Diagnostics.ErrorContext errorContext, System.Func next) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Diagnostics.IExceptionHandlerFeature.Error.get -> System.Exception +~Microsoft.AspNetCore.Diagnostics.IExceptionHandlerPathFeature.Path.get -> string +~Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature.OriginalPath.get -> string +~Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature.OriginalPath.set -> void +~Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature.OriginalPathBase.get -> string +~Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature.OriginalPathBase.set -> void +~Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature.OriginalQueryString.get -> string +~Microsoft.AspNetCore.Diagnostics.IStatusCodeReExecuteFeature.OriginalQueryString.set -> void diff --git a/src/Middleware/Diagnostics.EntityFrameworkCore/src/PublicAPI.Shipped.txt b/src/Middleware/Diagnostics.EntityFrameworkCore/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/Diagnostics.EntityFrameworkCore/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/Diagnostics.EntityFrameworkCore/src/PublicAPI.Unshipped.txt b/src/Middleware/Diagnostics.EntityFrameworkCore/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..5c803b34deeb --- /dev/null +++ b/src/Middleware/Diagnostics.EntityFrameworkCore/src/PublicAPI.Unshipped.txt @@ -0,0 +1,27 @@ +#nullable enable +Microsoft.AspNetCore.Builder.DatabaseErrorPageExtensions +Microsoft.AspNetCore.Builder.DatabaseErrorPageOptions +Microsoft.AspNetCore.Builder.DatabaseErrorPageOptions.DatabaseErrorPageOptions() -> void +Microsoft.AspNetCore.Builder.MigrationsEndPointExtensions +Microsoft.AspNetCore.Builder.MigrationsEndPointOptions +Microsoft.AspNetCore.Builder.MigrationsEndPointOptions.MigrationsEndPointOptions() -> void +Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseDeveloperPageExceptionFilter +Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseDeveloperPageExceptionFilter.HandleExceptionAsync(Microsoft.AspNetCore.Diagnostics.ErrorContext! errorContext, System.Func! next) -> System.Threading.Tasks.Task! +Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware +Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware +Microsoft.Extensions.DependencyInjection.DatabaseDeveloperPageExceptionFilterServiceExtensions +static Microsoft.AspNetCore.Builder.MigrationsEndPointOptions.DefaultPath -> Microsoft.AspNetCore.Http.PathString +static Microsoft.Extensions.DependencyInjection.DatabaseDeveloperPageExceptionFilterServiceExtensions.AddDatabaseDeveloperPageExceptionFilter(this Microsoft.Extensions.DependencyInjection.IServiceCollection! services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection! +virtual Microsoft.AspNetCore.Builder.DatabaseErrorPageOptions.MigrationsEndPointPath.get -> Microsoft.AspNetCore.Http.PathString +virtual Microsoft.AspNetCore.Builder.DatabaseErrorPageOptions.MigrationsEndPointPath.set -> void +virtual Microsoft.AspNetCore.Builder.MigrationsEndPointOptions.Path.get -> Microsoft.AspNetCore.Http.PathString +virtual Microsoft.AspNetCore.Builder.MigrationsEndPointOptions.Path.set -> void +~Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseDeveloperPageExceptionFilter.DatabaseDeveloperPageExceptionFilter(Microsoft.Extensions.Logging.ILogger! logger, Microsoft.Extensions.Options.IOptions! options) -> void +~Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.DatabaseErrorPageMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.MigrationsEndPointMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Options.IOptions options) -> void +~static Microsoft.AspNetCore.Builder.DatabaseErrorPageExtensions.UseDatabaseErrorPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.DatabaseErrorPageExtensions.UseDatabaseErrorPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DatabaseErrorPageOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.MigrationsEndPointExtensions.UseMigrationsEndPoint(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.MigrationsEndPointExtensions.UseMigrationsEndPoint(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.MigrationsEndPointOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~virtual Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~virtual Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task diff --git a/src/Middleware/Diagnostics/src/PublicAPI.Shipped.txt b/src/Middleware/Diagnostics/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/Diagnostics/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/Diagnostics/src/PublicAPI.Unshipped.txt b/src/Middleware/Diagnostics/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..97c19b872e13 --- /dev/null +++ b/src/Middleware/Diagnostics/src/PublicAPI.Unshipped.txt @@ -0,0 +1,80 @@ +#nullable enable +Microsoft.AspNetCore.Builder.DeveloperExceptionPageExtensions +Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions +Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions.DeveloperExceptionPageOptions() -> void +Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions.SourceCodeLineCount.get -> int +Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions.SourceCodeLineCount.set -> void +Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions +Microsoft.AspNetCore.Builder.ExceptionHandlerOptions +Microsoft.AspNetCore.Builder.ExceptionHandlerOptions.ExceptionHandlerOptions() -> void +Microsoft.AspNetCore.Builder.ExceptionHandlerOptions.ExceptionHandlingPath.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Builder.ExceptionHandlerOptions.ExceptionHandlingPath.set -> void +Microsoft.AspNetCore.Builder.StatusCodePagesExtensions +Microsoft.AspNetCore.Builder.StatusCodePagesOptions +Microsoft.AspNetCore.Builder.StatusCodePagesOptions.StatusCodePagesOptions() -> void +Microsoft.AspNetCore.Builder.WelcomePageExtensions +Microsoft.AspNetCore.Builder.WelcomePageOptions +Microsoft.AspNetCore.Builder.WelcomePageOptions.Path.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.Builder.WelcomePageOptions.Path.set -> void +Microsoft.AspNetCore.Builder.WelcomePageOptions.WelcomePageOptions() -> void +Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware +Microsoft.AspNetCore.Diagnostics.ExceptionHandlerFeature +Microsoft.AspNetCore.Diagnostics.ExceptionHandlerFeature.ExceptionHandlerFeature() -> void +Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware +Microsoft.AspNetCore.Diagnostics.StatusCodeContext +Microsoft.AspNetCore.Diagnostics.StatusCodePagesFeature +Microsoft.AspNetCore.Diagnostics.StatusCodePagesFeature.Enabled.get -> bool +Microsoft.AspNetCore.Diagnostics.StatusCodePagesFeature.Enabled.set -> void +Microsoft.AspNetCore.Diagnostics.StatusCodePagesFeature.StatusCodePagesFeature() -> void +Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware +Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature +Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature.StatusCodeReExecuteFeature() -> void +Microsoft.AspNetCore.Diagnostics.WelcomePageMiddleware +Microsoft.Extensions.DependencyInjection.ExceptionHandlerServiceCollectionExtensions +~Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions.FileProvider.get -> Microsoft.Extensions.FileProviders.IFileProvider +~Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions.FileProvider.set -> void +~Microsoft.AspNetCore.Builder.ExceptionHandlerOptions.ExceptionHandler.get -> Microsoft.AspNetCore.Http.RequestDelegate +~Microsoft.AspNetCore.Builder.ExceptionHandlerOptions.ExceptionHandler.set -> void +~Microsoft.AspNetCore.Builder.StatusCodePagesOptions.HandleAsync.get -> System.Func +~Microsoft.AspNetCore.Builder.StatusCodePagesOptions.HandleAsync.set -> void +~Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.DeveloperExceptionPageMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, System.Diagnostics.DiagnosticSource diagnosticSource, System.Collections.Generic.IEnumerable filters) -> void +~Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Diagnostics.ExceptionHandlerFeature.Error.get -> System.Exception +~Microsoft.AspNetCore.Diagnostics.ExceptionHandlerFeature.Error.set -> void +~Microsoft.AspNetCore.Diagnostics.ExceptionHandlerFeature.Path.get -> string +~Microsoft.AspNetCore.Diagnostics.ExceptionHandlerFeature.Path.set -> void +~Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.ExceptionHandlerMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options, System.Diagnostics.DiagnosticListener diagnosticListener) -> void +~Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Diagnostics.StatusCodeContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Diagnostics.StatusCodeContext.Next.get -> Microsoft.AspNetCore.Http.RequestDelegate +~Microsoft.AspNetCore.Diagnostics.StatusCodeContext.Options.get -> Microsoft.AspNetCore.Builder.StatusCodePagesOptions +~Microsoft.AspNetCore.Diagnostics.StatusCodeContext.StatusCodeContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.AspNetCore.Builder.StatusCodePagesOptions options, Microsoft.AspNetCore.Http.RequestDelegate next) -> void +~Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Diagnostics.StatusCodePagesMiddleware.StatusCodePagesMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature.OriginalPath.get -> string +~Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature.OriginalPath.set -> void +~Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature.OriginalPathBase.get -> string +~Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature.OriginalPathBase.set -> void +~Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature.OriginalQueryString.get -> string +~Microsoft.AspNetCore.Diagnostics.StatusCodeReExecuteFeature.OriginalQueryString.set -> void +~Microsoft.AspNetCore.Diagnostics.WelcomePageMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Diagnostics.WelcomePageMiddleware.WelcomePageMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) -> void +~static Microsoft.AspNetCore.Builder.DeveloperExceptionPageExtensions.UseDeveloperExceptionPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.DeveloperExceptionPageExtensions.UseDeveloperExceptionPage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DeveloperExceptionPageOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions.UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions.UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.ExceptionHandlerOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions.UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configure) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ExceptionHandlerExtensions.UseExceptionHandler(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string errorHandlingPath) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.StatusCodePagesOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configuration) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Func handler) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePages(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string contentType, string bodyFormat) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string pathFormat, string queryFormat = null) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithRedirects(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string locationFormat) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.WelcomePageExtensions.UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.WelcomePageExtensions.UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.WelcomePageOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.WelcomePageExtensions.UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.WelcomePageExtensions.UseWelcomePage(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string path) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.Extensions.DependencyInjection.ExceptionHandlerServiceCollectionExtensions.AddExceptionHandler(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.Extensions.DependencyInjection.ExceptionHandlerServiceCollectionExtensions.AddExceptionHandler(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/Middleware/HeaderPropagation/src/PublicAPI.Shipped.txt b/src/Middleware/HeaderPropagation/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/HeaderPropagation/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/HeaderPropagation/src/PublicAPI.Unshipped.txt b/src/Middleware/HeaderPropagation/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..db68d09f0598 --- /dev/null +++ b/src/Middleware/HeaderPropagation/src/PublicAPI.Unshipped.txt @@ -0,0 +1,51 @@ +#nullable enable +Microsoft.AspNetCore.Builder.HeaderPropagationApplicationBuilderExtensions +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext.HeaderValue.get -> Microsoft.Extensions.Primitives.StringValues +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntry +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntryCollection +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntryCollection.HeaderPropagationEntryCollection() -> void +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandler +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntry +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntryCollection +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntryCollection.HeaderPropagationMessageHandlerEntryCollection() -> void +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerOptions +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerOptions.HeaderPropagationMessageHandlerOptions() -> void +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMiddleware +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationOptions +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationOptions.HeaderPropagationOptions() -> void +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationValues +Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationValues.HeaderPropagationValues() -> void +Microsoft.Extensions.DependencyInjection.HeaderPropagationHttpClientBuilderExtensions +Microsoft.Extensions.DependencyInjection.HeaderPropagationServiceCollectionExtensions +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext.HeaderName.get -> string +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext.HeaderPropagationContext(Microsoft.AspNetCore.Http.HttpContext httpContext, string headerName, Microsoft.Extensions.Primitives.StringValues headerValue) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntry.CapturedHeaderName.get -> string +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntry.HeaderPropagationEntry(string inboundHeaderName, string capturedHeaderName, System.Func valueFilter) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntry.InboundHeaderName.get -> string +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntry.ValueFilter.get -> System.Func +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntryCollection.Add(string headerName) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntryCollection.Add(string headerName, System.Func valueFilter) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntryCollection.Add(string inboundHeaderName, string outboundHeaderName) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntryCollection.Add(string inboundHeaderName, string outboundHeaderName, System.Func valueFilter) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandler.HeaderPropagationMessageHandler(Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerOptions options, Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationValues values) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntry.CapturedHeaderName.get -> string +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntry.HeaderPropagationMessageHandlerEntry(string capturedHeaderName, string outboundHeaderName) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntry.OutboundHeaderName.get -> string +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntryCollection.Add(string capturedHeaderName, string outboundHeaderName) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntryCollection.Add(string headerName) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerOptions.Headers.get -> Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerEntryCollection +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandlerOptions.Headers.set -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMiddleware.HeaderPropagationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationValues values) -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationOptions.Headers.get -> Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationEntryCollection +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationOptions.Headers.set -> void +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationValues.Headers.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationValues.Headers.set -> void +~override Microsoft.AspNetCore.HeaderPropagation.HeaderPropagationMessageHandler.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Builder.HeaderPropagationApplicationBuilderExtensions.UseHeaderPropagation(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.Extensions.DependencyInjection.HeaderPropagationHttpClientBuilderExtensions.AddHeaderPropagation(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder +~static Microsoft.Extensions.DependencyInjection.HeaderPropagationHttpClientBuilderExtensions.AddHeaderPropagation(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder +~static Microsoft.Extensions.DependencyInjection.HeaderPropagationServiceCollectionExtensions.AddHeaderPropagation(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.Extensions.DependencyInjection.HeaderPropagationServiceCollectionExtensions.AddHeaderPropagation(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/Middleware/HealthChecks.EntityFrameworkCore/src/PublicAPI.Shipped.txt b/src/Middleware/HealthChecks.EntityFrameworkCore/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/HealthChecks.EntityFrameworkCore/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/HealthChecks.EntityFrameworkCore/src/PublicAPI.Unshipped.txt b/src/Middleware/HealthChecks.EntityFrameworkCore/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..896b6d8fa1c1 --- /dev/null +++ b/src/Middleware/HealthChecks.EntityFrameworkCore/src/PublicAPI.Unshipped.txt @@ -0,0 +1,3 @@ +#nullable enable +Microsoft.Extensions.DependencyInjection.EntityFrameworkCoreHealthChecksBuilderExtensions +~static Microsoft.Extensions.DependencyInjection.EntityFrameworkCoreHealthChecksBuilderExtensions.AddDbContextCheck(this Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder builder, string name = null, Microsoft.Extensions.Diagnostics.HealthChecks.HealthStatus? failureStatus = null, System.Collections.Generic.IEnumerable tags = null, System.Func> customTestQuery = null) -> Microsoft.Extensions.DependencyInjection.IHealthChecksBuilder diff --git a/src/Middleware/HealthChecks/src/PublicAPI.Shipped.txt b/src/Middleware/HealthChecks/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/HealthChecks/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/HealthChecks/src/PublicAPI.Unshipped.txt b/src/Middleware/HealthChecks/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..3e80a1941a47 --- /dev/null +++ b/src/Middleware/HealthChecks/src/PublicAPI.Unshipped.txt @@ -0,0 +1,24 @@ +#nullable enable +Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions +Microsoft.AspNetCore.Builder.HealthCheckEndpointRouteBuilderExtensions +Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckMiddleware +Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions +Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.AllowCachingResponses.get -> bool +Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.AllowCachingResponses.set -> void +Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.HealthCheckOptions() -> void +~Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckMiddleware.HealthCheckMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions healthCheckOptions, Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService healthCheckService) -> void +~Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckMiddleware.InvokeAsync(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.Predicate.get -> System.Func +~Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.Predicate.set -> void +~Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.ResponseWriter.get -> System.Func +~Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.ResponseWriter.set -> void +~Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.ResultStatusCodes.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions.ResultStatusCodes.set -> void +~static Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions.UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions.UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions.UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, int port) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions.UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, int port, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions.UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, string port) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HealthCheckApplicationBuilderExtensions.UseHealthChecks(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Http.PathString path, string port, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HealthCheckEndpointRouteBuilderExtensions.MapHealthChecks(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.HealthCheckEndpointRouteBuilderExtensions.MapHealthChecks(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckOptions options) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder diff --git a/src/Middleware/HostFiltering/src/PublicAPI.Shipped.txt b/src/Middleware/HostFiltering/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/HostFiltering/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/HostFiltering/src/PublicAPI.Unshipped.txt b/src/Middleware/HostFiltering/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..7c74fb3f0e05 --- /dev/null +++ b/src/Middleware/HostFiltering/src/PublicAPI.Unshipped.txt @@ -0,0 +1,16 @@ +#nullable enable +Microsoft.AspNetCore.Builder.HostFilteringBuilderExtensions +Microsoft.AspNetCore.Builder.HostFilteringServicesExtensions +Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware +Microsoft.AspNetCore.HostFiltering.HostFilteringOptions +Microsoft.AspNetCore.HostFiltering.HostFilteringOptions.AllowEmptyHosts.get -> bool +Microsoft.AspNetCore.HostFiltering.HostFilteringOptions.AllowEmptyHosts.set -> void +Microsoft.AspNetCore.HostFiltering.HostFilteringOptions.HostFilteringOptions() -> void +Microsoft.AspNetCore.HostFiltering.HostFilteringOptions.IncludeFailureMessage.get -> bool +Microsoft.AspNetCore.HostFiltering.HostFilteringOptions.IncludeFailureMessage.set -> void +~Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware.HostFilteringMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILogger logger, Microsoft.Extensions.Options.IOptionsMonitor optionsMonitor) -> void +~Microsoft.AspNetCore.HostFiltering.HostFilteringMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.HostFiltering.HostFilteringOptions.AllowedHosts.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.HostFiltering.HostFilteringOptions.AllowedHosts.set -> void +~static Microsoft.AspNetCore.Builder.HostFilteringBuilderExtensions.UseHostFiltering(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HostFilteringServicesExtensions.AddHostFiltering(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/Middleware/HttpOverrides/src/PublicAPI.Shipped.txt b/src/Middleware/HttpOverrides/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/HttpOverrides/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/HttpOverrides/src/PublicAPI.Unshipped.txt b/src/Middleware/HttpOverrides/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..a602a0f35b53 --- /dev/null +++ b/src/Middleware/HttpOverrides/src/PublicAPI.Unshipped.txt @@ -0,0 +1,72 @@ +#nullable enable +Microsoft.AspNetCore.Builder.CertificateForwardingBuilderExtensions +Microsoft.AspNetCore.Builder.ForwardedHeadersExtensions +Microsoft.AspNetCore.Builder.ForwardedHeadersOptions +Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardLimit.get -> int? +Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardLimit.set -> void +Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedHeaders.get -> Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders +Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedHeaders.set -> void +Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedHeadersOptions() -> void +Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.RequireHeaderSymmetry.get -> bool +Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.RequireHeaderSymmetry.set -> void +Microsoft.AspNetCore.Builder.HttpMethodOverrideExtensions +Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions +Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions.HttpMethodOverrideOptions() -> void +Microsoft.AspNetCore.HttpOverrides.CertificateForwardingMiddleware +Microsoft.AspNetCore.HttpOverrides.CertificateForwardingOptions +Microsoft.AspNetCore.HttpOverrides.CertificateForwardingOptions.CertificateForwardingOptions() -> void +Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders +Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.All = Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedFor | Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedHost | Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedProto -> Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders +Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.None = 0 -> Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders +Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedFor = 1 -> Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders +Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedHost = 2 -> Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders +Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders.XForwardedProto = 4 -> Microsoft.AspNetCore.HttpOverrides.ForwardedHeaders +Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults +Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware +Microsoft.AspNetCore.HttpOverrides.HttpMethodOverrideMiddleware +Microsoft.AspNetCore.HttpOverrides.IPNetwork +Microsoft.AspNetCore.HttpOverrides.IPNetwork.PrefixLength.get -> int +Microsoft.Extensions.DependencyInjection.CertificateForwardingServiceExtensions +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.AllowedHosts.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.AllowedHosts.set -> void +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedForHeaderName.get -> string +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedForHeaderName.set -> void +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedHostHeaderName.get -> string +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedHostHeaderName.set -> void +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedProtoHeaderName.get -> string +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.ForwardedProtoHeaderName.set -> void +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.KnownNetworks.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.KnownProxies.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.OriginalForHeaderName.get -> string +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.OriginalForHeaderName.set -> void +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.OriginalHostHeaderName.get -> string +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.OriginalHostHeaderName.set -> void +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.OriginalProtoHeaderName.get -> string +~Microsoft.AspNetCore.Builder.ForwardedHeadersOptions.OriginalProtoHeaderName.set -> void +~Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions.FormFieldName.get -> string +~Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions.FormFieldName.set -> void +~Microsoft.AspNetCore.HttpOverrides.CertificateForwardingMiddleware.CertificateForwardingMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.HttpOverrides.CertificateForwardingMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.HttpOverrides.CertificateForwardingOptions.CertificateHeader.get -> string +~Microsoft.AspNetCore.HttpOverrides.CertificateForwardingOptions.CertificateHeader.set -> void +~Microsoft.AspNetCore.HttpOverrides.CertificateForwardingOptions.HeaderConverter -> System.Func +~Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware.ApplyForwarders(Microsoft.AspNetCore.Http.HttpContext context) -> void +~Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware.ForwardedHeadersMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.HttpOverrides.HttpMethodOverrideMiddleware.HttpMethodOverrideMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.HttpOverrides.HttpMethodOverrideMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.HttpOverrides.IPNetwork.Contains(System.Net.IPAddress address) -> bool +~Microsoft.AspNetCore.HttpOverrides.IPNetwork.IPNetwork(System.Net.IPAddress prefix, int prefixLength) -> void +~Microsoft.AspNetCore.HttpOverrides.IPNetwork.Prefix.get -> System.Net.IPAddress +~static Microsoft.AspNetCore.Builder.CertificateForwardingBuilderExtensions.UseCertificateForwarding(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ForwardedHeadersExtensions.UseForwardedHeaders(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ForwardedHeadersExtensions.UseForwardedHeaders(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, Microsoft.AspNetCore.Builder.ForwardedHeadersOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HttpMethodOverrideExtensions.UseHttpMethodOverride(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HttpMethodOverrideExtensions.UseHttpMethodOverride(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder, Microsoft.AspNetCore.Builder.HttpMethodOverrideOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults.XForwardedForHeaderName.get -> string +~static Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults.XForwardedHostHeaderName.get -> string +~static Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults.XForwardedProtoHeaderName.get -> string +~static Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults.XOriginalForHeaderName.get -> string +~static Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults.XOriginalHostHeaderName.get -> string +~static Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersDefaults.XOriginalProtoHeaderName.get -> string +~static Microsoft.Extensions.DependencyInjection.CertificateForwardingServiceExtensions.AddCertificateForwarding(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/Middleware/HttpsPolicy/src/PublicAPI.Shipped.txt b/src/Middleware/HttpsPolicy/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/HttpsPolicy/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/HttpsPolicy/src/PublicAPI.Unshipped.txt b/src/Middleware/HttpsPolicy/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..72d7207160c6 --- /dev/null +++ b/src/Middleware/HttpsPolicy/src/PublicAPI.Unshipped.txt @@ -0,0 +1,32 @@ +#nullable enable +Microsoft.AspNetCore.Builder.HstsBuilderExtensions +Microsoft.AspNetCore.Builder.HstsServicesExtensions +Microsoft.AspNetCore.Builder.HttpsPolicyBuilderExtensions +Microsoft.AspNetCore.Builder.HttpsRedirectionServicesExtensions +Microsoft.AspNetCore.HttpsPolicy.HstsMiddleware +Microsoft.AspNetCore.HttpsPolicy.HstsOptions +Microsoft.AspNetCore.HttpsPolicy.HstsOptions.HstsOptions() -> void +Microsoft.AspNetCore.HttpsPolicy.HstsOptions.IncludeSubDomains.get -> bool +Microsoft.AspNetCore.HttpsPolicy.HstsOptions.IncludeSubDomains.set -> void +Microsoft.AspNetCore.HttpsPolicy.HstsOptions.MaxAge.get -> System.TimeSpan +Microsoft.AspNetCore.HttpsPolicy.HstsOptions.MaxAge.set -> void +Microsoft.AspNetCore.HttpsPolicy.HstsOptions.Preload.get -> bool +Microsoft.AspNetCore.HttpsPolicy.HstsOptions.Preload.set -> void +Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware +Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionOptions +Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionOptions.HttpsPort.get -> int? +Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionOptions.HttpsPort.set -> void +Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionOptions.HttpsRedirectionOptions() -> void +Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionOptions.RedirectStatusCode.get -> int +Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionOptions.RedirectStatusCode.set -> void +~Microsoft.AspNetCore.HttpsPolicy.HstsMiddleware.HstsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.HttpsPolicy.HstsMiddleware.HstsMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.HttpsPolicy.HstsMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.HttpsPolicy.HstsOptions.ExcludedHosts.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware.HttpsRedirectionMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Configuration.IConfiguration config, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware.HttpsRedirectionMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Configuration.IConfiguration config, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.Hosting.Server.Features.IServerAddressesFeature serverAddressesFeature) -> void +~Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Builder.HstsBuilderExtensions.UseHsts(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HstsServicesExtensions.AddHsts(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.AspNetCore.Builder.HttpsPolicyBuilderExtensions.UseHttpsRedirection(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.HttpsRedirectionServicesExtensions.AddHttpsRedirection(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/Middleware/Localization.Routing/src/PublicAPI.Shipped.txt b/src/Middleware/Localization.Routing/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/Localization.Routing/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/Localization.Routing/src/PublicAPI.Unshipped.txt b/src/Middleware/Localization.Routing/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..1941b2e0d9df --- /dev/null +++ b/src/Middleware/Localization.Routing/src/PublicAPI.Unshipped.txt @@ -0,0 +1,8 @@ +#nullable enable +Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider +Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider.RouteDataRequestCultureProvider() -> void +~Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider.RouteDataStringKey.get -> string +~Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider.RouteDataStringKey.set -> void +~Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider.UIRouteDataStringKey.get -> string +~Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider.UIRouteDataStringKey.set -> void +~override Microsoft.AspNetCore.Localization.Routing.RouteDataRequestCultureProvider.DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task diff --git a/src/Middleware/Localization/src/PublicAPI.Shipped.txt b/src/Middleware/Localization/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/Localization/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/Localization/src/PublicAPI.Unshipped.txt b/src/Middleware/Localization/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..293ee429b289 --- /dev/null +++ b/src/Middleware/Localization/src/PublicAPI.Unshipped.txt @@ -0,0 +1,85 @@ +#nullable enable +Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions +Microsoft.AspNetCore.Builder.RequestLocalizationOptions +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.ApplyCurrentCultureToResponseHeaders.get -> bool +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.ApplyCurrentCultureToResponseHeaders.set -> void +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.FallBackToParentCultures.get -> bool +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.FallBackToParentCultures.set -> void +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.FallBackToParentUICultures.get -> bool +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.FallBackToParentUICultures.set -> void +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.RequestLocalizationOptions() -> void +Microsoft.AspNetCore.Builder.RequestLocalizationOptionsExtensions +Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider +Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider.AcceptLanguageHeaderRequestCultureProvider() -> void +Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider.MaximumAcceptLanguageHeaderValuesToTry.get -> int +Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider.MaximumAcceptLanguageHeaderValuesToTry.set -> void +Microsoft.AspNetCore.Localization.CookieRequestCultureProvider +Microsoft.AspNetCore.Localization.CookieRequestCultureProvider.CookieRequestCultureProvider() -> void +Microsoft.AspNetCore.Localization.CustomRequestCultureProvider +Microsoft.AspNetCore.Localization.IRequestCultureFeature +Microsoft.AspNetCore.Localization.IRequestCultureProvider +Microsoft.AspNetCore.Localization.ProviderCultureResult +Microsoft.AspNetCore.Localization.ProviderCultureResult.ProviderCultureResult(Microsoft.Extensions.Primitives.StringSegment culture) -> void +Microsoft.AspNetCore.Localization.ProviderCultureResult.ProviderCultureResult(Microsoft.Extensions.Primitives.StringSegment culture, Microsoft.Extensions.Primitives.StringSegment uiCulture) -> void +Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider +Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider.QueryStringRequestCultureProvider() -> void +Microsoft.AspNetCore.Localization.RequestCulture +Microsoft.AspNetCore.Localization.RequestCultureFeature +Microsoft.AspNetCore.Localization.RequestCultureProvider +Microsoft.AspNetCore.Localization.RequestCultureProvider.RequestCultureProvider() -> void +Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware +Microsoft.Extensions.DependencyInjection.RequestLocalizationServiceCollectionExtensions +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.AddSupportedCultures(params string[] cultures) -> Microsoft.AspNetCore.Builder.RequestLocalizationOptions +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.AddSupportedUICultures(params string[] uiCultures) -> Microsoft.AspNetCore.Builder.RequestLocalizationOptions +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.DefaultRequestCulture.get -> Microsoft.AspNetCore.Localization.RequestCulture +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.DefaultRequestCulture.set -> void +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.RequestCultureProviders.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.RequestCultureProviders.set -> void +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.SetDefaultCulture(string defaultCulture) -> Microsoft.AspNetCore.Builder.RequestLocalizationOptions +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.SupportedCultures.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.SupportedCultures.set -> void +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.SupportedUICultures.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Builder.RequestLocalizationOptions.SupportedUICultures.set -> void +~Microsoft.AspNetCore.Localization.CookieRequestCultureProvider.CookieName.get -> string +~Microsoft.AspNetCore.Localization.CookieRequestCultureProvider.CookieName.set -> void +~Microsoft.AspNetCore.Localization.CustomRequestCultureProvider.CustomRequestCultureProvider(System.Func> provider) -> void +~Microsoft.AspNetCore.Localization.IRequestCultureFeature.Provider.get -> Microsoft.AspNetCore.Localization.IRequestCultureProvider +~Microsoft.AspNetCore.Localization.IRequestCultureFeature.RequestCulture.get -> Microsoft.AspNetCore.Localization.RequestCulture +~Microsoft.AspNetCore.Localization.IRequestCultureProvider.DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Localization.ProviderCultureResult.Cultures.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Localization.ProviderCultureResult.ProviderCultureResult(System.Collections.Generic.IList cultures) -> void +~Microsoft.AspNetCore.Localization.ProviderCultureResult.ProviderCultureResult(System.Collections.Generic.IList cultures, System.Collections.Generic.IList uiCultures) -> void +~Microsoft.AspNetCore.Localization.ProviderCultureResult.UICultures.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider.QueryStringKey.get -> string +~Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider.QueryStringKey.set -> void +~Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider.UIQueryStringKey.get -> string +~Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider.UIQueryStringKey.set -> void +~Microsoft.AspNetCore.Localization.RequestCulture.Culture.get -> System.Globalization.CultureInfo +~Microsoft.AspNetCore.Localization.RequestCulture.RequestCulture(System.Globalization.CultureInfo culture) -> void +~Microsoft.AspNetCore.Localization.RequestCulture.RequestCulture(System.Globalization.CultureInfo culture, System.Globalization.CultureInfo uiCulture) -> void +~Microsoft.AspNetCore.Localization.RequestCulture.RequestCulture(string culture) -> void +~Microsoft.AspNetCore.Localization.RequestCulture.RequestCulture(string culture, string uiCulture) -> void +~Microsoft.AspNetCore.Localization.RequestCulture.UICulture.get -> System.Globalization.CultureInfo +~Microsoft.AspNetCore.Localization.RequestCultureFeature.Provider.get -> Microsoft.AspNetCore.Localization.IRequestCultureProvider +~Microsoft.AspNetCore.Localization.RequestCultureFeature.RequestCulture.get -> Microsoft.AspNetCore.Localization.RequestCulture +~Microsoft.AspNetCore.Localization.RequestCultureFeature.RequestCultureFeature(Microsoft.AspNetCore.Localization.RequestCulture requestCulture, Microsoft.AspNetCore.Localization.IRequestCultureProvider provider) -> void +~Microsoft.AspNetCore.Localization.RequestCultureProvider.Options.get -> Microsoft.AspNetCore.Builder.RequestLocalizationOptions +~Microsoft.AspNetCore.Localization.RequestCultureProvider.Options.set -> void +~Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.RequestLocalizationMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~abstract Microsoft.AspNetCore.Localization.RequestCultureProvider.DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider.DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Localization.CookieRequestCultureProvider.DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Localization.CustomRequestCultureProvider.DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~override Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider.DetermineProviderCultureResult(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~static Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions.UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions.UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.RequestLocalizationOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions.UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action optionsAction) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ApplicationBuilderExtensions.UseRequestLocalization(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, params string[] cultures) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.RequestLocalizationOptionsExtensions.AddInitialRequestCultureProvider(this Microsoft.AspNetCore.Builder.RequestLocalizationOptions requestLocalizationOptions, Microsoft.AspNetCore.Localization.RequestCultureProvider requestCultureProvider) -> Microsoft.AspNetCore.Builder.RequestLocalizationOptions +~static Microsoft.AspNetCore.Localization.CookieRequestCultureProvider.MakeCookieValue(Microsoft.AspNetCore.Localization.RequestCulture requestCulture) -> string +~static Microsoft.AspNetCore.Localization.CookieRequestCultureProvider.ParseCookieValue(string value) -> Microsoft.AspNetCore.Localization.ProviderCultureResult +~static Microsoft.Extensions.DependencyInjection.RequestLocalizationServiceCollectionExtensions.AddRequestLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.Extensions.DependencyInjection.RequestLocalizationServiceCollectionExtensions.AddRequestLocalization(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static readonly Microsoft.AspNetCore.Localization.CookieRequestCultureProvider.DefaultCookieName -> string +~static readonly Microsoft.AspNetCore.Localization.RequestCultureProvider.NullProviderCultureResult -> System.Threading.Tasks.Task diff --git a/src/Middleware/MiddlewareAnalysis/src/PublicAPI.Shipped.txt b/src/Middleware/MiddlewareAnalysis/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/MiddlewareAnalysis/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/MiddlewareAnalysis/src/PublicAPI.Unshipped.txt b/src/Middleware/MiddlewareAnalysis/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..a435c177eaa8 --- /dev/null +++ b/src/Middleware/MiddlewareAnalysis/src/PublicAPI.Unshipped.txt @@ -0,0 +1,18 @@ +#nullable enable +Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder +Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisMiddleware +Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisStartupFilter +Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisStartupFilter.AnalysisStartupFilter() -> void +Microsoft.Extensions.DependencyInjection.AnalysisServiceCollectionExtensions +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder.AnalysisBuilder(Microsoft.AspNetCore.Builder.IApplicationBuilder inner) -> void +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder.ApplicationServices.get -> System.IServiceProvider +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder.ApplicationServices.set -> void +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder.Build() -> Microsoft.AspNetCore.Http.RequestDelegate +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder.New() -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder.Properties.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder.ServerFeatures.get -> Microsoft.AspNetCore.Http.Features.IFeatureCollection +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisBuilder.Use(System.Func middleware) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisMiddleware.AnalysisMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, System.Diagnostics.DiagnosticSource diagnosticSource, string middlewareName) -> void +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.MiddlewareAnalysis.AnalysisStartupFilter.Configure(System.Action next) -> System.Action +~static Microsoft.Extensions.DependencyInjection.AnalysisServiceCollectionExtensions.AddMiddlewareAnalysis(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/Middleware/ResponseCaching.Abstractions/src/PublicAPI.Shipped.txt b/src/Middleware/ResponseCaching.Abstractions/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/ResponseCaching.Abstractions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/ResponseCaching.Abstractions/src/PublicAPI.Unshipped.txt b/src/Middleware/ResponseCaching.Abstractions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..6425cbd3cd7b --- /dev/null +++ b/src/Middleware/ResponseCaching.Abstractions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,4 @@ +#nullable enable +Microsoft.AspNetCore.ResponseCaching.IResponseCachingFeature +~Microsoft.AspNetCore.ResponseCaching.IResponseCachingFeature.VaryByQueryKeys.get -> string[] +~Microsoft.AspNetCore.ResponseCaching.IResponseCachingFeature.VaryByQueryKeys.set -> void diff --git a/src/Middleware/ResponseCaching/src/PublicAPI.Shipped.txt b/src/Middleware/ResponseCaching/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/ResponseCaching/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/ResponseCaching/src/PublicAPI.Unshipped.txt b/src/Middleware/ResponseCaching/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..70af09627c1d --- /dev/null +++ b/src/Middleware/ResponseCaching/src/PublicAPI.Unshipped.txt @@ -0,0 +1,21 @@ +#nullable enable +Microsoft.AspNetCore.Builder.ResponseCachingExtensions +Microsoft.AspNetCore.ResponseCaching.ResponseCachingFeature +Microsoft.AspNetCore.ResponseCaching.ResponseCachingFeature.ResponseCachingFeature() -> void +Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware +Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions +Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions.MaximumBodySize.get -> long +Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions.MaximumBodySize.set -> void +Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions.ResponseCachingOptions() -> void +Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions.SizeLimit.get -> long +Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions.SizeLimit.set -> void +Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions.UseCaseSensitivePaths.get -> bool +Microsoft.AspNetCore.ResponseCaching.ResponseCachingOptions.UseCaseSensitivePaths.set -> void +Microsoft.Extensions.DependencyInjection.ResponseCachingServicesExtensions +~Microsoft.AspNetCore.ResponseCaching.ResponseCachingFeature.VaryByQueryKeys.get -> string[] +~Microsoft.AspNetCore.ResponseCaching.ResponseCachingFeature.VaryByQueryKeys.set -> void +~Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.ResponseCachingMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.ObjectPool.ObjectPoolProvider poolProvider) -> void +~static Microsoft.AspNetCore.Builder.ResponseCachingExtensions.UseResponseCaching(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.Extensions.DependencyInjection.ResponseCachingServicesExtensions.AddResponseCaching(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.Extensions.DependencyInjection.ResponseCachingServicesExtensions.AddResponseCaching(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/Middleware/ResponseCompression/src/PublicAPI.Shipped.txt b/src/Middleware/ResponseCompression/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/ResponseCompression/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/ResponseCompression/src/PublicAPI.Unshipped.txt b/src/Middleware/ResponseCompression/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..e9eb779c46c9 --- /dev/null +++ b/src/Middleware/ResponseCompression/src/PublicAPI.Unshipped.txt @@ -0,0 +1,56 @@ +#nullable enable +Microsoft.AspNetCore.Builder.ResponseCompressionBuilderExtensions +Microsoft.AspNetCore.Builder.ResponseCompressionServicesExtensions +Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProvider +Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProvider.SupportsFlush.get -> bool +Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProviderOptions +Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProviderOptions.BrotliCompressionProviderOptions() -> void +Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProviderOptions.Level.get -> System.IO.Compression.CompressionLevel +Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProviderOptions.Level.set -> void +Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection +Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection.CompressionProviderCollection() -> void +Microsoft.AspNetCore.ResponseCompression.GzipCompressionProvider +Microsoft.AspNetCore.ResponseCompression.GzipCompressionProvider.SupportsFlush.get -> bool +Microsoft.AspNetCore.ResponseCompression.GzipCompressionProviderOptions +Microsoft.AspNetCore.ResponseCompression.GzipCompressionProviderOptions.GzipCompressionProviderOptions() -> void +Microsoft.AspNetCore.ResponseCompression.GzipCompressionProviderOptions.Level.get -> System.IO.Compression.CompressionLevel +Microsoft.AspNetCore.ResponseCompression.GzipCompressionProviderOptions.Level.set -> void +Microsoft.AspNetCore.ResponseCompression.ICompressionProvider +Microsoft.AspNetCore.ResponseCompression.ICompressionProvider.SupportsFlush.get -> bool +Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider +Microsoft.AspNetCore.ResponseCompression.ResponseCompressionDefaults +Microsoft.AspNetCore.ResponseCompression.ResponseCompressionDefaults.ResponseCompressionDefaults() -> void +Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware +Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions +Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions.EnableForHttps.get -> bool +Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions.EnableForHttps.set -> void +Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions.ResponseCompressionOptions() -> void +Microsoft.AspNetCore.ResponseCompression.ResponseCompressionProvider +~Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProvider.BrotliCompressionProvider(Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProvider.CreateStream(System.IO.Stream outputStream) -> System.IO.Stream +~Microsoft.AspNetCore.ResponseCompression.BrotliCompressionProvider.EncodingName.get -> string +~Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection.Add(System.Type providerType) -> void +~Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection.Add() -> void +~Microsoft.AspNetCore.ResponseCompression.GzipCompressionProvider.CreateStream(System.IO.Stream outputStream) -> System.IO.Stream +~Microsoft.AspNetCore.ResponseCompression.GzipCompressionProvider.EncodingName.get -> string +~Microsoft.AspNetCore.ResponseCompression.GzipCompressionProvider.GzipCompressionProvider(Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.ResponseCompression.ICompressionProvider.CreateStream(System.IO.Stream outputStream) -> System.IO.Stream +~Microsoft.AspNetCore.ResponseCompression.ICompressionProvider.EncodingName.get -> string +~Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider.CheckRequestAcceptsCompression(Microsoft.AspNetCore.Http.HttpContext context) -> bool +~Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider.GetCompressionProvider(Microsoft.AspNetCore.Http.HttpContext context) -> Microsoft.AspNetCore.ResponseCompression.ICompressionProvider +~Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider.ShouldCompressResponse(Microsoft.AspNetCore.Http.HttpContext context) -> bool +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.ResponseCompressionMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.ResponseCompression.IResponseCompressionProvider provider) -> void +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions.ExcludedMimeTypes.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions.ExcludedMimeTypes.set -> void +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions.MimeTypes.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions.MimeTypes.set -> void +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionOptions.Providers.get -> Microsoft.AspNetCore.ResponseCompression.CompressionProviderCollection +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionProvider.CheckRequestAcceptsCompression(Microsoft.AspNetCore.Http.HttpContext context) -> bool +~Microsoft.AspNetCore.ResponseCompression.ResponseCompressionProvider.ResponseCompressionProvider(System.IServiceProvider services, Microsoft.Extensions.Options.IOptions options) -> void +~static Microsoft.AspNetCore.Builder.ResponseCompressionBuilderExtensions.UseResponseCompression(this Microsoft.AspNetCore.Builder.IApplicationBuilder builder) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.ResponseCompressionServicesExtensions.AddResponseCompression(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.AspNetCore.Builder.ResponseCompressionServicesExtensions.AddResponseCompression(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configureOptions) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static readonly Microsoft.AspNetCore.ResponseCompression.ResponseCompressionDefaults.MimeTypes -> System.Collections.Generic.IEnumerable +~virtual Microsoft.AspNetCore.ResponseCompression.ResponseCompressionProvider.GetCompressionProvider(Microsoft.AspNetCore.Http.HttpContext context) -> Microsoft.AspNetCore.ResponseCompression.ICompressionProvider +~virtual Microsoft.AspNetCore.ResponseCompression.ResponseCompressionProvider.ShouldCompressResponse(Microsoft.AspNetCore.Http.HttpContext context) -> bool diff --git a/src/Middleware/Rewrite/src/IISUrlRewriteOptionsExtensions.cs b/src/Middleware/Rewrite/src/IISUrlRewriteOptionsExtensions.cs index 50b32218acce..e8e4f05feb2b 100644 --- a/src/Middleware/Rewrite/src/IISUrlRewriteOptionsExtensions.cs +++ b/src/Middleware/Rewrite/src/IISUrlRewriteOptionsExtensions.cs @@ -2,6 +2,7 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics.CodeAnalysis; using System.IO; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Rewrite.IISUrlRewrite; @@ -21,6 +22,7 @@ public static class IISUrlRewriteOptionsExtensions /// The /// The path to the file containing UrlRewrite rules. /// Server variables are by default sourced from the server if it supports the feature. Use true to disable that behavior + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "Required for backwards compatability")] public static RewriteOptions AddIISUrlRewrite(this RewriteOptions options, IFileProvider fileProvider, string filePath, bool alwaysUseManagedServerVariables = false) { if (options == null) @@ -47,6 +49,7 @@ public static RewriteOptions AddIISUrlRewrite(this RewriteOptions options, IFile /// The /// The text reader stream. /// Server variables are by default sourced from the server if it supports the feature. Use true to disable that behavior + [SuppressMessage("ApiDesign", "RS0026:Do not add multiple public overloads with optional parameters", Justification = "")] public static RewriteOptions AddIISUrlRewrite(this RewriteOptions options, TextReader reader, bool alwaysUseManagedServerVariables = false) { if (options == null) diff --git a/src/Middleware/Rewrite/src/PublicAPI.Shipped.txt b/src/Middleware/Rewrite/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/Rewrite/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/Rewrite/src/PublicAPI.Unshipped.txt b/src/Middleware/Rewrite/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..aaaa6dc15d37 --- /dev/null +++ b/src/Middleware/Rewrite/src/PublicAPI.Unshipped.txt @@ -0,0 +1,56 @@ +#nullable enable +Microsoft.AspNetCore.Builder.RewriteBuilderExtensions +Microsoft.AspNetCore.Rewrite.ApacheModRewriteOptionsExtensions +Microsoft.AspNetCore.Rewrite.IISUrlRewriteOptionsExtensions +Microsoft.AspNetCore.Rewrite.IRule +Microsoft.AspNetCore.Rewrite.RewriteContext +Microsoft.AspNetCore.Rewrite.RewriteContext.Result.get -> Microsoft.AspNetCore.Rewrite.RuleResult +Microsoft.AspNetCore.Rewrite.RewriteContext.Result.set -> void +Microsoft.AspNetCore.Rewrite.RewriteContext.RewriteContext() -> void +Microsoft.AspNetCore.Rewrite.RewriteMiddleware +Microsoft.AspNetCore.Rewrite.RewriteOptions +Microsoft.AspNetCore.Rewrite.RewriteOptions.RewriteOptions() -> void +Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions +Microsoft.AspNetCore.Rewrite.RuleResult +Microsoft.AspNetCore.Rewrite.RuleResult.ContinueRules = 0 -> Microsoft.AspNetCore.Rewrite.RuleResult +Microsoft.AspNetCore.Rewrite.RuleResult.EndResponse = 1 -> Microsoft.AspNetCore.Rewrite.RuleResult +Microsoft.AspNetCore.Rewrite.RuleResult.SkipRemainingRules = 2 -> Microsoft.AspNetCore.Rewrite.RuleResult +~Microsoft.AspNetCore.Rewrite.IRule.ApplyRule(Microsoft.AspNetCore.Rewrite.RewriteContext context) -> void +~Microsoft.AspNetCore.Rewrite.RewriteContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.Rewrite.RewriteContext.HttpContext.set -> void +~Microsoft.AspNetCore.Rewrite.RewriteContext.Logger.get -> Microsoft.Extensions.Logging.ILogger +~Microsoft.AspNetCore.Rewrite.RewriteContext.Logger.set -> void +~Microsoft.AspNetCore.Rewrite.RewriteContext.StaticFileProvider.get -> Microsoft.Extensions.FileProviders.IFileProvider +~Microsoft.AspNetCore.Rewrite.RewriteContext.StaticFileProvider.set -> void +~Microsoft.AspNetCore.Rewrite.RewriteMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Rewrite.RewriteMiddleware.RewriteMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnvironment, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.Rewrite.RewriteOptions.Rules.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Rewrite.RewriteOptions.StaticFileProvider.get -> Microsoft.Extensions.FileProviders.IFileProvider +~Microsoft.AspNetCore.Rewrite.RewriteOptions.StaticFileProvider.set -> void +~static Microsoft.AspNetCore.Builder.RewriteBuilderExtensions.UseRewriter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.RewriteBuilderExtensions.UseRewriter(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Rewrite.RewriteOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Rewrite.ApacheModRewriteOptionsExtensions.AddApacheModRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, Microsoft.Extensions.FileProviders.IFileProvider fileProvider, string filePath) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.ApacheModRewriteOptionsExtensions.AddApacheModRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.IO.TextReader reader) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.IISUrlRewriteOptionsExtensions.AddIISUrlRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, Microsoft.Extensions.FileProviders.IFileProvider fileProvider, string filePath, bool alwaysUseManagedServerVariables = false) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.IISUrlRewriteOptionsExtensions.AddIISUrlRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.IO.TextReader reader, bool alwaysUseManagedServerVariables = false) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.Add(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, Microsoft.AspNetCore.Rewrite.IRule rule) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.Add(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, System.Action applyRule) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirect(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, string regex, string replacement) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirect(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, string regex, string replacement, int statusCode) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToHttps(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToHttps(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToHttps(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode, int? sslPort) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToHttpsPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode, params string[] domains) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToNonWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToNonWwwPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToNonWwwPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, int statusCode, params string[] domains) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToWww(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToWwwPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRedirectToWwwPermanent(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, params string[] domains) -> Microsoft.AspNetCore.Rewrite.RewriteOptions +~static Microsoft.AspNetCore.Rewrite.RewriteOptionsExtensions.AddRewrite(this Microsoft.AspNetCore.Rewrite.RewriteOptions options, string regex, string replacement, bool skipRemainingRules) -> Microsoft.AspNetCore.Rewrite.RewriteOptions diff --git a/src/Middleware/Session/src/PublicAPI.Shipped.txt b/src/Middleware/Session/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/Session/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/Session/src/PublicAPI.Unshipped.txt b/src/Middleware/Session/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..dcf08fb19649 --- /dev/null +++ b/src/Middleware/Session/src/PublicAPI.Unshipped.txt @@ -0,0 +1,41 @@ +#nullable enable +Microsoft.AspNetCore.Builder.SessionMiddlewareExtensions +Microsoft.AspNetCore.Builder.SessionOptions +Microsoft.AspNetCore.Builder.SessionOptions.IOTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.Builder.SessionOptions.IOTimeout.set -> void +Microsoft.AspNetCore.Builder.SessionOptions.IdleTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.Builder.SessionOptions.IdleTimeout.set -> void +Microsoft.AspNetCore.Builder.SessionOptions.SessionOptions() -> void +Microsoft.AspNetCore.Session.DistributedSession +Microsoft.AspNetCore.Session.DistributedSession.Clear() -> void +Microsoft.AspNetCore.Session.DistributedSession.IsAvailable.get -> bool +Microsoft.AspNetCore.Session.DistributedSessionStore +Microsoft.AspNetCore.Session.ISessionStore +Microsoft.AspNetCore.Session.SessionDefaults +Microsoft.AspNetCore.Session.SessionFeature +Microsoft.AspNetCore.Session.SessionFeature.SessionFeature() -> void +Microsoft.AspNetCore.Session.SessionMiddleware +Microsoft.Extensions.DependencyInjection.SessionServiceCollectionExtensions +~Microsoft.AspNetCore.Builder.SessionOptions.Cookie.get -> Microsoft.AspNetCore.Http.CookieBuilder +~Microsoft.AspNetCore.Builder.SessionOptions.Cookie.set -> void +~Microsoft.AspNetCore.Session.DistributedSession.CommitAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Session.DistributedSession.DistributedSession(Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, string sessionKey, System.TimeSpan idleTimeout, System.TimeSpan ioTimeout, System.Func tryEstablishSession, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, bool isNewSessionKey) -> void +~Microsoft.AspNetCore.Session.DistributedSession.Id.get -> string +~Microsoft.AspNetCore.Session.DistributedSession.Keys.get -> System.Collections.Generic.IEnumerable +~Microsoft.AspNetCore.Session.DistributedSession.LoadAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Session.DistributedSession.Remove(string key) -> void +~Microsoft.AspNetCore.Session.DistributedSession.Set(string key, byte[] value) -> void +~Microsoft.AspNetCore.Session.DistributedSession.TryGetValue(string key, out byte[] value) -> bool +~Microsoft.AspNetCore.Session.DistributedSessionStore.Create(string sessionKey, System.TimeSpan idleTimeout, System.TimeSpan ioTimeout, System.Func tryEstablishSession, bool isNewSessionKey) -> Microsoft.AspNetCore.Http.ISession +~Microsoft.AspNetCore.Session.DistributedSessionStore.DistributedSessionStore(Microsoft.Extensions.Caching.Distributed.IDistributedCache cache, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.Session.ISessionStore.Create(string sessionKey, System.TimeSpan idleTimeout, System.TimeSpan ioTimeout, System.Func tryEstablishSession, bool isNewSessionKey) -> Microsoft.AspNetCore.Http.ISession +~Microsoft.AspNetCore.Session.SessionFeature.Session.get -> Microsoft.AspNetCore.Http.ISession +~Microsoft.AspNetCore.Session.SessionFeature.Session.set -> void +~Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.Session.SessionMiddleware.SessionMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory, Microsoft.AspNetCore.DataProtection.IDataProtectionProvider dataProtectionProvider, Microsoft.AspNetCore.Session.ISessionStore sessionStore, Microsoft.Extensions.Options.IOptions options) -> void +~static Microsoft.AspNetCore.Builder.SessionMiddlewareExtensions.UseSession(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.SessionMiddlewareExtensions.UseSession(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.SessionOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.Extensions.DependencyInjection.SessionServiceCollectionExtensions.AddSession(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static Microsoft.Extensions.DependencyInjection.SessionServiceCollectionExtensions.AddSession(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~static readonly Microsoft.AspNetCore.Session.SessionDefaults.CookieName -> string +~static readonly Microsoft.AspNetCore.Session.SessionDefaults.CookiePath -> string diff --git a/src/Middleware/SpaServices.Extensions/src/PublicAPI.Shipped.txt b/src/Middleware/SpaServices.Extensions/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/SpaServices.Extensions/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/SpaServices.Extensions/src/PublicAPI.Unshipped.txt b/src/Middleware/SpaServices.Extensions/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..97179a94213c --- /dev/null +++ b/src/Middleware/SpaServices.Extensions/src/PublicAPI.Unshipped.txt @@ -0,0 +1,53 @@ +#nullable enable +Microsoft.AspNetCore.Builder.SpaApplicationBuilderExtensions +Microsoft.AspNetCore.Builder.SpaPrerenderingOptions +Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.SpaPrerenderingOptions() -> void +Microsoft.AspNetCore.Builder.SpaProxyingExtensions +Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliBuilder +Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddlewareExtensions +Microsoft.AspNetCore.SpaServices.ISpaBuilder +Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder +Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer.ReactDevelopmentServerMiddlewareExtensions +Microsoft.AspNetCore.SpaServices.SpaOptions +Microsoft.AspNetCore.SpaServices.SpaOptions.DefaultPage.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.SpaServices.SpaOptions.DefaultPage.set -> void +Microsoft.AspNetCore.SpaServices.SpaOptions.DevServerPort.get -> int +Microsoft.AspNetCore.SpaServices.SpaOptions.DevServerPort.set -> void +Microsoft.AspNetCore.SpaServices.SpaOptions.SpaOptions() -> void +Microsoft.AspNetCore.SpaServices.SpaOptions.StartupTimeout.get -> System.TimeSpan +Microsoft.AspNetCore.SpaServices.SpaOptions.StartupTimeout.set -> void +Microsoft.AspNetCore.SpaServices.StaticFiles.ISpaStaticFileProvider +Microsoft.AspNetCore.SpaServices.StaticFiles.SpaStaticFilesOptions +Microsoft.AspNetCore.SpaServices.StaticFiles.SpaStaticFilesOptions.SpaStaticFilesOptions() -> void +Microsoft.Extensions.DependencyInjection.SpaStaticFilesExtensions +~Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.BootModuleBuilder.get -> Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder +~Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.BootModuleBuilder.set -> void +~Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.BootModulePath.get -> string +~Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.BootModulePath.set -> void +~Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.ExcludeUrls.get -> string[] +~Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.ExcludeUrls.set -> void +~Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.SupplyData.get -> System.Action> +~Microsoft.AspNetCore.Builder.SpaPrerenderingOptions.SupplyData.set -> void +~Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliBuilder.AngularCliBuilder(string npmScript) -> void +~Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliBuilder.Build(Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.SpaServices.ISpaBuilder.ApplicationBuilder.get -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~Microsoft.AspNetCore.SpaServices.ISpaBuilder.Options.get -> Microsoft.AspNetCore.SpaServices.SpaOptions +~Microsoft.AspNetCore.SpaServices.Prerendering.ISpaPrerendererBuilder.Build(Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.SpaServices.SpaOptions.DefaultPageStaticFileOptions.get -> Microsoft.AspNetCore.Builder.StaticFileOptions +~Microsoft.AspNetCore.SpaServices.SpaOptions.DefaultPageStaticFileOptions.set -> void +~Microsoft.AspNetCore.SpaServices.SpaOptions.PackageManagerCommand.get -> string +~Microsoft.AspNetCore.SpaServices.SpaOptions.PackageManagerCommand.set -> void +~Microsoft.AspNetCore.SpaServices.SpaOptions.SourcePath.get -> string +~Microsoft.AspNetCore.SpaServices.SpaOptions.SourcePath.set -> void +~Microsoft.AspNetCore.SpaServices.StaticFiles.ISpaStaticFileProvider.FileProvider.get -> Microsoft.Extensions.FileProviders.IFileProvider +~Microsoft.AspNetCore.SpaServices.StaticFiles.SpaStaticFilesOptions.RootPath.get -> string +~Microsoft.AspNetCore.SpaServices.StaticFiles.SpaStaticFilesOptions.RootPath.set -> void +~static Microsoft.AspNetCore.Builder.SpaApplicationBuilderExtensions.UseSpa(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, System.Action configuration) -> void +~static Microsoft.AspNetCore.Builder.SpaProxyingExtensions.UseProxyToSpaDevelopmentServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, System.Func> baseUriTaskFactory) -> void +~static Microsoft.AspNetCore.Builder.SpaProxyingExtensions.UseProxyToSpaDevelopmentServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, System.Uri baseUri) -> void +~static Microsoft.AspNetCore.Builder.SpaProxyingExtensions.UseProxyToSpaDevelopmentServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, string baseUri) -> void +~static Microsoft.AspNetCore.SpaServices.AngularCli.AngularCliMiddlewareExtensions.UseAngularCliServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, string npmScript) -> void +~static Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer.ReactDevelopmentServerMiddlewareExtensions.UseReactDevelopmentServer(this Microsoft.AspNetCore.SpaServices.ISpaBuilder spaBuilder, string npmScript) -> void +~static Microsoft.Extensions.DependencyInjection.SpaStaticFilesExtensions.AddSpaStaticFiles(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configuration = null) -> void +~static Microsoft.Extensions.DependencyInjection.SpaStaticFilesExtensions.UseSpaStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder) -> void +~static Microsoft.Extensions.DependencyInjection.SpaStaticFilesExtensions.UseSpaStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder applicationBuilder, Microsoft.AspNetCore.Builder.StaticFileOptions options) -> void diff --git a/src/Middleware/StaticFiles/src/PublicAPI.Shipped.txt b/src/Middleware/StaticFiles/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/StaticFiles/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/StaticFiles/src/PublicAPI.Unshipped.txt b/src/Middleware/StaticFiles/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..5aff8dc36c11 --- /dev/null +++ b/src/Middleware/StaticFiles/src/PublicAPI.Unshipped.txt @@ -0,0 +1,101 @@ +#nullable enable +Microsoft.AspNetCore.Builder.DefaultFilesExtensions +Microsoft.AspNetCore.Builder.DefaultFilesOptions +Microsoft.AspNetCore.Builder.DefaultFilesOptions.DefaultFilesOptions() -> void +Microsoft.AspNetCore.Builder.DirectoryBrowserExtensions +Microsoft.AspNetCore.Builder.DirectoryBrowserOptions +Microsoft.AspNetCore.Builder.DirectoryBrowserOptions.DirectoryBrowserOptions() -> void +Microsoft.AspNetCore.Builder.FileServerExtensions +Microsoft.AspNetCore.Builder.FileServerOptions +Microsoft.AspNetCore.Builder.FileServerOptions.EnableDefaultFiles.get -> bool +Microsoft.AspNetCore.Builder.FileServerOptions.EnableDefaultFiles.set -> void +Microsoft.AspNetCore.Builder.FileServerOptions.EnableDirectoryBrowsing.get -> bool +Microsoft.AspNetCore.Builder.FileServerOptions.EnableDirectoryBrowsing.set -> void +Microsoft.AspNetCore.Builder.FileServerOptions.FileServerOptions() -> void +Microsoft.AspNetCore.Builder.StaticFileExtensions +Microsoft.AspNetCore.Builder.StaticFileOptions +Microsoft.AspNetCore.Builder.StaticFileOptions.HttpsCompression.get -> Microsoft.AspNetCore.Http.Features.HttpsCompressionMode +Microsoft.AspNetCore.Builder.StaticFileOptions.HttpsCompression.set -> void +Microsoft.AspNetCore.Builder.StaticFileOptions.ServeUnknownFileTypes.get -> bool +Microsoft.AspNetCore.Builder.StaticFileOptions.ServeUnknownFileTypes.set -> void +Microsoft.AspNetCore.Builder.StaticFileOptions.StaticFileOptions() -> void +Microsoft.AspNetCore.Builder.StaticFilesEndpointRouteBuilderExtensions +Microsoft.AspNetCore.StaticFiles.DefaultFilesMiddleware +Microsoft.AspNetCore.StaticFiles.DirectoryBrowserMiddleware +Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider +Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider.FileExtensionContentTypeProvider() -> void +Microsoft.AspNetCore.StaticFiles.HtmlDirectoryFormatter +Microsoft.AspNetCore.StaticFiles.IContentTypeProvider +Microsoft.AspNetCore.StaticFiles.IDirectoryFormatter +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions.RedirectToAppendTrailingSlash.get -> bool +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions.RedirectToAppendTrailingSlash.set -> void +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions.RequestPath.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions.RequestPath.set -> void +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions.SharedOptions() -> void +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase.RedirectToAppendTrailingSlash.get -> bool +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase.RedirectToAppendTrailingSlash.set -> void +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase.RequestPath.get -> Microsoft.AspNetCore.Http.PathString +Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase.RequestPath.set -> void +Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware +Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext +Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext.StaticFileResponseContext() -> void +Microsoft.Extensions.DependencyInjection.DirectoryBrowserServiceExtensions +~Microsoft.AspNetCore.Builder.DefaultFilesOptions.DefaultFileNames.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.Builder.DefaultFilesOptions.DefaultFileNames.set -> void +~Microsoft.AspNetCore.Builder.DefaultFilesOptions.DefaultFilesOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) -> void +~Microsoft.AspNetCore.Builder.DirectoryBrowserOptions.DirectoryBrowserOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) -> void +~Microsoft.AspNetCore.Builder.DirectoryBrowserOptions.Formatter.get -> Microsoft.AspNetCore.StaticFiles.IDirectoryFormatter +~Microsoft.AspNetCore.Builder.DirectoryBrowserOptions.Formatter.set -> void +~Microsoft.AspNetCore.Builder.FileServerOptions.DefaultFilesOptions.get -> Microsoft.AspNetCore.Builder.DefaultFilesOptions +~Microsoft.AspNetCore.Builder.FileServerOptions.DirectoryBrowserOptions.get -> Microsoft.AspNetCore.Builder.DirectoryBrowserOptions +~Microsoft.AspNetCore.Builder.FileServerOptions.StaticFileOptions.get -> Microsoft.AspNetCore.Builder.StaticFileOptions +~Microsoft.AspNetCore.Builder.StaticFileOptions.ContentTypeProvider.get -> Microsoft.AspNetCore.StaticFiles.IContentTypeProvider +~Microsoft.AspNetCore.Builder.StaticFileOptions.ContentTypeProvider.set -> void +~Microsoft.AspNetCore.Builder.StaticFileOptions.DefaultContentType.get -> string +~Microsoft.AspNetCore.Builder.StaticFileOptions.DefaultContentType.set -> void +~Microsoft.AspNetCore.Builder.StaticFileOptions.OnPrepareResponse.get -> System.Action +~Microsoft.AspNetCore.Builder.StaticFileOptions.OnPrepareResponse.set -> void +~Microsoft.AspNetCore.Builder.StaticFileOptions.StaticFileOptions(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) -> void +~Microsoft.AspNetCore.StaticFiles.DefaultFilesMiddleware.DefaultFilesMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.StaticFiles.DefaultFilesMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.StaticFiles.DirectoryBrowserMiddleware.DirectoryBrowserMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.StaticFiles.DirectoryBrowserMiddleware.DirectoryBrowserMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, System.Text.Encodings.Web.HtmlEncoder encoder, Microsoft.Extensions.Options.IOptions options) -> void +~Microsoft.AspNetCore.StaticFiles.DirectoryBrowserMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider.FileExtensionContentTypeProvider(System.Collections.Generic.IDictionary mapping) -> void +~Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider.Mappings.get -> System.Collections.Generic.IDictionary +~Microsoft.AspNetCore.StaticFiles.FileExtensionContentTypeProvider.TryGetContentType(string subpath, out string contentType) -> bool +~Microsoft.AspNetCore.StaticFiles.HtmlDirectoryFormatter.HtmlDirectoryFormatter(System.Text.Encodings.Web.HtmlEncoder encoder) -> void +~Microsoft.AspNetCore.StaticFiles.IContentTypeProvider.TryGetContentType(string subpath, out string contentType) -> bool +~Microsoft.AspNetCore.StaticFiles.IDirectoryFormatter.GenerateContentAsync(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IEnumerable contents) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions.FileProvider.get -> Microsoft.Extensions.FileProviders.IFileProvider +~Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions.FileProvider.set -> void +~Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase.FileProvider.get -> Microsoft.Extensions.FileProviders.IFileProvider +~Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase.FileProvider.set -> void +~Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase.SharedOptions.get -> Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions +~Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptionsBase.SharedOptionsBase(Microsoft.AspNetCore.StaticFiles.Infrastructure.SharedOptions sharedOptions) -> void +~Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.StaticFileMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.AspNetCore.Hosting.IWebHostEnvironment hostingEnv, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext.Context.get -> Microsoft.AspNetCore.Http.HttpContext +~Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext.File.get -> Microsoft.Extensions.FileProviders.IFileInfo +~Microsoft.AspNetCore.StaticFiles.StaticFileResponseContext.StaticFileResponseContext(Microsoft.AspNetCore.Http.HttpContext context, Microsoft.Extensions.FileProviders.IFileInfo file) -> void +~static Microsoft.AspNetCore.Builder.DefaultFilesExtensions.UseDefaultFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.DefaultFilesExtensions.UseDefaultFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DefaultFilesOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.DefaultFilesExtensions.UseDefaultFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string requestPath) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.DirectoryBrowserExtensions.UseDirectoryBrowser(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.DirectoryBrowserExtensions.UseDirectoryBrowser(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.DirectoryBrowserOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.DirectoryBrowserExtensions.UseDirectoryBrowser(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string requestPath) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.FileServerExtensions.UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.FileServerExtensions.UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.FileServerOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.FileServerExtensions.UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, bool enableDirectoryBrowsing) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.FileServerExtensions.UseFileServer(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string requestPath) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StaticFileExtensions.UseStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StaticFileExtensions.UseStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.StaticFileOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StaticFileExtensions.UseStaticFiles(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, string requestPath) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string filePath) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string filePath, Microsoft.AspNetCore.Builder.StaticFileOptions options) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string filePath) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.AspNetCore.Builder.StaticFilesEndpointRouteBuilderExtensions.MapFallbackToFile(this Microsoft.AspNetCore.Routing.IEndpointRouteBuilder endpoints, string pattern, string filePath, Microsoft.AspNetCore.Builder.StaticFileOptions options) -> Microsoft.AspNetCore.Builder.IEndpointConventionBuilder +~static Microsoft.Extensions.DependencyInjection.DirectoryBrowserServiceExtensions.AddDirectoryBrowser(this Microsoft.Extensions.DependencyInjection.IServiceCollection services) -> Microsoft.Extensions.DependencyInjection.IServiceCollection +~virtual Microsoft.AspNetCore.StaticFiles.HtmlDirectoryFormatter.GenerateContentAsync(Microsoft.AspNetCore.Http.HttpContext context, System.Collections.Generic.IEnumerable contents) -> System.Threading.Tasks.Task diff --git a/src/Middleware/WebSockets/src/PublicAPI.Shipped.txt b/src/Middleware/WebSockets/src/PublicAPI.Shipped.txt new file mode 100644 index 000000000000..7dc5c58110bf --- /dev/null +++ b/src/Middleware/WebSockets/src/PublicAPI.Shipped.txt @@ -0,0 +1 @@ +#nullable enable diff --git a/src/Middleware/WebSockets/src/PublicAPI.Unshipped.txt b/src/Middleware/WebSockets/src/PublicAPI.Unshipped.txt new file mode 100644 index 000000000000..658e3aa467c8 --- /dev/null +++ b/src/Middleware/WebSockets/src/PublicAPI.Unshipped.txt @@ -0,0 +1,24 @@ +#nullable enable +Microsoft.AspNetCore.Builder.WebSocketMiddlewareExtensions +Microsoft.AspNetCore.Builder.WebSocketOptions +Microsoft.AspNetCore.Builder.WebSocketOptions.KeepAliveInterval.get -> System.TimeSpan +Microsoft.AspNetCore.Builder.WebSocketOptions.KeepAliveInterval.set -> void +Microsoft.AspNetCore.Builder.WebSocketOptions.ReceiveBufferSize.get -> int +Microsoft.AspNetCore.Builder.WebSocketOptions.ReceiveBufferSize.set -> void +Microsoft.AspNetCore.Builder.WebSocketOptions.WebSocketOptions() -> void +Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext +Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext.ExtendedWebSocketAcceptContext() -> void +Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext.KeepAliveInterval.get -> System.TimeSpan? +Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext.KeepAliveInterval.set -> void +Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext.ReceiveBufferSize.get -> int? +Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext.ReceiveBufferSize.set -> void +Microsoft.AspNetCore.WebSockets.WebSocketMiddleware +Microsoft.AspNetCore.WebSockets.WebSocketsDependencyInjectionExtensions +~Microsoft.AspNetCore.Builder.WebSocketOptions.AllowedOrigins.get -> System.Collections.Generic.IList +~Microsoft.AspNetCore.WebSockets.WebSocketMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) -> System.Threading.Tasks.Task +~Microsoft.AspNetCore.WebSockets.WebSocketMiddleware.WebSocketMiddleware(Microsoft.AspNetCore.Http.RequestDelegate next, Microsoft.Extensions.Options.IOptions options, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) -> void +~override Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext.SubProtocol.get -> string +~override Microsoft.AspNetCore.WebSockets.ExtendedWebSocketAcceptContext.SubProtocol.set -> void +~static Microsoft.AspNetCore.Builder.WebSocketMiddlewareExtensions.UseWebSockets(this Microsoft.AspNetCore.Builder.IApplicationBuilder app) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.Builder.WebSocketMiddlewareExtensions.UseWebSockets(this Microsoft.AspNetCore.Builder.IApplicationBuilder app, Microsoft.AspNetCore.Builder.WebSocketOptions options) -> Microsoft.AspNetCore.Builder.IApplicationBuilder +~static Microsoft.AspNetCore.WebSockets.WebSocketsDependencyInjectionExtensions.AddWebSockets(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) -> Microsoft.Extensions.DependencyInjection.IServiceCollection diff --git a/src/MusicStore/samples/MusicStore/ForTesting/Mocks/StartupOpenIdConnectTesting.cs b/src/MusicStore/samples/MusicStore/ForTesting/Mocks/StartupOpenIdConnectTesting.cs index 4eea7e215e42..9792b5853c88 100644 --- a/src/MusicStore/samples/MusicStore/ForTesting/Mocks/StartupOpenIdConnectTesting.cs +++ b/src/MusicStore/samples/MusicStore/ForTesting/Mocks/StartupOpenIdConnectTesting.cs @@ -125,6 +125,8 @@ public void Configure(IApplicationBuilder app) // During development use the ErrorPage middleware to display error information in the browser app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); + // Configure Session. app.UseSession(); diff --git a/src/MusicStore/samples/MusicStore/ForTesting/Mocks/StartupSocialTesting.cs b/src/MusicStore/samples/MusicStore/ForTesting/Mocks/StartupSocialTesting.cs index e0e281dca662..0b562f9063f4 100644 --- a/src/MusicStore/samples/MusicStore/ForTesting/Mocks/StartupSocialTesting.cs +++ b/src/MusicStore/samples/MusicStore/ForTesting/Mocks/StartupSocialTesting.cs @@ -161,6 +161,8 @@ public void Configure(IApplicationBuilder app) // Note: Not recommended for production. app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); + // Configure Session. app.UseSession(); diff --git a/src/MusicStore/samples/MusicStore/Startup.cs b/src/MusicStore/samples/MusicStore/Startup.cs index 60f8d9395172..56e9b980573f 100644 --- a/src/MusicStore/samples/MusicStore/Startup.cs +++ b/src/MusicStore/samples/MusicStore/Startup.cs @@ -134,6 +134,8 @@ public void ConfigureDevelopment(IApplicationBuilder app) // During development use the ErrorPage middleware to display error information in the browser app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); + Configure(app); } diff --git a/src/MusicStore/samples/MusicStore/StartupNtlmAuthentication.cs b/src/MusicStore/samples/MusicStore/StartupNtlmAuthentication.cs index f4e31133232a..3ebb9bbc3f3a 100644 --- a/src/MusicStore/samples/MusicStore/StartupNtlmAuthentication.cs +++ b/src/MusicStore/samples/MusicStore/StartupNtlmAuthentication.cs @@ -117,6 +117,8 @@ public void Configure(IApplicationBuilder app) // Note: Not recommended for production. app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); + app.Use((context, next) => { context.Response.Headers["Arch"] = RuntimeInformation.ProcessArchitecture.ToString(); diff --git a/src/MusicStore/samples/MusicStore/StartupOpenIdConnect.cs b/src/MusicStore/samples/MusicStore/StartupOpenIdConnect.cs index 50403b293384..cbbf1daef531 100644 --- a/src/MusicStore/samples/MusicStore/StartupOpenIdConnect.cs +++ b/src/MusicStore/samples/MusicStore/StartupOpenIdConnect.cs @@ -124,6 +124,8 @@ public void Configure(IApplicationBuilder app) // During development use the ErrorPage middleware to display error information in the browser app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); + // Configure Session. app.UseSession(); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/RazorClassLibrary-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/RazorClassLibrary-CSharp.csproj.in index 78d4ceaeae6a..3ddb38c8ba6b 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/RazorClassLibrary-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/RazorClassLibrary-CSharp.csproj.in @@ -9,6 +9,10 @@ + + + + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json index 3d3cb33674fe..33f9f126343c 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json @@ -26,31 +26,6 @@ "sources": [ { "modifiers": [ - { - "condition": "(!OrganizationalAuth && !IndividualAuth)", - "exclude": [ - "Areas/Identity/Pages/Shared/_LoginPartial.Identity.cshtml", - "Areas/Identity/Pages/Shared/_LoginPartial.OrgAuth.cshtml" - ] - }, - { - "condition": "(OrganizationalAuth || IndividualB2CAuth)", - "rename": { - "Areas/Identity/Pages/Shared/_LoginPartial.OrgAuth.cshtml": "Areas/Identity/Pages/Shared/_LoginPartial.cshtml" - }, - "exclude": [ - "Areas/Identity/Pages/Shared/_LoginPartial.Identity.cshtml" - ] - }, - { - "condition": "(IndividualLocalAuth)", - "rename": { - "Areas/Identity/Pages/Shared/_LoginPartial.Identity.cshtml": "Areas/Identity/Pages/Shared/_LoginPartial.cshtml" - }, - "exclude": [ - "Areas/Identity/Pages/Shared/_LoginPartial.OrgAuth.cshtml" - ] - }, { "condition": "(!IndividualLocalAuth || UseLocalDB)", "exclude": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.OrgAuth.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.OrgAuth.cshtml deleted file mode 100644 index 85263d76e2e4..000000000000 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.OrgAuth.cshtml +++ /dev/null @@ -1,27 +0,0 @@ -@using Microsoft.AspNetCore.Identity -@inject SignInManager SignInManager -@inject UserManager UserManager -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers - - diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.Identity.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml similarity index 100% rename from src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.Identity.cshtml rename to src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/MainLayout.razor.css b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/MainLayout.razor.css index 61a993539a38..43c355a47ac7 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/MainLayout.razor.css +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/MainLayout.razor.css @@ -31,7 +31,7 @@ text-overflow: ellipsis; } -@media (max-width: 767.98px) { +@media (max-width: 640.98px) { .top-row:not(.auth) { display: none; } @@ -45,7 +45,7 @@ } } -@media (min-width: 768px) { +@media (min-width: 641px) { .page { flex-direction: row; } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/NavMenu.razor.css b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/NavMenu.razor.css index 622671ec4c87..acc5f9f81919 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/NavMenu.razor.css +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Shared/NavMenu.razor.css @@ -50,7 +50,7 @@ color: white; } -@media (min-width: 768px) { +@media (min-width: 641px) { .navbar-toggler { display: none; } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Startup.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Startup.cs index 652c82a57099..c3c6fb832ce7 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Startup.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Startup.cs @@ -136,6 +136,9 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); +#if (IndividualLocalAuth) + app.UseMigrationsEndPoint(); +#endif } else { diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/_Imports.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/_Imports.razor index 4fe5a889de3e..48dcfafe899e 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/_Imports.razor +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/_Imports.razor @@ -4,6 +4,7 @@ @using Microsoft.AspNetCore.Components.Forms @using Microsoft.AspNetCore.Components.Routing @using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization @using Microsoft.JSInterop @using BlazorServerWeb_CSharp @using BlazorServerWeb_CSharp.Shared diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/MainLayout.razor.css b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/MainLayout.razor.css index 61a993539a38..43c355a47ac7 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/MainLayout.razor.css +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/MainLayout.razor.css @@ -31,7 +31,7 @@ text-overflow: ellipsis; } -@media (max-width: 767.98px) { +@media (max-width: 640.98px) { .top-row:not(.auth) { display: none; } @@ -45,7 +45,7 @@ } } -@media (min-width: 768px) { +@media (min-width: 641px) { .page { flex-direction: row; } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.razor.css b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.razor.css index 622671ec4c87..acc5f9f81919 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.razor.css +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Shared/NavMenu.razor.css @@ -50,7 +50,7 @@ color: white; } -@media (min-width: 768px) { +@media (min-width: 641px) { .navbar-toggler { display: none; } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Startup.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Startup.cs index 52df8d06aa59..00aef16c8017 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Startup.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Startup.cs @@ -99,6 +99,9 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); +#if (IndividualLocalAuth) + app.UseMigrationsEndPoint(); +#endif app.UseWebAssemblyDebugging(); } else diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/ExampleJsInterop.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/ExampleJsInterop.cs index 4e5efbbcdf0f..769455838f24 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/ExampleJsInterop.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/ExampleJsInterop.cs @@ -1,16 +1,39 @@ -using Microsoft.JSInterop; +using System; using System.Threading.Tasks; +using Microsoft.JSInterop; namespace Company.RazorClassLibrary1 { - public class ExampleJsInterop + // This class provides an example of how JavaScript functionality can be wrapped + // in a .NET class for easy consumption. The associated JavaScript module is + // loaded on demand when first needed. + // + // This class can be registered as scoped DI service and then injected into Blazor + // components for use. + + public class ExampleJsInterop : IAsyncDisposable { - public static ValueTask Prompt(IJSRuntime jsRuntime, string message) + private readonly Lazy> moduleTask; + + public ExampleJsInterop(IJSRuntime jsRuntime) + { + moduleTask = new (() => jsRuntime.InvokeAsync( + "import", "./_content/Company.RazorClassLibrary1/exampleJsInterop.js").AsTask()); + } + + public async ValueTask Prompt(string message) + { + var module = await moduleTask.Value; + return await module.InvokeAsync("showPrompt", message); + } + + public async ValueTask DisposeAsync() { - // Implemented in exampleJsInterop.js - return jsRuntime.InvokeAsync( - "exampleJsFunctions.showPrompt", - message); + if (moduleTask.IsValueCreated) + { + var module = await moduleTask.Value; + await module.DisposeAsync(); + } } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/wwwroot/exampleJsInterop.js b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/wwwroot/exampleJsInterop.js index e35d0744fb35..ea8d76ad2d12 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/wwwroot/exampleJsInterop.js +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/wwwroot/exampleJsInterop.js @@ -1,8 +1,6 @@ -// This file is to show how a library package may provide JavaScript interop features -// wrapped in a .NET API +// This is a JavaScript module that is loaded on demand. It can export any number of +// functions, and may import other JavaScript modules if required. -window.exampleJsFunctions = { - showPrompt: function (message) { - return prompt(message, 'Type anything here'); - } -}; +export function showPrompt(message) { + return prompt(message, 'Type anything here'); +} diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_Layout.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_Layout.cshtml index 835d806c2ee6..e2a66b3b62d4 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_Layout.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_Layout.cshtml @@ -16,12 +16,7 @@ aria-expanded="false" aria-label="Toggle navigation"> - diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Startup.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Startup.cs index 0114d620818c..36409d8e2642 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Startup.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Startup.cs @@ -119,6 +119,9 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); +#if (IndividualLocalAuth) + app.UseMigrationsEndPoint(); +#endif } else { diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Startup.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Startup.cs index 1308fe4cab66..f9b4447b64c9 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Startup.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Startup.cs @@ -120,6 +120,9 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); +#if (IndividualLocalAuth) + app.UseMigrationsEndPoint(); +#endif } else { diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_Layout.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_Layout.cshtml index 5234625f8d2e..560ffb88ce24 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_Layout.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_Layout.cshtml @@ -16,12 +16,7 @@ aria-expanded="false" aria-label="Toggle navigation"> - diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/app/nav-menu/nav-menu.component.html b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/app/nav-menu/nav-menu.component.html index 79a4b2185c66..1b2e45ad5795 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/app/nav-menu/nav-menu.component.html +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/src/app/nav-menu/nav-menu.component.html @@ -16,12 +16,9 @@ diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs index 73e8a87af1db..ed119d2a1399 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Startup.cs @@ -72,6 +72,9 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); +#if (IndividualLocalAuth) + app.UseMigrationsEndPoint(); +#endif } else { diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs index 378ce7bcee4e..6e1485ddd78f 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Startup.cs @@ -74,6 +74,9 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); +#if (IndividualLocalAuth) + app.UseMigrationsEndPoint(); +#endif } else { diff --git a/src/ProjectTemplates/test/MvcTemplateTest.cs b/src/ProjectTemplates/test/MvcTemplateTest.cs index e3fdf66b3aab..9bbe8fdc836a 100644 --- a/src/ProjectTemplates/test/MvcTemplateTest.cs +++ b/src/ProjectTemplates/test/MvcTemplateTest.cs @@ -142,10 +142,10 @@ public async Task MvcTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.ForgotPassword, Links = new string [] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.PrivacyUrl } }, @@ -154,10 +154,10 @@ public async Task MvcTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.HomeUrl, Links = new string[] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.DocsUrl, PageUrls.PrivacyUrl } @@ -167,10 +167,10 @@ public async Task MvcTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.PrivacyFullUrl, Links = new string[] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.PrivacyUrl } }, @@ -179,10 +179,10 @@ public async Task MvcTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.LoginUrl, Links = new string[] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.ForgotPassword, PageUrls.RegisterUrl, PageUrls.ResendEmailConfirmation, @@ -194,10 +194,10 @@ public async Task MvcTemplate_IndividualAuth(bool useLocalDB) Url = PageUrls.RegisterUrl, Links = new string [] { PageUrls.HomeUrl, - PageUrls.RegisterUrl, - PageUrls.LoginUrl, PageUrls.HomeUrl, PageUrls.PrivacyUrl, + PageUrls.RegisterUrl, + PageUrls.LoginUrl, PageUrls.ExternalArticle, PageUrls.PrivacyUrl } diff --git a/src/ProjectTemplates/test/template-baselines.json b/src/ProjectTemplates/test/template-baselines.json index e77037842c72..ac99c7a49167 100644 --- a/src/ProjectTemplates/test/template-baselines.json +++ b/src/ProjectTemplates/test/template-baselines.json @@ -877,9 +877,9 @@ "Files": [ "wwwroot/background.png", "wwwroot/exampleJsInterop.js", - "wwwroot/styles.css", "_Imports.razor", "Component1.razor", + "Component1.razor.css", "ExampleJsInterop.cs" ] }, diff --git a/src/Razor/Microsoft.NET.Sdk.Razor/test/ConcatenateFilesTest.cs b/src/Razor/Microsoft.NET.Sdk.Razor/test/ConcatenateFilesTest.cs index b5b1adbe9310..bccddafac496 100644 --- a/src/Razor/Microsoft.NET.Sdk.Razor/test/ConcatenateFilesTest.cs +++ b/src/Razor/Microsoft.NET.Sdk.Razor/test/ConcatenateFilesTest.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.IO; +using Microsoft.AspNetCore.Testing; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using Xunit; @@ -323,6 +324,7 @@ public void BundlesScopedCssFiles_DoesNotOverrideBundleForSameContents() } [Fact] + [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/25623")] public void BundlesScopedCssFiles_UpdatesBundleWhenContentsChange() { // Arrange diff --git a/src/Security/Authentication/Negotiate/src/Internal/LdapAdapter.cs b/src/Security/Authentication/Negotiate/src/Internal/LdapAdapter.cs index 4ddad3c5e31b..ca47c0282280 100644 --- a/src/Security/Authentication/Negotiate/src/Internal/LdapAdapter.cs +++ b/src/Security/Authentication/Negotiate/src/Internal/LdapAdapter.cs @@ -1,11 +1,13 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System.Collections.Generic; using System.DirectoryServices.Protocols; using System.Linq; using System.Security.Claims; using System.Text; using System.Threading.Tasks; +using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Logging; namespace Microsoft.AspNetCore.Authentication.Negotiate @@ -15,8 +17,26 @@ internal static class LdapAdapter public static async Task RetrieveClaimsAsync(LdapSettings settings, ClaimsIdentity identity, ILogger logger) { var user = identity.Name; - var userAccountName = user.Substring(0, user.IndexOf('@')); + var userAccountNameIndex = user.IndexOf('@'); + var userAccountName = userAccountNameIndex == -1 ? user : user.Substring(0, userAccountNameIndex); + + if (settings.ClaimsCache == null) + { + settings.ClaimsCache = new MemoryCache(new MemoryCacheOptions { SizeLimit = settings.ClaimsCacheSize }); + } + + if (settings.ClaimsCache.TryGetValue>(user, out var cachedClaims)) + { + foreach (var claim in cachedClaims) + { + identity.AddClaim(new Claim(identity.RoleClaimType, claim)); + } + + return; + } + var distinguishedName = settings.Domain.Split('.').Select(name => $"dc={name}").Aggregate((a, b) => $"{a},{b}"); + var retrievedClaims = new List(); var filter = $"(&(objectClass=user)(sAMAccountName={userAccountName}))"; // This is using ldap search query language, it is looking on the server for someUser var searchRequest = new SearchRequest(distinguishedName, filter, SearchScope.Subtree, null); @@ -45,13 +65,27 @@ public static async Task RetrieveClaimsAsync(LdapSettings settings, ClaimsIdenti if (!settings.IgnoreNestedGroups) { - GetNestedGroups(settings.LdapConnection, identity, distinguishedName, groupCN, logger); + GetNestedGroups(settings.LdapConnection, identity, distinguishedName, groupCN, logger, retrievedClaims); } else { - AddRole(identity, groupCN); + retrievedClaims.Add(groupCN); } } + + var entrySize = user.Length * 2; //Approximate the size of stored key in memory cache. + foreach (var claim in retrievedClaims) + { + identity.AddClaim(new Claim(identity.RoleClaimType, claim)); + entrySize += claim.Length * 2; //Approximate the size of stored value in memory cache. + } + + settings.ClaimsCache.Set(user, + retrievedClaims, + new MemoryCacheEntryOptions() + .SetSize(entrySize) + .SetSlidingExpiration(settings.ClaimsCacheSlidingExpiration) + .SetAbsoluteExpiration(settings.ClaimsCacheAbsoluteExpiration)); } else { @@ -59,10 +93,10 @@ public static async Task RetrieveClaimsAsync(LdapSettings settings, ClaimsIdenti } } - private static void GetNestedGroups(LdapConnection connection, ClaimsIdentity principal, string distinguishedName, string groupCN, ILogger logger) + private static void GetNestedGroups(LdapConnection connection, ClaimsIdentity principal, string distinguishedName, string groupCN, ILogger logger, IList retrievedClaims) { var filter = $"(&(objectClass=group)(sAMAccountName={groupCN}))"; // This is using ldap search query language, it is looking on the server for someUser - var searchRequest = new SearchRequest(distinguishedName, filter, System.DirectoryServices.Protocols.SearchScope.Subtree, null); + var searchRequest = new SearchRequest(distinguishedName, filter, SearchScope.Subtree, null); var searchResponse = (SearchResponse)connection.SendRequest(searchRequest); if (searchResponse.Entries.Count > 0) @@ -74,7 +108,7 @@ private static void GetNestedGroups(LdapConnection connection, ClaimsIdentity pr var group = searchResponse.Entries[0]; //Get the object that was found on ldap string name = group.DistinguishedName; - AddRole(principal, name); + retrievedClaims.Add(name); var memberof = group.Attributes["memberof"]; // You can access ldap Attributes with Attributes property if (memberof != null) @@ -83,15 +117,10 @@ private static void GetNestedGroups(LdapConnection connection, ClaimsIdentity pr { var groupDN = $"{Encoding.UTF8.GetString((byte[])member)}"; var nestedGroupCN = groupDN.Split(',')[0].Substring("CN=".Length); - GetNestedGroups(connection, principal, distinguishedName, nestedGroupCN, logger); + GetNestedGroups(connection, principal, distinguishedName, nestedGroupCN, logger, retrievedClaims); } } } } - - private static void AddRole(ClaimsIdentity identity, string role) - { - identity.AddClaim(new Claim(identity.RoleClaimType, role)); - } } } diff --git a/src/Security/Authentication/Negotiate/src/LdapSettings.cs b/src/Security/Authentication/Negotiate/src/LdapSettings.cs index 1e26c26c14d4..cdefe6f676e1 100644 --- a/src/Security/Authentication/Negotiate/src/LdapSettings.cs +++ b/src/Security/Authentication/Negotiate/src/LdapSettings.cs @@ -3,6 +3,7 @@ using System; using System.DirectoryServices.Protocols; +using Microsoft.Extensions.Caching.Memory; namespace Microsoft.AspNetCore.Authentication.Negotiate { @@ -56,6 +57,25 @@ public class LdapSettings /// public LdapConnection LdapConnection { get; set; } + /// + /// The sliding expiration that should be used for entries in the cache for user claims, defaults to 10 minutes. + /// This is a sliding expiration that will extend each time claims for a user is retrieved. + /// + public TimeSpan ClaimsCacheSlidingExpiration { get; set; } = TimeSpan.FromMinutes(10); + + /// + /// The absolute expiration that should be used for entries in the cache for user claims, defaults to 60 minutes. + /// This is an absolute expiration that starts when a claims for a user is retrieved for the first time. + /// + public TimeSpan ClaimsCacheAbsoluteExpiration { get; set; } = TimeSpan.FromMinutes(60); + + /// + /// The maximum size of the claim results cache, defaults to 100 MB. + /// + public int ClaimsCacheSize { get; set; } = 100 * 1024 * 1024; + + internal MemoryCache ClaimsCache { get; set; } + public void Validate() { if (EnableLdapClaimResolution) diff --git a/src/Security/Authentication/Negotiate/test/Negotiate.Test/Microsoft.AspNetCore.Authentication.Negotiate.Test.csproj b/src/Security/Authentication/Negotiate/test/Negotiate.Test/Microsoft.AspNetCore.Authentication.Negotiate.Test.csproj index 40c623bd117a..b14d633eabbf 100644 --- a/src/Security/Authentication/Negotiate/test/Negotiate.Test/Microsoft.AspNetCore.Authentication.Negotiate.Test.csproj +++ b/src/Security/Authentication/Negotiate/test/Negotiate.Test/Microsoft.AspNetCore.Authentication.Negotiate.Test.csproj @@ -10,6 +10,7 @@ + diff --git a/src/Security/Authentication/Negotiate/test/Negotiate.Test/NegotiateHandlerTests.cs b/src/Security/Authentication/Negotiate/test/Negotiate.Test/NegotiateHandlerTests.cs index 0b0b7b14cd2d..0d84e1f5d4a4 100644 --- a/src/Security/Authentication/Negotiate/test/Negotiate.Test/NegotiateHandlerTests.cs +++ b/src/Security/Authentication/Negotiate/test/Negotiate.Test/NegotiateHandlerTests.cs @@ -13,7 +13,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; using Microsoft.AspNetCore.TestHost; -using Microsoft.AspNetCore.Testing; +using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Net.Http.Headers; @@ -208,6 +208,28 @@ public async Task AuthHeaderAfterNtlmCompleted_ReAuthenticates(bool persist) await NtlmStage1And2Auth(server, testConnection); } + [Fact] + public async Task RBACClaimsRetrievedFromCacheAfterKerberosCompleted() + { + var claimsCache = new MemoryCache(new MemoryCacheOptions()); + claimsCache.Set("name", new string[] { "CN=Domain Admins,CN=Users,DC=domain,DC=net" }); + NegotiateOptions negotiateOptions = null; + using var host = await CreateHostAsync(options => + { + options.EnableLdap(ldapSettings => + { + ldapSettings.Domain = "domain.NET"; + ldapSettings.ClaimsCache = claimsCache; + ldapSettings.EnableLdapClaimResolution = false; // This disables binding to the LDAP connection on startup + }); + negotiateOptions = options; + }); + var server = host.GetTestServer(); + var testConnection = new TestConnection(); + negotiateOptions.EnableLdap(_ => { }); // Forcefully re-enable ldap claims resolution to trigger RBAC claims retrieval from cache + await AuthenticateAndRetrieveRBACClaims(server, testConnection); + } + [Theory] [InlineData(false)] [InlineData(true)] @@ -304,6 +326,12 @@ public async Task OtherError_Throws() var ex = await Assert.ThrowsAsync(() => SendAsync(server, "/404", testConnection, "Negotiate OtherError")); Assert.Equal("A test other error occurred", ex.Message); } + private static async Task AuthenticateAndRetrieveRBACClaims(TestServer server, TestConnection testConnection) + { + var result = await SendAsync(server, "/AuthenticateAndRetrieveRBACClaims", testConnection, "Negotiate ClientKerberosBlob"); + Assert.Equal(StatusCodes.Status200OK, result.Response.StatusCode); + Assert.Equal("Negotiate ServerKerberosBlob", result.Response.Headers[HeaderNames.WWWAuthenticate]); + } // Single Stage private static async Task KerberosAuth(TestServer server, TestConnection testConnection) @@ -408,6 +436,24 @@ private static void ConfigureEndpoints(IEndpointRouteBuilder builder) await context.Response.WriteAsync(name); }); + builder.Map("/AuthenticateAndRetrieveRBACClaims", async context => + { + if (!context.User.Identity.IsAuthenticated) + { + await context.ChallengeAsync(); + return; + } + + Assert.Equal("HTTP/1.1", context.Request.Protocol); // Not HTTP/2 + var name = context.User.Identity.Name; + Assert.False(string.IsNullOrEmpty(name), "name"); + Assert.Contains( + context.User.Claims, + claim => claim.Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/role" + && claim.Value == "CN=Domain Admins,CN=Users,DC=domain,DC=net"); + await context.Response.WriteAsync(name); + }); + builder.Map("/AlreadyAuthenticated", async context => { Assert.Equal("HTTP/1.1", context.Request.Protocol); // Not HTTP/2 diff --git a/src/Security/samples/Identity.ExternalClaims/Startup.cs b/src/Security/samples/Identity.ExternalClaims/Startup.cs index 8ad8188edf6c..30f63bf4ad3f 100644 --- a/src/Security/samples/Identity.ExternalClaims/Startup.cs +++ b/src/Security/samples/Identity.ExternalClaims/Startup.cs @@ -74,6 +74,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); + app.UseMigrationsEndPoint(); } else { diff --git a/src/Shared/JSInterop/JSCallResultTypeHelper.cs b/src/Shared/JSInterop/JSCallResultTypeHelper.cs index 82c3920c7210..8bf1a547fc1b 100644 --- a/src/Shared/JSInterop/JSCallResultTypeHelper.cs +++ b/src/Shared/JSInterop/JSCallResultTypeHelper.cs @@ -1,15 +1,28 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System.Reflection; + namespace Microsoft.JSInterop { internal static class JSCallResultTypeHelper { + // We avoid using Assembly.GetExecutingAssembly() because this is shared code. + private static readonly Assembly _currentAssembly = typeof(JSCallResultType).Assembly; + public static JSCallResultType FromGeneric() - => typeof(TResult) == typeof(IJSObjectReference) - || typeof(TResult) == typeof(IJSInProcessObjectReference) - || typeof(TResult) == typeof(IJSUnmarshalledObjectReference) ? - JSCallResultType.JSObjectReference : - JSCallResultType.Default; + { + if (typeof(TResult).Assembly == _currentAssembly + && (typeof(TResult) == typeof(IJSObjectReference) + || typeof(TResult) == typeof(IJSInProcessObjectReference) + || typeof(TResult) == typeof(IJSUnmarshalledObjectReference))) + { + return JSCallResultType.JSObjectReference; + } + else + { + return JSCallResultType.Default; + } + } } } diff --git a/src/SignalR/clients/java/signalr/core/signalr.client.java.core.javaproj b/src/SignalR/clients/java/signalr/core/signalr.client.java.core.javaproj index 2bc876ea0ccb..6454353c7085 100644 --- a/src/SignalR/clients/java/signalr/core/signalr.client.java.core.javaproj +++ b/src/SignalR/clients/java/signalr/core/signalr.client.java.core.javaproj @@ -7,8 +7,6 @@ true false - - $(GradleOptions) -Dorg.gradle.daemon=false $(OutputPath) @@ -21,37 +19,5 @@ - - - - - $(PackDependsOn); - Build - - - - - - $(GradleOptions) -PpackageVersion="$(PackageVersion)" - - - - - - - - - - - - - - - - - - - - diff --git a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java index 0aa4e4c336ca..e67bdacc8867 100644 --- a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java +++ b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/HubConnection.java @@ -527,7 +527,9 @@ private Completable stop(String errorMessage) { hubConnectionStateLock.unlock(); } - return transport.stop(); + Completable stop = transport.stop(); + stop.onErrorComplete().subscribe(); + return stop; } /** diff --git a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/LongPollingTransport.java b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/LongPollingTransport.java index 00dc46f97b74..d52d5edb3880 100644 --- a/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/LongPollingTransport.java +++ b/src/SignalR/clients/java/signalr/core/src/main/java/com/microsoft/signalr/LongPollingTransport.java @@ -19,7 +19,7 @@ class LongPollingTransport implements Transport { private OnReceiveCallBack onReceiveCallBack; - private TransportOnClosedCallback onClose; + private TransportOnClosedCallback onClose = (reason) -> {}; private String url; private final HttpClient client; private final HttpClient pollingClient; @@ -30,6 +30,7 @@ class LongPollingTransport implements Transport { private String pollUrl; private String closeError; private CompletableSubject receiveLoop = CompletableSubject.create(); + private CompletableSubject closeSubject = CompletableSubject.create(); private ExecutorService threadPool; private ExecutorService onReceiveThread; private AtomicBoolean stopCalled = new AtomicBoolean(false); @@ -157,7 +158,7 @@ public void setOnClose(TransportOnClosedCallback onCloseCallback) { public Completable stop() { if (stopCalled.compareAndSet(false, true)) { this.active = false; - return this.updateHeaderToken().andThen(Completable.defer(() -> { + Completable stopCompletable = this.updateHeaderToken().andThen(Completable.defer(() -> { HttpRequest request = new HttpRequest(); request.addHeaders(headers); return this.pollingClient.delete(this.url, request).ignoreElement() @@ -168,8 +169,10 @@ public Completable stop() { })).doOnError(e -> { cleanup(e.getMessage()); }); + + stopCompletable.subscribe(closeSubject); } - return Completable.complete(); + return closeSubject; } private void cleanup(String error) { diff --git a/src/SignalR/clients/java/signalr/messagepack/signalr.client.java.messagepack.javaproj b/src/SignalR/clients/java/signalr/messagepack/signalr.client.java.messagepack.javaproj index 37e14879af24..09d1441cc1ab 100644 --- a/src/SignalR/clients/java/signalr/messagepack/signalr.client.java.messagepack.javaproj +++ b/src/SignalR/clients/java/signalr/messagepack/signalr.client.java.messagepack.javaproj @@ -7,8 +7,6 @@ true false - - $(GradleOptions) -Dorg.gradle.daemon=false $(OutputPath) @@ -21,37 +19,9 @@ - - - - - $(PackDependsOn); - Build - - + + + - - - $(GradleOptions) -PpackageVersion="$(PackageVersion)" - - - - - - - - - - - - - - - - - - - - diff --git a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj index d44d8d25a0d9..a3f8bee075f5 100644 --- a/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj +++ b/src/SignalR/clients/java/signalr/test/signalr.client.java.Tests.javaproj @@ -8,12 +8,15 @@ true false - - $(GradleOptions) -Dorg.gradle.daemon=false $(OutputPath) true + + + + + @@ -21,9 +24,7 @@ - - - + @@ -46,8 +47,6 @@ - - $(GradleOptions) -PpackageVersion="$(PackageVersion)" chmod +x ./gradlew && ./gradlew $(GradleOptions) test call gradlew $(GradleOptions) test diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java index 402a21c74b91..655bd807c01f 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/HubConnectionTest.java @@ -38,7 +38,7 @@ class HubConnectionTest { @Test public void checkHubConnectionState() { HubConnection hubConnection = TestUtils.createHubConnection("http://example.com"); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); @@ -49,7 +49,7 @@ public void checkHubConnectionState() { public void transportCloseTriggersStopInHubConnection() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); mockTransport.stop(); @@ -67,7 +67,7 @@ public void transportCloseWithErrorTriggersStopInHubConnection() { message.set(error.getMessage()); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); mockTransport.stopWithError(errorMessage); assertEquals(errorMessage, message.get()); @@ -82,7 +82,7 @@ public void checkHubConnectionStateNoHandShakeResponse() { .shouldSkipNegotiate(true) .withHandshakeResponseTimeout(100) .build(); - Throwable exception = assertThrows(RuntimeException.class, () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + Throwable exception = assertThrows(RuntimeException.class, () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals(TimeoutException.class, exception.getCause().getClass()); assertEquals("Timed out waiting for the server to respond to the handshake message.", exception.getCause().getMessage()); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); @@ -93,7 +93,7 @@ public void constructHubConnectionWithHttpConnectionOptions() { Transport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); @@ -105,7 +105,7 @@ public void hubConnectionClosesAfterCloseMessage() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); @@ -119,21 +119,21 @@ public void hubConnectionUrlCanBeChanged() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("http://example.com", hubConnection.getBaseUrl()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); hubConnection.setBaseUrl("http://newurl.com"); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals("http://newurl.com", hubConnection.getBaseUrl()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); } @Test @@ -141,7 +141,7 @@ public void canUpdateUrlInOnClosed() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("http://example.com", hubConnection.getBaseUrl()); @@ -150,15 +150,15 @@ public void canUpdateUrlInOnClosed() { hubConnection.setBaseUrl("http://newurl.com"); }); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals("http://newurl.com", hubConnection.getBaseUrl()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); } @Test @@ -166,7 +166,7 @@ public void changingUrlWhenConnectedThrows() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("http://example.com", hubConnection.getBaseUrl()); @@ -180,7 +180,7 @@ public void settingNewUrlToNullThrows() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("http://example.com", hubConnection.getBaseUrl()); @@ -195,7 +195,7 @@ public void invalidHandShakeResponse() { HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); hubConnection.start(); - mockTransport.getStartTask().timeout(1, TimeUnit.SECONDS).blockingAwait(); + mockTransport.getStartTask().timeout(30, TimeUnit.SECONDS).blockingAwait(); Throwable exception = assertThrows(RuntimeException.class, () -> mockTransport.receiveMessage("{" + RECORD_SEPARATOR)); assertEquals("An invalid handshake response was received from the server.", exception.getMessage()); @@ -208,8 +208,8 @@ public void hubConnectionReceiveHandshakeResponseWithError() { HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); hubConnection.start(); - mockTransport.getStartTask().timeout(1, TimeUnit.SECONDS).blockingAwait(); - Throwable exception = assertThrows(RuntimeException.class, () -> + mockTransport.getStartTask().timeout(30, TimeUnit.SECONDS).blockingAwait(); + Throwable exception = assertThrows(RuntimeException.class, () -> mockTransport.receiveMessage("{\"error\":\"Requested protocol 'messagepack' is not available.\"}" + RECORD_SEPARATOR)); assertEquals("Error in handshake Requested protocol 'messagepack' is not available.", exception.getMessage()); } @@ -226,7 +226,7 @@ public void registeringMultipleHandlersAndBothGetTriggered() { assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); String message = TestUtils.byteBufferToString(mockTransport.getSentMessages()[0]); String expectedHanshakeRequest = "{\"protocol\":\"json\",\"version\":1}" + RECORD_SEPARATOR; @@ -250,7 +250,7 @@ public void removeHandlerByName() { assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); String message = TestUtils.byteBufferToString(mockTransport.getSentMessages()[0]); String expectedHanshakeRequest = "{\"protocol\":\"json\",\"version\":1}" + RECORD_SEPARATOR; @@ -277,7 +277,7 @@ public void addAndRemoveHandlerImmediately() { assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); String message = TestUtils.byteBufferToString(mockTransport.getSentMessages()[0]); String expectedHanshakeRequest = "{\"protocol\":\"json\",\"version\":1}" + RECORD_SEPARATOR; @@ -302,7 +302,7 @@ public void removingMultipleHandlersWithOneCallToRemove() { assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); String message = TestUtils.byteBufferToString(mockTransport.getSentMessages()[0]); String expectedHanshakeRequest = "{\"protocol\":\"json\",\"version\":1}" + RECORD_SEPARATOR; @@ -331,7 +331,7 @@ public void removeHandlerWithUnsubscribe() { assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); String message = TestUtils.byteBufferToString(mockTransport.getSentMessages()[0]); String expectedHanshakeRequest = "{\"protocol\":\"json\",\"version\":1}" + RECORD_SEPARATOR; @@ -363,7 +363,7 @@ public void unsubscribeTwice() { assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); String message = TestUtils.byteBufferToString(mockTransport.getSentMessages()[0]); String expectedHanshakeRequest = "{\"protocol\":\"json\",\"version\":1}" + RECORD_SEPARATOR; @@ -398,7 +398,7 @@ public void removeSingleHandlerWithUnsubscribe() { assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); String message = TestUtils.byteBufferToString(mockTransport.getSentMessages()[0]); String expectedHanshakeRequest = "{\"protocol\":\"json\",\"version\":1}" + RECORD_SEPARATOR; @@ -426,7 +426,7 @@ public void addAndRemoveHandlerImmediatelyWithSubscribe() { assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); try { mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[]}" + RECORD_SEPARATOR); @@ -450,7 +450,7 @@ public void registeringMultipleHandlersThatTakeParamsAndBothGetTriggered() { hubConnection.on("add", action, Double.class); assertEquals(Double.valueOf(0), value.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"add\",\"arguments\":[12]}" + RECORD_SEPARATOR); // Confirming that our handler was called and the correct message was passed in. @@ -462,7 +462,7 @@ public void checkStreamUploadSingleItemThroughSend() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream); @@ -481,7 +481,7 @@ public void checkStreamUploadMultipleStreamsThroughSend() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject firstStream = ReplaySubject.create(); ReplaySubject secondStream = ReplaySubject.create(); @@ -508,7 +508,7 @@ public void checkStreamUploadThroughSendWithArgs() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream, 12); @@ -528,7 +528,7 @@ public void streamMapIsClearedOnClose() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream, 12); @@ -542,7 +542,7 @@ public void streamMapIsClearedOnClose() { messages = mockTransport.getSentMessages(); assertEquals("{\"type\":3,\"invocationId\":\"1\"}\u001E", TestUtils.byteBufferToString(messages[3])); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(hubConnection.getStreamMap().isEmpty()); } @@ -552,7 +552,7 @@ public void streamMapEntriesRemovedOnStreamClose() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream, 12); @@ -587,7 +587,7 @@ public void streamMapEntriesRemovedOnStreamClose() { assertEquals("{\"type\":3,\"invocationId\":\"1\"}\u001E", TestUtils.byteBufferToString(messages[5])); assertEquals("{\"type\":3,\"invocationId\":\"2\",\"error\":\"java.lang.Exception: Exception\"}\u001E", TestUtils.byteBufferToString(messages[6])); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(hubConnection.getStreamMap().isEmpty()); } @@ -596,7 +596,7 @@ public void useSameSubjectMultipleTimes() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream, stream); @@ -620,7 +620,7 @@ public void checkStreamUploadSingleItemThroughInvoke() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.invoke(String.class, "UploadStream", stream); @@ -631,7 +631,7 @@ public void checkStreamUploadSingleItemThroughInvoke() { System.out.println(TestUtils.byteBufferToString(bb)); } assertEquals(3, messages.length); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"2\"]}\u001E", + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"2\"]}\u001E", TestUtils.byteBufferToString(messages[1])); assertEquals("{\"type\":2,\"invocationId\":\"2\",\"item\":\"FirstItem\"}\u001E", TestUtils.byteBufferToString(messages[2])); @@ -639,13 +639,13 @@ public void checkStreamUploadSingleItemThroughInvoke() { messages = mockTransport.getSentMessages(); assertEquals("{\"type\":3,\"invocationId\":\"2\"}\u001E", TestUtils.byteBufferToString(messages[3])); } - + @Test public void checkStreamUploadSingleItemThroughInvokeWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.invoke(stringType, "UploadStream", stream); @@ -656,18 +656,18 @@ public void checkStreamUploadSingleItemThroughInvokeWithMessagePack() { System.out.println(TestUtils.byteBufferToString(bb)); } assertEquals(3, messages.length); - - byte[] firstMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, + + byte[] firstMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6D, (byte) 0x90, (byte) 0x91, (byte) 0xA1, 0x32 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(messages[1])); - - byte[] secondMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, + + byte[] secondMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6D }; assertEquals(ByteString.of(secondMessageExpectedBytes), ByteString.of(messages[2])); stream.onComplete(); messages = mockTransport.getSentMessages(); - + byte[] thirdMessageExpectedBytes = new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x32, 0x02 }; assertEquals(ByteString.of(thirdMessageExpectedBytes), ByteString.of(messages[3])); } @@ -677,7 +677,7 @@ public void checkStreamUploadSingleItemThroughStream() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.stream(String.class, "UploadStream", stream); @@ -686,7 +686,7 @@ public void checkStreamUploadSingleItemThroughStream() { ByteBuffer[] messages = mockTransport.getSentMessages(); assertEquals(3, messages.length); - assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"2\"]}\u001E", + assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"2\"]}\u001E", TestUtils.byteBufferToString(messages[1])); assertEquals("{\"type\":2,\"invocationId\":\"2\",\"item\":\"FirstItem\"}\u001E", TestUtils.byteBufferToString(messages[2])); @@ -695,13 +695,13 @@ public void checkStreamUploadSingleItemThroughStream() { assertEquals(4, messages.length); assertEquals("{\"type\":3,\"invocationId\":\"2\"}\u001E", TestUtils.byteBufferToString(messages[3])); } - + @Test public void checkStreamUploadSingleItemThroughStreamWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.stream(stringType, "UploadStream", stream); @@ -710,19 +710,19 @@ public void checkStreamUploadSingleItemThroughStreamWithMessagePack() { ByteBuffer[] messages = mockTransport.getSentMessages(); assertEquals(3, messages.length); - - byte[] firstMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, + + byte[] firstMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6D, (byte) 0x90, (byte) 0x91, (byte) 0xA1, 0x32 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(messages[1])); - - byte[] secondMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, + + byte[] secondMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6D }; assertEquals(ByteString.of(secondMessageExpectedBytes), ByteString.of(messages[2])); stream.onComplete(); messages = mockTransport.getSentMessages(); assertEquals(4, messages.length); - + byte[] thirdMessageExpectedBytes = new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x32, 0x02 }; assertEquals(ByteString.of(thirdMessageExpectedBytes), ByteString.of(messages[3])); } @@ -732,7 +732,7 @@ public void useSameSubjectInMutlipleStreamsFromDifferentMethods() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream); @@ -742,9 +742,9 @@ public void useSameSubjectInMutlipleStreamsFromDifferentMethods() { ByteBuffer[] messages = mockTransport.getSentMessages(); assertEquals(4, messages.length); assertEquals("{\"type\":1,\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"1\"]}\u001E", TestUtils.byteBufferToString(messages[1])); - assertEquals("{\"type\":1,\"invocationId\":\"2\",\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"3\"]}\u001E", + assertEquals("{\"type\":1,\"invocationId\":\"2\",\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"3\"]}\u001E", TestUtils.byteBufferToString(messages[2])); - assertEquals("{\"type\":4,\"invocationId\":\"4\",\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"5\"]}\u001E", + assertEquals("{\"type\":4,\"invocationId\":\"4\",\"target\":\"UploadStream\",\"arguments\":[],\"streamIds\":[\"5\"]}\u001E", TestUtils.byteBufferToString(messages[3])); stream.onNext("FirstItem"); @@ -762,13 +762,13 @@ public void useSameSubjectInMutlipleStreamsFromDifferentMethods() { assertEquals("{\"type\":3,\"invocationId\":\"3\"}\u001E", TestUtils.byteBufferToString(messages[8])); assertEquals("{\"type\":3,\"invocationId\":\"5\"}\u001E", TestUtils.byteBufferToString(messages[9])); } - + @Test public void useSameSubjectInMutlipleStreamsFromDifferentMethodsWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream); @@ -777,16 +777,16 @@ public void useSameSubjectInMutlipleStreamsFromDifferentMethodsWithMessagePack() ByteBuffer[] messages = mockTransport.getSentMessages(); assertEquals(4, messages.length); - - byte[] firstMessageExpectedBytes = new byte[] { 0x15, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, 0x61, + + byte[] firstMessageExpectedBytes = new byte[] { 0x15, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6D, (byte) 0x90, (byte) 0x91, (byte) 0xA1, 0x31 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(messages[1])); - - byte[] secondMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, + + byte[] secondMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6D, (byte) 0x90, (byte) 0x91, (byte) 0xA1, 0x33 }; assertEquals(ByteString.of(secondMessageExpectedBytes), ByteString.of(messages[2])); - byte[] thirdMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x34, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, + byte[] thirdMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x34, (byte) 0xAC, 0x55, 0x70, 0x6C, 0x6F, 0x61, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6D, (byte) 0x90, (byte) 0x91, (byte) 0xA1, 0x35 }; assertEquals(ByteString.of(thirdMessageExpectedBytes), ByteString.of(messages[3])); @@ -794,29 +794,29 @@ public void useSameSubjectInMutlipleStreamsFromDifferentMethodsWithMessagePack() messages = mockTransport.getSentMessages(); assertEquals(7, messages.length); - - byte[] fourthMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, + + byte[] fourthMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6D }; assertEquals(ByteString.of(fourthMessageExpectedBytes), ByteString.of(messages[4])); - - byte[] fifthMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x33, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, + + byte[] fifthMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x33, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6D }; assertEquals(ByteString.of(fifthMessageExpectedBytes), ByteString.of(messages[5])); - - byte[] sixthMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x35, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, + + byte[] sixthMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x35, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6D }; assertEquals(ByteString.of(sixthMessageExpectedBytes), ByteString.of(messages[6])); stream.onComplete(); messages = mockTransport.getSentMessages(); assertEquals(10, messages.length); - + byte[] seventhMessageExpectedBytes = new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x02 }; assertEquals(ByteString.of(seventhMessageExpectedBytes), ByteString.of(messages[7])); - + byte[] eighthMessageExpectedBytes = new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x33, 0x02 }; assertEquals(ByteString.of(eighthMessageExpectedBytes), ByteString.of(messages[8])); - + byte[] ninthMessageExpectedBytes = new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x35, 0x02 }; assertEquals(ByteString.of(ninthMessageExpectedBytes), ByteString.of(messages[9])); } @@ -826,7 +826,7 @@ public void streamUploadCallOnError() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream); @@ -836,7 +836,7 @@ public void streamUploadCallOnError() { ByteBuffer[] messages = mockTransport.getSentMessages(); assertEquals(4, messages.length); assertEquals("{\"type\":2,\"invocationId\":\"1\",\"item\":\"FirstItem\"}\u001E", TestUtils.byteBufferToString(messages[2])); - assertEquals("{\"type\":3,\"invocationId\":\"1\",\"error\":\"java.lang.RuntimeException: onError called\"}\u001E", + assertEquals("{\"type\":3,\"invocationId\":\"1\",\"error\":\"java.lang.RuntimeException: onError called\"}\u001E", TestUtils.byteBufferToString(messages[3])); // onComplete doesn't send a completion message after onError. @@ -850,7 +850,7 @@ public void checkStreamUploadMultipleItemsThroughSend() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.send("UploadStream", stream); @@ -876,7 +876,7 @@ public void checkStreamUploadMultipleItemsThroughInvoke() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.invoke(String.class, "UploadStream", stream); @@ -894,13 +894,13 @@ public void checkStreamUploadMultipleItemsThroughInvoke() { assertEquals(5, messages.length); assertEquals("{\"type\":3,\"invocationId\":\"2\"}\u001E", TestUtils.byteBufferToString(messages[4])); } - + @Test public void checkStreamUploadMultipleItemsThroughInvokeWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ReplaySubject stream = ReplaySubject.create(); hubConnection.invoke(stringType, "UploadStream", stream); @@ -910,19 +910,19 @@ public void checkStreamUploadMultipleItemsThroughInvokeWithMessagePack() { ByteBuffer[] messages = mockTransport.getSentMessages(); assertEquals(4, messages.length); - - byte[] firstMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, + + byte[] firstMessageExpectedBytes = new byte[] { 0x0F, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xA9, 0x46, 0x69, 0x72, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6D }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(messages[2])); - - byte[] secondMessageExpectedBytes = new byte[] { 0x10, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xAA, 0x53, 0x65, 0x63, 0x6F, 0x6E, + + byte[] secondMessageExpectedBytes = new byte[] { 0x10, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xAA, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x49, 0x74, 0x65, 0x6D }; assertEquals(ByteString.of(secondMessageExpectedBytes), ByteString.of(messages[3])); stream.onComplete(); messages = mockTransport.getSentMessages(); assertEquals(5, messages.length); - + byte[] thirdMessageExpectedBytes = new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x32, 0x02 }; assertEquals(ByteString.of(thirdMessageExpectedBytes), ByteString.of(messages[4])); } @@ -932,7 +932,7 @@ public void canStartAndStopMultipleStreams() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); PublishSubject streamOne = PublishSubject.create(); PublishSubject streamTwo = PublishSubject.create(); @@ -964,7 +964,7 @@ public void checkStreamSingleItem() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); AtomicBoolean onNextCalled = new AtomicBoolean(); @@ -973,7 +973,7 @@ public void checkStreamSingleItem() { (error) -> {}, () -> completed.set(true)); - assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); assertFalse(onNextCalled.get()); @@ -985,15 +985,15 @@ public void checkStreamSingleItem() { mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":\"hello\"}" + RECORD_SEPARATOR); assertTrue(completed.get()); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingFirst()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingFirst()); } - + @Test public void checkStreamSingleItemWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); AtomicBoolean onNextCalled = new AtomicBoolean(); @@ -1002,7 +1002,7 @@ public void checkStreamSingleItemWithMessagePack() { (error) -> {}, () -> completed.set(true)); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); @@ -1017,15 +1017,15 @@ public void checkStreamSingleItemWithMessagePack() { mockTransport.receiveMessage(ByteBuffer.wrap(thirdMessageExpectedBytes)); assertTrue(completed.get()); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingFirst()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingFirst()); } - + @Test public void checkStreamCompletionResult() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); AtomicBoolean onNextCalled = new AtomicBoolean(); @@ -1034,7 +1034,7 @@ public void checkStreamCompletionResult() { (error) -> {}, () -> completed.set(true)); - assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); assertFalse(onNextCalled.get()); @@ -1046,16 +1046,16 @@ public void checkStreamCompletionResult() { mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":\"COMPLETED\"}" + RECORD_SEPARATOR); assertTrue(completed.get()); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingFirst()); - assertEquals("COMPLETED", result.timeout(1000, TimeUnit.MILLISECONDS).blockingLast()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingFirst()); + assertEquals("COMPLETED", result.timeout(30, TimeUnit.SECONDS).blockingLast()); } - + @Test public void checkStreamCompletionResultWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); AtomicBoolean onNextCalled = new AtomicBoolean(); @@ -1064,7 +1064,7 @@ public void checkStreamCompletionResultWithMessagePack() { (error) -> {}, () -> completed.set(true)); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); @@ -1075,13 +1075,13 @@ public void checkStreamCompletionResultWithMessagePack() { assertTrue(onNextCalled.get()); - byte[] thirdMessageExpectedBytes = new byte[] { 0x10, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, (byte) 0xA9, 0x43, 0x4F, 0x4D, 0x50, + byte[] thirdMessageExpectedBytes = new byte[] { 0x10, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, (byte) 0xA9, 0x43, 0x4F, 0x4D, 0x50, 0x4C, 0x45, 0x54, 0x45, 0x44 }; mockTransport.receiveMessage(ByteBuffer.wrap(thirdMessageExpectedBytes)); assertTrue(completed.get()); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingFirst()); - assertEquals("COMPLETED", result.timeout(1000, TimeUnit.MILLISECONDS).blockingLast()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingFirst()); + assertEquals("COMPLETED", result.timeout(30, TimeUnit.SECONDS).blockingLast()); } @Test @@ -1089,7 +1089,7 @@ public void checkStreamCompletionError() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean onErrorCalled = new AtomicBoolean(); AtomicBoolean onNextCalled = new AtomicBoolean(); @@ -1098,7 +1098,7 @@ public void checkStreamCompletionError() { (error) -> onErrorCalled.set(true), () -> {}); - assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(onErrorCalled.get()); assertFalse(onNextCalled.get()); @@ -1110,17 +1110,17 @@ public void checkStreamCompletionError() { mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"error\":\"There was an error\"}" + RECORD_SEPARATOR); assertTrue(onErrorCalled.get()); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingFirst()); - Throwable exception = assertThrows(HubException.class, () -> result.timeout(1000, TimeUnit.MILLISECONDS).blockingLast()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingFirst()); + Throwable exception = assertThrows(HubException.class, () -> result.timeout(30, TimeUnit.SECONDS).blockingLast()); assertEquals("There was an error", exception.getMessage()); } - + @Test public void checkStreamCompletionErrorWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean onErrorCalled = new AtomicBoolean(); AtomicBoolean onNextCalled = new AtomicBoolean(); @@ -1129,7 +1129,7 @@ public void checkStreamCompletionErrorWithMessagePack() { (error) -> onErrorCalled.set(true), () -> {}); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(onErrorCalled.get()); @@ -1144,8 +1144,8 @@ public void checkStreamCompletionErrorWithMessagePack() { mockTransport.receiveMessage(ByteBuffer.wrap(thirdMessageExpectedBytes)); assertTrue(onErrorCalled.get()); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingFirst()); - Throwable exception = assertThrows(HubException.class, () -> result.timeout(1000, TimeUnit.MILLISECONDS).blockingLast()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingFirst()); + Throwable exception = assertThrows(HubException.class, () -> result.timeout(30, TimeUnit.SECONDS).blockingLast()); assertEquals("Error", exception.getMessage()); } @@ -1154,7 +1154,7 @@ public void checkStreamMultipleItems() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); Observable result = hubConnection.stream(String.class, "echo", "message"); @@ -1162,7 +1162,7 @@ public void checkStreamMultipleItems() { (error) -> {/*OnError*/}, () -> {/*OnCompleted*/completed.set(true);}); - assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); @@ -1170,18 +1170,18 @@ public void checkStreamMultipleItems() { mockTransport.receiveMessage("{\"type\":2,\"invocationId\":\"1\",\"item\":\"Second\"}" + RECORD_SEPARATOR); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":\"null\"}" + RECORD_SEPARATOR); - Iterator resultIterator = result.timeout(1000, TimeUnit.MILLISECONDS).blockingIterable().iterator(); + Iterator resultIterator = result.timeout(30, TimeUnit.SECONDS).blockingIterable().iterator(); assertEquals("First", resultIterator.next()); assertEquals("Second", resultIterator.next()); assertTrue(completed.get()); } - + @Test public void checkStreamMultipleItemsWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); Observable result = hubConnection.stream(stringType, "echo", "message"); @@ -1189,21 +1189,21 @@ public void checkStreamMultipleItemsWithMessagePack() { (error) -> {/*OnError*/}, () -> {/*OnCompleted*/completed.set(true);}); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); byte[] secondMessageExpectedBytes = new byte[] { 0x0B, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA5, 0x46, 0x69, 0x72, 0x73, 0x74 }; mockTransport.receiveMessage(ByteBuffer.wrap(secondMessageExpectedBytes)); - + byte[] thirdMessageExpectedBytes = new byte[] { 0x0C, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA6, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64 }; mockTransport.receiveMessage(ByteBuffer.wrap(thirdMessageExpectedBytes)); - + byte[] fourthMessageExpectedBytes = new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x02 }; mockTransport.receiveMessage(ByteBuffer.wrap(fourthMessageExpectedBytes)); - Iterator resultIterator = result.timeout(1000, TimeUnit.MILLISECONDS).blockingIterable().iterator(); + Iterator resultIterator = result.timeout(30, TimeUnit.SECONDS).blockingIterable().iterator(); assertEquals("First", resultIterator.next()); assertEquals("Second", resultIterator.next()); assertTrue(completed.get()); @@ -1214,7 +1214,7 @@ public void checkCancelIsSentAfterDispose() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); Observable result = hubConnection.stream(String.class, "echo", "message"); @@ -1222,20 +1222,20 @@ public void checkCancelIsSentAfterDispose() { (error) -> {/*OnError*/}, () -> {/*OnCompleted*/completed.set(true);}); - assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); subscription.dispose(); assertEquals("{\"type\":5,\"invocationId\":\"1\"}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[2])); } - + @Test public void checkCancelIsSentAfterDisposeWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); Observable result = hubConnection.stream(stringType, "echo", "message"); @@ -1243,7 +1243,7 @@ public void checkCancelIsSentAfterDisposeWithMessagePack() { (error) -> {/*OnError*/}, () -> {/*OnCompleted*/completed.set(true);}); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); @@ -1258,7 +1258,7 @@ public void checkCancelIsSentAfterAllSubscriptionsAreDisposed() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); Observable result = hubConnection.stream(String.class, "echo", "message"); Disposable subscription = result.subscribe((item) -> {/*OnNext*/ }, @@ -1279,13 +1279,13 @@ public void checkCancelIsSentAfterAllSubscriptionsAreDisposed() { assertEquals("{\"type\":5,\"invocationId\":\"1\"}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[mockTransport.getSentMessages().length - 1])); } - + @Test public void checkCancelIsSentAfterAllSubscriptionsAreDisposedWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); Observable result = hubConnection.stream(stringType, "echo", "message"); Disposable subscription = result.subscribe((item) -> {/*OnNext*/ }, @@ -1298,8 +1298,8 @@ public void checkCancelIsSentAfterAllSubscriptionsAreDisposedWithMessagePack() { subscription.dispose(); assertEquals(2, mockTransport.getSentMessages().length); - - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[mockTransport.getSentMessages().length - 1])); @@ -1314,14 +1314,14 @@ public void checkStreamWithDispose() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); Observable result = hubConnection.stream(String.class, "echo", "message"); Disposable subscription = result.subscribe((item) -> {/*OnNext*/}, (error) -> {/*OnError*/}, () -> {/*OnCompleted*/}); - assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); mockTransport.receiveMessage("{\"type\":2,\"invocationId\":\"1\",\"item\":\"First\"}" + RECORD_SEPARATOR); @@ -1329,33 +1329,33 @@ public void checkStreamWithDispose() { subscription.dispose(); mockTransport.receiveMessage("{\"type\":2,\"invocationId\":\"1\",\"item\":\"Second\"}" + RECORD_SEPARATOR); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingLast()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingLast()); } - + @Test public void checkStreamWithDisposeWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); Observable result = hubConnection.stream(stringType, "echo", "message"); Disposable subscription = result.subscribe((item) -> {/*OnNext*/}, (error) -> {/*OnError*/}, () -> {/*OnCompleted*/}); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); - + byte[] secondMessageExpectedBytes = new byte[] { 0x0B, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA5, 0x46, 0x69, 0x72, 0x73, 0x74 }; mockTransport.receiveMessage(ByteBuffer.wrap(secondMessageExpectedBytes)); - + subscription.dispose(); byte[] thirdMessageExpectedBytes = new byte[] { 0x0C, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA6, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64 }; mockTransport.receiveMessage(ByteBuffer.wrap(thirdMessageExpectedBytes)); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingLast()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingLast()); } @Test @@ -1363,7 +1363,7 @@ public void checkStreamWithDisposeWithMultipleSubscriptions() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); Observable result = hubConnection.stream(String.class, "echo", "message"); @@ -1375,7 +1375,7 @@ public void checkStreamWithDisposeWithMultipleSubscriptions() { (error) -> {/*OnError*/}, () -> {/*OnCompleted*/completed.set(true);}); - assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":4,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); @@ -1386,18 +1386,18 @@ public void checkStreamWithDisposeWithMultipleSubscriptions() { mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\"}" + RECORD_SEPARATOR); assertTrue(completed.get()); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingFirst()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingFirst()); subscription2.dispose(); - assertEquals("Second", result.timeout(1000, TimeUnit.MILLISECONDS).blockingLast()); + assertEquals("Second", result.timeout(30, TimeUnit.SECONDS).blockingLast()); } - + @Test public void checkStreamWithDisposeWithMultipleSubscriptionsWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean completed = new AtomicBoolean(); Observable result = hubConnection.stream(stringType, "echo", "message"); @@ -1409,26 +1409,26 @@ public void checkStreamWithDisposeWithMultipleSubscriptionsWithMessagePack() { (error) -> {/*OnError*/}, () -> {/*OnCompleted*/completed.set(true);}); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x04, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(completed.get()); - + byte[] secondMessageExpectedBytes = new byte[] { 0x0B, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA5, 0x46, 0x69, 0x72, 0x73, 0x74 }; mockTransport.receiveMessage(ByteBuffer.wrap(secondMessageExpectedBytes)); - + subscription.dispose(); byte[] thirdMessageExpectedBytes = new byte[] { 0x0C, (byte) 0x94, 0x02, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA6, 0x53, 0x65, 0x63, 0x6F, 0x6E, 0x64 }; mockTransport.receiveMessage(ByteBuffer.wrap(thirdMessageExpectedBytes)); - + byte[] fourthMessageExpectedBytes = new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x02 }; mockTransport.receiveMessage(ByteBuffer.wrap(fourthMessageExpectedBytes)); assertTrue(completed.get()); - assertEquals("First", result.timeout(1000, TimeUnit.MILLISECONDS).blockingFirst()); + assertEquals("First", result.timeout(30, TimeUnit.SECONDS).blockingFirst()); subscription2.dispose(); - assertEquals("Second", result.timeout(1000, TimeUnit.MILLISECONDS).blockingLast()); + assertEquals("Second", result.timeout(30, TimeUnit.SECONDS).blockingLast()); } @Test @@ -1436,40 +1436,40 @@ public void invokeWaitsForCompletionMessage() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(Integer.class, "echo", "message"); result.doOnSuccess(value -> done.set(true)).subscribe(); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":42}" + RECORD_SEPARATOR); - assertEquals(Integer.valueOf(42), result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals(Integer.valueOf(42), result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } - + @Test public void invokeWaitsForCompletionMessageWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(integerType, "echo", "message"); result.doOnSuccess(value -> done.set(true)).subscribe(); - - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage(ByteBuffer.wrap(new byte[] { 0x07, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, 0x2A })); - assertEquals(Integer.valueOf(42), result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals(Integer.valueOf(42), result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } @@ -1478,41 +1478,41 @@ public void invokeNoReturnValueWaitsForCompletion() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Completable result = hubConnection.invoke("test", "message"); result.doOnComplete(() -> done.set(true)).subscribe(); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"test\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"test\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\"}" + RECORD_SEPARATOR); - assertNull(result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertNull(result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } - + @Test public void invokeNoReturnValueWaitsForCompletionWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Completable result = hubConnection.invoke("test", "message"); result.doOnComplete(() -> done.set(true)).subscribe(); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x74, 0x65, 0x73, 0x74, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x74, 0x65, 0x73, 0x74, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage(ByteBuffer.wrap(new byte[] { 0x06, (byte) 0x94, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x02 })); - assertNull(result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertNull(result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } @@ -1521,19 +1521,19 @@ public void invokeCompletedByCompletionMessageWithResult() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Completable result = hubConnection.invoke("test", "message"); result.doOnComplete(() -> done.set(true)).subscribe(); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"test\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"test\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":42}" + RECORD_SEPARATOR); - assertNull(result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertNull(result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } @@ -1542,20 +1542,20 @@ public void invokeCompletedByCompletionMessageWithResultWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Completable result = hubConnection.invoke("test", "message"); result.doOnComplete(() -> done.set(true)).subscribe(); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x74, 0x65, 0x73, 0x74, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x74, 0x65, 0x73, 0x74, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage(ByteBuffer.wrap(new byte[] { 0x07, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, 0x2A })); - assertNull(result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertNull(result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } @@ -1564,17 +1564,17 @@ public void completionWithResultAndErrorHandlesError() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Completable result = hubConnection.invoke("test", "message"); result.doOnComplete(() -> done.set(true)).subscribe(() -> {}, (error) -> {}); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"test\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"test\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(done.get()); - Throwable exception = assertThrows(IllegalArgumentException.class, () -> + Throwable exception = assertThrows(IllegalArgumentException.class, () -> mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":42,\"error\":\"There was an error\"}" + RECORD_SEPARATOR)); assertEquals("Expected either 'error' or 'result' to be provided, but not both.", exception.getMessage()); } @@ -1584,19 +1584,19 @@ public void invokeNoReturnValueHandlesError() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Completable result = hubConnection.invoke("test", "message"); result.doOnComplete(() -> done.set(true)).subscribe(() -> {}, (error) -> {}); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"test\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"test\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"error\":\"There was an error\"}" + RECORD_SEPARATOR); - result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet(); + result.timeout(30, TimeUnit.SECONDS).blockingGet(); AtomicReference errorMessage = new AtomicReference<>(); result.doOnError(error -> { @@ -1605,28 +1605,28 @@ public void invokeNoReturnValueHandlesError() { assertEquals("There was an error", errorMessage.get()); } - + @Test public void invokeNoReturnValueHandlesErrorWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Completable result = hubConnection.invoke("test", "message"); result.doOnComplete(() -> done.set(true)).subscribe(() -> {}, (error) -> {}); - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x74, 0x65, 0x73, 0x74, + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x74, 0x65, 0x73, 0x74, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(done.get()); - byte[] completionMessageErrorBytes = new byte[] { 0x19, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x01, (byte) 0xB2, 0x54, 0x68, 0x65, + byte[] completionMessageErrorBytes = new byte[] { 0x19, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x01, (byte) 0xB2, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x6E, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72 }; mockTransport.receiveMessage(ByteBuffer.wrap(completionMessageErrorBytes)); - result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet(); + result.timeout(30, TimeUnit.SECONDS).blockingGet(); AtomicReference errorMessage = new AtomicReference<>(); result.doOnError(error -> { @@ -1641,42 +1641,42 @@ public void canSendNullArgInInvocation() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(String.class, "fixedMessage", (Object)null); result.doOnSuccess(value -> done.set(true)).subscribe(); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"fixedMessage\",\"arguments\":[null]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"fixedMessage\",\"arguments\":[null]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":\"Hello World\"}" + RECORD_SEPARATOR); - assertEquals("Hello World", result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals("Hello World", result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } - + @Test public void canSendNullArgInInvocationWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(stringType, "fixedMessage", (Object)null); result.doOnSuccess(value -> done.set(true)).subscribe(); - - byte[] firstMessageExpectedBytes = new byte[] { 0x15, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xAC, 0x66, 0x69, 0x78, 0x65, 0x64, + + byte[] firstMessageExpectedBytes = new byte[] { 0x15, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xAC, 0x66, 0x69, 0x78, 0x65, 0x64, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x91, (byte) 0xC0, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(done.get()); - byte[] completionMessageBytes = new byte[] { 0x12, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, (byte) 0xAB, 0x48, 0x65, 0x6C, 0x6C, + byte[] completionMessageBytes = new byte[] { 0x12, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, (byte) 0xAB, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64 }; mockTransport.receiveMessage(ByteBuffer.wrap(completionMessageBytes)); - assertEquals("Hello World", result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals("Hello World", result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } @@ -1685,42 +1685,42 @@ public void canSendMultipleNullArgsInInvocation() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(String.class, "fixedMessage", null, null); result.doOnSuccess(value -> done.set(true)).subscribe(); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"fixedMessage\",\"arguments\":[null,null]}"+ RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"fixedMessage\",\"arguments\":[null,null]}"+ RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); assertFalse(done.get()); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":\"Hello World\"}" + RECORD_SEPARATOR); - assertEquals("Hello World", result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals("Hello World", result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } - + @Test public void canSendMultipleNullArgsInInvocationWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(String.class, "fixedMessage", null, null); result.doOnSuccess(value -> done.set(true)).subscribe(); - - byte[] firstMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xAC, 0x66, 0x69, 0x78, 0x65, 0x64, 0x4D, + + byte[] firstMessageExpectedBytes = new byte[] { 0x16, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xAC, 0x66, 0x69, 0x78, 0x65, 0x64, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x92, (byte) 0xC0, (byte) 0xC0, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); assertFalse(done.get()); - byte[] completionMessageBytes = new byte[] { 0x12, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, (byte) 0xAB, 0x48, 0x65, 0x6C, 0x6C, + byte[] completionMessageBytes = new byte[] { 0x12, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, (byte) 0xAB, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64 }; mockTransport.receiveMessage(ByteBuffer.wrap(completionMessageBytes)); - assertEquals("Hello World", result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals("Hello World", result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } @@ -1729,7 +1729,7 @@ public void multipleInvokesWaitForOwnCompletionMessage() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean doneFirst = new AtomicBoolean(); AtomicBoolean doneSecond = new AtomicBoolean(); @@ -1737,29 +1737,29 @@ public void multipleInvokesWaitForOwnCompletionMessage() { Single result2 = hubConnection.invoke(String.class, "echo", "message"); result.doOnSuccess(value -> doneFirst.set(true)).subscribe(); result2.doOnSuccess(value -> doneSecond.set(true)).subscribe(); - assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"1\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[1])); - assertEquals("{\"type\":1,\"invocationId\":\"2\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, + assertEquals("{\"type\":1,\"invocationId\":\"2\",\"target\":\"echo\",\"arguments\":[\"message\"]}" + RECORD_SEPARATOR, TestUtils.byteBufferToString(mockTransport.getSentMessages()[2])); assertFalse(doneFirst.get()); assertFalse(doneSecond.get()); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"2\",\"result\":\"message\"}" + RECORD_SEPARATOR); - assertEquals("message", result2.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals("message", result2.timeout(30, TimeUnit.SECONDS).blockingGet()); assertFalse(doneFirst.get()); assertTrue(doneSecond.get()); mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":42}" + RECORD_SEPARATOR); - assertEquals(Integer.valueOf(42), result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals(Integer.valueOf(42), result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(doneFirst.get()); } - + @Test public void multipleInvokesWaitForOwnCompletionMessageWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean doneFirst = new AtomicBoolean(); AtomicBoolean doneSecond = new AtomicBoolean(); @@ -1767,27 +1767,27 @@ public void multipleInvokesWaitForOwnCompletionMessageWithMessagePack() { Single result2 = hubConnection.invoke(stringType, "echo", "message"); result.doOnSuccess(value -> doneFirst.set(true)).subscribe(); result2.doOnSuccess(value -> doneSecond.set(true)).subscribe(); - - byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + + byte[] firstMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x31, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(firstMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[1])); - - byte[] secondMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, + + byte[] secondMessageExpectedBytes = new byte[] { 0x14, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xA1, 0x32, (byte) 0xA4, 0x65, 0x63, 0x68, 0x6F, (byte) 0x91, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, (byte) 0x90 }; assertEquals(ByteString.of(secondMessageExpectedBytes), ByteString.of(mockTransport.getSentMessages()[2])); assertFalse(doneFirst.get()); assertFalse(doneSecond.get()); - byte[] firstCompletionMessageBytes = new byte[] { 0x0E, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x32, 0x03, (byte) 0xA7, 0x6D, 0x65, 0x73, + byte[] firstCompletionMessageBytes = new byte[] { 0x0E, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x32, 0x03, (byte) 0xA7, 0x6D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65 }; mockTransport.receiveMessage(ByteBuffer.wrap(firstCompletionMessageBytes)); - assertEquals("message", result2.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals("message", result2.timeout(30, TimeUnit.SECONDS).blockingGet()); assertFalse(doneFirst.get()); assertTrue(doneSecond.get()); byte[] secondCompletionMessageBytes = new byte[] { 0x07, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, 0x2A }; mockTransport.receiveMessage(ByteBuffer.wrap(secondCompletionMessageBytes)); - assertEquals(Integer.valueOf(42), result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals(Integer.valueOf(42), result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(doneFirst.get()); } @@ -1796,7 +1796,7 @@ public void invokeWorksForPrimitiveTypes() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); // int.class is a primitive type and since we use Class.cast to cast an Object to the expected return type @@ -1807,16 +1807,16 @@ public void invokeWorksForPrimitiveTypes() { mockTransport.receiveMessage("{\"type\":3,\"invocationId\":\"1\",\"result\":42}" + RECORD_SEPARATOR); - assertEquals(Integer.valueOf(42), result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals(Integer.valueOf(42), result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } - + @Test public void invokeWorksForPrimitiveTypesWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); // int.class is a primitive type and since we use Class.cast to cast an Object to the expected return type @@ -1827,7 +1827,7 @@ public void invokeWorksForPrimitiveTypesWithMessagePack() { mockTransport.receiveMessage(ByteBuffer.wrap(new byte[] { 0x07, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x03, 0x2A })); - assertEquals(Integer.valueOf(42), result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet()); + assertEquals(Integer.valueOf(42), result.timeout(30, TimeUnit.SECONDS).blockingGet()); assertTrue(done.get()); } @@ -1836,7 +1836,7 @@ public void completionMessageCanHaveError() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(int.class, "echo", "message"); @@ -1847,7 +1847,7 @@ public void completionMessageCanHaveError() { String exceptionMessage = null; try { - result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet(); + result.timeout(30, TimeUnit.SECONDS).blockingGet(); assertFalse(true); } catch (HubException ex) { exceptionMessage = ex.getMessage(); @@ -1855,26 +1855,26 @@ public void completionMessageCanHaveError() { assertEquals("There was an error", exceptionMessage); } - + @Test public void completionMessageCanHaveErrorWithMessagePack() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport, true); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(int.class, "echo", "message"); result.doOnSuccess(value -> done.set(true)); assertFalse(done.get()); - byte[] completionMessageErrorBytes = new byte[] { 0x19, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x01, (byte) 0xB2, 0x54, 0x68, 0x65, + byte[] completionMessageErrorBytes = new byte[] { 0x19, (byte) 0x95, 0x03, (byte) 0x80, (byte) 0xA1, 0x31, 0x01, (byte) 0xB2, 0x54, 0x68, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x6E, 0x20, 0x65, 0x72, 0x72, 0x6F, 0x72 }; mockTransport.receiveMessage(ByteBuffer.wrap(completionMessageErrorBytes)); String exceptionMessage = null; try { - result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet(); + result.timeout(30, TimeUnit.SECONDS).blockingGet(); assertFalse(true); } catch (HubException ex) { exceptionMessage = ex.getMessage(); @@ -1888,7 +1888,7 @@ public void stopCancelsActiveInvokes() { MockTransport mockTransport = new MockTransport(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com", mockTransport); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); AtomicBoolean done = new AtomicBoolean(); Single result = hubConnection.invoke(int.class, "echo", "message"); @@ -1899,7 +1899,7 @@ public void stopCancelsActiveInvokes() { RuntimeException hasException = null; try { - result.timeout(1000, TimeUnit.MILLISECONDS).blockingGet(); + result.timeout(30, TimeUnit.SECONDS).blockingGet(); assertFalse(true); } catch (CancellationException ex) { hasException = ex; @@ -1919,7 +1919,7 @@ public void sendWithNoParamsTriggersOnHandler() { value.getAndUpdate((val) -> val + 1); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[]}" + RECORD_SEPARATOR); // Confirming that our handler was called and that the counter property was incremented. @@ -1937,7 +1937,7 @@ public void sendWithParamTriggersOnHandler() { value.set(param); }, String.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"Hello World\"]}" + RECORD_SEPARATOR); hubConnection.send("inc", "Hello World"); @@ -1961,7 +1961,7 @@ public void sendWithTwoParamsTriggersOnHandler() { value2.set(param2); }, String.class, Double.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"Hello World\", 12]}" + RECORD_SEPARATOR); hubConnection.send("inc", "Hello World", 12); @@ -1989,7 +1989,7 @@ public void sendWithThreeParamsTriggersOnHandler() { value3.set(param3); }, String.class, String.class, String.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\"]}" + RECORD_SEPARATOR); hubConnection.send("inc", "A", "B", "C"); @@ -2021,7 +2021,7 @@ public void sendWithFourParamsTriggersOnHandler() { value4.set(param4); }, String.class, String.class, String.class, String.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\", \"D\"]}" + RECORD_SEPARATOR); // Confirming that our handler was called and the correct message was passed in. @@ -2056,7 +2056,7 @@ public void sendWithFiveParamsTriggersOnHandler() { value5.set(param5); }, String.class, String.class, String.class, Boolean.class, Double.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\",true,12 ]}" + RECORD_SEPARATOR); // Confirming that our handler was called and the correct message was passed in. @@ -2095,7 +2095,7 @@ public void sendWithSixParamsTriggersOnHandler() { value6.set(param6); }, String.class, String.class, String.class, Boolean.class, Double.class, String.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\",true,12,\"D\"]}" + RECORD_SEPARATOR); // Confirming that our handler was called and the correct message was passed in. @@ -2138,7 +2138,7 @@ public void sendWithSevenParamsTriggersOnHandler() { value7.set(param7); }, String.class, String.class, String.class, Boolean.class, Double.class, String.class, String.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\",true,12,\"D\",\"E\"]}" + RECORD_SEPARATOR); // Confirming that our handler was called and the correct message was passed in. @@ -2185,7 +2185,7 @@ public void sendWithEightParamsTriggersOnHandler() { value8.set(param8); }, String.class, String.class, String.class, Boolean.class, Double.class, String.class, String.class, String.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[\"A\", \"B\", \"C\",true,12,\"D\",\"E\",\"F\"]}" + RECORD_SEPARATOR); // Confirming that our handler was called and the correct message was passed in. assertEquals("A", value1.get()); @@ -2197,7 +2197,7 @@ public void sendWithEightParamsTriggersOnHandler() { assertEquals("E", value7.get()); assertEquals("F", value8.get()); } - + @Test public void sendWithNoParamsTriggersOnHandlerWithMessagePack() { AtomicReference value = new AtomicReference<>(0); @@ -2209,7 +2209,7 @@ public void sendWithNoParamsTriggersOnHandlerWithMessagePack() { value.getAndUpdate((val) -> val + 1); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); byte[] messageBytes = new byte[] { 0x0A, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x90, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); @@ -2228,8 +2228,8 @@ public void sendWithParamTriggersOnHandlerWithMessagePack() { value.set(param); }, stringType); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x0C, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x91, (byte) 0xA1, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x0C, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x91, (byte) 0xA1, 0x41, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); hubConnection.send("inc", "A"); @@ -2254,8 +2254,8 @@ public void sendWithTwoParamsTriggersOnHandlerWithMessagePack() { value2.set(param2); }, stringType, doubleType); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x15, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x92, (byte) 0xA1, 0x41, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x15, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x92, (byte) 0xA1, 0x41, (byte) 0xCB, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); hubConnection.send("inc", "A", 12); @@ -2284,8 +2284,8 @@ public void sendWithThreeParamsTriggersOnHandlerWithMessagePack() { value3.set(param3); }, stringType, stringType, stringType); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x10, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x93, (byte) 0xA1, 0x41, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x10, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x93, (byte) 0xA1, 0x41, (byte) 0xA1, 0x42, (byte) 0xA1, 0x43, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); hubConnection.send("inc", "A", "B", "C"); @@ -2318,8 +2318,8 @@ public void sendWithFourParamsTriggersOnHandlerWithMessagePack() { value4.set(param4); }, stringType, stringType, stringType, stringType); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x12, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x94, (byte) 0xA1, 0x41, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x12, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x94, (byte) 0xA1, 0x41, (byte) 0xA1, 0x42, (byte) 0xA1, 0x43, (byte) 0xA1, 0x44, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); @@ -2355,8 +2355,8 @@ public void sendWithFiveParamsTriggersOnHandlerWithMessagePack() { value5.set(param5); }, stringType, stringType, stringType, booleanType, doubleType); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x1A, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x95, (byte) 0xA1, 0x41, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x1A, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x95, (byte) 0xA1, 0x41, (byte) 0xA1, 0x42, (byte) 0xA1, 0x43, (byte) 0xC3, (byte) 0xCB, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); @@ -2396,8 +2396,8 @@ public void sendWithSixParamsTriggersOnHandlerWithMessagePack() { value6.set(param6); }, stringType, stringType, stringType, booleanType, doubleType, stringType); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x1C, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x96, (byte) 0xA1, 0x41, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x1C, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x96, (byte) 0xA1, 0x41, (byte) 0xA1, 0x42, (byte) 0xA1, 0x43, (byte) 0xC3, (byte) 0xCB, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xA1, 0x44, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); @@ -2441,9 +2441,9 @@ public void sendWithSevenParamsTriggersOnHandlerWithMessagePack() { value7.set(param7); }, stringType, stringType, stringType, booleanType, doubleType, stringType, stringType); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x1E, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x97, (byte) 0xA1, 0x41, - (byte) 0xA1, 0x42, (byte) 0xA1, 0x43, (byte) 0xC3, (byte) 0xCB, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xA1, 0x44, (byte) 0xA1, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x1E, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x97, (byte) 0xA1, 0x41, + (byte) 0xA1, 0x42, (byte) 0xA1, 0x43, (byte) 0xC3, (byte) 0xCB, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xA1, 0x44, (byte) 0xA1, 0x45, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); @@ -2491,9 +2491,9 @@ public void sendWithEightParamsTriggersOnHandlerWithMessagePack() { value8.set(param8); }, stringType, stringType, stringType, booleanType, doubleType, stringType, stringType, stringType); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x20, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x98, (byte) 0xA1, 0x41, - (byte) 0xA1, 0x42, (byte) 0xA1, 0x43, (byte) 0xC3, (byte) 0xCB, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xA1, 0x44, (byte) 0xA1, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x20, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x98, (byte) 0xA1, 0x41, + (byte) 0xA1, 0x42, (byte) 0xA1, 0x43, (byte) 0xC3, (byte) 0xCB, 0x40, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte) 0xA1, 0x44, (byte) 0xA1, 0x45, (byte) 0xA1, 0x46, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); // Confirming that our handler was called and the correct message was passed in. @@ -2526,7 +2526,7 @@ public void sendWithCustomObjectTriggersOnHandler() { value1.set(param1); }, Custom.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"inc\",\"arguments\":[{\"number\":1,\"str\":\"A\",\"bools\":[true,false]}]}" + RECORD_SEPARATOR); // Confirming that our handler was called and the correct message was passed in. @@ -2537,7 +2537,7 @@ public void sendWithCustomObjectTriggersOnHandler() { assertEquals(true, custom.bools[0]); assertEquals(false, custom.bools[1]); } - + @Test public void sendWithCustomObjectTriggersOnHandlerWithMessagePack() { AtomicReference> value1 = new AtomicReference<>(); @@ -2551,9 +2551,9 @@ public void sendWithCustomObjectTriggersOnHandlerWithMessagePack() { value1.set(param1); }, (new TypeReference>() { }).getType()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - byte[] messageBytes = new byte[] { 0x2F, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x91, (byte) 0x84, - (byte) 0xA9, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4E, 0x61, 0x6D, 0x65, (byte) 0xA4, 0x4A, 0x6F, 0x68, 0x6E, (byte) 0xA8, 0x6C, 0x61, 0x73, 0x74, + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); + byte[] messageBytes = new byte[] { 0x2F, (byte) 0x96, 0x01, (byte) 0x80, (byte) 0xC0, (byte) 0xA3, 0x69, 0x6E, 0x63, (byte) 0x91, (byte) 0x84, + (byte) 0xA9, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4E, 0x61, 0x6D, 0x65, (byte) 0xA4, 0x4A, 0x6F, 0x68, 0x6E, (byte) 0xA8, 0x6C, 0x61, 0x73, 0x74, 0x4E, 0x61, 0x6D, 0x65, (byte) 0xA3, 0x44, 0x6F, 0x65, (byte) 0xA3, 0x61, 0x67, 0x65, 0x1E, (byte) 0xA1, 0x74, 0x05, (byte) 0x90 }; mockTransport.receiveMessage(ByteBuffer.wrap(messageBytes)); @@ -2579,7 +2579,7 @@ public void receiveHandshakeResponseAndMessage() { SingleSubject handshakeMessageTask = mockTransport.getNextSentMessage(); // On start we're going to receive the handshake response and also an invocation in the same payload. hubConnection.start(); - ByteBuffer sentMessage = handshakeMessageTask.timeout(1, TimeUnit.SECONDS).blockingGet(); + ByteBuffer sentMessage = handshakeMessageTask.timeout(30, TimeUnit.SECONDS).blockingGet(); String expectedSentMessage = "{\"protocol\":\"json\",\"version\":1}" + RECORD_SEPARATOR; assertEquals(expectedSentMessage, TestUtils.byteBufferToString(mockTransport.getSentMessages()[0])); @@ -2593,7 +2593,7 @@ public void receiveHandshakeResponseAndMessage() { public void onClosedCallbackRunsWhenStopIsCalled() { AtomicReference value1 = new AtomicReference<>(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com"); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); hubConnection.onClosed((ex) -> { assertNull(value1.get()); value1.set("Closed callback ran."); @@ -2609,7 +2609,7 @@ public void multipleOnClosedCallbacksRunWhenStopIsCalled() { AtomicReference value1 = new AtomicReference<>(); AtomicReference value2 = new AtomicReference<>(); HubConnection hubConnection = TestUtils.createHubConnection("http://example.com"); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); hubConnection.onClosed((ex) -> { assertNull(value1.get()); @@ -2637,7 +2637,7 @@ public void hubConnectionClosesAndRunsOnClosedCallbackAfterCloseMessageWithError hubConnection.onClosed((ex) -> { assertEquals(ex.getMessage(), "There was an error"); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); @@ -2649,13 +2649,13 @@ public void hubConnectionClosesAndRunsOnClosedCallbackAfterCloseMessageWithError @Test public void callingStartOnStartedHubConnectionNoops() { HubConnection hubConnection = TestUtils.createHubConnection("http://example.com"); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); } @@ -2668,22 +2668,22 @@ public void callingStartOnStartingHubConnectionWaitsForOriginalStart() { .withHttpClient(new TestHttpClient()) .withAccessTokenProvider(Single.defer(() -> { startedAccessToken.onComplete(); - continueAccessToken.timeout(1, TimeUnit.SECONDS).blockingAwait(); + continueAccessToken.timeout(30, TimeUnit.SECONDS).blockingAwait(); return Single.just("test"); }).subscribeOn(Schedulers.newThread())) .shouldSkipNegotiate(true) .build(); Completable start = hubConnection.start(); - startedAccessToken.timeout(1, TimeUnit.SECONDS).blockingAwait(); + startedAccessToken.timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTING, hubConnection.getConnectionState()); Completable start2 = hubConnection.start(); continueAccessToken.onComplete(); - start.timeout(1, TimeUnit.SECONDS).blockingAwait(); - start2.timeout(1, TimeUnit.SECONDS).blockingAwait(); + start.timeout(30, TimeUnit.SECONDS).blockingAwait(); + start2.timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); } @@ -2722,7 +2722,7 @@ public void doesNotErrorWhenReceivingInvokeWithIncorrectArgumentLength() { assertTrue(false); }, String.class); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); mockTransport.receiveMessage("{\"type\":1,\"target\":\"Send\",\"arguments\":[]}" + RECORD_SEPARATOR); hubConnection.stop(); @@ -2738,7 +2738,7 @@ public void negotiateSentOnStart() { .withHttpClient(client) .build(); - Exception exception = assertThrows(RuntimeException.class, () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + Exception exception = assertThrows(RuntimeException.class, () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals("Unexpected status code returned from negotiate: 404 .", exception.getMessage()); List sentRequests = client.getSentRequests(); @@ -2757,7 +2757,7 @@ public void negotiateThatRedirectsForeverFailsAfter100Tries() { .build(); RuntimeException exception = assertThrows(RuntimeException.class, - () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals("Negotiate redirection limit exceeded.", exception.getMessage()); } @@ -2771,10 +2771,10 @@ public void noConnectionIdWhenSkippingNegotiate() { .build(); assertNull(hubConnection.getConnectionId()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); } @@ -2795,11 +2795,11 @@ public void connectionIdIsAvailableAfterStart() { assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", hubConnection.getConnectionId()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); } @@ -2822,11 +2822,11 @@ public void connectionTokenAppearsInQSConnectionIdIsOnConnectionInstance() { assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", hubConnection.getConnectionId()); assertEquals("http://example.com?id=connection-token-value", transport.getUrl()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); } @@ -2848,11 +2848,11 @@ public void connectionTokenIsIgnoredIfNegotiateVersionIsNotPresentInNegotiateRes assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", hubConnection.getConnectionId()); assertEquals("http://example.com?id=bVOiRPG8-6YiJ6d7ZcTOVQ", transport.getUrl()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); } @@ -2874,11 +2874,11 @@ public void negotiateVersionIsNotAddedIfAlreadyPresent() { assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("bVOiRPG8-6YiJ6d7ZcTOVQ", hubConnection.getConnectionId()); assertEquals("http://example.com?negotiateVersion=42&id=bVOiRPG8-6YiJ6d7ZcTOVQ", transport.getUrl()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); assertNull(hubConnection.getConnectionId()); } @@ -2897,7 +2897,7 @@ public void afterSuccessfulNegotiateConnectsWithWebsocketsTransport() { .withHttpClient(client) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ByteBuffer[] sentMessages = transport.getSentMessages(); assertEquals(1, sentMessages.length); @@ -2918,7 +2918,7 @@ public void afterSuccessfulNegotiateConnectsWithLongPollingTransport() { .withHttpClient(client) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); ByteBuffer[] sentMessages = transport.getSentMessages(); assertEquals(1, sentMessages.length); @@ -2950,10 +2950,10 @@ public void TransportAllUsesLongPollingWhenServerOnlySupportLongPolling() { .withHttpClient(client) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(hubConnection.getTransport() instanceof LongPollingTransport); close.onComplete(); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); } @Test @@ -2974,7 +2974,7 @@ public void ClientThatSelectsWebsocketsThrowsWhenWebsocketsAreNotAvailable() { assertEquals(TransportEnum.WEBSOCKETS, hubConnection.getTransportEnum()); RuntimeException exception = assertThrows(RuntimeException.class, - () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals(exception.getMessage(), "There were no compatible transports on the server."); } @@ -2993,7 +2993,7 @@ public void ClientThatSelectsLongPollingThrowsWhenLongPollingIsNotAvailable() { assertEquals(TransportEnum.LONG_POLLING, hubConnection.getTransportEnum()); RuntimeException exception = assertThrows(RuntimeException.class, - () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals(exception.getMessage(), "There were no compatible transports on the server."); } @@ -3026,7 +3026,7 @@ public void LongPollingTransportAccessTokenProviderThrowsOnInitialPoll() { .build(); try { - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(false); } catch (RuntimeException ex) { assertEquals("Error from accessTokenProvider", ex.getMessage()); @@ -3070,10 +3070,10 @@ public void LongPollingTransportAccessTokenProviderThrowsAfterHandshakeClosesCon closed.onComplete(); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); blockGet.onComplete(); - - closed.timeout(1, TimeUnit.SECONDS).blockingAwait(); + + closed.timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); } @@ -3114,16 +3114,94 @@ public void LongPollingTransportAccessTokenProviderThrowsDuringStop() { closed.onComplete(); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); try { - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(false); } catch (Exception ex) { assertEquals("Error from accessTokenProvider", ex.getMessage()); } blockGet.onComplete(); + closed.timeout(30, TimeUnit.SECONDS).blockingAwait(); + assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); + } + + @Test + public void stopWithoutObservingWithLongPollingTransportStops() { + AtomicInteger requestCount = new AtomicInteger(0); + CompletableSubject blockGet = CompletableSubject.create(); + TestHttpClient client = new TestHttpClient() + .on("POST", "http://example.com/negotiate?negotiateVersion=1", + (req) -> Single.just(new HttpResponse(200, "", + TestUtils.stringToByteBuffer("{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\"" + + "availableTransports\":[{\"transport\":\"LongPolling\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")))) + .on("GET", (req) -> { + if (requestCount.getAndIncrement() > 1) { + blockGet.blockingAwait(); + } + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{}" + RECORD_SEPARATOR))); + }) + .on("POST", "http://example.com?id=bVOiRPG8-6YiJ6d7ZcTOVQ", (req) -> { + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer(""))); + }); + + HubConnection hubConnection = HubConnectionBuilder + .create("http://example.com") + .withTransport(TransportEnum.LONG_POLLING) + .withHttpClient(client) + .build(); + + CompletableSubject closed = CompletableSubject.create(); + hubConnection.onClosed((e) -> { + closed.onComplete(); + }); + + hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + + hubConnection.stop(); closed.timeout(1, TimeUnit.SECONDS).blockingAwait(); + blockGet.onComplete(); + assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); + } + + @Test + public void hubConnectionClosesAndRunsOnClosedCallbackAfterCloseMessageWithLongPolling() { + AtomicInteger requestCount = new AtomicInteger(0); + CompletableSubject blockGet = CompletableSubject.create(); + TestHttpClient client = new TestHttpClient() + .on("POST", "http://example.com/negotiate?negotiateVersion=1", + (req) -> Single.just(new HttpResponse(200, "", + TestUtils.stringToByteBuffer("{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\"" + + "availableTransports\":[{\"transport\":\"LongPolling\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")))) + .on("GET", (req) -> { + if (requestCount.getAndIncrement() > 1) { + blockGet.blockingAwait(); + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{\"type\":7}" + RECORD_SEPARATOR))); + } + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{}" + RECORD_SEPARATOR))); + }) + .on("POST", "http://example.com?id=bVOiRPG8-6YiJ6d7ZcTOVQ", (req) -> { + return Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer(""))); + }); + + HubConnection hubConnection = HubConnectionBuilder + .create("http://example.com") + .withTransport(TransportEnum.LONG_POLLING) + .withHttpClient(client) + .build(); + + CompletableSubject closed = CompletableSubject.create(); + hubConnection.onClosed((ex) -> { + closed.onComplete(); + }); + hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + + assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); + blockGet.onComplete(); + + closed.timeout(1, TimeUnit.SECONDS).blockingAwait(); + assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); } @@ -3142,7 +3220,7 @@ public void receivingServerSentEventsTransportFromNegotiateFails() { .build(); RuntimeException exception = assertThrows(RuntimeException.class, - () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals(exception.getMessage(), "There were no compatible transports on the server."); } @@ -3160,7 +3238,7 @@ public void negotiateThatReturnsErrorThrowsFromStart() { .build(); RuntimeException exception = assertThrows(RuntimeException.class, - () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals("Test error.", exception.getMessage()); } @@ -3185,7 +3263,7 @@ public void DetectWhenTryingToConnectToClassicSignalRServer() { .build(); RuntimeException exception = assertThrows(RuntimeException.class, - () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals("Detected an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.", exception.getMessage()); } @@ -3205,7 +3283,7 @@ public void negotiateRedirectIsFollowed() { .withHttpClient(client) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); } @@ -3234,9 +3312,9 @@ public void accessTokenProviderReferenceIsKeptAfterNegotiateRedirect() { .withAccessTokenProvider(Single.just("User Registered Token")) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals("Bearer User Registered Token", beforeRedirectToken.get()); assertEquals("Bearer newToken", token.get()); @@ -3245,7 +3323,7 @@ public void accessTokenProviderReferenceIsKeptAfterNegotiateRedirect() { token.set(""); // Restart the connection to make sure that the original accessTokenProvider that we registered is still registered before the redirect. - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertEquals("Bearer User Registered Token", beforeRedirectToken.get()); @@ -3271,7 +3349,7 @@ public void accessTokenProviderIsUsedForNegotiate() { .withAccessTokenProvider(Single.just("secretToken")) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertEquals("Bearer secretToken", token.get()); @@ -3297,14 +3375,14 @@ public void AccessTokenProviderCanProvideDifferentValues() { .withAccessTokenProvider(Single.defer(() -> Single.just("secret" + i.getAndIncrement()))) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals("Bearer secret0", token.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals("Bearer secret1", token.get()); } @@ -3312,7 +3390,7 @@ public void AccessTokenProviderCanProvideDifferentValues() { public void accessTokenProviderIsOverriddenFromRedirectNegotiate() { AtomicReference token = new AtomicReference<>(); TestHttpClient client = new TestHttpClient() - .on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", + .on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{\"url\":\"http://testexample.com/\",\"accessToken\":\"newToken\"}")))) .on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> { token.set(req.getHeaders().get("Authorization")); @@ -3330,7 +3408,7 @@ public void accessTokenProviderIsOverriddenFromRedirectNegotiate() { .withAccessTokenProvider(Single.just("secretToken")) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("http://testexample.com/?id=connection-token-value", transport.getUrl()); hubConnection.stop(); @@ -3360,9 +3438,9 @@ public void authorizationHeaderFromNegotiateGetsClearedAfterStopping() { .withHttpClient(client) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals("Bearer newToken", token.get()); // Clear the tokens to see if they get reset to the proper values @@ -3370,7 +3448,7 @@ public void authorizationHeaderFromNegotiateGetsClearedAfterStopping() { token.set(""); // Restart the connection to make sure that the original accessTokenProvider that we registered is still registered before the redirect. - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertNull(beforeRedirectToken.get()); @@ -3407,16 +3485,16 @@ public void authorizationHeaderFromNegotiateGetsSetToNewValue() { .withHttpClient(client) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals("Bearer firstRedirectToken", token.get()); // Clear the tokens to see if they get reset to the proper values redirectToken.set(""); token.set(""); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertNull(redirectToken.get()); @@ -3431,7 +3509,7 @@ public void ErrorInAccessTokenProviderThrowsFromStart() { .build(); try { - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(false); } catch (RuntimeException ex) { assertEquals("Error from accessTokenProvider", ex.getMessage()); @@ -3448,9 +3526,9 @@ public void connectionTimesOutIfServerDoesNotSendMessage() { closedSubject.onSuccess(e); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); - assertEquals("Server timeout elapsed without receiving a message from the server.", closedSubject.timeout(1, TimeUnit.SECONDS).blockingGet().getMessage()); + assertEquals("Server timeout elapsed without receiving a message from the server.", closedSubject.timeout(30, TimeUnit.SECONDS).blockingGet().getMessage()); } @Test @@ -3460,14 +3538,14 @@ public void connectionSendsPingsRegularly() throws InterruptedException { hubConnection.setKeepAliveInterval(1); hubConnection.setTickRate(1); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); - String message = TestUtils.byteBufferToString(mockTransport.getNextSentMessage().timeout(1, TimeUnit.SECONDS).blockingGet()); + String message = TestUtils.byteBufferToString(mockTransport.getNextSentMessage().timeout(30, TimeUnit.SECONDS).blockingGet()); assertEquals("{\"type\":6}" + RECORD_SEPARATOR, message); - message = TestUtils.byteBufferToString(mockTransport.getNextSentMessage().timeout(1, TimeUnit.SECONDS).blockingGet()); + message = TestUtils.byteBufferToString(mockTransport.getNextSentMessage().timeout(30, TimeUnit.SECONDS).blockingGet()); assertEquals("{\"type\":6}" + RECORD_SEPARATOR, message); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); } @Test @@ -3487,7 +3565,7 @@ public void userAgentHeaderIsSet() { .withHttpClient(client) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); @@ -3512,7 +3590,7 @@ public void userAgentHeaderCanBeOverwritten() { .withHeader("User-Agent", "Updated Value") .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertEquals("Updated Value", header.get()); @@ -3536,7 +3614,7 @@ public void userAgentCanBeCleared() { .withHeader("User-Agent", "") .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertEquals("", header.get()); @@ -3560,7 +3638,7 @@ public void headersAreSetAndSentThroughBuilder() { .withHeader("ExampleHeader", "ExampleValue") .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertEquals("ExampleValue", header.get()); @@ -3584,12 +3662,12 @@ public void headersAreNotClearedWhenConnectionIsRestarted() { .withHeader("Authorization", "ExampleValue") .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertEquals("ExampleValue", header.get()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); assertEquals("ExampleValue", header.get()); } @@ -3619,14 +3697,14 @@ public void userSetAuthHeaderIsNotClearedAfterRedirect() { .withHeader("Authorization", "ExampleValue") .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop().blockingAwait(); assertEquals("ExampleValue", beforeRedirectHeader.get()); assertEquals("Bearer redirectToken", afterRedirectHeader.get()); // Making sure you can do this after restarting the HubConnection. - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop().blockingAwait(); assertEquals("ExampleValue", beforeRedirectHeader.get()); @@ -3653,7 +3731,7 @@ public void sameHeaderSetTwiceGetsOverwritten() { .withHeader("ExampleHeader", "New Value") .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); hubConnection.stop(); assertEquals("New Value", header.get()); @@ -3668,13 +3746,13 @@ public void hubConnectionCanBeStartedAfterBeingStopped() { .shouldSkipNegotiate(true) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); } @@ -3683,7 +3761,7 @@ public void hubConnectionCanBeStartedAfterBeingStoppedAndRedirected() { MockTransport mockTransport = new MockTransport(); TestHttpClient client = new TestHttpClient() .on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{\"url\":\"http://testexample.com/\"}")))) - .on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", + .on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\"availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")))); HubConnection hubConnection = HubConnectionBuilder @@ -3692,13 +3770,13 @@ public void hubConnectionCanBeStartedAfterBeingStoppedAndRedirected() { .withHttpClient(client) .build(); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.stop().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.DISCONNECTED, hubConnection.getConnectionState()); } @@ -3716,7 +3794,7 @@ public void non200FromNegotiateThrowsError() { .build(); RuntimeException exception = assertThrows(RuntimeException.class, - () -> hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait()); + () -> hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals("Unexpected status code returned from negotiate: 500 Internal server error.", exception.getMessage()); } @@ -3725,7 +3803,7 @@ public void hubConnectionCloseCallsStop() { MockTransport mockTransport = new MockTransport(); TestHttpClient client = new TestHttpClient() .on("POST", "http://example.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{\"url\":\"http://testexample.com/\"}")))) - .on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", + .on("POST", "http://testexample.com/negotiate?negotiateVersion=1", (req) -> Single.just(new HttpResponse(200, "", TestUtils.stringToByteBuffer("{\"connectionId\":\"bVOiRPG8-6YiJ6d7ZcTOVQ\",\"availableTransports\":[{\"transport\":\"WebSockets\",\"transferFormats\":[\"Text\",\"Binary\"]}]}")))); CompletableSubject close = CompletableSubject.create(); @@ -3739,10 +3817,10 @@ public void hubConnectionCloseCallsStop() { hubConnection.onClosed(e -> { close.onComplete(); }); - hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); + hubConnection.start().timeout(30, TimeUnit.SECONDS).blockingAwait(); assertEquals(HubConnectionState.CONNECTED, hubConnection.getConnectionState()); } - close.timeout(1, TimeUnit.SECONDS).blockingGet(); + close.timeout(30, TimeUnit.SECONDS).blockingGet(); } } diff --git a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/LongPollingTransportTest.java b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/LongPollingTransportTest.java index 0e65390d39d5..f4dda53cf346 100644 --- a/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/LongPollingTransportTest.java +++ b/src/SignalR/clients/java/signalr/test/src/main/java/com/microsoft/signalr/LongPollingTransportTest.java @@ -27,7 +27,7 @@ public void LongPollingFailsToConnectWith404Response() { Map headers = new HashMap<>(); LongPollingTransport transport = new LongPollingTransport(headers, client, Single.just("")); - Throwable exception = assertThrows(RuntimeException.class, () -> transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait()); + Throwable exception = assertThrows(RuntimeException.class, () -> transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals(Exception.class, exception.getCause().getClass()); assertEquals("Failed to connect.", exception.getCause().getMessage()); assertFalse(transport.isActive()); @@ -41,7 +41,7 @@ public void LongPollingTransportCantSendBeforeStart() { Map headers = new HashMap<>(); LongPollingTransport transport = new LongPollingTransport(headers, client, Single.just("")); ByteBuffer sendBuffer = TestUtils.stringToByteBuffer("First"); - Throwable exception = assertThrows(RuntimeException.class, () -> transport.send(sendBuffer).timeout(1, TimeUnit.SECONDS).blockingAwait()); + Throwable exception = assertThrows(RuntimeException.class, () -> transport.send(sendBuffer).timeout(30, TimeUnit.SECONDS).blockingAwait()); assertEquals(Exception.class, exception.getCause().getClass()); assertEquals("Cannot send unless the transport is active.", exception.getCause().getMessage()); assertFalse(transport.isActive()); @@ -69,7 +69,7 @@ public void StatusCode204StopsLongPollingTriggersOnClosed() { }); assertFalse(onClosedRan.get()); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(block.blockingAwait(1, TimeUnit.SECONDS)); assertTrue(onClosedRan.get()); assertFalse(transport.isActive()); @@ -98,7 +98,7 @@ public void LongPollingFailsWhenReceivingUnexpectedErrorCode() { blocker.onComplete(); }); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(blocker.blockingAwait(1, TimeUnit.SECONDS)); assertFalse(transport.isActive()); assertTrue(onClosedRan.get()); @@ -155,7 +155,7 @@ public void LongPollingTransportOnReceiveGetsCalled() { transport.setOnClose((error) -> {}); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(block.blockingAwait(1,TimeUnit.SECONDS)); assertTrue(onReceiveCalled.get()); assertEquals("TEST", message.get()); @@ -200,7 +200,7 @@ public void LongPollingTransportOnReceiveGetsCalledMultipleTimes() { transport.setOnClose((error) -> {}); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(blocker.blockingAwait(1, TimeUnit.SECONDS)); assertTrue(onReceiveCalled.get()); assertEquals("FIRSTSECONDTHIRD", message.get()); @@ -230,7 +230,7 @@ public void LongPollingTransportSendsHeaders() { LongPollingTransport transport = new LongPollingTransport(headers, client, Single.just("")); transport.setOnClose((error) -> {}); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); ByteBuffer sendBuffer = TestUtils.stringToByteBuffer("TEST"); assertTrue(transport.send(sendBuffer).blockingAwait(1, TimeUnit.SECONDS)); close.onComplete(); @@ -262,7 +262,7 @@ public void LongPollingTransportSetsAuthorizationHeader() { LongPollingTransport transport = new LongPollingTransport(headers, client, tokenProvider); transport.setOnClose((error) -> {}); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); ByteBuffer sendBuffer = TestUtils.stringToByteBuffer("TEST"); assertTrue(transport.send(sendBuffer).blockingAwait(1, TimeUnit.SECONDS)); assertEquals(headerValue.get(), "Bearer TOKEN"); @@ -298,7 +298,7 @@ public void LongPollingTransportRunsAccessTokenProviderEveryRequest() { LongPollingTransport transport = new LongPollingTransport(headers, client, tokenProvider); transport.setOnClose((error) -> {}); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); secondGet.blockingAwait(1, TimeUnit.SECONDS); ByteBuffer sendBuffer = TestUtils.stringToByteBuffer("TEST"); assertTrue(transport.send(sendBuffer).blockingAwait(1, TimeUnit.SECONDS)); @@ -307,7 +307,7 @@ public void LongPollingTransportRunsAccessTokenProviderEveryRequest() { } @Test - public void After204StopDoesNotTriggerOnClose() { + public void After204StopDoesNotTriggerOnCloseAgain() { AtomicBoolean firstPoll = new AtomicBoolean(true); CompletableSubject block = CompletableSubject.create(); TestHttpClient client = new TestHttpClient() @@ -317,6 +317,9 @@ public void After204StopDoesNotTriggerOnClose() { return Single.just(new HttpResponse(200, "", TestUtils.emptyByteBuffer)); } return Single.just(new HttpResponse(204, "", TestUtils.emptyByteBuffer)); + }) + .on("DELETE", (req) -> { + return Single.just(new HttpResponse(200, "", TestUtils.emptyByteBuffer)); }); Map headers = new HashMap<>(); @@ -330,7 +333,7 @@ public void After204StopDoesNotTriggerOnClose() { }); assertFalse(onClosedRan.get()); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(block.blockingAwait(1, TimeUnit.SECONDS)); assertEquals(1, onCloseCount.get()); assertTrue(onClosedRan.get()); @@ -356,7 +359,7 @@ public void StoppingTransportRunsCloseHandlersOnce() { }) .on("DELETE", (req) ->{ //Unblock the last poll when we sent the DELETE request. - block.onComplete(); + block.onComplete(); return Single.just(new HttpResponse(200, "", TestUtils.emptyByteBuffer)); }); @@ -368,9 +371,30 @@ public void StoppingTransportRunsCloseHandlersOnce() { }); assertEquals(0, onCloseCount.get()); - transport.start("http://example.com").timeout(1, TimeUnit.SECONDS).blockingAwait(); + transport.start("http://example.com").timeout(30, TimeUnit.SECONDS).blockingAwait(); assertTrue(transport.stop().blockingAwait(1, TimeUnit.SECONDS)); assertEquals(1, onCloseCount.get()); assertFalse(transport.isActive()); } + + @Test + public void ErrorFromClosePropagatesOnSecondStopCall() { + AtomicBoolean firstPoll = new AtomicBoolean(true); + TestHttpClient client = new TestHttpClient() + .on("GET", (req) -> { + if (firstPoll.get()) { + firstPoll.set(false); + return Single.just(new HttpResponse(200, "", TestUtils.emptyByteBuffer)); + } + return Single.just(new HttpResponse(204, "", TestUtils.emptyByteBuffer)); + }); + + Map headers = new HashMap<>(); + LongPollingTransport transport = new LongPollingTransport(headers, client, Single.just("")); + + transport.start("http://example.com").timeout(100, TimeUnit.SECONDS).blockingAwait(); + + RuntimeException exception = assertThrows(RuntimeException.class, () -> transport.stop().blockingAwait(100, TimeUnit.SECONDS)); + assertEquals("Request has no handler: DELETE http://example.com", exception.getMessage()); + } }