diff --git a/.github/renovate.json b/.github/renovate.json index 48e83d8603..8f64a7b9aa 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -45,7 +45,6 @@ "matchManagers": ["nuget"], "excludePackagePatterns":[ "Apache.Arrow", - "NI.CSharp.Analyzers", "Microsoft.Playwright" ], "enabled": true diff --git a/.vscode/tasks.json b/.vscode/tasks.json index dad6c0eafc..05d998414d 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -111,6 +111,21 @@ }, "problemMatcher": "$msCompile" }, + { + "label": "blazor-hybrid-example:build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/packages/blazor-workspace/Examples/Demo.Hybrid/Demo.Hybrid.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "options": { + "cwd": "${workspaceFolder}/packages/blazor-workspace/Examples/Demo.Hybrid/" + }, + "problemMatcher": "$msCompile" + }, { "label": "blazor-server-example:watch", "command": "dotnet", @@ -141,5 +156,20 @@ }, "problemMatcher": "$msCompile" }, + { + "label": "blazor-hybrid-example:watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/packages/blazor-workspace/Examples/Demo.Hybrid/Demo.Hybrid.csproj" + ], + "options": { + "cwd": "${workspaceFolder}/packages/blazor-workspace/Examples/Demo.Hybrid/" + }, + "problemMatcher": "$msCompile" + }, ] } \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6a9e417fba..10b400f5ba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,8 +7,8 @@ To submit changes to Nimble, the first step is to build the monorepo which requi - Sync down a copy of the nimble repository - Note: For one-off small contributions you can consider using a fork-pull workflow. However [fork-pull workflows are not yet supported](https://github.com/ni/nimble/issues/634) for substantial development. For substantial development you should be added as a Contributor to the repository. See the [`README.md` Community section](/README.md#community) to get in touch if you need Contributor permissions. - Install Node.js version 22+ (run `node --version`) and npm version 10+ (run `npm --version`) which can be downloaded from https://nodejs.org/en/download/ -- Install .NET 6 SDK (`6.0.418 <= version < 7`) which can be downloaded from https://dotnet.microsoft.com/en-us/download - - Run `dotnet --info` to verify the required version of the SDK is installed. A `v6` install is required, but it's fine if later versions are installed too. +- Install .NET 8 SDK (`8.0.403` or higher) which can be downloaded from https://dotnet.microsoft.com/en-us/download + - Run `dotnet --info` to verify the required version of the SDK is installed. A `v8` install is required, but it's fine if later versions are installed too. From the `nimble` directory: diff --git a/change/@ni-nimble-blazor-20bd54c7-238d-4715-936b-11efce400236.json b/change/@ni-nimble-blazor-20bd54c7-238d-4715-936b-11efce400236.json new file mode 100644 index 0000000000..1833bcc775 --- /dev/null +++ b/change/@ni-nimble-blazor-20bd54c7-238d-4715-936b-11efce400236.json @@ -0,0 +1,7 @@ +{ + "type": "major", + "comment": "Nimble Blazor targets (and requires) .NET 8. Update examples, docs, tests. See README for updated usage instructions.", + "packageName": "@ni/nimble-blazor", + "email": "20709258+msmithNI@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-spright-blazor-ce1ae42a-9da2-41ab-a5de-919222954e60.json b/change/@ni-spright-blazor-ce1ae42a-9da2-41ab-a5de-919222954e60.json new file mode 100644 index 0000000000..3894fdf0d2 --- /dev/null +++ b/change/@ni-spright-blazor-ce1ae42a-9da2-41ab-a5de-919222954e60.json @@ -0,0 +1,7 @@ +{ + "type": "major", + "comment": "Spright Blazor targets (and requires) .NET 8. Update examples, docs, tests. See README for updated usage instructions.", + "packageName": "@ni/spright-blazor", + "email": "20709258+msmithNI@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/packages/blazor-workspace/.editorconfig b/packages/blazor-workspace/.editorconfig index 45ccc51752..6fd1ed86a1 100644 --- a/packages/blazor-workspace/.editorconfig +++ b/packages/blazor-workspace/.editorconfig @@ -34,6 +34,22 @@ dotnet_diagnostic.IDE0066.severity = none # Disable general pattern matching rule for now, may opt in in the future dotnet_diagnostic.IDE0078.severity = none +# Disabled during .NET 8 updates +dotnet_diagnostic.IDE0005.severity = suggestion +dotnet_diagnostic.IDE0100.severity = none +dotnet_diagnostic.IDE0200.severity = none +dotnet_diagnostic.IDE0300.severity = none +dotnet_diagnostic.IDE0290.severity = none +dotnet_diagnostic.IDE0028.severity = none +dotnet_diagnostic.IDE0301.severity = none +dotnet_diagnostic.IDE0090.severity = none +dotnet_diagnostic.IDE0028.severity = none +dotnet_diagnostic.BL0007.severity = none +dotnet_diagnostic.SYSLIB1045.severity = none +# dotnet format command throws an exception when IDE0130 (dotnet_style_namespace_match_folder) +# triggers - see https://github.com/dotnet/format/issues/1623 +dotnet_diagnostic.IDE0130.severity = suggestion + [*.razor.cs] # Spurious 'unused' warnings when properties/methods are only used from Razor files dotnet_diagnostic.IDE0051.severity = none @@ -45,7 +61,7 @@ dotnet_diagnostic.IDE0044.severity = none # Spurious 'unnecessary using' warnings dotnet_diagnostic.IDE0005.severity = none -[Tests/NimbleBlazor.Tests.Acceptance/Tests/*.cs] +[Tests/NimbleBlazor.Tests.Acceptance/Tests*/*.cs] dotnet_style_namespace_match_folder = false # Disable 'Namespace does not match folder structure' dotnet_diagnostic.IDE0130.severity = none diff --git a/packages/blazor-workspace/BlazorWorkspace.sln b/packages/blazor-workspace/BlazorWorkspace.sln index dfb3b4027e..c4ff2d5b99 100644 --- a/packages/blazor-workspace/BlazorWorkspace.sln +++ b/packages/blazor-workspace/BlazorWorkspace.sln @@ -9,9 +9,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NimbleBlazor.Tests", "Tests EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{638B1C16-782F-4C91-A09C-3569957356DF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Demo.Client", "Examples\Demo.Client\Demo.Client.csproj", "{A8C1D36B-77FA-4D9B-893E-226FA2786D31}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Demo.Client", "Examples\Demo.Client\Demo.Client.csproj", "{63AFFE3B-A427-40B4-8079-CE6E6F1E8223}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Demo.Server", "Examples\Demo.Server\Demo.Server.csproj", "{6A1D0B77-BBF2-415E-B3A8-FAB00879F07C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Demo.Server", "Examples\Demo.Server\Demo.Server.csproj", "{08919E1A-D277-4F26-A85B-05CC736508BB}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Demo.Shared", "Examples\Demo.Shared\Demo.Shared.csproj", "{8B6E367C-E472-4E68-98D2-968CFCF6939D}" EndProject @@ -27,7 +27,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SprightBlazor.Tests", "Test EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SprightBlazor.Tests.Acceptance", "Tests\SprightBlazor.Tests.Acceptance\SprightBlazor.Tests.Acceptance.csproj", "{8E335572-CD8B-4879-8760-73416CF103B1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlazorWorkspace.Testing.Acceptance", "Tests\BlazorWorkspace.Testing.Acceptance\BlazorWorkspace.Testing.Acceptance.csproj", "{D94A4535-51B3-4E70-9582-3F3A44C7A798}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlazorWorkspace.Testing.Acceptance", "Tests\BlazorWorkspace.Testing.Acceptance\BlazorWorkspace.Testing.Acceptance.csproj", "{D94A4535-51B3-4E70-9582-3F3A44C7A798}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NimbleBlazor.Tests.Acceptance.Client", "Tests\NimbleBlazor.Tests.Acceptance.Client\NimbleBlazor.Tests.Acceptance.Client.csproj", "{27DB8F65-4848-4EA6-A7F2-86EF00D585FD}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -43,14 +45,6 @@ Global {1E11DA86-D43D-4CF7-94F5-B4565450BF4C}.Debug|Any CPU.Build.0 = Debug|Any CPU {1E11DA86-D43D-4CF7-94F5-B4565450BF4C}.Release|Any CPU.ActiveCfg = Release|Any CPU {1E11DA86-D43D-4CF7-94F5-B4565450BF4C}.Release|Any CPU.Build.0 = Release|Any CPU - {A8C1D36B-77FA-4D9B-893E-226FA2786D31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A8C1D36B-77FA-4D9B-893E-226FA2786D31}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A8C1D36B-77FA-4D9B-893E-226FA2786D31}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A8C1D36B-77FA-4D9B-893E-226FA2786D31}.Release|Any CPU.Build.0 = Release|Any CPU - {6A1D0B77-BBF2-415E-B3A8-FAB00879F07C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6A1D0B77-BBF2-415E-B3A8-FAB00879F07C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6A1D0B77-BBF2-415E-B3A8-FAB00879F07C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6A1D0B77-BBF2-415E-B3A8-FAB00879F07C}.Release|Any CPU.Build.0 = Release|Any CPU {8B6E367C-E472-4E68-98D2-968CFCF6939D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8B6E367C-E472-4E68-98D2-968CFCF6939D}.Debug|Any CPU.Build.0 = Debug|Any CPU {8B6E367C-E472-4E68-98D2-968CFCF6939D}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -79,20 +73,33 @@ Global {D94A4535-51B3-4E70-9582-3F3A44C7A798}.Debug|Any CPU.Build.0 = Debug|Any CPU {D94A4535-51B3-4E70-9582-3F3A44C7A798}.Release|Any CPU.ActiveCfg = Release|Any CPU {D94A4535-51B3-4E70-9582-3F3A44C7A798}.Release|Any CPU.Build.0 = Release|Any CPU + {27DB8F65-4848-4EA6-A7F2-86EF00D585FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {27DB8F65-4848-4EA6-A7F2-86EF00D585FD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {27DB8F65-4848-4EA6-A7F2-86EF00D585FD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {27DB8F65-4848-4EA6-A7F2-86EF00D585FD}.Release|Any CPU.Build.0 = Release|Any CPU + {63AFFE3B-A427-40B4-8079-CE6E6F1E8223}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63AFFE3B-A427-40B4-8079-CE6E6F1E8223}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63AFFE3B-A427-40B4-8079-CE6E6F1E8223}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63AFFE3B-A427-40B4-8079-CE6E6F1E8223}.Release|Any CPU.Build.0 = Release|Any CPU + {08919E1A-D277-4F26-A85B-05CC736508BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {08919E1A-D277-4F26-A85B-05CC736508BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {08919E1A-D277-4F26-A85B-05CC736508BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {08919E1A-D277-4F26-A85B-05CC736508BB}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {1E11DA86-D43D-4CF7-94F5-B4565450BF4C} = {E5C31FAF-7DEF-494F-A0D2-C9A4875F2132} - {A8C1D36B-77FA-4D9B-893E-226FA2786D31} = {638B1C16-782F-4C91-A09C-3569957356DF} - {6A1D0B77-BBF2-415E-B3A8-FAB00879F07C} = {638B1C16-782F-4C91-A09C-3569957356DF} {8B6E367C-E472-4E68-98D2-968CFCF6939D} = {638B1C16-782F-4C91-A09C-3569957356DF} {EAC50129-EF2E-4E7B-98D0-64502E97ED8B} = {638B1C16-782F-4C91-A09C-3569957356DF} {7C65AEA1-8CA2-48DC-81FE-CE39295BDD4B} = {E5C31FAF-7DEF-494F-A0D2-C9A4875F2132} {CEA7A89F-CF8E-4128-927E-24CBBF2C8C63} = {E5C31FAF-7DEF-494F-A0D2-C9A4875F2132} {8E335572-CD8B-4879-8760-73416CF103B1} = {E5C31FAF-7DEF-494F-A0D2-C9A4875F2132} {D94A4535-51B3-4E70-9582-3F3A44C7A798} = {E5C31FAF-7DEF-494F-A0D2-C9A4875F2132} + {27DB8F65-4848-4EA6-A7F2-86EF00D585FD} = {E5C31FAF-7DEF-494F-A0D2-C9A4875F2132} + {63AFFE3B-A427-40B4-8079-CE6E6F1E8223} = {638B1C16-782F-4C91-A09C-3569957356DF} + {08919E1A-D277-4F26-A85B-05CC736508BB} = {638B1C16-782F-4C91-A09C-3569957356DF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {38E2A588-0714-41E7-9BA3-D89622560FF9} diff --git a/packages/blazor-workspace/Examples/Demo.Client/Demo.Client.csproj b/packages/blazor-workspace/Examples/Demo.Client/Demo.Client.csproj index e343f6045f..9c90e2bca6 100644 --- a/packages/blazor-workspace/Examples/Demo.Client/Demo.Client.csproj +++ b/packages/blazor-workspace/Examples/Demo.Client/Demo.Client.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 enable enable true @@ -12,8 +12,8 @@ - - + + @@ -32,7 +32,7 @@ Never - + diff --git a/packages/blazor-workspace/Examples/Demo.Client/Program.cs b/packages/blazor-workspace/Examples/Demo.Client/Program.cs index 9b7bc78352..4ecf1a1ca7 100644 --- a/packages/blazor-workspace/Examples/Demo.Client/Program.cs +++ b/packages/blazor-workspace/Examples/Demo.Client/Program.cs @@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Components.WebAssembly.Hosting; var builder = WebAssemblyHostBuilder.CreateDefault(args); -builder.RootComponents.Add("#app"); +builder.RootComponents.Add("#app"); builder.RootComponents.Add("head::after"); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); diff --git a/packages/blazor-workspace/Examples/Demo.Client/packages.lock.json b/packages/blazor-workspace/Examples/Demo.Client/packages.lock.json index 2a04750ce4..75fa97a163 100644 --- a/packages/blazor-workspace/Examples/Demo.Client/packages.lock.json +++ b/packages/blazor-workspace/Examples/Demo.Client/packages.lock.json @@ -1,38 +1,50 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "Microsoft.AspNetCore.Components.WebAssembly": { "type": "Direct", - "requested": "[6.0.33, )", - "resolved": "6.0.33", - "contentHash": "llLo36CZShfJTfNCc084AFYPxtQINfU1hpZP79Ls/lHjeSB7nAIss8cIHwsIikbwXEfZeWc8uF3mJG4Xxt59fw==", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "WGEsQ/wi1pv0t24Drb3NSwJoxPahyksw1+zRz29LDi8hxLSA2iPqVRORzs85JzkWkNnEaQjSEjx8nYal/X1w7Q==", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "6.0.33", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.JSInterop.WebAssembly": "6.0.33" + "Microsoft.AspNetCore.Components.Web": "8.0.10", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.JSInterop.WebAssembly": "8.0.10" } }, "Microsoft.AspNetCore.Components.WebAssembly.DevServer": { "type": "Direct", - "requested": "[6.0.33, )", - "resolved": "6.0.33", - "contentHash": "AY26o2x9bIFUtcI2frLEqVNeY/pfyEsREhW8uMAjUg5EDvqNrFGL4SGOkb+tVlCwL2pzMtlx1RxLOUGJBHU0YQ==" + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "TMvQzVM58A8zZIDT+rqGAje+0PotB+UoU8kzvPyFiuS5uRFZHlyFfc8orHM2MkNCA9Wy6l3hwTksavxYfrz0sg==" + }, + "Microsoft.NET.ILLink.Tasks": { + "type": "Direct", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "xT8jYjlroY7SLbGtoV9vUTVW/TPgodL4Egc31a444Xe0TMytLZ3UlKQ0kxMZsy/CrWsFB6wtKnSG1SsXcWreew==" + }, + "Microsoft.NET.Sdk.WebAssembly.Pack": { + "type": "Direct", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "DTJaIRCxCphhaI+7htflFVgOHbQMLprP65yRk5jlnXfkjwyo8oNwFPBZDr6/3X0YO7W77JOjnfjve2QSaYxs9g==" }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "Apache.Arrow": { @@ -42,52 +54,53 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", @@ -123,141 +136,137 @@ }, "Microsoft.Extensions.Configuration": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "tq2wXyh3fL17EMF2bXgRhU7JrbO3on93MRKYxzz4JzzvuGSA1l0W3GI9/tl8EO89TH+KWEymP7bcFway6z9fXg==", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "resolved": "8.0.2", + "contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "V4Dth2cYMZpw3HhGw9XUDIijpI6gN+22LDt0AhufIgOppCUfpWX4483OmN+dFXRJkJLc8Tv0Q8QK+1ingT2+KQ==", + "resolved": "8.0.1", + "contentHash": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GJGery6QytCzS/BxJ96klgG9in3uH26KcUBbiVG/coNDXCRq6LGVVlUT4vXq34KPuM+R2av+LeYdX9h4IZOCUg==", + "resolved": "8.0.1", + "contentHash": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "QvkL7l0nM8udt3gfyu0Vw8bbCXblxaKOl7c2oBfgGy4LCURRaL9XWZX1FWJrQc43oMokVneVxH38iz+bY1sbhg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ip8jnL1aPiaPeKINCqaTEbvBFDmVx9dXQEBZ2HOBRXPD1eabGNqP/bKlsIcp7U2lGxiXd5xIhoFcmY8nM4Hdiw==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "8.0.1", + "contentHash": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.JSInterop.WebAssembly": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "lwkENolVndLuFUV+7/j+WwQntA0UYB01jObai/3uixgaT4uc7exarLqz2pxYs0AZ0zF1I+QNEb28HYVAFtsLRQ==", + "resolved": "8.0.10", + "contentHash": "1RumzzQ+s4Zkq08ls7tDPlvx7ASsWI7gIrxiTD75b3pYr3TDUd3YbAnccqq+H3BDo6znpCZZGScFotrgz5R8LQ==", "dependencies": { - "Microsoft.JSInterop": "6.0.33" + "Microsoft.JSInterop": "8.0.10" } }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Roslynator.Analyzers": { "type": "Transitive", @@ -266,34 +275,26 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==" }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Memory": { "type": "Transitive", @@ -318,23 +319,6 @@ "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0" - } - }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", @@ -343,8 +327,8 @@ "demo.shared": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.*, )", - "NI.CSharp.Analyzers": "[2.0.21, 2.0.21]", + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )", + "NI.CSharp.Analyzers": "[2.0.27, )", "NimbleBlazor": "[1.0.0, )", "SprightBlazor": "[1.0.0, )" } @@ -353,17 +337,17 @@ "type": "Project", "dependencies": { "Apache.Arrow": "[16.1.0, 16.1.0]", - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } }, "sprightblazor": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } } }, - "net6.0/browser-wasm": { + "net8.0/browser-wasm": { "System.Text.Encoding.CodePages": { "type": "Transitive", "resolved": "6.0.0", @@ -371,14 +355,6 @@ "dependencies": { "System.Runtime.CompilerServices.Unsafe": "6.0.0" } - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } } } } diff --git a/packages/blazor-workspace/Examples/Demo.Hybrid/Demo.Hybrid.csproj b/packages/blazor-workspace/Examples/Demo.Hybrid/Demo.Hybrid.csproj index ff466c13d2..cafe838c8d 100644 --- a/packages/blazor-workspace/Examples/Demo.Hybrid/Demo.Hybrid.csproj +++ b/packages/blazor-workspace/Examples/Demo.Hybrid/Demo.Hybrid.csproj @@ -2,7 +2,7 @@ WinExe - net6.0-windows + net8.0-windows7.0 true true true @@ -24,7 +24,6 @@ - @@ -35,7 +34,9 @@ - + + + diff --git a/packages/blazor-workspace/Examples/Demo.Hybrid/packages.lock.json b/packages/blazor-workspace/Examples/Demo.Hybrid/packages.lock.json index 434f9810d5..517ec7a5b6 100644 --- a/packages/blazor-workspace/Examples/Demo.Hybrid/packages.lock.json +++ b/packages/blazor-workspace/Examples/Demo.Hybrid/packages.lock.json @@ -1,29 +1,43 @@ { "version": 1, "dependencies": { - "net6.0-windows7.0": { + "net8.0-windows7.0": { + "Microsoft.AspNetCore.Components.WebView": { + "type": "Direct", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "wvVKYUo6f6eQZaWOedme0gkBFCT6Qli3M7aYOe1KFuQHCjo7WNVN50gRf1NWFSs57tj6ORx129iQ6o5TIO5aJA==", + "dependencies": { + "Microsoft.AspNetCore.Components.Web": "8.0.10", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.FileProviders.Composite": "8.0.0", + "Microsoft.Extensions.FileProviders.Embedded": "8.0.10", + "Microsoft.Extensions.Logging": "8.0.1" + } + }, "Microsoft.AspNetCore.Components.WebView.Wpf": { "type": "Direct", - "requested": "[6.0.553, )", - "resolved": "6.0.553", - "contentHash": "aYT6RU+g3gsGT6ZCoKi+OTmphAv84+rP+dXNqJ+30nedfr4Jz3yDghK9tz9ffENt5ewXpBRmwEWvqoqfjWH2zw==", + "requested": "[8.0.92, )", + "resolved": "8.0.92", + "contentHash": "Mq2Ofj1WZYBqIx/VsChyUSMq5eZRnz3p7KRGTO6ElBb6jLyqNsievexyt/03NHU3aaYq7PoakJVrb1kobFtOkQ==", "dependencies": { - "Microsoft.AspNetCore.Components.WebView": "6.0.8", - "Microsoft.Web.WebView2": "1.0.1210.39" + "Microsoft.AspNetCore.Components.WebView": "8.0.0", + "Microsoft.Web.WebView2": "1.0.2592.51" } }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "Apache.Arrow": { @@ -33,65 +47,53 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", - "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" - } - }, - "Microsoft.AspNetCore.Components.WebView": { - "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "br7yXk5155D8sqq0geaJRaijXhM2JACukV43YNlB58db38KPvUURwPIJNFLE/ZuZS+7FxKqydTchPUXKSI9Hqg==", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "6.0.8", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.FileProviders.Composite": "6.0.0", - "Microsoft.Extensions.FileProviders.Embedded": "6.0.8", - "Microsoft.Extensions.Logging": "6.0.0" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", @@ -127,155 +129,151 @@ }, "Microsoft.Extensions.Configuration": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "tq2wXyh3fL17EMF2bXgRhU7JrbO3on93MRKYxzz4JzzvuGSA1l0W3GI9/tl8EO89TH+KWEymP7bcFway6z9fXg==", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "resolved": "8.0.2", + "contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "V4Dth2cYMZpw3HhGw9XUDIijpI6gN+22LDt0AhufIgOppCUfpWX4483OmN+dFXRJkJLc8Tv0Q8QK+1ingT2+KQ==", + "resolved": "8.0.1", + "contentHash": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GJGery6QytCzS/BxJ96klgG9in3uH26KcUBbiVG/coNDXCRq6LGVVlUT4vXq34KPuM+R2av+LeYdX9h4IZOCUg==", + "resolved": "8.0.1", + "contentHash": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Composite": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Cx8K9xnN95wbvKa/KTyDBVBaNUsS9L8IkKt2dKMkcyj0wOBe+xVMwyNR4ySmpxBK3b0PuP7tW6UtroXIlRC3uQ==", + "resolved": "8.0.0", + "contentHash": "ynMjdZ5B3Fd3A9GxJaNhIcTrjLY1bXDQltyVIMVOxbT0ssTOCpFYWc977bVBAocB62fYWu/RN6/1HLnX/HjVuQ==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Embedded": { "type": "Transitive", - "resolved": "6.0.8", - "contentHash": "zvo02Hq4wHBBGOTUMPY0bQ9vn7KBIOBGEm91fD1kcjThRwbJiv1lVDlhcYhveou5JmAze7+SJzSlmb2iL4+3Tw==", + "resolved": "8.0.10", + "contentHash": "N/Ow71LLKXbC4fOFoAG7QNyyhgRypd8in8lc92xInZyyNFlBTgGR3R1BV91Wr5+1/l9+Qvo+2Ee2cAth43OP/Q==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "QvkL7l0nM8udt3gfyu0Vw8bbCXblxaKOl7c2oBfgGy4LCURRaL9XWZX1FWJrQc43oMokVneVxH38iz+bY1sbhg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ip8jnL1aPiaPeKINCqaTEbvBFDmVx9dXQEBZ2HOBRXPD1eabGNqP/bKlsIcp7U2lGxiXd5xIhoFcmY8nM4Hdiw==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "8.0.1", + "contentHash": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Microsoft.Web.WebView2": { "type": "Transitive", - "resolved": "1.0.1210.39", - "contentHash": "BjNSaIg/Dvct5o5fhiN8dWf3SZYzU8QZlqyd3Gtj24x3Of5AWH9aUcji4Esj1NJPfnVOgvJDTCeG7JsuhjL0Ew==" + "resolved": "1.0.2592.51", + "contentHash": "AC9aWCthS2JvddYA1jl4dFpLBW3GsLRInhp5dkcBzaFXsRehfoUN9olIUsrH41eNaNYd7z9NRvmy81aUA5aD1g==" }, "Roslynator.Analyzers": { "type": "Transitive", @@ -284,34 +282,26 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections.Immutable": { "type": "Transitive", "resolved": "5.0.0", "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==" }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Memory": { "type": "Transitive", @@ -336,23 +326,6 @@ "System.Runtime.CompilerServices.Unsafe": "6.0.0" } }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0" - } - }, "System.Threading.Tasks.Extensions": { "type": "Transitive", "resolved": "4.5.4", @@ -361,8 +334,8 @@ "demo.shared": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.*, )", - "NI.CSharp.Analyzers": "[2.0.21, 2.0.21]", + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )", + "NI.CSharp.Analyzers": "[2.0.27, )", "NimbleBlazor": "[1.0.0, )", "SprightBlazor": "[1.0.0, )" } @@ -371,13 +344,13 @@ "type": "Project", "dependencies": { "Apache.Arrow": "[16.1.0, 16.1.0]", - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } }, "sprightblazor": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } } } diff --git a/packages/blazor-workspace/Examples/Demo.Hybrid/wwwroot/index.html b/packages/blazor-workspace/Examples/Demo.Hybrid/wwwroot/index.html index fc72bdbc71..647ea98426 100644 --- a/packages/blazor-workspace/Examples/Demo.Hybrid/wwwroot/index.html +++ b/packages/blazor-workspace/Examples/Demo.Hybrid/wwwroot/index.html @@ -22,10 +22,6 @@ - - - diff --git a/packages/blazor-workspace/Examples/Demo.Server/Components/App.razor b/packages/blazor-workspace/Examples/Demo.Server/Components/App.razor new file mode 100644 index 0000000000..44694acb5c --- /dev/null +++ b/packages/blazor-workspace/Examples/Demo.Server/Components/App.razor @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/blazor-workspace/Examples/Demo.Server/Demo.Server.csproj b/packages/blazor-workspace/Examples/Demo.Server/Demo.Server.csproj index a52b1fd737..a08536bb5c 100644 --- a/packages/blazor-workspace/Examples/Demo.Server/Demo.Server.csproj +++ b/packages/blazor-workspace/Examples/Demo.Server/Demo.Server.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 enable enable true @@ -28,11 +28,10 @@ Never - + - diff --git a/packages/blazor-workspace/Examples/Demo.Server/Pages/Error.cshtml b/packages/blazor-workspace/Examples/Demo.Server/Pages/Error.cshtml deleted file mode 100644 index 1e496e1f69..0000000000 --- a/packages/blazor-workspace/Examples/Demo.Server/Pages/Error.cshtml +++ /dev/null @@ -1,41 +0,0 @@ -@page -@model Demo.Server.Pages.ErrorModel - - - - - - - - Error - - - - -
-
-

Error.

-

An error occurred while processing your request.

- - @if (Model.ShowRequestId) - { -

- Request ID: @Model.RequestId -

- } - -

Development Mode

-

- Swapping to the Development environment displays detailed information about the error that occurred. -

-

- The Development environment shouldn't be enabled for deployed applications. - It can result in displaying sensitive information from exceptions to end users. - For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development - and restarting the app. -

-
-
- - - diff --git a/packages/blazor-workspace/Examples/Demo.Server/Pages/Error.cshtml.cs b/packages/blazor-workspace/Examples/Demo.Server/Pages/Error.cshtml.cs deleted file mode 100644 index cd746b5cbb..0000000000 --- a/packages/blazor-workspace/Examples/Demo.Server/Pages/Error.cshtml.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Diagnostics; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; - -namespace Demo.Server.Pages; - -[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] -[IgnoreAntiforgeryToken] -public class ErrorModel : PageModel -{ - public string? RequestId { get; set; } - - public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); - - public ErrorModel() - { - } - - public void OnGet() - { - RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; - } -} \ No newline at end of file diff --git a/packages/blazor-workspace/Examples/Demo.Server/Pages/_Host.cshtml b/packages/blazor-workspace/Examples/Demo.Server/Pages/_Host.cshtml deleted file mode 100644 index 0036076142..0000000000 --- a/packages/blazor-workspace/Examples/Demo.Server/Pages/_Host.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@page "/" -@namespace Demo.Server.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@{ - Layout = "_Layout"; -} - - diff --git a/packages/blazor-workspace/Examples/Demo.Server/Pages/_Layout.cshtml b/packages/blazor-workspace/Examples/Demo.Server/Pages/_Layout.cshtml deleted file mode 100644 index 8be6999bc3..0000000000 --- a/packages/blazor-workspace/Examples/Demo.Server/Pages/_Layout.cshtml +++ /dev/null @@ -1,33 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web -@namespace Demo.Server.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers - - - - - - - - - - - - - - @RenderBody() - -
- - An error has occurred. This application may no longer respond until reloaded. - - - An unhandled exception has occurred. See browser dev tools for details. - - Reload - 🗙 -
- - - - - \ No newline at end of file diff --git a/packages/blazor-workspace/Examples/Demo.Server/Program.cs b/packages/blazor-workspace/Examples/Demo.Server/Program.cs index 233f20cf9e..23acaa2e99 100644 --- a/packages/blazor-workspace/Examples/Demo.Server/Program.cs +++ b/packages/blazor-workspace/Examples/Demo.Server/Program.cs @@ -1,18 +1,19 @@ -#pragma warning disable CA1812 +using Demo.Server.Components; +using Demo.Shared; +using Microsoft.AspNetCore.StaticFiles.Infrastructure; var builder = WebApplication.CreateBuilder(args); // Add services to the container. -builder.Services.AddRazorPages(); -builder.Services.AddServerSideBlazor(); +builder.Services.AddRazorComponents() + .AddInteractiveServerComponents(); var app = builder.Build(); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { - app.UseExceptionHandler("/Error"); - + app.UseExceptionHandler("/Error", createScopeForErrors: true); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } @@ -20,10 +21,10 @@ app.UseHttpsRedirection(); app.UseStaticFiles(); +app.UseAntiforgery(); -app.UseRouting(); - -app.MapBlazorHub(); -app.MapFallbackToPage("/_Host"); +app.MapRazorComponents() + .AddAdditionalAssemblies(typeof(Routes).Assembly) + .AddInteractiveServerRenderMode(); app.Run(); diff --git a/packages/blazor-workspace/Examples/Demo.Server/Properties/launchSettings.json b/packages/blazor-workspace/Examples/Demo.Server/Properties/launchSettings.json index 8093e49a40..5e25851f94 100644 --- a/packages/blazor-workspace/Examples/Demo.Server/Properties/launchSettings.json +++ b/packages/blazor-workspace/Examples/Demo.Server/Properties/launchSettings.json @@ -1,28 +1,38 @@ { - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:14509", - "sslPort": 44320 - } - }, - "profiles": { - "Demo.Server": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "https://localhost:7062;http://localhost:5062", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:40760", + "sslPort": 44342 } }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5094", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7282;http://localhost:5094", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } } } } -} diff --git a/packages/blazor-workspace/Examples/Demo.Server/_Imports.razor b/packages/blazor-workspace/Examples/Demo.Server/_Imports.razor index 58199838bd..caaba72524 100644 --- a/packages/blazor-workspace/Examples/Demo.Server/_Imports.razor +++ b/packages/blazor-workspace/Examples/Demo.Server/_Imports.razor @@ -1,10 +1,10 @@ @using System.Net.Http -@using Microsoft.AspNetCore.Authorization -@using Microsoft.AspNetCore.Components.Authorization +@using System.Net.Http.Json @using Microsoft.AspNetCore.Components.Forms @using Microsoft.AspNetCore.Components.Routing @using Microsoft.AspNetCore.Components.Web +@using static Microsoft.AspNetCore.Components.Web.RenderMode @using Microsoft.AspNetCore.Components.Web.Virtualization @using Microsoft.JSInterop @using Demo.Server - +@using Demo.Server.Components diff --git a/packages/blazor-workspace/Examples/Demo.Server/packages.lock.json b/packages/blazor-workspace/Examples/Demo.Server/packages.lock.json index d0c66cfb70..fcfe041888 100644 --- a/packages/blazor-workspace/Examples/Demo.Server/packages.lock.json +++ b/packages/blazor-workspace/Examples/Demo.Server/packages.lock.json @@ -1,19 +1,19 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "Apache.Arrow": { @@ -23,52 +23,53 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", @@ -104,49 +105,48 @@ }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Roslynator.Analyzers": { "type": "Transitive", @@ -155,16 +155,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections.Immutable": { "type": "Transitive", @@ -173,8 +173,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Memory": { "type": "Transitive", @@ -207,8 +207,8 @@ "demo.shared": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.*, )", - "NI.CSharp.Analyzers": "[2.0.21, 2.0.21]", + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )", + "NI.CSharp.Analyzers": "[2.0.27, )", "NimbleBlazor": "[1.0.0, )", "SprightBlazor": "[1.0.0, )" } @@ -217,13 +217,13 @@ "type": "Project", "dependencies": { "Apache.Arrow": "[16.1.0, 16.1.0]", - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } }, "sprightblazor": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } } } diff --git a/packages/blazor-workspace/Examples/Demo.Shared/Demo.Shared.csproj b/packages/blazor-workspace/Examples/Demo.Shared/Demo.Shared.csproj index ebcfb12c58..8f3f2934c0 100644 --- a/packages/blazor-workspace/Examples/Demo.Shared/Demo.Shared.csproj +++ b/packages/blazor-workspace/Examples/Demo.Shared/Demo.Shared.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 enable enable false @@ -29,7 +29,7 @@ Never - + @@ -37,7 +37,7 @@ - + diff --git a/packages/blazor-workspace/Examples/Demo.Shared/App.razor b/packages/blazor-workspace/Examples/Demo.Shared/Routes.razor similarity index 87% rename from packages/blazor-workspace/Examples/Demo.Shared/App.razor rename to packages/blazor-workspace/Examples/Demo.Shared/Routes.razor index 843f201ab3..366af9216b 100644 --- a/packages/blazor-workspace/Examples/Demo.Shared/App.razor +++ b/packages/blazor-workspace/Examples/Demo.Shared/Routes.razor @@ -1,4 +1,4 @@ - + diff --git a/packages/blazor-workspace/Examples/Demo.Shared/packages.lock.json b/packages/blazor-workspace/Examples/Demo.Shared/packages.lock.json index 25463bb3c8..074a35a025 100644 --- a/packages/blazor-workspace/Examples/Demo.Shared/packages.lock.json +++ b/packages/blazor-workspace/Examples/Demo.Shared/packages.lock.json @@ -1,32 +1,33 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "Microsoft.AspNetCore.Components.Web": { "type": "Direct", - "requested": "[6.*, )", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "Apache.Arrow": { @@ -36,40 +37,40 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", @@ -105,49 +106,48 @@ }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Roslynator.Analyzers": { "type": "Transitive", @@ -156,16 +156,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections.Immutable": { "type": "Transitive", @@ -174,8 +174,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Memory": { "type": "Transitive", @@ -209,13 +209,13 @@ "type": "Project", "dependencies": { "Apache.Arrow": "[16.1.0, 16.1.0]", - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } }, "sprightblazor": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } } } diff --git a/packages/blazor-workspace/NimbleBlazor/CONTRIBUTING.md b/packages/blazor-workspace/NimbleBlazor/CONTRIBUTING.md index 323fed9080..82e1ba11e0 100644 --- a/packages/blazor-workspace/NimbleBlazor/CONTRIBUTING.md +++ b/packages/blazor-workspace/NimbleBlazor/CONTRIBUTING.md @@ -10,18 +10,20 @@ Initialize and build the Nimble monorepo (`npm install` + `npm run build` from t For Nimble Blazor development on Windows, the suggested tools to install are: - Visual Studio 2022 ([Enterprise, if available](https://my.visualstudio.com/Downloads?PId=8229)): Choose the "ASP.NET and Web Development" Workload in the installer -- Ensure Visual Studio is completely up to date (v17.1.6+): In Visual Studio click "Help" then "Check for Updates" +- Ensure Visual Studio is completely up to date (v17.11.2+): In Visual Studio click "Help" then "Check for Updates" - (Optional) Enable IIS (see "Enabling IIS", below) -- ASP.NET Core Runtime 6.0.4xx: Choose "Hosting Bundle" under ASP.NET Core Runtime, on the [.NET 6.0 Download Page](https://dotnet.microsoft.com/en-us/download/dotnet/6.0) +- ASP.NET Core Runtime 8.0.x: Choose "Hosting Bundle" under ASP.NET Core Runtime, on the [.NET 8.0 Download Page](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) -In Visual Studio, run either the `Demo.Server` or `Demo.Client` project to see the Blazor demo apps. +In Visual Studio, run the `Demo.Server`, `Demo.Client`, or `Demo.Hybrid` projects to see the Blazor demo apps. + +Note: If you get an error stating "Failed to launch debug adapter" / "Unable to launch browser" when debugging `Demo.Client`, ensure that Microsoft Edge is the browser being used (dropdown menu from the Run button). ### Mac / Visual Studio Code Install [Visual Studio Code](https://code.visualstudio.com/), and install the suggested extensions that appear once you open the NimbleBlazor project folders. ## Creating a Blazor wrapper for a Nimble element -In Nimble Blazor, the Nimble web components are wrapped as [Razor Components](https://docs.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-6.0#components) that consist of a `.razor` template file and a corresponding `.razor.cs` C# implementation file. +In Nimble Blazor, the Nimble web components are wrapped as [Razor Components](https://learn.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-8.0#components) that consist of a `.razor` template file and a corresponding `.razor.cs` C# implementation file. ### Example Component @@ -59,7 +61,7 @@ public IDictionary? AdditionalAttributes { get; set; } ### 2-way Binding Support, Handling DOM Events -In order to support [2-way binding for a property](https://docs.microsoft.com/en-us/aspnet/core/blazor/components/data-binding?view=aspnetcore-6.0#binding-with-component-parameters) on a Nimble web component, the `.razor` template needs to bind an attribute on the DOM element to the given property, as well as bind to a DOM event that fires when that attribute changes (due to a user action, or another change on the web component). +In order to support [2-way binding for a property](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/data-binding?view=aspnetcore-8.0#binding-with-component-parameters) on a Nimble web component, the `.razor` template needs to bind an attribute on the DOM element to the given property, as well as bind to a DOM event that fires when that attribute changes (due to a user action, or another change on the web component). The C# code for a property supporting 2-way binding will look like this: ```cs @@ -71,7 +73,7 @@ The C# code for a property supporting 2-way binding will look like this: ``` - For a form/ input control (textbox, etc.,), the component should derive from `NimbleInputBase`, the `.razor` file needs to bind a DOM element attribute to `CurrentValue` or `CurrentValueAsString`, and set one of those 2 properties in the DOM event listener (generally `@onchange`). `NimbleInputBase` will then handle invoking the `EventCallback`. See `NimbleTextField` for an example. Note that [Nimble has gaps in its `EditForm` support](https://github.com/ni/nimble/issues/766). -- The `@onchange` event callback built-in to Blazor supports DOM elements that fire a `change` event, and provides only `element.value` (which must be `string`, `string[]`, or `boolean`) in the event args. Most other cases (custom events with different names, the need to pass additional info from the DOM element to C# in the event args, etc.) will require using Blazor's [custom event arguments/ custom event type](https://docs.microsoft.com/en-us/aspnet/core/blazor/components/event-handling?view=aspnetcore-6.0#custom-event-arguments) support. See `NimbleDrawer` for an example. The event and its event arg type are declared in `EventHandlers.cs`, and `NimbleBlazor.lib.module.js` should be updated to register the custom event type, and create the event args in JavaScript. The event listener (C#) in this case needs to invoke the `[PropertyName]Changed` `EventCallback` itself. +- The `@onchange` event callback built-in to Blazor supports DOM elements that fire a `change` event, and provides only `element.value` (which must be `string`, `string[]`, or `boolean`) in the event args. Most other cases (custom events with different names, the need to pass additional info from the DOM element to C# in the event args, etc.) will require using Blazor's [custom event arguments/ custom event type](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/event-handling?view=aspnetcore-8.0#custom-event-arguments) support. See `NimbleDrawer` for an example. The event and its event arg type are declared in `EventHandlers.cs`, and `NimbleBlazor.lib.module.js` should be updated to register the custom event type, and create the event args in JavaScript. The event listener (C#) in this case needs to invoke the `[PropertyName]Changed` `EventCallback` itself. ## Testing @@ -87,11 +89,14 @@ Test Project: `NimbleBlazor.Tests.Acceptance` In order to fully test the Nimble Blazor components, consider writing new automated acceptance tests for new/modified components. Any component which requires custom JS code in `NimbleBlazor.lib.module.js` should generally have corresponding acceptance tests, because the bUnit tests in `NimbleBlazor.Tests` are unable to exercise/test that JavaScript code. -The `NimbleBlazor.Tests.Acceptance` project starts a local Blazor.Server app which serves Razor pages that host the Nimble components. Then, xUnit-based acceptance tests start a Chromium instance using [Playwright](https://playwright.dev/), load those Razor pages, and interact with them. +The `NimbleBlazor.Tests.Acceptance` project starts a local Blazor Web App which serves Razor pages that host the Nimble components. Then, xUnit-based acceptance tests start a Chromium instance using [Playwright](https://playwright.dev/), load those Razor pages, and interact with them. The majority of the tests use the `InteractiveServer` render mode, but the project also supports the Interactive Web Assembly render mode (and static server-side rendering mode) for tests. Tests should disable prerendering (as shown in the steps below) to ensure the components are ready for interaction when the Playwright test starts. -To add a new acceptance test: -- Add a new Razor file that uses that component in the `Pages` subfolder, with the name `[ComponentName][FunctionalityUnderTest].razor`, e.g. `DialogOpenAndClose.razor`. Add any necessary code to initialize the component in a `@code` section in the same file. If you'll interact with the component as the test runs, you may need to add other Nimble components like buttons to trigger new actions on your component under test. -- In the `Tests` subfolder, add a new class `[ComponentName]Tests.cs` if it doesn't already exist. Add a new test method in that class. Load your Razor file with the `NewPageForRouteAsync(routeName)` method. Using the Playwright APIs, interact with the components on the page, and make assertions about the state of the component under test. +To add a new acceptance test (with the Interactive Server render mode): +- Add a new Razor file that uses that component in the `Pages.InteractiveServer` subfolder, with the name `[ComponentName][FunctionalityUnderTest].razor`, e.g. `DialogOpenAndClose.razor`. + - Add any necessary code to initialize the component in a `@code` section in the same file. If you'll interact with the component as the test runs, you may need to add other Nimble components like buttons to trigger new actions on your component under test. + - Ensure that your Razor file has `@rendermode @(new InteractiveServerRenderMode(prerender: false))` in the top section. + - Specify the page's URL route via a `@page` directive - for example, `@page "/InteractiveServer/DialogOpenAndClose"`. +- In the `Tests.InteractiveServer` subfolder, add a new class `[ComponentName]Tests.cs` if it doesn't already exist. Add a new test method in that class. Load your Razor file with the `NewPageForRouteAsync(routeName)` method. Using the Playwright APIs, interact with the components on the page, and make assertions about the state of the component under test. See the existing acceptance tests for examples of using the Playwright APIs. Additionally, see [Getting Started with Playwright Tests (Skyline End2EndTests)](https://dev.azure.com/ni/DevCentral/_git/Skyline?path=/End2EndTests/Getting%20Started%20with%20Playwright%20Tests.md&_a=preview) and the [Playwright .NET docs on writing tests](https://playwright.dev/dotnet/docs/writing-tests). @@ -106,6 +111,10 @@ Visual Studio Code commands are included to build and run the example projects. - `blazor-server-example:watch`: Run the `Demo.Server` project in watch mode (to automatically pick up code changes) - `blazor-wasm-example:build`: Build the `Demo.Client` project - `blazor-wasm-example:watch`: Run the `Demo.Client` project in watch mode (to automatically pick up code changes) +- `blazor-hybrid-example:build`: (Windows only) Build the `Demo.Hybrid` project +- `blazor-hybrid-example:watch`: (Windows only) Run the `Demo.Hybrid` project in watch mode (to automatically pick up code changes) + +Also see the [trusting the ASP.NET Core development certificate docs](https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-8.0&tabs=visual-studio%2Clinux-sles#trust-the-aspnet-core-https-development-certificate-on-windows-and-macos). ## Creating a New Project diff --git a/packages/blazor-workspace/NimbleBlazor/Components/NimbleTable.razor.cs b/packages/blazor-workspace/NimbleBlazor/Components/NimbleTable.razor.cs index 8372894964..60cc31df2e 100644 --- a/packages/blazor-workspace/NimbleBlazor/Components/NimbleTable.razor.cs +++ b/packages/blazor-workspace/NimbleBlazor/Components/NimbleTable.razor.cs @@ -8,7 +8,7 @@ namespace NimbleBlazor; /// A table component /// /// Represents the type for a row of data in the table (an element of the ). -/// The type represented by should not have any hierarchy. All aspects that can be serialized +/// The type represented by should not have any hierarchy. All aspects that can be serialized /// should be at the top-level. public partial class NimbleTable : ComponentBase { diff --git a/packages/blazor-workspace/NimbleBlazor/NimbleBlazor.csproj b/packages/blazor-workspace/NimbleBlazor/NimbleBlazor.csproj index 007c475720..a519774945 100644 --- a/packages/blazor-workspace/NimbleBlazor/NimbleBlazor.csproj +++ b/packages/blazor-workspace/NimbleBlazor/NimbleBlazor.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 enable enable embedded @@ -12,7 +12,7 @@ git true true - Web Components, .NET, Nimble, FAST, Blazor, .NET 6.0 + Web Components, .NET, Nimble, FAST, Blazor, .NET 8.0 en MIT @@ -48,8 +48,8 @@ - - + + diff --git a/packages/blazor-workspace/NimbleBlazor/NimbleTableColumn.cs b/packages/blazor-workspace/NimbleBlazor/NimbleTableColumn.cs index ba69e2c05e..8c671e4f5b 100644 --- a/packages/blazor-workspace/NimbleBlazor/NimbleTableColumn.cs +++ b/packages/blazor-workspace/NimbleBlazor/NimbleTableColumn.cs @@ -19,7 +19,7 @@ public abstract class NimbleTableColumn : ComponentBase /// /// The label to associate with the action menu on this column for accessibility purposes. - /// This should be specified if is specified, but should not be specified otherwise. + /// This should be specified if is specified, but should not be specified otherwise. /// [Parameter] public string? ActionMenuLabel { get; set; } diff --git a/packages/blazor-workspace/NimbleBlazor/README.md b/packages/blazor-workspace/NimbleBlazor/README.md index b37ff01262..e936751960 100644 --- a/packages/blazor-workspace/NimbleBlazor/README.md +++ b/packages/blazor-workspace/NimbleBlazor/README.md @@ -9,18 +9,18 @@ 1. IDE: - **Windows with Visual Studio**: For Blazor development on Windows, the suggested IDE is: - Visual Studio 2022 ([Enterprise, if available](https://my.visualstudio.com/Downloads?PId=8229)): Choose the "ASP.NET and Web Development" Workload in the installer - - Ensure Visual Studio is completely up to date (v17.1.6+): In Visual Studio click "Help" then "Check for Updates" + - Ensure Visual Studio is completely up to date (v17.11.2+): In Visual Studio click "Help" then "Check for Updates" - **Mac with Visual Studio Code**: Install [Visual Studio Code](https://code.visualstudio.com/) and open it. Open the Extensions pane ("Preferences" >> "Extensions"), and search for / install the `ms-dotnettools.csharp` extension. 2. .NET SDK: See [the main contributing doc](/CONTRIBUTING.md) for the required version. ### Creating a new Blazor project -The built-in Blazor template projects are good starting points. First, decide whether to create a Blazor Server or Blazor Client/WebAssembly application (see the [Blazor hosting model documentation](https://docs.microsoft.com/en-us/aspnet/core/blazor/hosting-models?view=aspnetcore-6.0) for more information on both models). +The built-in Blazor template projects are good starting points. Starting with .NET 8, there's a unified Blazor Web App project type, which supports multiple render modes (see the [Blazor render modes documentation](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0) for more information). Also see the "Supported Render Modes" section below. -**Visual Studio**: Choose "New" >> "Project", and pick "Blazor Server app" or "Blazor WebAssembly app". -**VS Code**: Create a new folder, then open it in VS Code. Choose "View" >> "Terminal", and type `dotnet new blazorserver -f net6.0` (for Blazor Server) or `dotnet new blazorwasm -f net6.0` (for Blazor WebAssembly) and press Enter. Open the Command Palette ("View" >> "Command Palette" or Ctrl-Shift-P), enter ".NET Generate Assets for Build and Debug" and press Enter. +**Visual Studio**: Choose "New" >> "Project", and pick "Blazor Web App". Choose the appropriate settings for Interactive Render Mode and Interactivity Location, based on your project's needs. +**VS Code**: Create a new folder, then open it in VS Code. Choose "View" >> "Terminal", and type `dotnet new blazor` and press Enter, to create a new Blazor Web App. Open the Command Palette ("View" >> "Command Palette" or Ctrl-Shift-P), enter ".NET Generate Assets for Build and Debug" and press Enter. -Additional Resources: [Microsoft tutorial: Build a web app with Blazor](https://docs.microsoft.com/en-us/learn/modules/build-blazor-webassembly-visual-studio-code/); [`dotnet new` documentation](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-new) +Additional Resources: [Microsoft tutorial: Build a web app with Blazor](https://learn.microsoft.com/en-us/training/modules/build-your-first-blazor-web-app/); [`dotnet new` documentation](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-new) ### Reference NimbleBlazor in a Blazor project @@ -34,7 +34,7 @@ Additional Resources: [Microsoft tutorial: Build a web app with Blazor](https:// - VS Code: Run the command `dotnet add package NimbleBlazor --source [NimbleRepoDirectory]\packages\blazor-workspace\dist` in the Terminal window. 2. Add required references to Blazor code - Open `_Imports.razor`, and add a new line at the bottom: `@using NimbleBlazor` - - Open `_Layout.cshtml` (BlazorServer) / `wwwroot/index.html` (Blazor WebAssembly). + - Open the HTML page (generally `App.razor` for Blazor Web Apps, or `wwwroot/index.html` for Blazor WebAssembly / Hybrid) At the bottom of the `` section (right before ``), add ```html @@ -94,6 +94,21 @@ As the `NimbleTable` is generic a client must supply its generic type in the mar For more information regarding the Blazor component lifecycle mechanisms (such as `OnAfterRenderAsync`), please consult the [Microsoft Blazor docs](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/lifecycle). +### Supported Render Modes + +Nimble supports all of the [Blazor render modes](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0): +- Interactive server-side rendering (interactive SSR) using Blazor Server: `RenderMode.InteractiveServer` +- Interactive WebAssembly: Client-side rendering (CSR) using Blazor WebAssembly: `RenderMode.InteractiveWebAssembly` +- Interactive Auto: Interactive SSR initially, then CSR on subsequent visits after the Blazor bundle is downloaded: `RenderMode.InteractiveAuto` +- Static server-side rendering (static SSR): Default, when no render mode is specified + - ⚠️Warning: This render mode is not recommended for most use cases with Nimble. As the page is just rendered once server-side and then no state is maintained, you're unable to use event handlers or call methods on components. This also means that for components like the Nimble Table / Wafer Map, setting data can't be done via the component methods (because they'll have no effect if called). + +#### Prerendering + +Blazor with .NET 8 uses prerendering by default for interactive render modes. With it enabled, components are initially rendered server-side without event handlers connected, which could cause unexpected behavior (no effect when users interact with controls immediately after page load). + +See the [Blazor prerendering docs](https://learn.microsoft.com/en-us/aspnet/core/blazor/components/render-modes?view=aspnetcore-8.0#prerendering) for information on how to opt out of prerendering. + ### Theming and Design Tokens To use Nimble's theme-aware design tokens in a Blazor app, you should have a `` element as an ancestor to all of the Nimble components you use. The app's default layout (`MainLayout.razor` in the examples) is a good place to put the theme provider (as the root content of the page). @@ -132,18 +147,11 @@ To provide localized strings in a localized Blazor app: ### Using Nimble Blazor in a Blazor Hybrid app -There is currently an [issue in ASP.NET Core](https://github.com/dotnet/aspnetcore/issues/42349) that prevents the necessary JavaScript that Nimble Blazor relies on from loading in a Blazor Hybrid application. The Demo.Hybrid project illustrates the current required steps for getting Nimble Blazor to work properly. This simply involves adding the script `NimbleBlazor.HybridWorkaround.js` in the `index.html` file in `wwwroot`: +**Requirement:** `Microsoft.AspNetCore.Components.WebView` v8.0.4+ -wwwroot/index.html -```html - ... - - - - - -``` +This updated WebView package include a fix so that the JavaScript initialization code that Nimble/Spright Blazor uses gets loaded correctly. +Note that if using the `Microsoft.AspNetCore.Components.WebView.Wpf` package, it only specifies a dependency of `Microsoft.AspNetCore.Components.WebView` v8.0+, so you may to add need an explicit dependency on `Microsoft.AspNetCore.Components.WebView` to ensure a recent enough version is included. +The `Demo.Hybrid` project in the Blazor solution illustrates this setup. ## Contributing diff --git a/packages/blazor-workspace/NimbleBlazor/packages.lock.json b/packages/blazor-workspace/NimbleBlazor/packages.lock.json index 00e81f945c..18c58fbaa1 100644 --- a/packages/blazor-workspace/NimbleBlazor/packages.lock.json +++ b/packages/blazor-workspace/NimbleBlazor/packages.lock.json @@ -1,7 +1,7 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "Apache.Arrow": { "type": "Direct", "requested": "[16.1.0, 16.1.0]", @@ -10,67 +10,68 @@ }, "Microsoft.AspNetCore.Components.Web": { "type": "Direct", - "requested": "[6.0.33, )", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", @@ -106,49 +107,48 @@ }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Roslynator.Analyzers": { "type": "Transitive", @@ -157,16 +157,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections.Immutable": { "type": "Transitive", @@ -175,8 +175,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Memory": { "type": "Transitive", diff --git a/packages/blazor-workspace/NimbleBlazor/wwwroot/NimbleBlazor.lib.module.js b/packages/blazor-workspace/NimbleBlazor/wwwroot/NimbleBlazor.lib.module.js index c04bc77290..393e8e4d6c 100644 --- a/packages/blazor-workspace/NimbleBlazor/wwwroot/NimbleBlazor.lib.module.js +++ b/packages/blazor-workspace/NimbleBlazor/wwwroot/NimbleBlazor.lib.module.js @@ -5,12 +5,15 @@ * Register the custom event types used by Nimble components. * * JavaScript initializer for NimbleBlazor project, see - * https://docs.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/?view=aspnetcore-6.0#javascript-initializers + * https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/?view=aspnetcore-8.0 and + * https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/startup?view=aspnetcore-8.0 */ -export function afterStarted(Blazor) { - if (window.NimbleBlazor.calledAfterStarted) { - console.warn('Attempted to initialize Nimble Blazor multiple times!'); // eslint-disable-line +let hasRegisteredEvents = false; +let isReady = false; + +function registerEvents(Blazor) { + if (hasRegisteredEvents) { return; } @@ -18,7 +21,7 @@ export function afterStarted(Blazor) { throw new Error('Blazor not ready to initialize Nimble with!'); } - window.NimbleBlazor.calledAfterStarted = true; + hasRegisteredEvents = true; // Used by NimbleCheckbox.razor, NimbleSwitch.razor, NimbleToggleButton.razor // Necessary because the control's value property is always just the value 'on', so we need to look @@ -162,12 +165,38 @@ export function afterStarted(Blazor) { }); } +function handleRuntimeStarted() { + isReady = true; +} + +// Blazor Web Apps +export function afterWebStarted(Blazor) { + registerEvents(Blazor); +} + +// Blazor Web Apps using InteractiveServer render mode +export function afterServerStarted(_Blazor) { + handleRuntimeStarted(); +} + +// Blazor Web Apps using InteractiveWebAssembly render mode; WASM Standalone apps +export function afterWebAssemblyStarted(_Blazor) { + registerEvents(Blazor); + handleRuntimeStarted(); +} + +// Blazor Hybrid apps +export function afterStarted(Blazor) { + registerEvents(Blazor); + handleRuntimeStarted(); +} + if (window.NimbleBlazor) { console.warn('Attempting to initialize NimbleBlazor multiple times!'); // eslint-disable-line } window.NimbleBlazor = window.NimbleBlazor ?? { - calledAfterStarted: false, + isReady: () => isReady, Dialog: { show: async function (dialogReference) { const reason = await dialogReference.show(); diff --git a/packages/blazor-workspace/README.md b/packages/blazor-workspace/README.md index 7bf51f1b69..5067a49a82 100644 --- a/packages/blazor-workspace/README.md +++ b/packages/blazor-workspace/README.md @@ -1,9 +1,9 @@ # Blazor Workspace This workspace contains: -1. Blazor components and styles matching the NI brand. These are published as Nuget packages to be consumed by either Blazor WebAssembly or Blazor Server applications. +1. Blazor components and styles matching the NI brand. These are published as Nuget packages to be consumed by Blazor applications. - `NimbleBlazor` contains general-purpose components - `SprightBlazor` contains special-purpose or application-specific components -2. Three Blazor demo applications that consume the components: a Blazor WebAssembly application (`Demo.Client`), a Blazor Server application (`Demo.Server`), and a Blazor Hybrid application (`Demo.Hybrid`). +2. Three Blazor demo applications that consume the components: a Blazor WebAssembly Standalone application (`Demo.Client`), a Blazor Web App application (`Demo.Server`) that uses the Interactive Server render mode, and a Blazor Hybrid application (`Demo.Hybrid`). Refer to the `README.md` files in the individual project directories for more details. diff --git a/packages/blazor-workspace/SprightBlazor/README.md b/packages/blazor-workspace/SprightBlazor/README.md index 5e6aab8229..e3e7f26394 100644 --- a/packages/blazor-workspace/SprightBlazor/README.md +++ b/packages/blazor-workspace/SprightBlazor/README.md @@ -10,7 +10,7 @@ Any project using SprightBlazor components will typically also be using NimbleBl - Add references to **both** the SprightBlazor and NimbleBlazor NuGet packages in your project -- Include **only** the Spright all-components bundle in `_Layout.cshtml` (for BlazorServer) or `wwwroot/index.html` (for Blazor WebAssembly): +- Include **only** the Spright all-components bundle in the HTML page (generally `App.razor` for Blazor Web Apps, or `wwwroot/index.html` for Blazor WebAssembly / Hybrid): ```html @@ -20,22 +20,6 @@ Any project using SprightBlazor components will typically also be using NimbleBl ``` -### In a Blazor Hybrid app - -- Include **both** `SprightBlazor.HybridWorkaround.js` and `NimbleBlazor.HybridWorkaround.js` in `wwwroot/index.html`: - - ```html - - ... - - - - - - - ``` - ## Contributing Follow the instructions in [CONTRIBUTING.md](/packages/blazor-workspace/SprightBlazor/CONTRIBUTING.md) to modify this library. diff --git a/packages/blazor-workspace/SprightBlazor/SprightBlazor.csproj b/packages/blazor-workspace/SprightBlazor/SprightBlazor.csproj index 8edab57ece..8e388f644e 100644 --- a/packages/blazor-workspace/SprightBlazor/SprightBlazor.csproj +++ b/packages/blazor-workspace/SprightBlazor/SprightBlazor.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 enable enable embedded @@ -12,7 +12,7 @@ git true true - Web Components, .NET, Spright, Nimble, FAST, Blazor, .NET 6.0 + Web Components, .NET, Spright, Nimble, FAST, Blazor, .NET 8.0 en MIT @@ -47,8 +47,8 @@ - - + + @@ -58,7 +58,7 @@ - + diff --git a/packages/blazor-workspace/SprightBlazor/packages.lock.json b/packages/blazor-workspace/SprightBlazor/packages.lock.json index d66dda9807..0228956a12 100644 --- a/packages/blazor-workspace/SprightBlazor/packages.lock.json +++ b/packages/blazor-workspace/SprightBlazor/packages.lock.json @@ -1,70 +1,71 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "Microsoft.AspNetCore.Components.Web": { "type": "Direct", - "requested": "[6.0.33, )", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", @@ -100,49 +101,48 @@ }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Roslynator.Analyzers": { "type": "Transitive", @@ -151,16 +151,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections.Immutable": { "type": "Transitive", @@ -169,8 +169,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Memory": { "type": "Transitive", diff --git a/packages/blazor-workspace/SprightBlazor/wwwroot/SprightBlazor.lib.module.js b/packages/blazor-workspace/SprightBlazor/wwwroot/SprightBlazor.lib.module.js index 30e71544aa..e756141518 100644 --- a/packages/blazor-workspace/SprightBlazor/wwwroot/SprightBlazor.lib.module.js +++ b/packages/blazor-workspace/SprightBlazor/wwwroot/SprightBlazor.lib.module.js @@ -5,12 +5,15 @@ * Register the custom event types used by Spright components. * * JavaScript initializer for SprightBlazor project, see - * https://docs.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/?view=aspnetcore-6.0#javascript-initializers + * https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/?view=aspnetcore-8.0 and + * https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/startup?view=aspnetcore-8.0 */ -export function afterStarted(Blazor) { - if (window.SprightBlazor.calledAfterStarted) { - console.warn('Attempted to initialize Spright Blazor multiple times!'); // eslint-disable-line +let hasRegisteredEvents = false; +let isReady = false; + +function registerEvents(Blazor) { + if (hasRegisteredEvents) { return; } @@ -18,7 +21,7 @@ export function afterStarted(Blazor) { throw new Error('Blazor not ready to initialize Spright with!'); } - window.SprightBlazor.calledAfterStarted = true; + hasRegisteredEvents = true; /* Register any custom events here Blazor.registerCustomEventType('sprighteventname', { @@ -33,10 +36,36 @@ export function afterStarted(Blazor) { */ } +function handleRuntimeStarted() { + isReady = true; +} + +// Blazor Web Apps +export function afterWebStarted(Blazor) { + registerEvents(Blazor); +} + +// Blazor Web Apps using InteractiveServer render mode +export function afterServerStarted(_Blazor) { + handleRuntimeStarted(); +} + +// Blazor Web Apps using InteractiveWebAssembly render mode; WASM Standalone apps +export function afterWebAssemblyStarted(_Blazor) { + registerEvents(Blazor); + handleRuntimeStarted(); +} + +// Blazor Hybrid apps +export function afterStarted(Blazor) { + registerEvents(Blazor); + handleRuntimeStarted(); +} + if (window.SprightBlazor) { console.warn('Attempting to initialize SprightBlazor multiple times!'); // eslint-disable-line } window.SprightBlazor = window.SprightBlazor ?? { - calledAfterStarted: false + isReady: () => isReady }; diff --git a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/AcceptanceTestsBase.cs b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/AcceptanceTestsBase.cs index 6615fd406d..3a4cc9e27e 100644 --- a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/AcceptanceTestsBase.cs +++ b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/AcceptanceTestsBase.cs @@ -9,7 +9,12 @@ public abstract class AcceptanceTestsBase private readonly PlaywrightFixture _playwrightFixture; protected abstract Uri ServerAddress { get; } - protected abstract string ComponentLibraryInitializationTestJavaScript { get; } + + /// + /// Optional JavaScript code to test if the component library is ready for interactions + /// Can be left as default for static server-side rendering tests. + /// + protected virtual string ComponentLibraryInitializationTestJavaScript => string.Empty; protected AcceptanceTestsBase(PlaywrightFixture playwrightFixture) { @@ -32,7 +37,10 @@ private async Task NavigateToPageAsync(IPage page, string route) private async Task WaitForComponentsInitializationAsync(IPage page) { - await page.WaitForFunctionAsync(ComponentLibraryInitializationTestJavaScript); + if (!string.IsNullOrEmpty(ComponentLibraryInitializationTestJavaScript)) + { + await page.WaitForFunctionAsync(ComponentLibraryInitializationTestJavaScript); + } } protected sealed class AsyncDisposablePage : IAsyncDisposable diff --git a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/BlazorWorkspace.Testing.Acceptance.csproj b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/BlazorWorkspace.Testing.Acceptance.csproj index c8e31589ff..b91a9f1432 100644 --- a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/BlazorWorkspace.Testing.Acceptance.csproj +++ b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/BlazorWorkspace.Testing.Acceptance.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 enable enable true @@ -8,7 +8,7 @@ - CA1716 + CA1716;CS1591 Properties @@ -17,11 +17,12 @@ - - + + + - + diff --git a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/IStartup.cs b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/IStartup.cs new file mode 100644 index 0000000000..4ec605b498 --- /dev/null +++ b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/IStartup.cs @@ -0,0 +1,10 @@ +using System.Reflection; + +namespace BlazorWorkspace.Testing.Acceptance; + +public interface IStartup +{ + void AddAdditionalAssemblies(params Assembly[] assemblies); + void ConfigureServices(IServiceCollection services); + void Configure(IApplicationBuilder app); +} diff --git a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/Startup.cs b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/Startup.cs index 82366cc3c8..6e447410ca 100644 --- a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/Startup.cs +++ b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/Startup.cs @@ -1,14 +1,24 @@ -namespace BlazorWorkspace.Testing.Acceptance; +using System.Reflection; + +namespace BlazorWorkspace.Testing.Acceptance; /// /// Web server initialization for Blazor Server /// -public sealed class Startup +public sealed class Startup : IStartup { + private readonly List _additionalAssemblies = new List(); + + public void AddAdditionalAssemblies(params Assembly[] assemblies) + { + _additionalAssemblies.AddRange(assemblies); + } + public void ConfigureServices(IServiceCollection services) { - services.AddRazorPages(); - services.AddServerSideBlazor(); + var razorBuilder = services.AddRazorComponents(); + razorBuilder.AddInteractiveServerComponents(); + razorBuilder.AddInteractiveWebAssemblyComponents(); } public void Configure(IApplicationBuilder app) @@ -16,10 +26,14 @@ public void Configure(IApplicationBuilder app) app.UseDeveloperExceptionPage(); app.UseStaticFiles(); app.UseRouting(); - app.UseEndpoints(endpoints => + app.UseAntiforgery(); + app.UseStatusCodePages(); + app.UseEndpoints(app => { - endpoints.MapBlazorHub(); - endpoints.MapFallbackToPage("/_Host"); + app.MapRazorComponents() + .AddAdditionalAssemblies([.. _additionalAssemblies]) + .AddInteractiveServerRenderMode() + .AddInteractiveWebAssemblyRenderMode(); }); } } \ No newline at end of file diff --git a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/WebHostServerFixture.cs b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/WebHostServerFixture.cs index b71187d819..5c321eeb60 100644 --- a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/WebHostServerFixture.cs +++ b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/WebHostServerFixture.cs @@ -20,7 +20,7 @@ public async Task InitializeAsync() ServerAddress = new Uri(addressFeature!.Addresses.First()); } - protected abstract Startup StartupFactory(WebHostBuilderContext context); + protected abstract IStartup StartupFactory(WebHostBuilderContext context); public async Task DisposeAsync() { diff --git a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/packages.lock.json b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/packages.lock.json index 25a1cbca16..990b4c6bdd 100644 --- a/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/packages.lock.json +++ b/packages/blazor-workspace/Tests/BlazorWorkspace.Testing.Acceptance/packages.lock.json @@ -1,26 +1,32 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { + "Microsoft.AspNetCore.Components.WebAssembly.Server": { + "type": "Direct", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "jd/s5ZC4/FGzqyMrnZ5WPZYBx0odfqstlevGESAqakhN9ozalat2PEo8ECgYK7768XdCvifcEO0nrlvAiPQirg==" + }, "Microsoft.AspNetCore.Mvc.Testing": { "type": "Direct", - "requested": "[6.0.33, )", - "resolved": "6.0.33", - "contentHash": "57uIEOklyuDkKp+TAqxy6FAxAfhCUMDP3ACYBLN6Yx71/EOdfAgME6lWcoA+Esv6SRi/9bXqSijhr8K1fgE++Q==", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "xKtPgAV71lzCzwN3RhisgBJKCKyUWGMGNEXWQFpPjX/UhlM/RjW3wyGxuzcrgYEy2EVE77o5kyj95QO9kIJEXg==", "dependencies": { - "Microsoft.AspNetCore.TestHost": "6.0.33", - "Microsoft.Extensions.DependencyModel": "6.0.0", - "Microsoft.Extensions.Hosting": "6.0.1" + "Microsoft.AspNetCore.TestHost": "8.0.10", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Extensions.Hosting": "8.0.1" } }, "Microsoft.Extensions.Configuration": { "type": "Direct", - "requested": "[7.0.0, )", - "resolved": "7.0.0", - "contentHash": "tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.NET.Test.Sdk": { @@ -46,16 +52,16 @@ }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "System.ComponentModel": { @@ -100,59 +106,60 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.AspNetCore.TestHost": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "P1uql2YFnpuLTvCKnddxFGG/mnr8lJ6ElqVQSDZbCN/0JIy13Ej9dQe45vjgC5hc/NEilFIG9vNjGizdoJd+SA==", + "resolved": "8.0.10", + "contentHash": "4mBNOllpDEmgzF+c7ZfnPM7CnuD25TQ7V6VMz8a66EqAyzx3Hys9rSoO4PahsmNPQc6LtB3tJG/QU/BBUbR9+w==", "dependencies": { - "System.IO.Pipelines": "6.0.3" + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.Bcl.AsyncInterfaces": { @@ -222,274 +229,282 @@ }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "resolved": "8.0.2", + "contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.CommandLine": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "3nL1qCkZ1Oxx14ZTzgo4MmlO7tso7F+TtMZAY2jUAtTLyAcDp+EDjk3RqafoKiNaePyPvvlleEcBxh3b2Hzl1g==", + "resolved": "8.0.0", + "contentHash": "NZuZMz3Q8Z780nKX3ifV1fE7lS+6pynDHK71OfU4OZ1ItgvDOhyOC7E6z+JMZrAj63zRpwbdldYFk499t3+1dQ==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.EnvironmentVariables": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "pnyXV1LFOsYjGveuC07xp0YHIyGq7jRq5Ncb5zrrIieMLWVwgMyYxcOH0jTnBedDT4Gh1QinSqsjqzcieHk1og==", + "resolved": "8.0.0", + "contentHash": "plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "V4Dth2cYMZpw3HhGw9XUDIijpI6gN+22LDt0AhufIgOppCUfpWX4483OmN+dFXRJkJLc8Tv0Q8QK+1ingT2+KQ==", + "resolved": "8.0.1", + "contentHash": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GJGery6QytCzS/BxJ96klgG9in3uH26KcUBbiVG/coNDXCRq6LGVVlUT4vXq34KPuM+R2av+LeYdX9h4IZOCUg==", + "resolved": "8.0.1", + "contentHash": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.UserSecrets": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "Fy8yr4V6obi7ZxvKYI1i85jqtwMq8tqyxQVZpRSkgeA8enqy/KvBIMdcuNdznlxQMZa72mvbHqb7vbg4Pyx95w==", + "resolved": "8.0.1", + "contentHash": "7tYqdPPpAK+3jO9d5LTuCK2VxrEdf85Ol4trUr6ds4jclBecadWZ/RyPCbNjfbN5iGTfUnD/h65TOQuqQv2c+A==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TD5QHg98m3+QhgEV1YVoNMl5KtBw/4rjfxLHO0e/YV9bPUBDKntApP4xdrVtGgCeQZHVfC2EXIGsdpRNrr87Pg==", + "resolved": "8.0.2", + "contentHash": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==" + }, + "Microsoft.Extensions.Diagnostics": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "doVPCUUCY7c6LhBsEfiy3W1bvS7Mi6LkfQMS8nlC22jZWNxBv8VO8bdfeyvpYFst6Kxqk7HBC6lytmEoBssvSQ==", "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "QvkL7l0nM8udt3gfyu0Vw8bbCXblxaKOl7c2oBfgGy4LCURRaL9XWZX1FWJrQc43oMokVneVxH38iz+bY1sbhg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ip8jnL1aPiaPeKINCqaTEbvBFDmVx9dXQEBZ2HOBRXPD1eabGNqP/bKlsIcp7U2lGxiXd5xIhoFcmY8nM4Hdiw==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Hosting": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "hbmizc9KPWOacLU8Z8YMaBG6KWdZFppczYV/KwnPGU/8xebWxQxdDeJmLOgg968prb7g2oQgnp6JVLX6lgby8g==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Configuration.CommandLine": "6.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.Configuration.UserSecrets": "6.0.1", - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Configuration": "6.0.0", - "Microsoft.Extensions.Logging.Console": "6.0.0", - "Microsoft.Extensions.Logging.Debug": "6.0.0", - "Microsoft.Extensions.Logging.EventLog": "6.0.0", - "Microsoft.Extensions.Logging.EventSource": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0" + "resolved": "8.0.1", + "contentHash": "bP9EEkHBEfjgYiG8nUaXqMk/ujwJrffOkNPP7onpRMO8R+OUSESSP4xHkCAXgYZ1COP2Q9lXlU5gkMFh20gRuw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.CommandLine": "8.0.0", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Configuration.UserSecrets": "8.0.1", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Logging.Console": "8.0.1", + "Microsoft.Extensions.Logging.Debug": "8.0.1", + "Microsoft.Extensions.Logging.EventLog": "8.0.1", + "Microsoft.Extensions.Logging.EventSource": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GcT5l2CYXL6Sa27KCSh0TixsRfADUgth+ojQSD5EkzisZxmGFh7CwzkcYuGwvmXLjr27uWRNrJ2vuuEjMhU05Q==", + "resolved": "8.0.1", + "contentHash": "nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" } }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "8.0.1", + "contentHash": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Logging.Configuration": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ZDskjagmBAbv+K8rYW9VhjPplhbOE63xUD0DiuydZJwt15dRyoqicYklLd86zzeintUc7AptDkHn+YhhYkYo8A==", + "resolved": "8.0.1", + "contentHash": "QWwTrsgOnJMmn+XUslm8D2H1n3PkP/u/v52FODtyBc/k4W9r3i2vcXXeeX/upnzllJYRRbrzVzT0OclfNJtBJA==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" } }, "Microsoft.Extensions.Logging.Console": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "gsqKzOEdsvq28QiXFxagmn1oRB9GeI5GgYCkoybZtQA0IUb7QPwf1WmN3AwJeNIsadTvIFQCiVK0OVIgKfOBGg==", + "resolved": "8.0.1", + "contentHash": "uzcg/5U2eLyn5LIKlERkdSxw6VPC1yydnOSQiRRWGBGN3kphq3iL4emORzrojScDmxRhv49gp5BI8U3Dz7y4iA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Configuration": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Logging.Debug": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "M9g/JixseSZATJE9tcMn9uzoD4+DbSglivFqVx8YkRJ7VVPmnvCEbOZ0AAaxsL1EKyI4cz07DXOOJExxNsUOHw==", + "resolved": "8.0.1", + "contentHash": "B8hqNuYudC2RB+L/DI33uO4rf5by41fZVdcVL2oZj0UyoAZqnwTwYHp1KafoH4nkl1/23piNeybFFASaV2HkFg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" } }, "Microsoft.Extensions.Logging.EventLog": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "rlo0RxlMd0WtLG3CHI0qOTp6fFn7MvQjlrCjucA31RqmiMFCZkF8CHNbe8O7tbBIyyoLGWB1he9CbaA5iyHthg==", + "resolved": "8.0.1", + "contentHash": "ZD1m4GXoxcZeDJIq8qePKj+QAWeQNO/OG8skvrOG8RQfxLp9MAKRoliTc27xanoNUzeqvX5HhS/I7c0BvwAYUg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.EventLog": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "System.Diagnostics.EventLog": "8.0.1" } }, "Microsoft.Extensions.Logging.EventSource": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "BeDyyqt7nkm/nr+Gdk+L8n1tUT/u33VkbXAOesgYSNsxDM9hJ1NOBGoZfj9rCbeD2+9myElI6JOVVFmnzgeWQA==", + "resolved": "8.0.1", + "contentHash": "YMXMAla6B6sEf/SnfZYTty633Ool3AH7KOw2LOaaEqwSo2piK4f7HMtzyc3CNiipDnq1fsUSuG5Oc7ZzpVy8WQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.ConfigurationExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "resolved": "8.0.0", + "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", @@ -521,8 +536,8 @@ }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Newtonsoft.Json": { "type": "Transitive", @@ -565,21 +580,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections": { "type": "Transitive", @@ -611,18 +621,10 @@ "System.Runtime": "4.1.0" } }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + "resolved": "8.0.1", + "contentHash": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg==" }, "System.Diagnostics.Tools": { "type": "Transitive", @@ -703,8 +705,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Linq": { "type": "Transitive", @@ -1067,7 +1069,7 @@ "type": "Project", "dependencies": { "Apache.Arrow": "[16.1.0, 16.1.0]", - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } } } diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/NimbleBlazor.Tests.Acceptance.Client.csproj b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/NimbleBlazor.Tests.Acceptance.Client.csproj new file mode 100644 index 0000000000..d4efd123c9 --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/NimbleBlazor.Tests.Acceptance.Client.csproj @@ -0,0 +1,25 @@ + + + + net8.0 + enable + enable + true + true + + + + + + + + + + + + + + + + + diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Pages.InteractiveWebAssembly/DialogOpenAndClose.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Pages.InteractiveWebAssembly/DialogOpenAndClose.razor new file mode 100644 index 0000000000..e36ea4679f --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Pages.InteractiveWebAssembly/DialogOpenAndClose.razor @@ -0,0 +1,30 @@ +@page "/InteractiveWebAssembly/DialogOpenAndClose" +@namespace NimbleBlazor.Tests.Acceptance.Client.Pages +@inherits LayoutComponentBase +@rendermode @(new InteractiveWebAssemblyRenderMode(prerender: false)) + +Open + + + Example Dialog + Close + + + + +@code { + private NimbleDialog? _dialog; + private NimbleTextField? _textField; + private string? DialogCloseReason { get; set; } + + public async Task OpenDialogAsync() + { + var response = await _dialog!.ShowAsync(); + DialogCloseReason = response.Value; + } + + public async Task CloseDialogAsync() + { + await _dialog!.CloseAsync("Custom Close Reason"); + } +} diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Program.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Program.cs new file mode 100644 index 0000000000..2e98568675 --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Program.cs @@ -0,0 +1,13 @@ +using Microsoft.AspNetCore.Components.Web; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; + +namespace NimbleBlazor.Tests.Acceptance.Client; +public static class Program +{ + public static async Task Main(string[] args) + { + var builder = WebAssemblyHostBuilder.CreateDefault(args); + + await builder.Build().RunAsync(); + } +} diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Properties/launchSettings.json b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Properties/launchSettings.json new file mode 100644 index 0000000000..01c3bef68f --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/Properties/launchSettings.json @@ -0,0 +1,12 @@ +{ + "profiles": { + "NimbleBlazor.Tests.Acceptance.Client": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:64304;http://localhost:64305" + } + } +} \ No newline at end of file diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/_Imports.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/_Imports.razor new file mode 100644 index 0000000000..fe191d7c2b --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/_Imports.razor @@ -0,0 +1,9 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using Microsoft.JSInterop +@using NimbleBlazor.Tests.Acceptance diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/packages.lock.json b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/packages.lock.json new file mode 100644 index 0000000000..b8ccb78bc5 --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/packages.lock.json @@ -0,0 +1,340 @@ +{ + "version": 1, + "dependencies": { + "net8.0": { + "Microsoft.AspNetCore.Components.WebAssembly": { + "type": "Direct", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "WGEsQ/wi1pv0t24Drb3NSwJoxPahyksw1+zRz29LDi8hxLSA2iPqVRORzs85JzkWkNnEaQjSEjx8nYal/X1w7Q==", + "dependencies": { + "Microsoft.AspNetCore.Components.Web": "8.0.10", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.JSInterop.WebAssembly": "8.0.10" + } + }, + "Microsoft.NET.ILLink.Tasks": { + "type": "Direct", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "xT8jYjlroY7SLbGtoV9vUTVW/TPgodL4Egc31a444Xe0TMytLZ3UlKQ0kxMZsy/CrWsFB6wtKnSG1SsXcWreew==" + }, + "Microsoft.NET.Sdk.WebAssembly.Pack": { + "type": "Direct", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "DTJaIRCxCphhaI+7htflFVgOHbQMLprP65yRk5jlnXfkjwyo8oNwFPBZDr6/3X0YO7W77JOjnfjve2QSaYxs9g==" + }, + "NI.CSharp.Analyzers": { + "type": "Direct", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "Microsoft.CodeAnalysis.CSharp": "4.2.0", + "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", + "Roslynator.Analyzers": "4.1.1", + "StyleCop.Analyzers": "1.2.0-beta.556" + } + }, + "Apache.Arrow": { + "type": "Transitive", + "resolved": "16.1.0", + "contentHash": "Xs4v4zhiYjhAF7wGrjJlfhFU+NKj6NfE3Hx5s32ZX2KjZZ5EYOis0P9vyQSAjVafGanWwOM1iaRzS4tZHI0nAg==" + }, + "Microsoft.AspNetCore.Authorization": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", + "dependencies": { + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + } + }, + "Microsoft.AspNetCore.Components": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", + "dependencies": { + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" + } + }, + "Microsoft.AspNetCore.Components.Analyzers": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" + }, + "Microsoft.AspNetCore.Components.Forms": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", + "dependencies": { + "Microsoft.AspNetCore.Components": "8.0.10" + } + }, + "Microsoft.AspNetCore.Components.Web": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", + "dependencies": { + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.Metadata": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" + }, + "Microsoft.CodeAnalysis.Analyzers": { + "type": "Transitive", + "resolved": "3.3.3", + "contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ==" + }, + "Microsoft.CodeAnalysis.Common": { + "type": "Transitive", + "resolved": "4.2.0", + "contentHash": "lbusGcuE7D8FtZawQ4G++UFsRQArPzZN1GGXjPQwu3gvCbw7FXDcBq1zDZrZN1vRzPTVe1qyZMvfGhVUzs1TDg==", + "dependencies": { + "Microsoft.CodeAnalysis.Analyzers": "3.3.3", + "System.Collections.Immutable": "5.0.0", + "System.Memory": "4.5.4", + "System.Reflection.Metadata": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encoding.CodePages": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.CodeAnalysis.CSharp": { + "type": "Transitive", + "resolved": "4.2.0", + "contentHash": "5IDwr8zGNBmDpxtzxxZj9IHwoA6HJ1/WWT/JacqPQJ4Vz/oZXaHNlzcBPVCZRGWUw+QvVdAhCKwEyJyuAuH/wg==", + "dependencies": { + "Microsoft.CodeAnalysis.Common": "[4.2.0]" + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "DxiTgkCl3CGq1rYmBX2wjY7XGbxiBdL4J+/AJIAFLKy5z70NxhnVRnPghnicXZ8oF6JKVXlW3xwznRbI3ioEKg==" + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "8.0.2", + "contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" + } + }, + "Microsoft.Extensions.Configuration.FileExtensions": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Configuration.Json": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" + }, + "Microsoft.Extensions.FileProviders.Abstractions": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.FileProviders.Physical": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", + "dependencies": { + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.FileSystemGlobbing": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" + }, + "Microsoft.JSInterop": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" + }, + "Microsoft.JSInterop.WebAssembly": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "1RumzzQ+s4Zkq08ls7tDPlvx7ASsWI7gIrxiTD75b3pYr3TDUd3YbAnccqq+H3BDo6znpCZZGScFotrgz5R8LQ==", + "dependencies": { + "Microsoft.JSInterop": "8.0.10" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Transitive", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" + }, + "Roslynator.Analyzers": { + "type": "Transitive", + "resolved": "4.1.1", + "contentHash": "3cPVlrB1PytlO1ztZZBOExDKQWpMZgI15ZDa0BqLu0l6xv+xIRfEpqjNRcpvUy3aLxWTkPgSKZbbaO+VoFEJ1g==" + }, + "StyleCop.Analyzers": { + "type": "Transitive", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", + "dependencies": { + "StyleCop.Analyzers.Unstable": "1.2.0.556" + } + }, + "StyleCop.Analyzers.Unstable": { + "type": "Transitive", + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" + }, + "System.Memory": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Threading.Tasks.Extensions": { + "type": "Transitive", + "resolved": "4.5.4", + "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==" + }, + "nimbleblazor": { + "type": "Project", + "dependencies": { + "Apache.Arrow": "[16.1.0, 16.1.0]", + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" + } + } + }, + "net8.0/browser-wasm": { + "System.Text.Encoding.CodePages": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + } + } + } +} \ No newline at end of file diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/wwwroot/appsettings.Development.json b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/wwwroot/appsettings.Development.json new file mode 100644 index 0000000000..0c208ae918 --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/wwwroot/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/wwwroot/appsettings.json b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/wwwroot/appsettings.json new file mode 100644 index 0000000000..0c208ae918 --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance.Client/wwwroot/appsettings.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/App.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/App.razor index 6fd3ed1b5a..eab01c8786 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/App.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/App.razor @@ -1,12 +1,31 @@ - - - - - - - Not found - -

Sorry, there's nothing at this address.

-
-
-
+@using Microsoft.AspNetCore.Components.Web + + + + + + + + + + + + + + + +
+ + An error has occurred. This application may no longer respond until reloaded. + + + An unhandled exception has occurred. See browser dev tools for details. + + Reload + 🗙 +
+ + + + + \ No newline at end of file diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/NimbleAcceptanceTestsBase.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleAcceptanceTestsBase.cs similarity index 78% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/NimbleAcceptanceTestsBase.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleAcceptanceTestsBase.cs index b70ba17885..04e66121b9 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/NimbleAcceptanceTestsBase.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleAcceptanceTestsBase.cs @@ -14,5 +14,4 @@ protected NimbleAcceptanceTestsBase( } protected override Uri ServerAddress { get; } - protected override string ComponentLibraryInitializationTestJavaScript => "window.NimbleBlazor && window.NimbleBlazor.calledAfterStarted === true"; } diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleBlazor.Tests.Acceptance.csproj b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleBlazor.Tests.Acceptance.csproj index 6ebb38992c..cf2f403aa6 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleBlazor.Tests.Acceptance.csproj +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleBlazor.Tests.Acceptance.csproj @@ -1,11 +1,12 @@  - net6.0 + net8.0 enable enable false true true + true @@ -31,11 +32,11 @@
- - + + - + @@ -48,6 +49,7 @@ +
diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleBlazorWebHostServerFixture.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleBlazorWebHostServerFixture.cs index 17d70f8e45..5d0c498840 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleBlazorWebHostServerFixture.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleBlazorWebHostServerFixture.cs @@ -1,4 +1,5 @@ using BlazorWorkspace.Testing.Acceptance; +using IStartup = BlazorWorkspace.Testing.Acceptance.IStartup; namespace NimbleBlazor.Tests.Acceptance; @@ -8,8 +9,10 @@ namespace NimbleBlazor.Tests.Acceptance; public class NimbleBlazorWebHostServerFixture : WebHostServerFixture { // In order for components in this assembly to be discoverable, the Startup instance must be created in this assembly. - protected override Startup StartupFactory(WebHostBuilderContext context) + protected override IStartup StartupFactory(WebHostBuilderContext context) { - return new Startup(); + var result = new Startup(); + result.AddAdditionalAssemblies(typeof(Client._Imports).Assembly); + return result; } } diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleInteractiveAcceptanceTestsBase.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleInteractiveAcceptanceTestsBase.cs new file mode 100644 index 0000000000..a7006f979f --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/NimbleInteractiveAcceptanceTestsBase.cs @@ -0,0 +1,16 @@ +using BlazorWorkspace.Testing.Acceptance; +using Xunit; + +namespace NimbleBlazor.Tests.Acceptance; + +public abstract class NimbleInteractiveAcceptanceTestsBase : NimbleAcceptanceTestsBase +{ + protected NimbleInteractiveAcceptanceTestsBase( + PlaywrightFixture playwrightFixture, + NimbleBlazorWebHostServerFixture blazorServerClassFixture) + : base(playwrightFixture, blazorServerClassFixture) + { + } + + protected override string ComponentLibraryInitializationTestJavaScript => "window.NimbleBlazor && window.NimbleBlazor.isReady()"; +} diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/DialogOpenAndClose.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/DialogOpenAndClose.razor similarity index 87% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/DialogOpenAndClose.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/DialogOpenAndClose.razor index 2fef2593d7..c4c7c819be 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/DialogOpenAndClose.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/DialogOpenAndClose.razor @@ -1,6 +1,7 @@ -@page "/DialogOpenAndClose" +@page "/InteractiveServer/DialogOpenAndClose" @namespace NimbleBlazor.Tests.Acceptance.Pages @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) Open diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/DrawerOpenAndClose.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/DrawerOpenAndClose.razor similarity index 87% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/DrawerOpenAndClose.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/DrawerOpenAndClose.razor index 093d0a8083..f5d55e1a30 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/DrawerOpenAndClose.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/DrawerOpenAndClose.razor @@ -1,6 +1,7 @@ -@page "/DrawerOpenAndClose" +@page "/InteractiveServer/DrawerOpenAndClose" @namespace NimbleBlazor.Tests.Acceptance.Pages @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) Open diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableColumnMappingBoolKey.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableColumnMappingBoolKey.razor similarity index 92% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableColumnMappingBoolKey.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableColumnMappingBoolKey.razor index 6a51976e90..1ae7bb262a 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableColumnMappingBoolKey.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableColumnMappingBoolKey.razor @@ -1,7 +1,8 @@ -@page "/TableColumnMappingBoolKey" +@page "/InteractiveServer/TableColumnMappingBoolKey" @namespace NimbleBlazor.Tests.Acceptance.Pages @using System.Diagnostics.CodeAnalysis; @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableColumnMenuButton.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableColumnMenuButton.razor similarity index 96% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableColumnMenuButton.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableColumnMenuButton.razor index 4b81225916..0f9438604f 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableColumnMenuButton.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableColumnMenuButton.razor @@ -1,7 +1,8 @@ -@page "/TableColumnMenuButton" +@page "/InteractiveServer/TableColumnMenuButton" @namespace NimbleBlazor.Tests.Acceptance.Pages @using System.Diagnostics.CodeAnalysis; @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableSetData.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableSetData.razor similarity index 91% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableSetData.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableSetData.razor index eb505779d6..9354422cdf 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableSetData.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableSetData.razor @@ -1,7 +1,8 @@ -@page "/TableSetData" +@page "/InteractiveServer/TableSetData" @namespace NimbleBlazor.Tests.Acceptance.Pages @using System.Diagnostics.CodeAnalysis; @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) Column 1 diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableSetRecordHierarchyOptionsTest.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableSetRecordHierarchyOptionsTest.razor similarity index 94% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableSetRecordHierarchyOptionsTest.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableSetRecordHierarchyOptionsTest.razor index 3c5b87e630..0595add7c6 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/TableSetRecordHierarchyOptionsTest.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/TableSetRecordHierarchyOptionsTest.razor @@ -1,7 +1,8 @@ -@page "/TableSetRecordHierarchyOptionsTest" +@page "/InteractiveServer/TableSetRecordHierarchyOptionsTest" @namespace NimbleBlazor.Tests.Acceptance.Pages @using System.Diagnostics.CodeAnalysis; @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) Column 1 diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/ThemeProvider.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/ThemeProvider.razor similarity index 92% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/ThemeProvider.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/ThemeProvider.razor index e6b8b8b133..92bd1499aa 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/ThemeProvider.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/ThemeProvider.razor @@ -1,6 +1,7 @@ -@page "/ThemeProvider" +@page "/InteractiveServer/ThemeProvider" @namespace NimbleBlazor.Tests.Acceptance.Pages @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) Set Invalid Lang Set Valid Lang diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/WaferMapRenderTest.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/WaferMapRenderTest.razor similarity index 86% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/WaferMapRenderTest.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/WaferMapRenderTest.razor index 722e476350..4dd1d8b337 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/WaferMapRenderTest.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/WaferMapRenderTest.razor @@ -1,7 +1,8 @@ -@page "/WaferMapRenderTest" +@page "/InteractiveServer/WaferMapRenderTest" @namespace NimbleBlazor.Tests.Acceptance.Pages @using System.Diagnostics.CodeAnalysis; @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) +
Get Validity Async - + +
+ @code { public NimbleWaferMap? _waferMap; private string? TextFieldText { get; set; } + private string? RenderTextField { get; set; } [NotNull] public IEnumerable Dies { get; set; } = Enumerable.Empty(); [NotNull] @@ -84,6 +89,11 @@ protected override async Task OnAfterRenderAsync(bool firstRender) { await _waferMap!.SetDataAsync(Dies); + if (firstRender) + { + RenderTextField = "RenderComplete"; + StateHasChanged(); + } await base.OnAfterRenderAsync(firstRender); } diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/WaferMapRenderTestExperimental.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/WaferMapRenderTestExperimental.razor similarity index 94% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/WaferMapRenderTestExperimental.razor rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/WaferMapRenderTestExperimental.razor index 026b862c3f..9ef7bc722d 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/WaferMapRenderTestExperimental.razor +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.InteractiveServer/WaferMapRenderTestExperimental.razor @@ -1,9 +1,10 @@ -@page "/WaferMapRenderTestExperimental" +@page "/InteractiveServer/WaferMapRenderTestExperimental" @namespace NimbleBlazor.Tests.Acceptance.Pages @using System.Diagnostics.CodeAnalysis; @using Apache.Arrow; @using Apache.Arrow.Types; @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) +
Get Validity Async +
@code { public NimbleWaferMap? _waferMap; @@ -107,6 +110,11 @@ protected override async Task OnAfterRenderAsync(bool firstRender) { await _waferMap!.SetDataAsync(DiesTable); + if (firstRender) + { + RenderTextField = "RenderComplete"; + StateHasChanged(); + } await base.OnAfterRenderAsync(firstRender); } diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.StaticSSR/TextFieldRenderTest.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.StaticSSR/TextFieldRenderTest.razor new file mode 100644 index 0000000000..48ab59bda5 --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages.StaticSSR/TextFieldRenderTest.razor @@ -0,0 +1,5 @@ +@page "/StaticSSR/TextFieldRenderTest" +@namespace NimbleBlazor.Tests.Acceptance.Pages +@inherits LayoutComponentBase + +Label Text diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/_Host.cshtml b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/_Host.cshtml deleted file mode 100644 index 2f7c6bf6e7..0000000000 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/_Host.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@page "/" -@namespace NimbleBlazor.Tests.Acceptance.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@{ - Layout = "_Layout"; -} - - diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/_Layout.cshtml b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/_Layout.cshtml deleted file mode 100644 index ced5e4a5bd..0000000000 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Pages/_Layout.cshtml +++ /dev/null @@ -1,33 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web -@namespace NimbleBlazor.Tests.Acceptance.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers - - - - - - - - - - - - - - - @RenderBody() - -
- - An error has occurred. This application may no longer respond until reloaded. - - - An unhandled exception has occurred. See browser dev tools for details. - - Reload - 🗙 -
- - - - diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Program.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Program.cs index 7cdd5d1688..d1c9a88bae 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Program.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Program.cs @@ -12,7 +12,8 @@ public static void Main(string[] arguments) { var builder = WebApplication.CreateBuilder(arguments); - var startup = new Startup(); + var startup = new Startup(); + startup.AddAdditionalAssemblies(typeof(Client._Imports).Assembly); startup.ConfigureServices(builder.Services); var app = builder.Build(); startup.Configure(app); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Routes.razor b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Routes.razor new file mode 100644 index 0000000000..0b92b3fb64 --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Routes.razor @@ -0,0 +1,12 @@ + + + + + + + Not found + +

Sorry, there's nothing at this address.

+
+
+
\ No newline at end of file diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/DialogTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/DialogTests.cs similarity index 88% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/DialogTests.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/DialogTests.cs index b50f1b8074..94c30c12f8 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/DialogTests.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/DialogTests.cs @@ -2,9 +2,9 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class DialogTests : NimbleAcceptanceTestsBase +public class DialogTests : NimbleInteractiveAcceptanceTestsBase { public DialogTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) @@ -14,7 +14,7 @@ public DialogTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServe [Fact] public async Task Dialog_CanOpenAndCloseAsync() { - await using (var pageWrapper = await NewPageForRouteAsync("DialogOpenAndClose")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/DialogOpenAndClose")) { var page = pageWrapper.Page; var openButton = page.Locator("nimble-button", new PageLocatorOptions() { HasText = "Open" }); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/DrawerTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/DrawerTests.cs similarity index 88% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/DrawerTests.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/DrawerTests.cs index cad89ae218..af735742b6 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/DrawerTests.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/DrawerTests.cs @@ -2,9 +2,9 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class DrawerTests : NimbleAcceptanceTestsBase +public class DrawerTests : NimbleInteractiveAcceptanceTestsBase { public DrawerTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) @@ -14,7 +14,7 @@ public DrawerTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServe [Fact] public async Task Drawer_CanOpenAndCloseAsync() { - await using (var pageWrapper = await NewPageForRouteAsync("DrawerOpenAndClose")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/DrawerOpenAndClose")) { var page = pageWrapper.Page; var openButton = page.Locator("nimble-button", new PageLocatorOptions() { HasText = "Open" }); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnMappingTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnMappingTests.cs similarity index 83% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnMappingTests.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnMappingTests.cs index 5aed48fee6..1db2ab6030 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnMappingTests.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnMappingTests.cs @@ -2,9 +2,9 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class TableColumnMappingTests : NimbleAcceptanceTestsBase +public class TableColumnMappingTests : NimbleInteractiveAcceptanceTestsBase { public TableColumnMappingTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) @@ -14,7 +14,7 @@ public TableColumnMappingTests(PlaywrightFixture playwrightFixture, NimbleBlazor [Fact] public async Task TableColumnMapping_BoolKeyAsync() { - await using (var pageWrapper = await NewPageForRouteAsync("TableColumnMappingBoolKey")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/TableColumnMappingBoolKey")) { var page = pageWrapper.Page; var table = page.Locator("nimble-table"); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnMenuButtonTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnMenuButtonTests.cs similarity index 93% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnMenuButtonTests.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnMenuButtonTests.cs index 59a862d6b2..39c1f75c82 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnMenuButtonTests.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnMenuButtonTests.cs @@ -2,9 +2,9 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class TableColumnMenuButtonTests : NimbleAcceptanceTestsBase +public class TableColumnMenuButtonTests : NimbleInteractiveAcceptanceTestsBase { public TableColumnMenuButtonTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) @@ -14,7 +14,7 @@ public TableColumnMenuButtonTests(PlaywrightFixture playwrightFixture, NimbleBla [Fact] public async Task TableColumnNumberText_ToggleEventsAsync() { - await using (var pageWrapper = await NewPageForRouteAsync("TableColumnMenuButton")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/TableColumnMenuButton")) { var page = pageWrapper.Page; var table = page.Locator("nimble-table"); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnNumberTextTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnNumberTextTests.cs similarity index 82% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnNumberTextTests.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnNumberTextTests.cs index 1fe63801f5..467f7624d8 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableColumnNumberTextTests.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableColumnNumberTextTests.cs @@ -2,9 +2,9 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class TableColumnNumberTextTests : NimbleAcceptanceTestsBase +public class TableColumnNumberTextTests : NimbleInteractiveAcceptanceTestsBase { public TableColumnNumberTextTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) @@ -14,7 +14,7 @@ public TableColumnNumberTextTests(PlaywrightFixture playwrightFixture, NimbleBla [Fact] public async Task TableColumnNumberText_BytesUnitAsync() { - await using (var pageWrapper = await NewPageForRouteAsync("TableColumnNumberText")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/TableColumnNumberText")) { var page = pageWrapper.Page; var table = page.Locator("nimble-table"); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableTests.cs similarity index 92% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableTests.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableTests.cs index 7db867c826..1aba933c04 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/TableTests.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/TableTests.cs @@ -2,9 +2,9 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class TableTests : NimbleAcceptanceTestsBase +public class TableTests : NimbleInteractiveAcceptanceTestsBase { public TableTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) @@ -14,7 +14,7 @@ public TableTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServer [Fact] public async Task Table_RendersBoundDataAsync() { - await using (var pageWrapper = await NewPageForRouteAsync("TableSetData")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/TableSetData")) { var page = pageWrapper.Page; var table = page.Locator("nimble-table"); @@ -34,7 +34,7 @@ public async Task Table_RendersBoundDataAsync() [InlineData(3, TableRecordDelayedHierarchyState.None)] public async Task Table_RendersHierarchyOptionsAsync(int rowIndex, TableRecordDelayedHierarchyState expectedHierarchyState) { - await using (var pageWrapper = await NewPageForRouteAsync("TableSetRecordHierarchyOptionsTest")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/TableSetRecordHierarchyOptionsTest")) { var page = pageWrapper.Page; var table = page.Locator("nimble-table"); @@ -70,7 +70,7 @@ public async Task Table_RendersHierarchyOptionsAsync(int rowIndex, TableRecordDe [Fact] public async Task Table_TriggersRowExpandToggleEventAsync() { - await using (var pageWrapper = await NewPageForRouteAsync("TableSetRecordHierarchyOptionsTest")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/TableSetRecordHierarchyOptionsTest")) { var page = pageWrapper.Page; var table = page.Locator("nimble-table"); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/ThemeProviderTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/ThemeProviderTests.cs similarity index 89% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/ThemeProviderTests.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/ThemeProviderTests.cs index 63a8a90b65..47b35a42bd 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/ThemeProviderTests.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/ThemeProviderTests.cs @@ -2,9 +2,9 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class ThemeProviderTests : NimbleAcceptanceTestsBase +public class ThemeProviderTests : NimbleInteractiveAcceptanceTestsBase { public ThemeProviderTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) @@ -14,7 +14,7 @@ public ThemeProviderTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHo [Fact] public async Task ThemeProvider_ValidityAndCheckValidityWorkAsync() { - await using (var pageWrapper = await NewPageForRouteAsync("ThemeProvider")) + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveServer/ThemeProvider")) { var page = pageWrapper.Page; var validButton = page.Locator("nimble-button", new PageLocatorOptions() { HasText = "Set Valid Lang" }); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/WaferMapTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/WaferMapTests.cs similarity index 71% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/WaferMapTests.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/WaferMapTests.cs index 6c417543a2..6ec9b01291 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/WaferMapTests.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/WaferMapTests.cs @@ -2,22 +2,28 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class WaferMapTests : NimbleAcceptanceTestsBase +public class WaferMapTests : NimbleInteractiveAcceptanceTestsBase { public WaferMapTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) { } + private async Task WaitForWaferMapRenderCompleteAsync(IPage page) + { + await Assertions.Expect(page.Locator(".render-text-field")).ToHaveAttributeAsync("current-value", "RenderComplete"); + } + [Fact] public async Task WaferMap_WithDiesAndColorScale_RendersColorsAsync() { - await using var pageWrapper = await NewPageForRouteAsync("WaferMapRenderTest"); + await using var pageWrapper = await NewPageForRouteAsync("InteractiveServer/WaferMapRenderTest"); var page = pageWrapper.Page; var wafer = page.Locator("nimble-wafer-map"); var canvas = page.Locator(".main-wafer"); + await WaitForWaferMapRenderCompleteAsync(page); await Assertions.Expect(wafer).ToBeVisibleAsync(); await Assertions.Expect(canvas).ToBeVisibleAsync(); var color = await page.EvaluateAsync( @@ -29,12 +35,13 @@ public async Task WaferMap_WithDiesAndColorScale_RendersColorsAsync() [Fact] public async Task WaferMap_WithGridDimensions_IsValidAsync() { - await using var pageWrapper = await NewPageForRouteAsync("WaferMapRenderTest"); + await using var pageWrapper = await NewPageForRouteAsync("InteractiveServer/WaferMapRenderTest"); var page = pageWrapper.Page; var wafer = page.Locator("nimble-wafer-map"); var validButton = page.Locator("nimble-button"); - var textField = page.Locator("nimble-text-field"); + var textField = page.Locator(".test-text-field"); + await WaitForWaferMapRenderCompleteAsync(page); await Assertions.Expect(wafer).ToBeVisibleAsync(); await validButton.ClickAsync(); @@ -44,11 +51,12 @@ public async Task WaferMap_WithGridDimensions_IsValidAsync() [Fact] public async Task WaferMap_WithHoverEvent_TriggersDieChangeEventAsync() { - await using var pageWrapper = await NewPageForRouteAsync("WaferMapRenderTest"); + await using var pageWrapper = await NewPageForRouteAsync("InteractiveServer/WaferMapRenderTest"); var page = pageWrapper.Page; var wafer = page.Locator("nimble-wafer-map"); - var textField = page.Locator("nimble-text-field"); + var textField = page.Locator(".test-text-field"); + await WaitForWaferMapRenderCompleteAsync(page); await Assertions.Expect(wafer).ToBeVisibleAsync(); await wafer.HoverAsync(); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/WaferMapTestsExperimental.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/WaferMapTestsExperimental.cs similarity index 70% rename from packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/WaferMapTestsExperimental.cs rename to packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/WaferMapTestsExperimental.cs index 3d8bea7b8c..6aed4ce97d 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests/WaferMapTestsExperimental.cs +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveServer/WaferMapTestsExperimental.cs @@ -2,24 +2,29 @@ using Microsoft.Playwright; using Xunit; -namespace NimbleBlazor.Tests.Acceptance; +namespace NimbleBlazor.Tests.Acceptance.InteractiveServer; -public class WaferMapTestsExperimental : NimbleAcceptanceTestsBase +public class WaferMapTestsExperimental : NimbleInteractiveAcceptanceTestsBase { public WaferMapTestsExperimental(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) { } + private async Task WaitForWaferMapRenderCompleteAsync(IPage page) + { + await Assertions.Expect(page.Locator(".render-text-field")).ToHaveAttributeAsync("current-value", "RenderComplete"); + } + [Fact] public async Task WaferMap_WithGridDimensions_IsValidAsync() { - await using var pageWrapper = await NewPageForRouteAsync("WaferMapRenderTestExperimental"); + await using var pageWrapper = await NewPageForRouteAsync("InteractiveServer/WaferMapRenderTestExperimental"); var page = pageWrapper.Page; var wafer = page.Locator("nimble-wafer-map"); var validButton = page.Locator("nimble-button"); - var renderTextField = page.Locator(".render-text-field"); var textField = page.Locator(".test-text-field"); + await WaitForWaferMapRenderCompleteAsync(page); await Assertions.Expect(wafer).ToBeVisibleAsync(); await validButton.ClickAsync(); @@ -29,12 +34,12 @@ public async Task WaferMap_WithGridDimensions_IsValidAsync() [Fact] public async Task WaferMap_WithHoverEvent_TriggersDieChangeEventAsync() { - await using var pageWrapper = await NewPageForRouteAsync("WaferMapRenderTestExperimental"); + await using var pageWrapper = await NewPageForRouteAsync("InteractiveServer/WaferMapRenderTestExperimental"); var page = pageWrapper.Page; var wafer = page.Locator("nimble-wafer-map"); - var renderTextField = page.Locator(".render-text-field"); var textField = page.Locator(".test-text-field"); + await WaitForWaferMapRenderCompleteAsync(page); await Assertions.Expect(wafer).ToBeVisibleAsync(); await wafer.HoverAsync(); diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveWebAssembly/DialogTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveWebAssembly/DialogTests.cs new file mode 100644 index 0000000000..ba869dd8ad --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.InteractiveWebAssembly/DialogTests.cs @@ -0,0 +1,37 @@ +using BlazorWorkspace.Testing.Acceptance; +using Microsoft.Playwright; +using Xunit; + +namespace NimbleBlazor.Tests.Acceptance.InteractiveWebAssembly; + +public class DialogTests : NimbleInteractiveAcceptanceTestsBase +{ + public DialogTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) + : base(playwrightFixture, blazorServerClassFixture) + { + } + + [Fact] + public async Task Dialog_CanOpenAndCloseAsync() + { + await using (var pageWrapper = await NewPageForRouteAsync("InteractiveWebAssembly/DialogOpenAndClose")) + { + var page = pageWrapper.Page; + var openButton = page.Locator("nimble-button", new PageLocatorOptions() { HasText = "Open" }); + await openButton.ClickAsync(); + + var dialog = page.Locator("nimble-dialog"); + var innerDialog = dialog.GetByRole(AriaRole.Dialog); + await Assertions.Expect(innerDialog).ToBeVisibleAsync(); + await Assertions.Expect(dialog).ToContainTextAsync("Example Dialog"); + + var closeButton = page.Locator("nimble-button", new PageLocatorOptions() { HasText = "Close" }); + await closeButton.ClickAsync(); + + await Assertions.Expect(innerDialog).Not.ToBeVisibleAsync(); + + var textField = page.Locator("nimble-text-field"); + await Assertions.Expect(textField).ToHaveAttributeAsync("current-value", "Custom Close Reason"); + } + } +} diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.StaticSSR/TextFieldTests.cs b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.StaticSSR/TextFieldTests.cs new file mode 100644 index 0000000000..fa1e761291 --- /dev/null +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/Tests.StaticSSR/TextFieldTests.cs @@ -0,0 +1,25 @@ +using BlazorWorkspace.Testing.Acceptance; +using Microsoft.Playwright; +using Xunit; + +namespace NimbleBlazor.Tests.Acceptance.StaticSSR; + +public class TextFieldTests : NimbleAcceptanceTestsBase +{ + public TextFieldTests(PlaywrightFixture playwrightFixture, NimbleBlazorWebHostServerFixture blazorServerClassFixture) + : base(playwrightFixture, blazorServerClassFixture) + { + } + + [Fact] + public async Task TextField_CanRenderAsync() + { + await using (var pageWrapper = await NewPageForRouteAsync("StaticSSR/TextFieldRenderTest")) + { + var page = pageWrapper.Page; + var textField = page.Locator("nimble-text-field", new PageLocatorOptions() { HasText = "Label Text" }); + await Assertions.Expect(textField).ToBeVisibleAsync(); + await Assertions.Expect(textField).ToHaveAttributeAsync("current-value", "Value Text"); + } + } +} diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/packages.lock.json b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/packages.lock.json index 9ef5e37943..7af2358898 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/packages.lock.json +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests.Acceptance/packages.lock.json @@ -1,26 +1,26 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "Microsoft.AspNetCore.Mvc.Testing": { "type": "Direct", - "requested": "[6.0.33, )", - "resolved": "6.0.33", - "contentHash": "57uIEOklyuDkKp+TAqxy6FAxAfhCUMDP3ACYBLN6Yx71/EOdfAgME6lWcoA+Esv6SRi/9bXqSijhr8K1fgE++Q==", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "xKtPgAV71lzCzwN3RhisgBJKCKyUWGMGNEXWQFpPjX/UhlM/RjW3wyGxuzcrgYEy2EVE77o5kyj95QO9kIJEXg==", "dependencies": { - "Microsoft.AspNetCore.TestHost": "6.0.33", - "Microsoft.Extensions.DependencyModel": "6.0.0", - "Microsoft.Extensions.Hosting": "6.0.1" + "Microsoft.AspNetCore.TestHost": "8.0.10", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Extensions.Hosting": "8.0.1" } }, "Microsoft.Extensions.Configuration": { "type": "Direct", - "requested": "[7.0.0, )", - "resolved": "7.0.0", - "contentHash": "tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.NET.Test.Sdk": { @@ -46,16 +46,16 @@ }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "System.ComponentModel": { @@ -100,59 +100,77 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", + "dependencies": { + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" + } + }, + "Microsoft.AspNetCore.Components.WebAssembly": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "WGEsQ/wi1pv0t24Drb3NSwJoxPahyksw1+zRz29LDi8hxLSA2iPqVRORzs85JzkWkNnEaQjSEjx8nYal/X1w7Q==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components.Web": "8.0.10", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.JSInterop.WebAssembly": "8.0.10" } }, + "Microsoft.AspNetCore.Components.WebAssembly.Server": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "jd/s5ZC4/FGzqyMrnZ5WPZYBx0odfqstlevGESAqakhN9ozalat2PEo8ECgYK7768XdCvifcEO0nrlvAiPQirg==" + }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.AspNetCore.TestHost": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "P1uql2YFnpuLTvCKnddxFGG/mnr8lJ6ElqVQSDZbCN/0JIy13Ej9dQe45vjgC5hc/NEilFIG9vNjGizdoJd+SA==", + "resolved": "8.0.10", + "contentHash": "4mBNOllpDEmgzF+c7ZfnPM7CnuD25TQ7V6VMz8a66EqAyzx3Hys9rSoO4PahsmNPQc6LtB3tJG/QU/BBUbR9+w==", "dependencies": { - "System.IO.Pipelines": "6.0.3" + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.Bcl.AsyncInterfaces": { @@ -222,274 +240,290 @@ }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "resolved": "8.0.2", + "contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.CommandLine": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "3nL1qCkZ1Oxx14ZTzgo4MmlO7tso7F+TtMZAY2jUAtTLyAcDp+EDjk3RqafoKiNaePyPvvlleEcBxh3b2Hzl1g==", + "resolved": "8.0.0", + "contentHash": "NZuZMz3Q8Z780nKX3ifV1fE7lS+6pynDHK71OfU4OZ1ItgvDOhyOC7E6z+JMZrAj63zRpwbdldYFk499t3+1dQ==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.EnvironmentVariables": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "pnyXV1LFOsYjGveuC07xp0YHIyGq7jRq5Ncb5zrrIieMLWVwgMyYxcOH0jTnBedDT4Gh1QinSqsjqzcieHk1og==", + "resolved": "8.0.0", + "contentHash": "plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "V4Dth2cYMZpw3HhGw9XUDIijpI6gN+22LDt0AhufIgOppCUfpWX4483OmN+dFXRJkJLc8Tv0Q8QK+1ingT2+KQ==", + "resolved": "8.0.1", + "contentHash": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GJGery6QytCzS/BxJ96klgG9in3uH26KcUBbiVG/coNDXCRq6LGVVlUT4vXq34KPuM+R2av+LeYdX9h4IZOCUg==", + "resolved": "8.0.1", + "contentHash": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.UserSecrets": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "Fy8yr4V6obi7ZxvKYI1i85jqtwMq8tqyxQVZpRSkgeA8enqy/KvBIMdcuNdznlxQMZa72mvbHqb7vbg4Pyx95w==", + "resolved": "8.0.1", + "contentHash": "7tYqdPPpAK+3jO9d5LTuCK2VxrEdf85Ol4trUr6ds4jclBecadWZ/RyPCbNjfbN5iGTfUnD/h65TOQuqQv2c+A==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TD5QHg98m3+QhgEV1YVoNMl5KtBw/4rjfxLHO0e/YV9bPUBDKntApP4xdrVtGgCeQZHVfC2EXIGsdpRNrr87Pg==", + "resolved": "8.0.2", + "contentHash": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==" + }, + "Microsoft.Extensions.Diagnostics": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "doVPCUUCY7c6LhBsEfiy3W1bvS7Mi6LkfQMS8nlC22jZWNxBv8VO8bdfeyvpYFst6Kxqk7HBC6lytmEoBssvSQ==", "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "QvkL7l0nM8udt3gfyu0Vw8bbCXblxaKOl7c2oBfgGy4LCURRaL9XWZX1FWJrQc43oMokVneVxH38iz+bY1sbhg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ip8jnL1aPiaPeKINCqaTEbvBFDmVx9dXQEBZ2HOBRXPD1eabGNqP/bKlsIcp7U2lGxiXd5xIhoFcmY8nM4Hdiw==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Hosting": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "hbmizc9KPWOacLU8Z8YMaBG6KWdZFppczYV/KwnPGU/8xebWxQxdDeJmLOgg968prb7g2oQgnp6JVLX6lgby8g==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Configuration.CommandLine": "6.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.Configuration.UserSecrets": "6.0.1", - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Configuration": "6.0.0", - "Microsoft.Extensions.Logging.Console": "6.0.0", - "Microsoft.Extensions.Logging.Debug": "6.0.0", - "Microsoft.Extensions.Logging.EventLog": "6.0.0", - "Microsoft.Extensions.Logging.EventSource": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0" + "resolved": "8.0.1", + "contentHash": "bP9EEkHBEfjgYiG8nUaXqMk/ujwJrffOkNPP7onpRMO8R+OUSESSP4xHkCAXgYZ1COP2Q9lXlU5gkMFh20gRuw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.CommandLine": "8.0.0", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Configuration.UserSecrets": "8.0.1", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Logging.Console": "8.0.1", + "Microsoft.Extensions.Logging.Debug": "8.0.1", + "Microsoft.Extensions.Logging.EventLog": "8.0.1", + "Microsoft.Extensions.Logging.EventSource": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GcT5l2CYXL6Sa27KCSh0TixsRfADUgth+ojQSD5EkzisZxmGFh7CwzkcYuGwvmXLjr27uWRNrJ2vuuEjMhU05Q==", + "resolved": "8.0.1", + "contentHash": "nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" } }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "8.0.1", + "contentHash": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Logging.Configuration": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ZDskjagmBAbv+K8rYW9VhjPplhbOE63xUD0DiuydZJwt15dRyoqicYklLd86zzeintUc7AptDkHn+YhhYkYo8A==", + "resolved": "8.0.1", + "contentHash": "QWwTrsgOnJMmn+XUslm8D2H1n3PkP/u/v52FODtyBc/k4W9r3i2vcXXeeX/upnzllJYRRbrzVzT0OclfNJtBJA==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" } }, "Microsoft.Extensions.Logging.Console": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "gsqKzOEdsvq28QiXFxagmn1oRB9GeI5GgYCkoybZtQA0IUb7QPwf1WmN3AwJeNIsadTvIFQCiVK0OVIgKfOBGg==", + "resolved": "8.0.1", + "contentHash": "uzcg/5U2eLyn5LIKlERkdSxw6VPC1yydnOSQiRRWGBGN3kphq3iL4emORzrojScDmxRhv49gp5BI8U3Dz7y4iA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Configuration": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Logging.Debug": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "M9g/JixseSZATJE9tcMn9uzoD4+DbSglivFqVx8YkRJ7VVPmnvCEbOZ0AAaxsL1EKyI4cz07DXOOJExxNsUOHw==", + "resolved": "8.0.1", + "contentHash": "B8hqNuYudC2RB+L/DI33uO4rf5by41fZVdcVL2oZj0UyoAZqnwTwYHp1KafoH4nkl1/23piNeybFFASaV2HkFg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" } }, "Microsoft.Extensions.Logging.EventLog": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "rlo0RxlMd0WtLG3CHI0qOTp6fFn7MvQjlrCjucA31RqmiMFCZkF8CHNbe8O7tbBIyyoLGWB1he9CbaA5iyHthg==", + "resolved": "8.0.1", + "contentHash": "ZD1m4GXoxcZeDJIq8qePKj+QAWeQNO/OG8skvrOG8RQfxLp9MAKRoliTc27xanoNUzeqvX5HhS/I7c0BvwAYUg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.EventLog": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "System.Diagnostics.EventLog": "8.0.1" } }, "Microsoft.Extensions.Logging.EventSource": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "BeDyyqt7nkm/nr+Gdk+L8n1tUT/u33VkbXAOesgYSNsxDM9hJ1NOBGoZfj9rCbeD2+9myElI6JOVVFmnzgeWQA==", + "resolved": "8.0.1", + "contentHash": "YMXMAla6B6sEf/SnfZYTty633Ool3AH7KOw2LOaaEqwSo2piK4f7HMtzyc3CNiipDnq1fsUSuG5Oc7ZzpVy8WQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.ConfigurationExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "resolved": "8.0.0", + "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" + }, + "Microsoft.JSInterop.WebAssembly": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "1RumzzQ+s4Zkq08ls7tDPlvx7ASsWI7gIrxiTD75b3pYr3TDUd3YbAnccqq+H3BDo6znpCZZGScFotrgz5R8LQ==", + "dependencies": { + "Microsoft.JSInterop": "8.0.10" + } }, "Microsoft.NETCore.Platforms": { "type": "Transitive", @@ -521,8 +555,8 @@ }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Newtonsoft.Json": { "type": "Transitive", @@ -565,21 +599,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections": { "type": "Transitive", @@ -611,18 +640,10 @@ "System.Runtime": "4.1.0" } }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + "resolved": "8.0.1", + "contentHash": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg==" }, "System.Diagnostics.Tools": { "type": "Transitive", @@ -703,8 +724,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Linq": { "type": "Transitive", @@ -1066,11 +1087,12 @@ "blazorworkspace.testing.acceptance": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Mvc.Testing": "[6.0.33, )", - "Microsoft.Extensions.Configuration": "[7.0.0, )", + "Microsoft.AspNetCore.Components.WebAssembly.Server": "[8.0.10, )", + "Microsoft.AspNetCore.Mvc.Testing": "[8.0.10, )", + "Microsoft.Extensions.Configuration": "[8.0.0, )", "Microsoft.NET.Test.Sdk": "[16.11.0, )", "Microsoft.Playwright": "[1.44.0, 1.44.0]", - "NI.CSharp.Analyzers": "[2.0.21, 2.0.21]", + "NI.CSharp.Analyzers": "[2.0.27, )", "NimbleBlazor": "[1.0.0, )", "System.ComponentModel": "[4.3.0, )", "xunit": "[2.9.2, )", @@ -1081,7 +1103,15 @@ "type": "Project", "dependencies": { "Apache.Arrow": "[16.1.0, 16.1.0]", - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" + } + }, + "nimbleblazor.tests.acceptance.client": { + "type": "Project", + "dependencies": { + "Microsoft.AspNetCore.Components.WebAssembly": "[8.0.10, )", + "NI.CSharp.Analyzers": "[2.0.27, )", + "NimbleBlazor": "[1.0.0, )" } } } diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests/NimbleBlazor.Tests.csproj b/packages/blazor-workspace/Tests/NimbleBlazor.Tests/NimbleBlazor.Tests.csproj index 1ad6b4bfe5..0819f981b1 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests/NimbleBlazor.Tests.csproj +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests/NimbleBlazor.Tests.csproj @@ -1,10 +1,11 @@  - net6.0 + net8.0 false true true + true NimbleBlazor.Tests NimbleBlazor.Tests @@ -30,7 +31,7 @@ - + diff --git a/packages/blazor-workspace/Tests/NimbleBlazor.Tests/packages.lock.json b/packages/blazor-workspace/Tests/NimbleBlazor.Tests/packages.lock.json index 8a0e5baca0..322adae7cc 100644 --- a/packages/blazor-workspace/Tests/NimbleBlazor.Tests/packages.lock.json +++ b/packages/blazor-workspace/Tests/NimbleBlazor.Tests/packages.lock.json @@ -1,7 +1,7 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "bunit": { "type": "Direct", "requested": "[1.31.3, )", @@ -18,9 +18,9 @@ "resolved": "1.31.3", "contentHash": "gfA/+1gLuKHbawDggHWD61TYyOhjqXYFkggG3fzzP+MdQQQLBndk0VIoDPP41uUPWTUPlt+bXKfFb2ZUXhnuZA==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4" + "Microsoft.AspNetCore.Components": "8.0.8", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.1" } }, "bunit.web": { @@ -32,13 +32,13 @@ "AngleSharp": "1.1.2", "AngleSharp.Css": "1.0.0-beta.139", "AngleSharp.Diffing": "0.18.2", - "Microsoft.AspNetCore.Components.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Web": "6.0.33", - "Microsoft.AspNetCore.Components.WebAssembly": "6.0.33", - "Microsoft.AspNetCore.Components.WebAssembly.Authentication": "6.0.33", - "Microsoft.Extensions.Caching.Memory": "6.0.1", - "Microsoft.Extensions.Localization.Abstractions": "6.0.33", - "System.Text.Json": "6.0.9", + "Microsoft.AspNetCore.Components.Authorization": "8.0.8", + "Microsoft.AspNetCore.Components.Web": "8.0.8", + "Microsoft.AspNetCore.Components.WebAssembly": "8.0.8", + "Microsoft.AspNetCore.Components.WebAssembly.Authentication": "8.0.8", + "Microsoft.Extensions.Caching.Memory": "8.0.0", + "Microsoft.Extensions.Localization.Abstractions": "8.0.8", + "System.Text.Json": "8.0.4", "bunit.core": "1.31.3" } }, @@ -60,16 +60,16 @@ }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "xunit": { @@ -103,7 +103,7 @@ "resolved": "1.1.2", "contentHash": "aRFpAqixbuj1Vmqy2hsWPF0PJygo1SfjvmpBvVWZv6i+/u+C/L4wDdwFIzyCGUbjqr61NsZdPNPqDE8wlmG2qA==", "dependencies": { - "System.Text.Encoding.CodePages": "6.0.0" + "System.Text.Encoding.CodePages": "8.0.0" } }, "AngleSharp.Css": { @@ -130,82 +130,83 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "wRKiXyNsYNEIJCB4hHFB4Yk5xaqhcUq8TtRQpfx/P9PhjMTZ5fopK0we9OkLcdKXUkYKZ36cx/GnonE7Ld4Xnw==", + "resolved": "8.0.8", + "contentHash": "1PISsw6JLsYb3gz4P/aitTMAOeasS0uQDvpwF9MsZlE1DcOYgM0U/RuP/SwzGGu5cAYHswL6X0A2qI/0b+cdzQ==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.8", + "Microsoft.AspNetCore.Components": "8.0.8" } }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.AspNetCore.Components.WebAssembly": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "llLo36CZShfJTfNCc084AFYPxtQINfU1hpZP79Ls/lHjeSB7nAIss8cIHwsIikbwXEfZeWc8uF3mJG4Xxt59fw==", + "resolved": "8.0.8", + "contentHash": "v7CMoqCQRxmnuRCA7xjucSTqJ9ui7+g9RxuqDdgR9cHm4BZ2bSxXoiotUKZSwUGVVoLvetTGVspT95S52Y8ScQ==", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "6.0.33", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.JSInterop.WebAssembly": "6.0.33" + "Microsoft.AspNetCore.Components.Web": "8.0.8", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.Json": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.JSInterop.WebAssembly": "8.0.8" } }, "Microsoft.AspNetCore.Components.WebAssembly.Authentication": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "sKC6nbrCMgif2/makDQeBs+1ju/0jWvEFEHr44laGtTzakXO9vhIW6WJf30n1+zUyvasMlMi65y5KnBrufCIHw==", + "resolved": "8.0.8", + "contentHash": "HV5B3MNwljB3jJVQ9wqsIJ4kOqvISB2WAnNdEiLdNCkRBQrKmaZIeHXI6KU2ujWjPfHqLj7P7gfv9q0s9oI4Uw==", "dependencies": { - "Microsoft.AspNetCore.Components.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Web": "6.0.33" + "Microsoft.AspNetCore.Components.Authorization": "8.0.8", + "Microsoft.AspNetCore.Components.Web": "8.0.8" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", @@ -269,160 +270,157 @@ }, "Microsoft.Extensions.Caching.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bcz5sSFJbganH0+YrfvIjJDIcKNW7TL07C4d1eTmXy/wOt52iz4LVogJb6pazs7W0+74j0YpXFErvp++Aq5Bsw==", + "resolved": "8.0.0", + "contentHash": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Caching.Memory": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "B4y+Cev05eMcjf1na0v9gza6GUtahXbtY1JCypIgx3B4Ea/KAgsWyXEmW4q6zMbmTMtKzmPVk09rvFJirvMwTg==", + "resolved": "8.0.0", + "contentHash": "7pqivmrZDzo1ADPkRwjy+8jtRKWRCPag9qPI+p7sgu7Q4QreWhcvbiWXsbhP+yY8XSiDvZpu2/LWdBv7PnmOpQ==", "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "tq2wXyh3fL17EMF2bXgRhU7JrbO3on93MRKYxzz4JzzvuGSA1l0W3GI9/tl8EO89TH+KWEymP7bcFway6z9fXg==", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "resolved": "8.0.2", + "contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "V4Dth2cYMZpw3HhGw9XUDIijpI6gN+22LDt0AhufIgOppCUfpWX4483OmN+dFXRJkJLc8Tv0Q8QK+1ingT2+KQ==", + "resolved": "8.0.0", + "contentHash": "McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GJGery6QytCzS/BxJ96klgG9in3uH26KcUBbiVG/coNDXCRq6LGVVlUT4vXq34KPuM+R2av+LeYdX9h4IZOCUg==", + "resolved": "8.0.0", + "contentHash": "C2wqUoh9OmRL1akaCcKSTmRU8z0kckfImG7zLNI8uyi47Lp+zd5LWAD17waPQEqCz3ioWOCrFUo+JJuoeZLOBw==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "System.Text.Json": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "QvkL7l0nM8udt3gfyu0Vw8bbCXblxaKOl7c2oBfgGy4LCURRaL9XWZX1FWJrQc43oMokVneVxH38iz+bY1sbhg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ip8jnL1aPiaPeKINCqaTEbvBFDmVx9dXQEBZ2HOBRXPD1eabGNqP/bKlsIcp7U2lGxiXd5xIhoFcmY8nM4Hdiw==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Localization.Abstractions": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Hbq0a3DswFjen1K6hDljNENpy6bDbA/s2qsQ5M9kqa6fB3JVKWggAdqwx2GJG4+SGkZKOWkOZxQ1QVqavWaF5g==" + "resolved": "8.0.8", + "contentHash": "WYIsqP/A6dH/LWJznrvgoNPc7Q+CUJD0E78765GL3aonBtyFK1BKtPzBvvlnrr3SVqSO2r6xJCLgCEiCMG1gfA==" }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "8.0.0", + "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.JSInterop.WebAssembly": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "lwkENolVndLuFUV+7/j+WwQntA0UYB01jObai/3uixgaT4uc7exarLqz2pxYs0AZ0zF1I+QNEb28HYVAFtsLRQ==", + "resolved": "8.0.8", + "contentHash": "1u0IwsPklrIOvzQsQDCV7SJGQtX3roblllN/i4bh+GouOxRP/XTPwgAOOrlrDBpiF5leiGxblw67wNTkRULg9g==", "dependencies": { - "Microsoft.JSInterop": "6.0.33" + "Microsoft.JSInterop": "8.0.8" } }, "Microsoft.NETCore.Platforms": { @@ -455,8 +453,8 @@ }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Newtonsoft.Json": { "type": "Transitive", @@ -499,16 +497,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections": { "type": "Transitive", @@ -535,14 +533,6 @@ "System.Runtime": "4.1.0" } }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.0.1", @@ -622,8 +612,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Linq": { "type": "Transitive", @@ -838,11 +828,8 @@ }, "System.Text.Encoding.CodePages": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", @@ -857,19 +844,15 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" }, "System.Text.Json": { "type": "Transitive", - "resolved": "6.0.9", - "contentHash": "2j16oUgtIzl7Xtk7demG0i/v5aU/ZvULcAnJvPb63U3ZhXJ494UYcxuEj5Fs49i3XDrk5kU/8I+6l9zRCw3cJw==", + "resolved": "8.0.4", + "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==", "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0" + "System.Text.Encodings.Web": "8.0.0" } }, "System.Text.RegularExpressions": { @@ -986,7 +969,7 @@ "type": "Project", "dependencies": { "Apache.Arrow": "[16.1.0, 16.1.0]", - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } } } diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/App.razor b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/App.razor index 6fd3ed1b5a..28b09d058d 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/App.razor +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/App.razor @@ -1,12 +1,31 @@ - - - - - - - Not found - -

Sorry, there's nothing at this address.

-
-
-
+@using Microsoft.AspNetCore.Components.Web + + + + + + + + + + + + + + + + +
+ + An error has occurred. This application may no longer respond until reloaded. + + + An unhandled exception has occurred. See browser dev tools for details. + + Reload + 🗙 +
+ + + + \ No newline at end of file diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/Rectangle.razor b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/Rectangle.razor index 7541e97105..e987b9a825 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/Rectangle.razor +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/Rectangle.razor @@ -1,6 +1,7 @@ @page "/Rectangle" @namespace SprightBlazor.Tests.Acceptance.Pages @inherits LayoutComponentBase +@rendermode @(new InteractiveServerRenderMode(prerender: false)) Hello, world. diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/_Host.cshtml b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/_Host.cshtml deleted file mode 100644 index a0e7413dd3..0000000000 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/_Host.cshtml +++ /dev/null @@ -1,8 +0,0 @@ -@page "/" -@namespace SprightBlazor.Tests.Acceptance.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@{ - Layout = "_Layout"; -} - - diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/_Layout.cshtml b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/_Layout.cshtml deleted file mode 100644 index 22285b5876..0000000000 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Pages/_Layout.cshtml +++ /dev/null @@ -1,33 +0,0 @@ -@using Microsoft.AspNetCore.Components.Web -@namespace SprightBlazor.Tests.Acceptance.Pages -@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers - - - - - - - - - - - - - - - @RenderBody() - -
- - An error has occurred. This application may no longer respond until reloaded. - - - An unhandled exception has occurred. See browser dev tools for details. - - Reload - 🗙 -
- - - - diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Program.cs b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Program.cs index 2163e04022..397b7e367c 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Program.cs +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Program.cs @@ -12,7 +12,7 @@ public static void Main(string[] arguments) { var builder = WebApplication.CreateBuilder(arguments); - var startup = new Startup(); + var startup = new Startup(); startup.ConfigureServices(builder.Services); var app = builder.Build(); startup.Configure(app); diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Routes.razor b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Routes.razor new file mode 100644 index 0000000000..5212a2b763 --- /dev/null +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Routes.razor @@ -0,0 +1,12 @@ + + + + + + + Not found + +

Sorry, there's nothing at this address.

+
+
+
\ No newline at end of file diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/SprightBlazor.Tests.Acceptance.csproj b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/SprightBlazor.Tests.Acceptance.csproj index e0b21339d2..7b6e0843f5 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/SprightBlazor.Tests.Acceptance.csproj +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/SprightBlazor.Tests.Acceptance.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 enable enable false @@ -31,11 +31,11 @@
- - + + - + diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/SprightBlazorWebHostServerFixture.cs b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/SprightBlazorWebHostServerFixture.cs index 53f1cb0499..d36ed3a406 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/SprightBlazorWebHostServerFixture.cs +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/SprightBlazorWebHostServerFixture.cs @@ -1,4 +1,5 @@ using BlazorWorkspace.Testing.Acceptance; +using IStartup = BlazorWorkspace.Testing.Acceptance.IStartup; namespace SprightBlazor.Tests.Acceptance; @@ -8,8 +9,8 @@ namespace SprightBlazor.Tests.Acceptance; public class SprightBlazorWebHostServerFixture : WebHostServerFixture { // In order for components in this assembly to be discoverable, the Startup instance must be created in this assembly. - protected override Startup StartupFactory(WebHostBuilderContext context) + protected override IStartup StartupFactory(WebHostBuilderContext context) { - return new Startup(); + return new Startup(); } } diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/RectangleTests.cs b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/RectangleTests.cs index 6c2f8e908e..dd4aa6d587 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/RectangleTests.cs +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/RectangleTests.cs @@ -4,7 +4,7 @@ namespace SprightBlazor.Tests.Acceptance; -public class RectangleTests : SprightAcceptanceTestsBase +public class RectangleTests : SprightInteractiveAcceptanceTestsBase { public RectangleTests(PlaywrightFixture playwrightFixture, SprightBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture, blazorServerClassFixture) diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/SprightAcceptanceTestsBase.cs b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/SprightInteractiveAcceptanceTestsBase.cs similarity index 63% rename from packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/SprightAcceptanceTestsBase.cs rename to packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/SprightInteractiveAcceptanceTestsBase.cs index 027ce124cb..21a383a283 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/SprightAcceptanceTestsBase.cs +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/Tests/SprightInteractiveAcceptanceTestsBase.cs @@ -3,9 +3,9 @@ namespace SprightBlazor.Tests.Acceptance; -public abstract class SprightAcceptanceTestsBase : AcceptanceTestsBase, IClassFixture +public abstract class SprightInteractiveAcceptanceTestsBase : AcceptanceTestsBase, IClassFixture { - protected SprightAcceptanceTestsBase( + protected SprightInteractiveAcceptanceTestsBase( PlaywrightFixture playwrightFixture, SprightBlazorWebHostServerFixture blazorServerClassFixture) : base(playwrightFixture) @@ -14,5 +14,5 @@ protected SprightAcceptanceTestsBase( } protected override Uri ServerAddress { get; } - protected override string ComponentLibraryInitializationTestJavaScript => "window.SprightBlazor && window.SprightBlazor.calledAfterStarted === true"; + protected override string ComponentLibraryInitializationTestJavaScript => "window.SprightBlazor && window.SprightBlazor.isReady()"; } diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/packages.lock.json b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/packages.lock.json index b1f8a685b4..46793ca425 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/packages.lock.json +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests.Acceptance/packages.lock.json @@ -1,26 +1,26 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "Microsoft.AspNetCore.Mvc.Testing": { "type": "Direct", - "requested": "[6.0.33, )", - "resolved": "6.0.33", - "contentHash": "57uIEOklyuDkKp+TAqxy6FAxAfhCUMDP3ACYBLN6Yx71/EOdfAgME6lWcoA+Esv6SRi/9bXqSijhr8K1fgE++Q==", + "requested": "[8.0.10, )", + "resolved": "8.0.10", + "contentHash": "xKtPgAV71lzCzwN3RhisgBJKCKyUWGMGNEXWQFpPjX/UhlM/RjW3wyGxuzcrgYEy2EVE77o5kyj95QO9kIJEXg==", "dependencies": { - "Microsoft.AspNetCore.TestHost": "6.0.33", - "Microsoft.Extensions.DependencyModel": "6.0.0", - "Microsoft.Extensions.Hosting": "6.0.1" + "Microsoft.AspNetCore.TestHost": "8.0.10", + "Microsoft.Extensions.DependencyModel": "8.0.2", + "Microsoft.Extensions.Hosting": "8.0.1" } }, "Microsoft.Extensions.Configuration": { "type": "Direct", - "requested": "[7.0.0, )", - "resolved": "7.0.0", - "contentHash": "tldQUBWt/xeH2K7/hMPPo5g8zuLc3Ro9I5d4o/XrxvxOCA2EZBtW7bCHHTc49fcBtvB8tLAb/Qsmfrq+2SJ4vA==", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "7.0.0", - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.NET.Test.Sdk": { @@ -46,16 +46,16 @@ }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "System.ComponentModel": { @@ -100,59 +100,65 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, + "Microsoft.AspNetCore.Components.WebAssembly.Server": { + "type": "Transitive", + "resolved": "8.0.10", + "contentHash": "jd/s5ZC4/FGzqyMrnZ5WPZYBx0odfqstlevGESAqakhN9ozalat2PEo8ECgYK7768XdCvifcEO0nrlvAiPQirg==" + }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.AspNetCore.TestHost": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "P1uql2YFnpuLTvCKnddxFGG/mnr8lJ6ElqVQSDZbCN/0JIy13Ej9dQe45vjgC5hc/NEilFIG9vNjGizdoJd+SA==", + "resolved": "8.0.10", + "contentHash": "4mBNOllpDEmgzF+c7ZfnPM7CnuD25TQ7V6VMz8a66EqAyzx3Hys9rSoO4PahsmNPQc6LtB3tJG/QU/BBUbR9+w==", "dependencies": { - "System.IO.Pipelines": "6.0.3" + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.Bcl.AsyncInterfaces": { @@ -222,274 +228,282 @@ }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "f34u2eaqIjNO9YLHBz8rozVZ+TcFiFs0F3r7nUJd7FRkVSxk8u4OpoK226mi49MwexHOR2ibP9MFvRUaLilcQQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "7.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "resolved": "8.0.2", + "contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.CommandLine": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "3nL1qCkZ1Oxx14ZTzgo4MmlO7tso7F+TtMZAY2jUAtTLyAcDp+EDjk3RqafoKiNaePyPvvlleEcBxh3b2Hzl1g==", + "resolved": "8.0.0", + "contentHash": "NZuZMz3Q8Z780nKX3ifV1fE7lS+6pynDHK71OfU4OZ1ItgvDOhyOC7E6z+JMZrAj63zRpwbdldYFk499t3+1dQ==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.EnvironmentVariables": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "pnyXV1LFOsYjGveuC07xp0YHIyGq7jRq5Ncb5zrrIieMLWVwgMyYxcOH0jTnBedDT4Gh1QinSqsjqzcieHk1og==", + "resolved": "8.0.0", + "contentHash": "plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "V4Dth2cYMZpw3HhGw9XUDIijpI6gN+22LDt0AhufIgOppCUfpWX4483OmN+dFXRJkJLc8Tv0Q8QK+1ingT2+KQ==", + "resolved": "8.0.1", + "contentHash": "EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GJGery6QytCzS/BxJ96klgG9in3uH26KcUBbiVG/coNDXCRq6LGVVlUT4vXq34KPuM+R2av+LeYdX9h4IZOCUg==", + "resolved": "8.0.1", + "contentHash": "L89DLNuimOghjV3tLx0ArFDwVEJD6+uGB3BMCMX01kaLzXkaXHb2021xOMl2QOxUxbdePKUZsUY7n2UUkycjRg==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.UserSecrets": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "Fy8yr4V6obi7ZxvKYI1i85jqtwMq8tqyxQVZpRSkgeA8enqy/KvBIMdcuNdznlxQMZa72mvbHqb7vbg4Pyx95w==", + "resolved": "8.0.1", + "contentHash": "7tYqdPPpAK+3jO9d5LTuCK2VxrEdf85Ol4trUr6ds4jclBecadWZ/RyPCbNjfbN5iGTfUnD/h65TOQuqQv2c+A==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.DependencyModel": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TD5QHg98m3+QhgEV1YVoNMl5KtBw/4rjfxLHO0e/YV9bPUBDKntApP4xdrVtGgCeQZHVfC2EXIGsdpRNrr87Pg==", + "resolved": "8.0.2", + "contentHash": "mUBDZZRgZrSyFOsJ2qJJ9fXfqd/kXJwf3AiDoqLD9m6TjY5OO/vLNOb9fb4juC0487eq4hcGN/M2Rh/CKS7QYw==" + }, + "Microsoft.Extensions.Diagnostics": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "doVPCUUCY7c6LhBsEfiy3W1bvS7Mi6LkfQMS8nlC22jZWNxBv8VO8bdfeyvpYFst6Kxqk7HBC6lytmEoBssvSQ==", "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" + } + }, + "Microsoft.Extensions.Diagnostics.Abstractions": { + "type": "Transitive", + "resolved": "8.0.1", + "contentHash": "elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "QvkL7l0nM8udt3gfyu0Vw8bbCXblxaKOl7c2oBfgGy4LCURRaL9XWZX1FWJrQc43oMokVneVxH38iz+bY1sbhg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ip8jnL1aPiaPeKINCqaTEbvBFDmVx9dXQEBZ2HOBRXPD1eabGNqP/bKlsIcp7U2lGxiXd5xIhoFcmY8nM4Hdiw==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Hosting": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "hbmizc9KPWOacLU8Z8YMaBG6KWdZFppczYV/KwnPGU/8xebWxQxdDeJmLOgg968prb7g2oQgnp6JVLX6lgby8g==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Configuration.CommandLine": "6.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.Configuration.UserSecrets": "6.0.1", - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Hosting.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Configuration": "6.0.0", - "Microsoft.Extensions.Logging.Console": "6.0.0", - "Microsoft.Extensions.Logging.Debug": "6.0.0", - "Microsoft.Extensions.Logging.EventLog": "6.0.0", - "Microsoft.Extensions.Logging.EventSource": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0" + "resolved": "8.0.1", + "contentHash": "bP9EEkHBEfjgYiG8nUaXqMk/ujwJrffOkNPP7onpRMO8R+OUSESSP4xHkCAXgYZ1COP2Q9lXlU5gkMFh20gRuw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.CommandLine": "8.0.0", + "Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.1", + "Microsoft.Extensions.Configuration.Json": "8.0.1", + "Microsoft.Extensions.Configuration.UserSecrets": "8.0.1", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Hosting.Abstractions": "8.0.1", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Logging.Console": "8.0.1", + "Microsoft.Extensions.Logging.Debug": "8.0.1", + "Microsoft.Extensions.Logging.EventLog": "8.0.1", + "Microsoft.Extensions.Logging.EventSource": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Hosting.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GcT5l2CYXL6Sa27KCSh0TixsRfADUgth+ojQSD5EkzisZxmGFh7CwzkcYuGwvmXLjr27uWRNrJ2vuuEjMhU05Q==", + "resolved": "8.0.1", + "contentHash": "nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" } }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "8.0.1", + "contentHash": "4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Logging.Configuration": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ZDskjagmBAbv+K8rYW9VhjPplhbOE63xUD0DiuydZJwt15dRyoqicYklLd86zzeintUc7AptDkHn+YhhYkYo8A==", + "resolved": "8.0.1", + "contentHash": "QWwTrsgOnJMmn+XUslm8D2H1n3PkP/u/v52FODtyBc/k4W9r3i2vcXXeeX/upnzllJYRRbrzVzT0OclfNJtBJA==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" } }, "Microsoft.Extensions.Logging.Console": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "gsqKzOEdsvq28QiXFxagmn1oRB9GeI5GgYCkoybZtQA0IUb7QPwf1WmN3AwJeNIsadTvIFQCiVK0OVIgKfOBGg==", + "resolved": "8.0.1", + "contentHash": "uzcg/5U2eLyn5LIKlERkdSxw6VPC1yydnOSQiRRWGBGN3kphq3iL4emORzrojScDmxRhv49gp5BI8U3Dz7y4iA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Configuration": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Configuration": "8.0.1", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.Extensions.Logging.Debug": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "M9g/JixseSZATJE9tcMn9uzoD4+DbSglivFqVx8YkRJ7VVPmnvCEbOZ0AAaxsL1EKyI4cz07DXOOJExxNsUOHw==", + "resolved": "8.0.1", + "contentHash": "B8hqNuYudC2RB+L/DI33uO4rf5by41fZVdcVL2oZj0UyoAZqnwTwYHp1KafoH4nkl1/23piNeybFFASaV2HkFg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" } }, "Microsoft.Extensions.Logging.EventLog": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "rlo0RxlMd0WtLG3CHI0qOTp6fFn7MvQjlrCjucA31RqmiMFCZkF8CHNbe8O7tbBIyyoLGWB1he9CbaA5iyHthg==", + "resolved": "8.0.1", + "contentHash": "ZD1m4GXoxcZeDJIq8qePKj+QAWeQNO/OG8skvrOG8RQfxLp9MAKRoliTc27xanoNUzeqvX5HhS/I7c0BvwAYUg==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.EventLog": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "System.Diagnostics.EventLog": "8.0.1" } }, "Microsoft.Extensions.Logging.EventSource": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "BeDyyqt7nkm/nr+Gdk+L8n1tUT/u33VkbXAOesgYSNsxDM9hJ1NOBGoZfj9rCbeD2+9myElI6JOVVFmnzgeWQA==", + "resolved": "8.0.1", + "contentHash": "YMXMAla6B6sEf/SnfZYTty633Ool3AH7KOw2LOaaEqwSo2piK4f7HMtzyc3CNiipDnq1fsUSuG5Oc7ZzpVy8WQ==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging": "8.0.1", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Options.ConfigurationExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "resolved": "8.0.0", + "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.Binder": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.NETCore.Platforms": { "type": "Transitive", @@ -521,8 +535,8 @@ }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Newtonsoft.Json": { "type": "Transitive", @@ -565,21 +579,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections": { "type": "Transitive", @@ -611,18 +620,10 @@ "System.Runtime": "4.1.0" } }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "System.Diagnostics.EventLog": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" + "resolved": "8.0.1", + "contentHash": "n1ZP7NM2Gkn/MgD8+eOT5MulMj6wfeQMNS2Pizvq5GHCZfjlFMXV2irQlQmJhwA2VABC57M0auudO89Iu2uRLg==" }, "System.Diagnostics.Tools": { "type": "Transitive", @@ -703,8 +704,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Linq": { "type": "Transitive", @@ -1066,11 +1067,12 @@ "blazorworkspace.testing.acceptance": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Mvc.Testing": "[6.0.33, )", - "Microsoft.Extensions.Configuration": "[7.0.0, )", + "Microsoft.AspNetCore.Components.WebAssembly.Server": "[8.0.10, )", + "Microsoft.AspNetCore.Mvc.Testing": "[8.0.10, )", + "Microsoft.Extensions.Configuration": "[8.0.0, )", "Microsoft.NET.Test.Sdk": "[16.11.0, )", "Microsoft.Playwright": "[1.44.0, 1.44.0]", - "NI.CSharp.Analyzers": "[2.0.21, 2.0.21]", + "NI.CSharp.Analyzers": "[2.0.27, )", "NimbleBlazor": "[1.0.0, )", "System.ComponentModel": "[4.3.0, )", "xunit": "[2.9.2, )", @@ -1081,13 +1083,13 @@ "type": "Project", "dependencies": { "Apache.Arrow": "[16.1.0, 16.1.0]", - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } }, "sprightblazor": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } } } diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests/SprightBlazor.Tests.csproj b/packages/blazor-workspace/Tests/SprightBlazor.Tests/SprightBlazor.Tests.csproj index 29a238535e..fd36f52700 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests/SprightBlazor.Tests.csproj +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests/SprightBlazor.Tests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 false true true @@ -30,7 +30,7 @@ - + diff --git a/packages/blazor-workspace/Tests/SprightBlazor.Tests/packages.lock.json b/packages/blazor-workspace/Tests/SprightBlazor.Tests/packages.lock.json index be811ac7c1..0125422f7a 100644 --- a/packages/blazor-workspace/Tests/SprightBlazor.Tests/packages.lock.json +++ b/packages/blazor-workspace/Tests/SprightBlazor.Tests/packages.lock.json @@ -1,7 +1,7 @@ { "version": 1, "dependencies": { - "net6.0": { + "net8.0": { "bunit": { "type": "Direct", "requested": "[1.31.3, )", @@ -18,9 +18,9 @@ "resolved": "1.31.3", "contentHash": "gfA/+1gLuKHbawDggHWD61TYyOhjqXYFkggG3fzzP+MdQQQLBndk0VIoDPP41uUPWTUPlt+bXKfFb2ZUXhnuZA==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4" + "Microsoft.AspNetCore.Components": "8.0.8", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.1" } }, "bunit.web": { @@ -32,13 +32,13 @@ "AngleSharp": "1.1.2", "AngleSharp.Css": "1.0.0-beta.139", "AngleSharp.Diffing": "0.18.2", - "Microsoft.AspNetCore.Components.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Web": "6.0.33", - "Microsoft.AspNetCore.Components.WebAssembly": "6.0.33", - "Microsoft.AspNetCore.Components.WebAssembly.Authentication": "6.0.33", - "Microsoft.Extensions.Caching.Memory": "6.0.1", - "Microsoft.Extensions.Localization.Abstractions": "6.0.33", - "System.Text.Json": "6.0.9", + "Microsoft.AspNetCore.Components.Authorization": "8.0.8", + "Microsoft.AspNetCore.Components.Web": "8.0.8", + "Microsoft.AspNetCore.Components.WebAssembly": "8.0.8", + "Microsoft.AspNetCore.Components.WebAssembly.Authentication": "8.0.8", + "Microsoft.Extensions.Caching.Memory": "8.0.0", + "Microsoft.Extensions.Localization.Abstractions": "8.0.8", + "System.Text.Json": "8.0.4", "bunit.core": "1.31.3" } }, @@ -60,16 +60,16 @@ }, "NI.CSharp.Analyzers": { "type": "Direct", - "requested": "[2.0.21, 2.0.21]", - "resolved": "2.0.21", - "contentHash": "PST6c0bUeoCVmXG7raQmPZPYQlt0I1/2IFNc7KLetoG0CIxa30A21LUMPi2FLy4e5SrdEqGnLtC0D8O9MFxI6A==", + "requested": "[2.0.27, )", + "resolved": "2.0.27", + "contentHash": "tMPs5HuiMwvqrWJZo9Q3ShHFg3jDxubAYWLmbb8ooyVchLVNhON1GGYw7Wvg6iaM3AKHpj4t0jv2ZWaDZp/Z9w==", "dependencies": { "Microsoft.CodeAnalysis.Analyzers": "3.3.3", "Microsoft.CodeAnalysis.CSharp": "4.2.0", "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.2.32", + "Microsoft.VisualStudio.Threading.Analyzers": "17.10.48", "Roslynator.Analyzers": "4.1.1", - "StyleCop.Analyzers": "1.2.0-beta.435" + "StyleCop.Analyzers": "1.2.0-beta.556" } }, "xunit": { @@ -103,7 +103,7 @@ "resolved": "1.1.2", "contentHash": "aRFpAqixbuj1Vmqy2hsWPF0PJygo1SfjvmpBvVWZv6i+/u+C/L4wDdwFIzyCGUbjqr61NsZdPNPqDE8wlmG2qA==", "dependencies": { - "System.Text.Encoding.CodePages": "6.0.0" + "System.Text.Encoding.CodePages": "8.0.0" } }, "AngleSharp.Css": { @@ -125,82 +125,83 @@ }, "Microsoft.AspNetCore.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "3/73x14WtMqCcBvE27b3EevlDXeMpcUeRwEqhqsWnR5dg8A2pMDPh42AM2blx5JA7gV1I2be5I199a0UzR6N7w==", + "resolved": "8.0.10", + "contentHash": "mENBehQP1H9oTB4Diu1l7vR1BeZrBNWA9sHZsln4l2oIs7D3qH3fokopU/8FWa9JSxQYNBT1MeYBCwguYOBjMQ==", "dependencies": { - "Microsoft.AspNetCore.Metadata": "6.0.33", - "Microsoft.Extensions.Logging.Abstractions": "6.0.4", - "Microsoft.Extensions.Options": "6.0.0" + "Microsoft.AspNetCore.Metadata": "8.0.10", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2", + "Microsoft.Extensions.Options": "8.0.2" } }, "Microsoft.AspNetCore.Components": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Nxdcp9gUfn00BAMz5fV+phLMl8Md/guwCwlAooyAN0WPSbzHYOkcdU+flRCvLzr79XU8Kxy6vdJ7w6M+j+HHRw==", + "resolved": "8.0.10", + "contentHash": "qTsPBcK6Z2Yyt+A5GPub9CiUxfmSIrNQ22BT8efzXiz50Vx0KKTsE82pxbipgGU9XNXZhEtYSNTqQFuWyRlIRw==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Analyzers": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.10", + "Microsoft.AspNetCore.Components.Analyzers": "8.0.10" } }, "Microsoft.AspNetCore.Components.Analyzers": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "mhstKorVy+KgweVw/hZyP5I5PiM/sII4Aa2fWNhAUu9ke0Kdmr4rJ5Lh3R1oUP2GpRacj081obexdMuI8/M6ZA==" + "resolved": "8.0.10", + "contentHash": "czb81hXe2a+w1py/U2MrO3aSb0Ht0r1/I+4vJucjTZwbhHtGubneifS3h05DB6CakT8dgKyS0eypQaLuDKkWtQ==" }, "Microsoft.AspNetCore.Components.Authorization": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "wRKiXyNsYNEIJCB4hHFB4Yk5xaqhcUq8TtRQpfx/P9PhjMTZ5fopK0we9OkLcdKXUkYKZ36cx/GnonE7Ld4Xnw==", + "resolved": "8.0.8", + "contentHash": "1PISsw6JLsYb3gz4P/aitTMAOeasS0uQDvpwF9MsZlE1DcOYgM0U/RuP/SwzGGu5cAYHswL6X0A2qI/0b+cdzQ==", "dependencies": { - "Microsoft.AspNetCore.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Authorization": "8.0.8", + "Microsoft.AspNetCore.Components": "8.0.8" } }, "Microsoft.AspNetCore.Components.Forms": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "e2iIKofX4rBP47/XQpggMi8t2WnnvkZLm9Mujn2bfp/MFtRRyEHAuW1tDmvngK4vGtsHDQEpoFMqHUCQI5L+rA==", + "resolved": "8.0.10", + "contentHash": "YOdsdG/da7xc5uA0dRIe8qUz1rVbbptnYA2CrsxPNka3Nv7Sbh3rArlACGWPBkST3qTRollCx4dLEXpwg/6eEw==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33" + "Microsoft.AspNetCore.Components": "8.0.10" } }, "Microsoft.AspNetCore.Components.Web": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "vKk18Hyxt4lFR/A0WDv3SPKYWL4sPp3jxl/ZFL3JUSLQHdXiN2xEUQSyBDpOSfEJO3B1LHWb4ZA/Rd6SKf+R3g==", + "resolved": "8.0.10", + "contentHash": "gJa07Ni77Eoer/+3tocjnCzxfRcL0TJbKnzBP5auk/cxO5nxzJEHuTADX8gAzlyuLvdrnrtfqRAhR66MGkHmww==", "dependencies": { - "Microsoft.AspNetCore.Components": "6.0.33", - "Microsoft.AspNetCore.Components.Forms": "6.0.33", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.JSInterop": "6.0.33", - "System.IO.Pipelines": "6.0.3" + "Microsoft.AspNetCore.Components": "8.0.10", + "Microsoft.AspNetCore.Components.Forms": "8.0.10", + "Microsoft.Extensions.DependencyInjection": "8.0.1", + "Microsoft.Extensions.Primitives": "8.0.0", + "Microsoft.JSInterop": "8.0.10", + "System.IO.Pipelines": "8.0.0" } }, "Microsoft.AspNetCore.Components.WebAssembly": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "llLo36CZShfJTfNCc084AFYPxtQINfU1hpZP79Ls/lHjeSB7nAIss8cIHwsIikbwXEfZeWc8uF3mJG4Xxt59fw==", + "resolved": "8.0.8", + "contentHash": "v7CMoqCQRxmnuRCA7xjucSTqJ9ui7+g9RxuqDdgR9cHm4BZ2bSxXoiotUKZSwUGVVoLvetTGVspT95S52Y8ScQ==", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "6.0.33", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Configuration.Json": "6.0.0", - "Microsoft.Extensions.Logging": "6.0.0", - "Microsoft.JSInterop.WebAssembly": "6.0.33" + "Microsoft.AspNetCore.Components.Web": "8.0.8", + "Microsoft.Extensions.Configuration.Binder": "8.0.2", + "Microsoft.Extensions.Configuration.Json": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.JSInterop.WebAssembly": "8.0.8" } }, "Microsoft.AspNetCore.Components.WebAssembly.Authentication": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "sKC6nbrCMgif2/makDQeBs+1ju/0jWvEFEHr44laGtTzakXO9vhIW6WJf30n1+zUyvasMlMi65y5KnBrufCIHw==", + "resolved": "8.0.8", + "contentHash": "HV5B3MNwljB3jJVQ9wqsIJ4kOqvISB2WAnNdEiLdNCkRBQrKmaZIeHXI6KU2ujWjPfHqLj7P7gfv9q0s9oI4Uw==", "dependencies": { - "Microsoft.AspNetCore.Components.Authorization": "6.0.33", - "Microsoft.AspNetCore.Components.Web": "6.0.33" + "Microsoft.AspNetCore.Components.Authorization": "8.0.8", + "Microsoft.AspNetCore.Components.Web": "8.0.8" } }, "Microsoft.AspNetCore.Metadata": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "KTjopnVL5zwvWQF0hazAiPKIXFFKnvugDtjUz3qtSWk2Hv+ArHoxg7YWhPMgov/6SMaYjL5g6sjYf6TqipDmGw==" + "resolved": "8.0.10", + "contentHash": "E9YwEujZjXhMLi1hqJh+7iLk2DzNxa4dB9wYY8lHYpAzZdVqoGjaFsaaIzwCvSZZxd7S7Cds01Trlye2mTqeZA==" }, "Microsoft.CodeAnalysis.Analyzers": { "type": "Transitive", @@ -264,160 +265,157 @@ }, "Microsoft.Extensions.Caching.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bcz5sSFJbganH0+YrfvIjJDIcKNW7TL07C4d1eTmXy/wOt52iz4LVogJb6pazs7W0+74j0YpXFErvp++Aq5Bsw==", + "resolved": "8.0.0", + "contentHash": "3KuSxeHoNYdxVYfg2IRZCThcrlJ1XJqIXkAWikCsbm5C/bCjv7G0WoKDyuR98Q+T607QT2Zl5GsbGRkENcV2yQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Caching.Memory": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "B4y+Cev05eMcjf1na0v9gza6GUtahXbtY1JCypIgx3B4Ea/KAgsWyXEmW4q6zMbmTMtKzmPVk09rvFJirvMwTg==", + "resolved": "8.0.0", + "contentHash": "7pqivmrZDzo1ADPkRwjy+8jtRKWRCPag9qPI+p7sgu7Q4QreWhcvbiWXsbhP+yY8XSiDvZpu2/LWdBv7PnmOpQ==", "dependencies": { - "Microsoft.Extensions.Caching.Abstractions": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Caching.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "tq2wXyh3fL17EMF2bXgRhU7JrbO3on93MRKYxzz4JzzvuGSA1l0W3GI9/tl8EO89TH+KWEymP7bcFway6z9fXg==", + "resolved": "8.0.0", + "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "resolved": "8.0.0", + "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "resolved": "8.0.2", + "contentHash": "7IQhGK+wjyGrNsPBjJcZwWAr+Wf6D4+TwOptUt77bWtgNkiV8tDEbhFS+dDamtQFZ2X7kWG9m71iZQRj2x3zgQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0" } }, "Microsoft.Extensions.Configuration.FileExtensions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "V4Dth2cYMZpw3HhGw9XUDIijpI6gN+22LDt0AhufIgOppCUfpWX4483OmN+dFXRJkJLc8Tv0Q8QK+1ingT2+KQ==", + "resolved": "8.0.0", + "contentHash": "McP+Lz/EKwvtCv48z0YImw+L1gi1gy5rHhNaNIY2CrjloV+XY8gydT8DjMR6zWeL13AFK+DioVpppwAuO1Gi1w==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileProviders.Physical": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileProviders.Physical": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Configuration.Json": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "GJGery6QytCzS/BxJ96klgG9in3uH26KcUBbiVG/coNDXCRq6LGVVlUT4vXq34KPuM+R2av+LeYdX9h4IZOCUg==", + "resolved": "8.0.0", + "contentHash": "C2wqUoh9OmRL1akaCcKSTmRU8z0kckfImG7zLNI8uyi47Lp+zd5LWAD17waPQEqCz3ioWOCrFUo+JJuoeZLOBw==", "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.0", - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "6.0.0", - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "System.Text.Json": "6.0.0" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.Configuration.FileExtensions": "8.0.0", + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "System.Text.Json": "8.0.0" } }, "Microsoft.Extensions.DependencyInjection": { "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "resolved": "8.0.1", + "contentHash": "BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" } }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==" + "resolved": "8.0.2", + "contentHash": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==" }, "Microsoft.Extensions.FileProviders.Abstractions": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "0pd4/fho0gC12rQswaGQxbU34jOS1TPS8lZPpkFCH68ppQjHNHYle9iRuHeev1LhrJ94YPvzcRd8UmIuFk23Qw==", + "resolved": "8.0.0", + "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileProviders.Physical": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "QvkL7l0nM8udt3gfyu0Vw8bbCXblxaKOl7c2oBfgGy4LCURRaL9XWZX1FWJrQc43oMokVneVxH38iz+bY1sbhg==", + "resolved": "8.0.0", + "contentHash": "UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==", "dependencies": { - "Microsoft.Extensions.FileProviders.Abstractions": "6.0.0", - "Microsoft.Extensions.FileSystemGlobbing": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", + "Microsoft.Extensions.FileSystemGlobbing": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.FileSystemGlobbing": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ip8jnL1aPiaPeKINCqaTEbvBFDmVx9dXQEBZ2HOBRXPD1eabGNqP/bKlsIcp7U2lGxiXd5xIhoFcmY8nM4Hdiw==" + "resolved": "8.0.0", + "contentHash": "OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==" }, "Microsoft.Extensions.Localization.Abstractions": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "Hbq0a3DswFjen1K6hDljNENpy6bDbA/s2qsQ5M9kqa6fB3JVKWggAdqwx2GJG4+SGkZKOWkOZxQ1QVqavWaF5g==" + "resolved": "8.0.8", + "contentHash": "WYIsqP/A6dH/LWJznrvgoNPc7Q+CUJD0E78765GL3aonBtyFK1BKtPzBvvlnrr3SVqSO2r6xJCLgCEiCMG1gfA==" }, "Microsoft.Extensions.Logging": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "resolved": "8.0.0", + "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==", "dependencies": { - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0" + "Microsoft.Extensions.DependencyInjection": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Logging.Abstractions": { "type": "Transitive", - "resolved": "6.0.4", - "contentHash": "K14wYgwOfKVELrUh5eBqlC8Wvo9vvhS3ZhIvcswV2uS/ubkTRPSQsN557EZiYUSSoZNxizG+alN4wjtdyLdcyw==" + "resolved": "8.0.2", + "contentHash": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + } }, "Microsoft.Extensions.Options": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "resolved": "8.0.2", + "contentHash": "dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Primitives": "8.0.0" } }, "Microsoft.Extensions.Primitives": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==" }, "Microsoft.JSInterop": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "ZFr+bVjSvKUPrQOUBO3rMhU/IPGziexaGH9jW2nv2kIDgJwgOOGkL+59T/98vuWW8M+TFqeuTkVdTPdVC0L0MA==" + "resolved": "8.0.10", + "contentHash": "VxiFlNValVtpRQomua6h1FOUBK0fiyQbNIh+PMRs9DMHczOHIZpLJmm5LO5h9voBXjW+V/cUE8aNH2GcWps40A==" }, "Microsoft.JSInterop.WebAssembly": { "type": "Transitive", - "resolved": "6.0.33", - "contentHash": "lwkENolVndLuFUV+7/j+WwQntA0UYB01jObai/3uixgaT4uc7exarLqz2pxYs0AZ0zF1I+QNEb28HYVAFtsLRQ==", + "resolved": "8.0.8", + "contentHash": "1u0IwsPklrIOvzQsQDCV7SJGQtX3roblllN/i4bh+GouOxRP/XTPwgAOOrlrDBpiF5leiGxblw67wNTkRULg9g==", "dependencies": { - "Microsoft.JSInterop": "6.0.33" + "Microsoft.JSInterop": "8.0.8" } }, "Microsoft.NETCore.Platforms": { @@ -450,8 +448,8 @@ }, "Microsoft.VisualStudio.Threading.Analyzers": { "type": "Transitive", - "resolved": "17.2.32", - "contentHash": "izJIEScEIBe8m96gMkox9vZE6r/Unk6giifbfRroqYJR3yESJqTkaQ707pE+jkJMqxHNT/lqBensuex90vPfPw==" + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" }, "Newtonsoft.Json": { "type": "Transitive", @@ -494,16 +492,16 @@ }, "StyleCop.Analyzers": { "type": "Transitive", - "resolved": "1.2.0-beta.435", - "contentHash": "TADk7vdGXtfTnYCV7GyleaaRTQjfoSfZXprQrVMm7cSJtJbFc1QIbWPyLvrgrfGdfHbGmUPvaN4ODKNxg2jgPQ==", + "resolved": "1.2.0-beta.556", + "contentHash": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==", "dependencies": { - "StyleCop.Analyzers.Unstable": "1.2.0.435" + "StyleCop.Analyzers.Unstable": "1.2.0.556" } }, "StyleCop.Analyzers.Unstable": { "type": "Transitive", - "resolved": "1.2.0.435", - "contentHash": "ouwPWZxbOV3SmCZxIRqHvljkSzkCyi1tDoMzQtDb/bRP8ctASV/iRJr+A2Gdj0QLaLmWnqTWDrH82/iP+X80Lg==" + "resolved": "1.2.0.556", + "contentHash": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==" }, "System.Collections": { "type": "Transitive", @@ -530,14 +528,6 @@ "System.Runtime": "4.1.0" } }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, "System.Diagnostics.Tools": { "type": "Transitive", "resolved": "4.0.1", @@ -617,8 +607,8 @@ }, "System.IO.Pipelines": { "type": "Transitive", - "resolved": "6.0.3", - "contentHash": "ryTgF+iFkpGZY1vRQhfCzX0xTdlV3pyaTTqRu2ETbEv+HlV7O6y7hyQURnghNIXvctl5DuZ//Dpks6HdL/Txgw==" + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==" }, "System.Linq": { "type": "Transitive", @@ -833,11 +823,8 @@ }, "System.Text.Encoding.CodePages": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "ZFCILZuOvtKPauZ/j/swhvw68ZRi9ATCfvGbk1QfydmcXBkIWecWKn/250UH7rahZ5OoDBaiAudJtPvLwzw85A==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==" }, "System.Text.Encoding.Extensions": { "type": "Transitive", @@ -852,19 +839,15 @@ }, "System.Text.Encodings.Web": { "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } + "resolved": "8.0.0", + "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==" }, "System.Text.Json": { "type": "Transitive", - "resolved": "6.0.9", - "contentHash": "2j16oUgtIzl7Xtk7demG0i/v5aU/ZvULcAnJvPb63U3ZhXJ494UYcxuEj5Fs49i3XDrk5kU/8I+6l9zRCw3cJw==", + "resolved": "8.0.4", + "contentHash": "bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==", "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0" + "System.Text.Encodings.Web": "8.0.0" } }, "System.Text.RegularExpressions": { @@ -980,7 +963,7 @@ "sprightblazor": { "type": "Project", "dependencies": { - "Microsoft.AspNetCore.Components.Web": "[6.0.33, )" + "Microsoft.AspNetCore.Components.Web": "[8.0.10, )" } } } diff --git a/packages/blazor-workspace/build/generate-hybrid/rollup.nimble.config.js b/packages/blazor-workspace/build/generate-hybrid/rollup.nimble.config.js deleted file mode 100644 index 677470f564..0000000000 --- a/packages/blazor-workspace/build/generate-hybrid/rollup.nimble.config.js +++ /dev/null @@ -1,12 +0,0 @@ -import { nodeResolve } from '@rollup/plugin-node-resolve'; - -const path = require('path'); - -export default { - input: path.resolve(__dirname, 'source/NimbleBlazor.HybridWorkaround.js'), - output: { - file: path.resolve(__dirname, '../../NimbleBlazor/wwwroot/NimbleBlazor.HybridWorkaround.js'), - format: 'iife' - }, - plugins: [nodeResolve()] -}; \ No newline at end of file diff --git a/packages/blazor-workspace/build/generate-hybrid/rollup.spright.config.js b/packages/blazor-workspace/build/generate-hybrid/rollup.spright.config.js deleted file mode 100644 index 23548cae24..0000000000 --- a/packages/blazor-workspace/build/generate-hybrid/rollup.spright.config.js +++ /dev/null @@ -1,12 +0,0 @@ -import { nodeResolve } from '@rollup/plugin-node-resolve'; - -const path = require('path'); - -export default { - input: path.resolve(__dirname, 'source/SprightBlazor.HybridWorkaround.js'), - output: { - file: path.resolve(__dirname, '../../SprightBlazor/wwwroot/SprightBlazor.HybridWorkaround.js'), - format: 'iife' - }, - plugins: [nodeResolve()] -}; \ No newline at end of file diff --git a/packages/blazor-workspace/build/generate-hybrid/source/NimbleBlazor.HybridWorkaround.js b/packages/blazor-workspace/build/generate-hybrid/source/NimbleBlazor.HybridWorkaround.js deleted file mode 100644 index 8b0cbd2246..0000000000 --- a/packages/blazor-workspace/build/generate-hybrid/source/NimbleBlazor.HybridWorkaround.js +++ /dev/null @@ -1,3 +0,0 @@ -import { afterStarted } from '../../../NimbleBlazor/wwwroot/NimbleBlazor.lib.module'; - -afterStarted(window.Blazor); \ No newline at end of file diff --git a/packages/blazor-workspace/build/generate-hybrid/source/SprightBlazor.HybridWorkaround.js b/packages/blazor-workspace/build/generate-hybrid/source/SprightBlazor.HybridWorkaround.js deleted file mode 100644 index 19c55f2075..0000000000 --- a/packages/blazor-workspace/build/generate-hybrid/source/SprightBlazor.HybridWorkaround.js +++ /dev/null @@ -1,3 +0,0 @@ -import { afterStarted } from '../../../SprightBlazor/wwwroot/SprightBlazor.lib.module'; - -afterStarted(window.Blazor); \ No newline at end of file diff --git a/packages/blazor-workspace/global.json b/packages/blazor-workspace/global.json index 1440256b3a..bab5c0dfc4 100644 --- a/packages/blazor-workspace/global.json +++ b/packages/blazor-workspace/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "6.0.425", + "version": "8.0.403", "allowPrelease": "false", "rollForward": "latestMinor" } diff --git a/packages/blazor-workspace/package.json b/packages/blazor-workspace/package.json index 51bc036f7b..ed2190093b 100644 --- a/packages/blazor-workspace/package.json +++ b/packages/blazor-workspace/package.json @@ -4,15 +4,12 @@ "private": true, "description": "Workspace for Blazor projects", "scripts": { - "build": "npm run generate-icons && npm run generate-hybrid && npm run build:release && npm run build:client", + "build": "npm run generate-icons && npm run build:release && npm run build:client", "build:release": "dotnet build -c Release /p:TreatWarningsAsErrors=true /warnaserror", "build:client": "dotnet publish -p:BlazorEnableCompression=false -c Release Examples/Demo.Client --output dist/blazor-client-app", "generate-icons": "npm run generate-icons:bundle && npm run generate-icons:run", "generate-icons:bundle": "rollup --bundleConfigAsCjs --config build/generate-icons/rollup.config.js", "generate-icons:run": "node build/generate-icons/dist/index.js", - "generate-hybrid": "npm run generate-hybrid:nimble && npm run generate-hybrid:spright", - "generate-hybrid:nimble": "rollup --bundleConfigAsCjs --config build/generate-hybrid/rollup.nimble.config.js", - "generate-hybrid:spright": "rollup --bundleConfigAsCjs --config build/generate-hybrid/rollup.spright.config.js", "lint": "npm run lint:cs && npm run lint:js", "lint:cs": "dotnet format --verify-no-changes", "lint:js": "eslint .",