From 405edbd7d5dfef9825c71c9fd4e7e332fb1a88cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:21:56 +0000 Subject: [PATCH 1/2] Bump xunit.runner.visualstudio Bumps the visual-studio-dependencies group in /visual-studio with 1 update: [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit). Updates `xunit.runner.visualstudio` from 2.8.2 to 3.0.0 - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/compare/2.8.2...3.0.0) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-major dependency-group: visual-studio-dependencies ... Signed-off-by: dependabot[bot] --- visual-studio/Directory.Packages.props | 2 +- .../GitWebLinks.UnitTests/packages.lock.json | 26 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/visual-studio/Directory.Packages.props b/visual-studio/Directory.Packages.props index fbda58d..69bb925 100644 --- a/visual-studio/Directory.Packages.props +++ b/visual-studio/Directory.Packages.props @@ -16,6 +16,6 @@ - + diff --git a/visual-studio/tests/GitWebLinks.UnitTests/packages.lock.json b/visual-studio/tests/GitWebLinks.UnitTests/packages.lock.json index ce38ef1..d4a69dc 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/packages.lock.json +++ b/visual-studio/tests/GitWebLinks.UnitTests/packages.lock.json @@ -17,6 +17,15 @@ "Microsoft.CodeCoverage": "17.12.0" } }, + "Microsoft.NETFramework.ReferenceAssemblies": { + "type": "Direct", + "requested": "[1.0.3, )", + "resolved": "1.0.3", + "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", + "dependencies": { + "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" + } + }, "NSubstitute": { "type": "Direct", "requested": "[5.3.0, )", @@ -46,11 +55,11 @@ }, "xunit.runner.visualstudio": { "type": "Direct", - "requested": "[2.8.2, )", - "resolved": "2.8.2", - "contentHash": "vm1tbfXhFmjFMUmS4M0J0ASXz3/U5XvXBa6DOQUL3fEz4Vt6YPhv+ESCarx6M6D+9kJkJYZKCNvJMas1+nVfmQ==", + "requested": "[3.0.0, )", + "resolved": "3.0.0", + "contentHash": "HggUqjQJe8PtDxcP25Q+CnR6Lz4oX3GElhD9V4oU2+75x9HI6A6sxbfKGS4UwU4t4yJaS9fBmAuriz8bQApNjw==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.10.0" + "Microsoft.TestPlatform.ObjectModel": "17.12.0" } }, "Castle.Core": { @@ -167,6 +176,11 @@ "resolved": "1.1.3", "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" }, + "Microsoft.NETFramework.ReferenceAssemblies.net48": { + "type": "Transitive", + "resolved": "1.0.3", + "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" + }, "Microsoft.ServiceHub.Analyzers": { "type": "Transitive", "resolved": "3.0.3078", @@ -202,8 +216,8 @@ }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "17.10.0", - "contentHash": "KkwhjQevuDj0aBRoPLY6OLAhGqbPUEBuKLbaCs0kUVw29qiOYncdORd4mLVJbn9vGZ7/iFGQ/+AoJl0Tu5Umdg==", + "resolved": "17.12.0", + "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", "dependencies": { "System.Reflection.Metadata": "1.6.0" } From d928e9aabde61c6a4a2bb98aa9f36e801fa30f5a Mon Sep 17 00:00:00 2001 From: reduckted Date: Thu, 19 Dec 2024 20:57:07 +1000 Subject: [PATCH 2/2] Updated to xUnit v3. --- visual-studio/Directory.Build.props | 2 - visual-studio/Directory.Packages.props | 19 +- .../source/GitWebLinks/packages.lock.json | 1328 --------------- .../GitWebLinks.UnitTests.csproj | 14 +- .../xUnit/HandlerCustomFactAttribute.cs | 7 +- .../Handlers/xUnit/HandlerCustomTestCase.cs | 76 +- .../xUnit/HandlerCustomTestCaseDiscoverer.cs | 56 +- .../Handlers/xUnit/HandlerFactAttribute.cs | 7 +- .../Handlers/xUnit/HandlerTest.cs | 14 - .../Handlers/xUnit/HandlerTestCase.cs | 97 +- .../xUnit/HandlerTestCaseDiscoverer.cs | 53 +- .../Handlers/xUnit/HandlerTestCaseRunner.cs | 93 +- .../xUnit/HandlerTestCaseRunnerContext.cs | 36 + .../Handlers/xUnit/HandlerTestInvoker.cs | 37 - .../Handlers/xUnit/HandlerTestRunner.cs | 46 +- .../xUnit/HandlerTestRunnerContext.cs | 32 + .../Services/LinkHandlerTests.cs | 6 +- .../GitWebLinks.UnitTests/packages.lock.json | 1440 ----------------- 18 files changed, 351 insertions(+), 3012 deletions(-) delete mode 100644 visual-studio/source/GitWebLinks/packages.lock.json delete mode 100644 visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTest.cs create mode 100644 visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseRunnerContext.cs delete mode 100644 visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestInvoker.cs create mode 100644 visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestRunnerContext.cs delete mode 100644 visual-studio/tests/GitWebLinks.UnitTests/packages.lock.json diff --git a/visual-studio/Directory.Build.props b/visual-studio/Directory.Build.props index 06e8260..3cc7fc0 100644 --- a/visual-studio/Directory.Build.props +++ b/visual-studio/Directory.Build.props @@ -8,8 +8,6 @@ enable AllEnabledByDefault GitWebLinks - true - true diff --git a/visual-studio/Directory.Packages.props b/visual-studio/Directory.Packages.props index 69bb925..0b4e7d6 100644 --- a/visual-studio/Directory.Packages.props +++ b/visual-studio/Directory.Packages.props @@ -4,18 +4,17 @@ true - - - - + + + - - - + + + - - - + + + diff --git a/visual-studio/source/GitWebLinks/packages.lock.json b/visual-studio/source/GitWebLinks/packages.lock.json deleted file mode 100644 index 591cf5d..0000000 --- a/visual-studio/source/GitWebLinks/packages.lock.json +++ /dev/null @@ -1,1328 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "Community.VisualStudio.Toolkit.17": { - "type": "Direct", - "requested": "[17.0.527, )", - "resolved": "17.0.527", - "contentHash": "lTJc2bRseTRXjSvWC6eUqr1E6Oqv5V97nLI2y3PhLxlUylalSC68uTib+BKsm209InWSrGYOQaqHvA8nKVoaaw==", - "dependencies": { - "Community.VisualStudio.Toolkit.Analyzers": "1.0.527", - "Microsoft.VisualStudio.SDK": "17.0.31902.203" - } - }, - "Community.VisualStudio.VSCT": { - "type": "Direct", - "requested": "[16.0.29.6, )", - "resolved": "16.0.29.6", - "contentHash": "4sOMn1BtfFYanKiA3zfT6ti+/HDOsKyeAPRuYrM+tjBEXusRgUFIqWxGytul5c30Fk4v0tV0AimeJKGg6mN/6Q==" - }, - "Fluid.Core": { - "type": "Direct", - "requested": "[2.12.0, )", - "resolved": "2.12.0", - "contentHash": "cOXkUnng3sclpWhUmL5Eg1tV8ieseeycge2K9NgCAJzW8oqZJz699xnVA3y5Bw+/zIDFGjkyldZ5rT14e2PDCA==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", - "Parlot": "1.0.2", - "System.Reflection.Emit.Lightweight": "4.7.0", - "System.Text.Json": "8.0.5", - "TimeZoneConverter": "6.1.0" - } - }, - "Microsoft.VisualStudio.SDK": { - "type": "Direct", - "requested": "[17.0.31902.203, )", - "resolved": "17.0.31902.203", - "contentHash": "YSOMLjLm0k4Q5JeoPvyRrYaHdUzxkKtkt9Hn/0NjWDdQ7tLrhZjR3SOiaSMYOFYQCQ0G7v2UBIRHfbGAnt7SNg==", - "dependencies": { - "Microsoft.VisualStudio.CommandBars": "17.0.31902.203", - "Microsoft.VisualStudio.ComponentModelHost": "17.0.487", - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Debugger.Interop.12.0": "17.0.31902.203", - "Microsoft.VisualStudio.Debugger.Interop.14.0": "17.0.31902.203", - "Microsoft.VisualStudio.Debugger.Interop.15.0": "17.0.31902.203", - "Microsoft.VisualStudio.Debugger.Interop.16.0": "17.0.31902.203", - "Microsoft.VisualStudio.Designer.Interfaces": "17.0.31902.203", - "Microsoft.VisualStudio.Editor": "17.0.487", - "Microsoft.VisualStudio.ImageCatalog": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Language": "17.0.487", - "Microsoft.VisualStudio.Language.Intellisense": "17.0.487", - "Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "17.0.487", - "Microsoft.VisualStudio.Language.StandardClassification": "17.0.487", - "Microsoft.VisualStudio.LanguageServer.Client": "17.0.5158", - "Microsoft.VisualStudio.OLE.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Package.LanguageService.15.0": "17.0.31902.203", - "Microsoft.VisualStudio.ProjectAggregator": "17.0.31902.203", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.0.4492", - "Microsoft.VisualStudio.Shell.Design": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.10.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.11.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.12.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.8.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.9.0": "17.0.31902.203", - "Microsoft.VisualStudio.TaskRunnerExplorer.14.0": "14.0.0", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.TextManager.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.10.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.11.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.12.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.8.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.9.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextTemplating.VSHost": "17.0.31902.203", - "Microsoft.VisualStudio.VCProjectEngine": "17.0.31902.203", - "Microsoft.VisualStudio.VSHelp": "17.0.31902.203", - "Microsoft.VisualStudio.VSHelp80": "17.0.31902.203", - "Microsoft.VisualStudio.Validation": "17.0.28", - "Microsoft.VisualStudio.WCFReference.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Web.BrowserLink.12.0": "12.0.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.ComponentModel.Composition": "4.5.0", - "VSLangProj": "17.0.31902.203", - "VSLangProj100": "17.0.31902.203", - "VSLangProj110": "17.0.31902.203", - "VSLangProj140": "17.0.31902.203", - "VSLangProj150": "17.0.31902.203", - "VSLangProj157": "17.0.31902.203", - "VSLangProj158": "17.0.31902.203", - "VSLangProj165": "17.0.31902.203", - "VSLangProj2": "17.0.31902.203", - "VSLangProj80": "17.0.31902.203", - "VSLangProj90": "17.0.31902.203", - "envdte": "17.0.31902.203", - "envdte100": "17.0.31902.203", - "envdte80": "17.0.31902.203", - "envdte90": "17.0.31902.203", - "envdte90a": "17.0.31902.203", - "stdole": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.SDK.Analyzers": { - "type": "Direct", - "requested": "[17.7.47, )", - "resolved": "17.7.47", - "contentHash": "dP4SOup0OMy8s1cTD4oYXlLd6JrDb8Gp4+1fR+vUuvgLDSuGFWS/8B23GQ670NICw5AadUUK9T9sCvYmpW8/Ig==" - }, - "Microsoft.VSSDK.BuildTools": { - "type": "Direct", - "requested": "[17.12.2069, )", - "resolved": "17.12.2069", - "contentHash": "pXOjfaoC926Z2ApbbXBNWWlTPJPDiJdp+kb+bdx5xxOr68yHwTgDD/i3q7JMtKJkHddufYYItRFr3P0/ylP4Sg==", - "dependencies": { - "Microsoft.VisualStudio.SDK.Analyzers": "17.7.47", - "Microsoft.VsSDK.CompatibilityAnalyzer": "17.12.2069" - } - }, - "Community.VisualStudio.Toolkit.Analyzers": { - "type": "Transitive", - "resolved": "1.0.527", - "contentHash": "mLGzmVovdUtRT0iqiewyz0RttBfyX17jLKsoiY+RKmVVZGDWyqDjZO8wSq8gBMcNVmyRRNyOe2qrF+k5kJoMcw==" - }, - "envdte": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "AC6jYeSnDnYZEs5nHKEtBupRWAQxriX2X3M25HyJlU9cvCCqPCByMwIbvlz8kXk+GfGxSL8sN+YOihU2SvrjXw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "envdte100": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "XICXfPHF4SQzqpUtQgXZsuSTyYOdSOymPMUqH/Q6QBrpEoMiJxmW/eEvLwgqJqiW5+HaajJImlVJkrnZJ4fjfg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "envdte80": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "79xAQpQmKqNnBWtH96Fm+onXsCS7ZTK0CfhCIe3BC56whCMwyh52M/+Qj/xOGhbFnPpjEzJhPnoL1jppniyRAw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "envdte90": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "AMFd0yjzXUV26i0Yzr5MBdolXtz92NZWUvacohGRFFHIHaa8BkKl1c40nw9m33l4cXcwMECsvPkhAcfietYkQg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "envdte90a": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "8rZmZEBu8uDMF1Fq1CITa540cJA8lVj9d9B2D2IgDL6heGkBfQc1nBf2BRcJT81SS9c0wEI1VLIVe3WSPeYG5g==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "MessagePack.Annotations": { - "type": "Transitive", - "resolved": "2.5.192", - "contentHash": "jaJuwcgovWIZ8Zysdyf3b7b34/BrADw4v82GaEZymUhDd3ScMPrYd/cttekeDteJJPXseJxp04yTIcxiVUjTWg==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Framework": { - "type": "Transitive", - "resolved": "16.5.0", - "contentHash": "K0hfdWy+0p8DJXxzpNc4T5zHm4hf9QONAvyzvw3utKExmxRBShtV/+uHVYTblZWk+rIHNEHeglyXMmqfSshdFA==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Extensions.FileProviders.Abstractions": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.NET.StringTools": { - "type": "Transitive", - "resolved": "17.6.3", - "contentHash": "N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.NETCore.Platforms": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" - }, - "Microsoft.NETCore.Targets": { - "type": "Transitive", - "resolved": "1.1.3", - "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" - }, - "Microsoft.ServiceHub.Analyzers": { - "type": "Transitive", - "resolved": "3.0.3078", - "contentHash": "LQsmEP/5i9PvM6O1dx69Yj3C0z/tSWiaLjoX31jQ+ilJZ8x7yqthYOnWaQpeZKxJn+oFxymzGtXgPasnqYM/ww==" - }, - "Microsoft.ServiceHub.Client": { - "type": "Transitive", - "resolved": "3.0.3078", - "contentHash": "hYqQlgUhnTq7VHYfIBvuWCwAiTjqhCfEX7d/ISVtEGEv7/N89QAbL+0XCz2NZRN6yMDtVMEoee5Q4k6/uwWlJg==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "3.0.3078", - "Microsoft.ServiceHub.Resources": "3.0.3078", - "Microsoft.VisualStudio.RemoteControl": "16.3.32", - "Microsoft.VisualStudio.Telemetry": "16.3.176", - "StreamJsonRpc": "2.7.70", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.ServiceHub.Framework": { - "type": "Transitive", - "resolved": "3.0.3078", - "contentHash": "RMBx+TEE3Fl6CRd1d1ZWKnNPRbPL23NFydDEEjRtZdwTSWe1x0gkUqnGU/ZgtqSsgWUfaQtEPxd8S9qfPGkz0Q==", - "dependencies": { - "Microsoft.ServiceHub.Analyzers": "3.0.3078", - "StreamJsonRpc": "2.7.70", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.ServiceHub.Resources": { - "type": "Transitive", - "resolved": "3.0.3078", - "contentHash": "02mGIKyVfnXFEeicpV2RbZapHd6vcefFSSZvjAA+O0kWgB9x2D5Pd3M94Il9LiLgFnw3mmxtf68tbEjOhQ0rWg==" - }, - "Microsoft.VisualStudio.CommandBars": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "+eBuWROC04s6NyVhJW/GJIqy8gOhFaxkWiHtuEf2bVTGkKQ/gx/Rjfegj79H/xEPnBmvbKp8e5+dxJ1WA4r1XA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.ComponentModelHost": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "mIvfzFYYtPbf+aZRLjtOmMfksKPGML2U2z7RqHJ+m0AVTumssJbOpaD5gOgYcUvE6+AjFoUpg+NLVjwxdZnVYQ==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Interop": "17.0.31723.112", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.CoreUtility": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "qk4BeMGWIklu4ia8zf6JPLUGXuJcbjhqfYhIHYbDKETmGxRHoNsvzGBIZT8GkS4VSjcibOFnbCowJfNWy5TfhQ==", - "dependencies": { - "Microsoft.VisualStudio.Threading": "17.0.63", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.10.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "YipUF2uyw4MH3WFZf+/4lC9jcHjkL8GgPdwvH800x+kVHAAVIEXJTqPTmsJnBrT/QqXdPHQrM6Srae0VQjG3gA==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.InteropA": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.11.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "NENWpbG7TvdF1TwesraECA+PgprCLR3Mfts7t8fL5KGc59QiRCeZTpVWBzotvRLMQ0lhA0VYYh1ErDV9D+LM2g==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.InteropA": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.12.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "Os4TTwz9mrtS5AzTKMyEr2NPIJmmBGlf+Cn4eFPn6t4yMfDYfaFRnOtDgpiF7IyduB+mywO8v+wMLWiQuJth9Q==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.InteropA": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.14.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "UwQukQ2/HdIxKqHGDQ8oipxrJ4IWLdQfBBuY8Yl61SAVhcGzDP4Z/XkB7RSIbJOAeFDzu/kuKZ3zXR7jXazAJA==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.Interop.11.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.15.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "P7C071a0dx7TP9NEBmt8pR3BZMOIqQYNWYW1pvxaY6jOb99/q7sm/KgYDKGrK/HEBefbn6g9T6hrVlUeP2GsWQ==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.Interop.10.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.16.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "eYE5pOBbWacuf0pUyQHJH9LuP15x67CUy8VJv9AeJM3E91Y95Ff5hkCasBZtf9TJ9uMVnx0+6PdZLkZdYcS4Yg==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.Interop.10.0": "17.0.31902.203", - "Microsoft.VisualStudio.Debugger.Interop.11.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.InteropA": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "y1CLio4/zI5PYWt760mJhduq/gpNZNrDwX2c2kBB5p+D8a1ExH4d2tNDTqbQdciOiNR47YenAcSUpyfHv9pNkg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Designer.Interfaces": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "eeNZCUX6RJGnc6YC6Bfs8qbEVt7WxWRPXEbEBjyOqCDU4dJPkR1OLVWMUHkA4XM3sXKImv1LmAwHZk3cWK5iGQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Editor": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "UuIMD8xLAkvwuszD7jlc4ADRckr59eyJ7YJFepTtja2IDMzt5SAGa0kxxjUQ3Zeg0KuhuwcZBwuYmSCgx5YSjA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.GraphModel": "17.0.31723.112", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Interop": "17.0.31723.112", - "Microsoft.VisualStudio.Language": "17.0.487", - "Microsoft.VisualStudio.ProjectAggregator": "17.0.31723.112", - "Microsoft.VisualStudio.RpcContracts": "17.0.51", - "Microsoft.VisualStudio.Shell.15.0": "17.0.31723.112", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.Text.UI": "17.0.487", - "Microsoft.VisualStudio.Text.UI.Wpf": "17.0.487", - "Microsoft.VisualStudio.Threading": "17.0.63", - "Microsoft.VisualStudio.Validation": "17.0.28" - } - }, - "Microsoft.VisualStudio.GraphModel": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "53cv+WBrXiX3Bomk2W+gz74tFqFa54OvJ++u4RYAdntvXb/hx+m1EhBgtHKOFu057rVxAq/YNFY7vLCUusQGoQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.ImageCatalog": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "nNfMuMiuC0UX/r5ryjIuqWyj/Wzrz63wuEcX70NtICUNmm/Bc5blXmgH7Et+ArVzZlXi2ExNqbLAi60IpNdaYw==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Imaging": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "NCJX5aUZxcj32Al5E9PI2XONEjR8gQyzjGL2NfNxw8PzDPd6yMmU96y7rnvv0dclPUw0gCcVMtLnNwpCaeXBdg==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Threading": "17.0.64", - "Microsoft.VisualStudio.Utilities": "17.0.31902.203", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "d9I8RzOeF9z1L/QJ3nWOMvJphsxe31cU7WBZW7aM0VTWZUWcYwYQH0CZWFPZsXgFWWRgiK5WL7FiMnYJfeDutw==" - }, - "Microsoft.VisualStudio.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "KWBjmU85KpWJiqRgkvuJfQgW8/1RtkFnJ4e4EIcoXYHab/1tinXv219midxHJoc6Sa6E/7Uo3Ku4bWBQMFE9dA==" - }, - "Microsoft.VisualStudio.Language": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "j8hL3Wwst8hwstbBzY24WV0PWYkcWDAC/Y2JHdO9jdlBjvHCHUPN4zNtu6A9oCTNsyLMxzK+pq+X45FFVTeqrA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.Text.UI": "17.0.487", - "Newtonsoft.Json": "13.0.1", - "StreamJsonRpc": "2.8.28", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "4.5.0", - "System.Private.Uri": "4.3.2" - } - }, - "Microsoft.VisualStudio.Language.Intellisense": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "iPi01Ep2YM4rgL6z26s4eEy8hOYwt5jE1aLebknCnBzUAB3avrSVa1AcOo726SdVN8h/h0lVRE4LMrC4WAQ4rQ==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Language": "17.0.487", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.Text.UI": "17.0.487", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "Microsoft.VisualStudio.Language.NavigateTo.Interfaces": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "5/3AstEbNcaZtwwONLcHXc2Nzels7j89jzXsYsxPQCSW9inbDbQoBC6+wtsAwKxOu1BeKpPaGi7bmc7Y+R+vSA==", - "dependencies": { - "Microsoft.VisualStudio.Imaging": "17.0.31723.112", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Interop": "17.0.31723.112", - "Microsoft.VisualStudio.Text.Logic": "17.0.448", - "Microsoft.VisualStudio.Utilities": "17.0.31723.112" - } - }, - "Microsoft.VisualStudio.Language.StandardClassification": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "n7l7tLV69+FtdH+/SPR8MdVc3UsAvlrgE38mMlXtW3dkxx5BYnSiHl93vZ4omDbX45Rzu9b4DDR1HMzg3GaKzQ==", - "dependencies": { - "Microsoft.VisualStudio.Text.Logic": "17.0.487" - } - }, - "Microsoft.VisualStudio.LanguageServer.Client": { - "type": "Transitive", - "resolved": "17.0.5158", - "contentHash": "cZNQHkvjpCnEnxZrLBflAAXc8CwJYMUgDEcCTgrY86Zpa6tHfaHpMoK3aBXtBlzlJ25vjeqBoilXbbCrPrHnJg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.448", - "Microsoft.VisualStudio.Shell.15.0": "17.0.31723.112", - "Microsoft.VisualStudio.Utilities": "17.0.31723.112", - "Microsoft.VisualStudio.Validation": "17.0.28", - "StreamJsonRpc": "2.8.28" - } - }, - "Microsoft.VisualStudio.OLE.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "lhZX3Vxm+bRP7/lb8zYG2DlLx3Ea1tnatV+SUYAJ+sL8Qr7v8VBmZurPxGsKYh5Q7ePNjOlkWk2eSaK6TaxUyg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Package.LanguageService.15.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "ZR8l9shqIHXGzfd4Wx9H7Bkgd4ydsMC+Sh8wk05jOV3qS9j9cYTNkRKXOny9rK7lZJIQcH8fPYpIe48kAwZPmg==", - "dependencies": { - "Microsoft.VisualStudio.Shell.Framework": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.ProjectAggregator": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "C96eQGjS87DX1yjl/C57YFpWX2hD2Vi0BlLnz44nFhAxCvQ2Fy5FN/E63yNMIdX+iAZkCoG80c1D7C6fBOL0XA==" - }, - "Microsoft.VisualStudio.RemoteControl": { - "type": "Transitive", - "resolved": "16.3.41", - "contentHash": "Q9lz2anDPJxDLznQRaybv21aY3qgQJmGJiUonH8z2D0XAgKMlMelsu9bg9zhnKCxtA/jreRAM3Md2W6thiDOwQ==", - "dependencies": { - "Microsoft.VisualStudio.Utilities.Internal": "16.3.23" - } - }, - "Microsoft.VisualStudio.RpcContracts": { - "type": "Transitive", - "resolved": "17.0.51", - "contentHash": "4cMhOmJJl18BU+LTrcjNTLDqWBuCN5t87fB64n7UNyKLs03o4UVNKEjsUwlo6USbccGfoyba4mWPWIo7vL0qkA==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "3.0.2061", - "StreamJsonRpc": "2.8.28" - } - }, - "Microsoft.VisualStudio.Setup.Configuration.Interop": { - "type": "Transitive", - "resolved": "3.0.4492", - "contentHash": "BfkqM96P8+N+cz4T+pxKrIKk2ZD1YMxCXH2ivtBDj5tx6Mc2YQLK1+3h+C6Qebper0RBipuHVn51lb9SZH6bKQ==" - }, - "Microsoft.VisualStudio.Shell.15.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "9bOKENGcO474GIgVoRzmkce6FdW/fiH/W2M0ULyRkFjNh9yEdJheYeyJFBr3Pb0EAwPwu2Q3gayQB7I9oTd/SA==", - "dependencies": { - "Microsoft.VisualStudio.ComponentModelHost": "17.0.487", - "Microsoft.VisualStudio.ImageCatalog": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.ProjectAggregator": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Framework": "17.0.31902.203", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Utilities": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Design": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "gFVdvJ9HOOnq4ntBCcULraptK+V+Mu1GahUXmd0dhsomGzkzgqDqN7aYQ3ys+K45pJhNeB3MJ/NNQUI4woyiBQ==", - "dependencies": { - "Microsoft.VisualStudio.ImageCatalog": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.15.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Framework": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Framework": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "L9s0/zSMeNlh1Pyzh9vX7T2+O3vg0JxTgXHyXGP/36DpJh4f+87D4rj+/nkESY4YXIUKPVl7XWXh3NLG0yjj1w==", - "dependencies": { - "Microsoft.Build.Framework": "16.5.0", - "Microsoft.VisualStudio.GraphModel": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Telemetry": "16.3.250", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Threading": "17.0.64", - "Microsoft.VisualStudio.Utilities": "17.0.31902.203", - "Newtonsoft.Json": "13.0.1", - "System.ComponentModel.Composition": "4.5.0", - "System.Threading.Tasks.Dataflow": "5.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Shell.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "GaGSme4K2Wy0b65evinVk7JCl1+Dn7TCxBBwKuzATjWWiY0lvvqLElhXBq+qpC23YN0I5jTBTv0inhZ3G06uMg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.10.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "CiHRisP0ts0lbyZ1SR0H7zfiVDTgkQTeORQTDY1xOTy7WL1hIzqmUz/M5UL7d6WcVI4hTAFosJ77NcqYrnTwGg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.11.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "doH7HCWzS2bXohKR0Vl1DRjzqV0iw/poZteLS0i4nzPqFs8e2xg+U6a/ysUQ3QHgZ5y7iraefPPmp/VMJfbIeQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.12.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "SfZOz3igcZc7mKOBOr2MrPnliJL0HWF0s9UAL1B05Rc8cI/wBNIbyC1PE8Xt44P6c1vjJm6tWscAFSHZdKpGuA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.8.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "rLDc0KVPc1HZEWd5OYyvKGJ2+0eay9gNeh2wMiEJC7UNLHo+JM0wxAYNehze50hWJKlFqefHKJ6Klmp1iX3kpQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.9.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "bz8tlDefGkBIGfF5KSScfs6f7P79IYzX3mqKAlXUshZjYQNd+8hLngls19cCP4oNlOre/DXAhESptNOgVihzzg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TaskRunnerExplorer.14.0": { - "type": "Transitive", - "resolved": "14.0.0", - "contentHash": "iZpAv8bEWjkyxFF1GIcSOfldqP/umopJKnJGKHa0vg8KR7ZY3u3dWtJmwO4w3abIx+176SIkQe78y5A+/Md7FA==" - }, - "Microsoft.VisualStudio.Telemetry": { - "type": "Transitive", - "resolved": "16.3.250", - "contentHash": "Ijo4HUinCwSdgegeXXzfEYmWuVLC1o9CI3FXW2x4CPKoYemlrN6xcGDUy4oKRxyOsFkjAaiRxR/X9TOgy2xVsQ==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.VisualStudio.RemoteControl": "16.3.41", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.23", - "Newtonsoft.Json": "9.0.1" - } - }, - "Microsoft.VisualStudio.Text.Data": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "lrqBhf4lI8Xzk0Z5hwcAtqnYTL1OK+iwu6tHJXDR8Vv7hFvG/YwetOQMJPz6UaLd93PEX+jPh0IfdY/CddoVDQ==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Threading": "17.0.63" - } - }, - "Microsoft.VisualStudio.Text.Logic": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "ZLMg3fDYijfur0B02/tkB1lmUWQtRfC9xkRr2XlQ/x7MOotTvDQO3HJp9hZyqn9LVBTWbjOnLVcoSmzthsGnnw==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.Text.UI": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "f+7L6k+eyJtQzrr//j2ZtYRDnGJeGSluT10do9/3ajgfT3WpRdlq5HEr60imnHbUU5eY2V/bjbKIu8q6Yg2VfA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.Text.UI.Wpf": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "Aq+eNxbpBlU8RYsSwh2JM1ZsttVvU7BKgFG6I/356EaY1ZJVz2LhAfjAl6C/A3pmizxgcczQZOIIJsrhcP/OIQ==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.Text.UI": "17.0.487" - } - }, - "Microsoft.VisualStudio.TextManager.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "w4+TDaisrknpeXkeebsTQsgl+6gbJivFyZp18/7Yqpo/lyG+IttvE9ZnJ5fFofTyrmgSGLi9BLEifT0mtsEaXA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.10.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "ODXNlirs3ttpe1ooEDsKKw6XbQ06h3kvJua++J0gPqM6vMWS5YfJVH0UxHQ+BDAFZQnUJcbH9b0sVdC9JUKQ6g==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.11.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "7NvcHy27r3fmlgdxPrZy4LWAm3yFqNJB3vMTMJv0K/olUzIpNRXYJMeQNltb8AJuOrbpb6HV6L2MIyJDehEADg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.12.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "2ptvBpyBVEtxwUS+FfFKPjbj+l6u/3IyznQegMmEIoQda6oeg07TFL0VAVmsqg48s4FFtpqRklx8kWhMNZqSXQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.8.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "70mNZyDPIsC+rNov2wHYb6H+V8Woc/FJktj2JsA194eMxk+DPpF0Jx3/sMgkDycV+CjIJog6TguywF4q4milIA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.9.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "s59cD2jJpwEGs6HE0fbp0sE+ZsR4pp8bK91WCelRUVCiMNMtgzb3PVBCjvl082f9UxIsClOBBYDTUjrt/CFqVQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextTemplating": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "IYWBsY2RWM8p2blyT0ja94+YRSc0wmL5er4/DfQShc3JkrQpVmmnWwSjRWC5IEp/dSukMW1LEfStqi/Kc6ZTtQ==", - "dependencies": { - "Microsoft.VisualStudio.TextTemplating.Interfaces": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextTemplating.Interfaces": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "rCQLkYDAKJ4BGot0CL5dkYhwArR3x2COIiTF5z3cMONVVfQqoXJKXaXve/O22DaTE/28Zt5EnaDNzZHIwROpeg==", - "dependencies": { - "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "KsY6a4Nk+wOj/0aGAE21JSglQt6+tlsAyPnVyiqqHn+ir1Wx9o0rFtekc6EfSle8nn5RM7QqLGSUR/Bxy6rQbA==" - }, - "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "pDYRlZTH42mS+r+dIjce6KOt/3HSxX1M1tPldT8VySnQ2PsT/6kRK2UVMOPla9hfJ1dWj2wMpYF8UNN2nuzdjA==", - "dependencies": { - "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextTemplating.VSHost": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "srtrkd9VCmGFRvMNV6STSe0XqM/DSl7xfY+EUIWhPVO8k+dl+DBNPIZzCK43Enfb+i3OrYFY2yqB6baNaelnaA==", - "dependencies": { - "Microsoft.VisualStudio.Shell.Framework": "17.0.31902.203", - "Microsoft.VisualStudio.TextTemplating": "17.0.31902.203", - "Microsoft.VisualStudio.Validation": "17.0.28", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "Microsoft.VisualStudio.Threading": { - "type": "Transitive", - "resolved": "17.0.64", - "contentHash": "HD/yoC7u1Ignj/EsCST4iFXl8zaE+8r2A+4CUkl6GLTJjdNjfl8iNvhqpyK8+DjCMwhyNRRH0I6S6FA37fz95Q==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.0.64", - "Microsoft.VisualStudio.Validation": "16.10.35", - "Microsoft.Win32.Registry": "5.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Threading.Analyzers": { - "type": "Transitive", - "resolved": "17.0.64", - "contentHash": "+xz3lAqA3h2/5q6H7Udmz9TsxDQ99O+PjoQ4k4BTO3SfAfyJX7ejh7I1D1N/M/GzGUci9YOUpr6KBO4vXLg+zQ==" - }, - "Microsoft.VisualStudio.Utilities": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "j0c5dq1ZmFFAi4kB4wJ1BOUrb1kJyhFvaqDKymbdJNaib8DdG8PNAdLrW1l0RewsEMDy5Rh2cO7mzrG/FlyE5Q==", - "dependencies": { - "Microsoft.ServiceHub.Client": "3.0.3078", - "Microsoft.VisualStudio.RpcContracts": "17.0.51", - "Microsoft.VisualStudio.Telemetry": "16.3.250", - "System.ComponentModel.Composition": "4.5.0", - "System.Threading.AccessControl": "5.0.0", - "System.Threading.Tasks.Dataflow": "5.0.0" - } - }, - "Microsoft.VisualStudio.Utilities.Internal": { - "type": "Transitive", - "resolved": "16.3.23", - "contentHash": "AxbS8vXJj0IjTv67JbmOqwJERYUDE7BHbXYkXGiyqYblizMjhVdohNIethnJX9lVN2RmotN5GQbwLWDoMKatvw==" - }, - "Microsoft.VisualStudio.Validation": { - "type": "Transitive", - "resolved": "17.0.28", - "contentHash": "qT+0Qv7lxLt7NKQjkroi34s8cDXVPWA3vDkvoFZwM9PRmZ28aKrMLaQRnkT7rgBYLf+mNtr2najktKUzkAtP6Q==" - }, - "Microsoft.VisualStudio.VCProjectEngine": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "QjjZguY7FypxVasdPihUbVSP5PjwBPiitCgnC/ZPePFO5KYzJ99VxdlASDDxNGVq5+q/+3YlBD94PXComDRu2w==" - }, - "Microsoft.VisualStudio.VSHelp": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "PT4aoOrZfPHIpTq3lwamypIrx0hR7d5iLlHewwhjUNezQ8ElN/jbWjvx74r/uf2g6dVPiQcS4HI0RGgAb4MQ2A==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.VSHelp80": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "B/G69KkAcMIwXgEvGAMpGSq1PvMx9JKAVzQdKiX4gm2DMFEsT2Id89TxS0oPg2X7QC3JBCk+/+BDUjtWPkjqMA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.WCFReference.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "45HixSYn5IBSgc6MmVHhivWCiRgdZ8BruXOC9fUrQIRrYHu8DR9aw8imnFImmJY3Mii92VHV4NKPYOgUkXNd/Q==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Web.BrowserLink.12.0": { - "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "HeuaZh8+wNVdwx7VF8guFGH2Z2zH+FYxWBsRNp+FjjlmrhCfM7GUQV5azaTv/bN5TPaK8ALJoP9UX5o1FB5k1A==" - }, - "Microsoft.VsSDK.CompatibilityAnalyzer": { - "type": "Transitive", - "resolved": "17.12.2069", - "contentHash": "kQB0zReJK0ezXxi8cGBpMr7r1x2vnftuEn2Qp7pvZnFsP2mTQVauBYioptxStvGcbX9sIfo2YSenYQiShsh+vA==" - }, - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==" - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Nerdbank.Streams": { - "type": "Transitive", - "resolved": "2.6.81", - "contentHash": "htBHFE359qyyFwrvAGvFxrbBAoldZdl0XjtQdDWTJ8t5sWWs7QVXID5y1ZGJE61UgpV5CqWsj/NT0LOAn5GdZw==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.1", - "Microsoft.VisualStudio.Threading": "16.7.56", - "Microsoft.VisualStudio.Validation": "15.5.31", - "System.IO.Pipelines": "4.7.2", - "System.Net.WebSockets": "4.3.0", - "System.Runtime.CompilerServices.Unsafe": "4.7.1" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.1", - "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" - }, - "Parlot": { - "type": "Transitive", - "resolved": "1.0.2", - "contentHash": "MVF15eZfdTxA0yH43E4xDgByRPlyrLkXKq5/0FtQQvNwOJIljz2p4/phEdLnjWhhftu9isae1EGVydnY333AFw==", - "dependencies": { - "System.Memory": "4.5.5" - } - }, - "stdole": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "c1WK5n8poXt1fafyuS+ntL5w0tc3P/r4F7+aeUaLYTp2/YoQB8XUpQFWqytZdtu7EAuMXoZ14T7jh7Vl+M4ZfQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "StreamJsonRpc": { - "type": "Transitive", - "resolved": "2.8.28", - "contentHash": "i2hKUXJSLEoWpPqQNyISqLDqmFHMiyasjTC/PrrHNWhQyauFeVoebSct3E4OTUzRC1DYjVJ9AMiVbp/uVYLnjQ==", - "dependencies": { - "MessagePack": "2.2.85", - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "Microsoft.VisualStudio.Threading": "16.9.60", - "Nerdbank.Streams": "2.6.81", - "Newtonsoft.Json": "12.0.2", - "System.Collections.Immutable": "5.0.0", - "System.Diagnostics.DiagnosticSource": "5.0.1", - "System.IO.Pipelines": "5.0.1", - "System.Memory": "4.5.4", - "System.Net.Http": "4.3.4", - "System.Net.WebSockets": "4.3.0", - "System.Reflection.Emit": "4.7.0", - "System.Threading.Tasks.Dataflow": "5.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.ComponentModel.Composition": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "+iB9FoZnfdqMEGq6np28X6YNSUrse16CakmIhV3h6PxEWt7jYxUN3Txs1D8MZhhf4QmyvK0F/EcIN0f4gGN0dA==" - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "uXQEYqav2V3zP6OwkOKtLv+qIi6z3m1hsGyKwXX7ZA7htT4shoVccGxnJ9kVRFPNAsi1ArZTq2oh7WOto6GbkQ==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==" - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "qEePWsaq9LoEEIqhbGe6D5J8c9IqQOUuTzzV6wn1POlfdLkJliZY3OlB0j0f17uMWlqZYjH7txj+2YbyrIA8Yg==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Net.WebSockets": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "u6fFNY5q4T8KerUAVbya7bR6b7muBuSTAersyrihkcmE5QhEOiH3t5rh4il15SexbVlpXFHGuMwr/m8fDrnkQg==" - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "Microsoft.NETCore.Targets": "1.1.3" - } - }, - "System.Reflection.Emit": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" - }, - "System.Reflection.Emit.Lightweight": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA==" - }, - "System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==" - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Runtime.InteropServices.RuntimeInformation": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.Algorithms": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" - }, - "System.Security.Cryptography.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==" - }, - "System.Security.Cryptography.X509Certificates": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "dependencies": { - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "8.0.5", - "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "WJ9w9m4iHJVq0VoH7hZvYAccbRq95itYRhAAXd6M4kVCzLmT6NqTwmSXKwp3oQilWHhYTXgqaIXxBfg8YaqtmA==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "NBp0zSAMZp4muDje6XmbDfmkqw9+qsDCHp+YMEtnVgHEjQZ3Q7MzFTTp3eHqpExn4BwMrS7JkUVOTcVchig4Sw==" - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "TimeZoneConverter": { - "type": "Transitive", - "resolved": "6.1.0", - "contentHash": "UGdtyKWJqXXinyvGB9X6NVoIYbTAidoZYmn3aXzxeEYC9+OL8vF36eDt1qjb6RqBkWDl4v7iE84ecI+dFhA80A==", - "dependencies": { - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0" - } - }, - "VSLangProj": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "XjyhxIyXjPitKrxeWkF1yaiqT02Klct5yZHz93x9O4nLTEnbmAHb+HRNiIIgNMXvG2sboNIvTt1MpuR1AeJktw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj100": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "8pwHJP2XefsWxhL3dQ11MBD9WwxP3SjAO41t6ZcFSfTHtSQFsp7erdtBrKzuFXpnIp3WoVc26f7jWrt4rr66+g==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj110": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "UToccqkFdocw9LZx7Rn62/puqxPjF7MQWIk2yMGqIdHLcaeRmR6gI1/3Ea+57ZcVehhuEvtxH8jXV2t4HwwU8g==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj140": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "ssRCHLYW5nSJJBy3rad5JId8SjcXHOsOzVW4ohZgtnHBtf73ehIJLtr+oRc7JK3NasmWBuB9DJqwwJBLj4wn3Q==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj150": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "sxFOk5x5bDqyxUgfi5zF58E8BnfRQ17Ft0IbxJDS0Bvf+6CLYjWQzKXqxCczYHs2aD7upUpN1hrf93bHlqahAQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj157": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "jYp9X00aaJKttYL1IuME8mpvd349H2zDbaFIBRf6LnDUPHd7i7MsnaREpID1Dr+H37P16pzbv48taLKUnAoBsw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj158": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "bwHHmgclOjBNI/CpUqgPH274D7UKDrgzFAEtFULixlOhA6E4NfYOgdUdemiW5bg58i4ao60T9tz3ac6PQfHeAw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj165": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "Brh37fZOyPL0zC9XVtOzWRl22GZZnN6/TVEvg6PDhWhjgnkdHv8hz0GZCIzilbyl9ilOJnQCx8oVQ+KMfcvXFQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj2": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "hqP1IODtJneTrUwwXeqD0YHmqyde3/KJaJRJehsn07TQxYxzyigrpNsh8GEoExTSis0SoFt97tXTztbXiBvSvg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj80": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "qm0T7dPige52L6mnsk+3Q8QV8R/Rgdkdpb3FaUMolP4JWU4s2OfrUzFajFBf8auf/NBQgUcBvE1Kr5yRpYmL2Q==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj90": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "KoyI+jvJ9fHwR2uGGlUxOqAmTgDO1naxwXbt504y/Jx1h/BXnhCWipGdyM/lS83GUGsmx8RhZbiiMlZw7LmYhw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "MessagePack": { - "type": "CentralTransitive", - "requested": "[2.5.192, )", - "resolved": "2.5.192", - "contentHash": "Jtle5MaFeIFkdXtxQeL9Tu2Y3HsAQGoSntOzrn6Br/jrl6c8QmG22GEioT5HBtZJR0zw0s46OnKU8ei2M3QifA==", - "dependencies": { - "MessagePack.Annotations": "2.5.192", - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.NET.StringTools": "17.6.3", - "System.Collections.Immutable": "6.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - } - }, - ".NETFramework,Version=v4.8/win": { - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "dependencies": { - "runtime.win.Microsoft.Win32.Primitives": "4.3.0" - } - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "runtime.any.System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "SDZ5AD1DtyRoxYtEcqQ3HDlcrorMYXZeCt7ZhG9US9I5Vva+gpIWDGMkcwa5XiKL0ceQKRZIX2x0XEjLX7PDzQ==" - }, - "runtime.any.System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==" - }, - "runtime.win.Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "dependencies": { - "runtime.any.System.IO": "4.3.0" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "dependencies": { - "runtime.any.System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices.RuntimeInformation": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.Algorithms": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" - }, - "System.Security.Cryptography.X509Certificates": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "dependencies": { - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "WJ9w9m4iHJVq0VoH7hZvYAccbRq95itYRhAAXd6M4kVCzLmT6NqTwmSXKwp3oQilWHhYTXgqaIXxBfg8YaqtmA==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - } - } -} \ No newline at end of file diff --git a/visual-studio/tests/GitWebLinks.UnitTests/GitWebLinks.UnitTests.csproj b/visual-studio/tests/GitWebLinks.UnitTests/GitWebLinks.UnitTests.csproj index 061cb9d..59533be 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/GitWebLinks.UnitTests.csproj +++ b/visual-studio/tests/GitWebLinks.UnitTests/GitWebLinks.UnitTests.csproj @@ -2,7 +2,7 @@ net48 - false + Exe @@ -12,18 +12,14 @@ - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - runtime; build; native; contentfiles; analyzers; buildtransitive all - - runtime; build; native; contentfiles; analyzers; buildtransitive - all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomFactAttribute.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomFactAttribute.cs index e898e02..41e7a2c 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomFactAttribute.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomFactAttribute.cs @@ -1,7 +1,6 @@ -using Xunit.Sdk; +using Xunit.v3; namespace GitWebLinks; -[XunitTestCaseDiscoverer("GitWebLinks.HandlerCustomTestCaseDiscoverer", "GitWebLinks.UnitTests")] -public sealed class HandlerCustomFactAttribute : FactAttribute { -} +[XunitTestCaseDiscoverer(typeof(HandlerCustomTestCaseDiscoverer))] +public sealed class HandlerCustomFactAttribute : FactAttribute { } diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomTestCase.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomTestCase.cs index b3869e5..cfab133 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomTestCase.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomTestCase.cs @@ -1,63 +1,65 @@ using System.ComponentModel; -using System.Text.RegularExpressions; -using Xunit.Abstractions; using Xunit.Sdk; +using Xunit.v3; namespace GitWebLinks; public class HandlerCustomTestCase : HandlerTestCase { - private string _customTestName; - - - public HandlerCustomTestCase( - IMessageSink diagnosticMessageSink, - TestMethodDisplay defaultMethodDisplay, - TestMethodDisplayOptions defaultMethodDisplayOptions, - ITestMethod testMethod, - string handlerName, - string customTestName - ) : base(diagnosticMessageSink, defaultMethodDisplay, defaultMethodDisplayOptions, testMethod, handlerName, [customTestName]) { - _customTestName = customTestName; - } - - [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("Used for deserialization only.")] public HandlerCustomTestCase() { - _customTestName = ""; + CustomTestName = ""; } - protected override string GetDisplayName(IAttributeInfo factAttribute, string displayName) { - string[] nameParts; - - - // The display name of the underlying test case will be the - // full name of the method (namespace + class + method name). - // Add the handler name before the method name, and replace - // the method name with the name of the custom test. - nameParts = BaseDisplayName.Split('.'); - nameParts[nameParts.Length - 1] = $"[{HandlerName}] {_customTestName}"; - - return string.Join(".", nameParts); + public HandlerCustomTestCase( + string handlerName, + string customTestName, + IXunitTestMethod testMethod, + string testCaseDisplayName, + string uniqueID, + bool @explicit, + string? skipReason = null, + Type? skipType = null, + string? skipUnless = null, + string? skipWhen = null, + Dictionary>? traits = null, + string? sourceFilePath = null, + int? sourceLineNumber = null, + int? timeout = null + ) : base( + handlerName, + testMethod, + testCaseDisplayName, + uniqueID, + @explicit, + skipReason, + skipType, + skipUnless, + skipWhen, + traits, + [customTestName], + sourceFilePath, + sourceLineNumber, + timeout + ) { + CustomTestName = customTestName; } - protected override string GetUniqueID() { - return $"{base.GetUniqueID()}+{Regex.Replace(_customTestName, "\\s\\.", "_")}"; - } + public string CustomTestName { get; set; } - public override void Deserialize(IXunitSerializationInfo data) { - _customTestName = data.GetValue("CustomTestName"); + protected override void Deserialize(IXunitSerializationInfo data) { base.Deserialize(data); + CustomTestName = data.GetValue(nameof(CustomTestName))!; } - public override void Serialize(IXunitSerializationInfo data) { - data.AddValue("CustomTestName", _customTestName); + protected override void Serialize(IXunitSerializationInfo data) { base.Serialize(data); + data.AddValue(nameof(CustomTestName), CustomTestName); } } diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomTestCaseDiscoverer.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomTestCaseDiscoverer.cs index 17fc6de..128d75d 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomTestCaseDiscoverer.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerCustomTestCaseDiscoverer.cs @@ -1,35 +1,45 @@ -using Xunit.Abstractions; +using System.Text.RegularExpressions; +using Xunit.Internal; using Xunit.Sdk; +using Xunit.v3; namespace GitWebLinks; public class HandlerCustomTestCaseDiscoverer : IXunitTestCaseDiscoverer { - private readonly IMessageSink _diagnosticMessageSink; - - - public HandlerCustomTestCaseDiscoverer(IMessageSink diagnosticMessageSink) { - _diagnosticMessageSink = diagnosticMessageSink; - } - - - public IEnumerable Discover( + public ValueTask> Discover( ITestFrameworkDiscoveryOptions discoveryOptions, - ITestMethod testMethod, - IAttributeInfo factAttribute + IXunitTestMethod testMethod, + IFactAttribute factAttribute ) { - foreach (HandlerTestDefinition definition in TestDefinitionProvider.GetDefinitions()) { - foreach (CustomTest test in definition.Tests.CreateUrl.Misc) { - yield return new HandlerCustomTestCase( - _diagnosticMessageSink, - discoveryOptions.MethodDisplayOrDefault(), - discoveryOptions.MethodDisplayOptionsOrDefault(), - testMethod, +#pragma warning disable IDE0008 // Use explicit type + var details = TestIntrospectionHelper.GetTestCaseDetails( + discoveryOptions, + testMethod, + factAttribute + ); +#pragma warning restore IDE0008 // Use explicit type + + return new ValueTask>( + ( + from definition in TestDefinitionProvider.GetDefinitions() + from test in definition.Tests.CreateUrl.Misc + select new HandlerCustomTestCase( definition.Name, - test.Name - ); - } - } + test.Name, + details.ResolvedTestMethod, + $"[{definition.Name}] {test.Name}", + $"{details.UniqueID}+{Regex.Replace($"{definition.Name}+{test.Name}", "\\s\\.", "_")}", + details.Explicit, + details.SkipReason, + details.SkipType, + details.SkipUnless, + details.SkipWhen, + testMethod.Traits.ToReadWrite(StringComparer.OrdinalIgnoreCase), + timeout: details.Timeout + ) + ).ToList() + ); } } diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerFactAttribute.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerFactAttribute.cs index 0c84d91..fbb0191 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerFactAttribute.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerFactAttribute.cs @@ -1,7 +1,6 @@ -using Xunit.Sdk; +using Xunit.v3; namespace GitWebLinks; -[XunitTestCaseDiscoverer("GitWebLinks.HandlerTestCaseDiscoverer", "GitWebLinks.UnitTests")] -public sealed class HandlerFactAttribute : FactAttribute { -} +[XunitTestCaseDiscoverer(typeof(HandlerTestCaseDiscoverer))] +public sealed class HandlerFactAttribute : FactAttribute { } diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTest.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTest.cs deleted file mode 100644 index 1fd9b1b..0000000 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTest.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Xunit.Sdk; - -namespace GitWebLinks; - -public class HandlerTest : XunitTest { - - public HandlerTest(IXunitTestCase testCase, string displayName, string handlerName) : base(testCase, displayName) { - HandlerName = handlerName; - } - - - public string HandlerName { get; } - -} diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCase.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCase.cs index e5a07d2..18467eb 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCase.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCase.cs @@ -1,22 +1,10 @@ using System.ComponentModel; -using Xunit.Abstractions; using Xunit.Sdk; +using Xunit.v3; namespace GitWebLinks; -public class HandlerTestCase : XunitTestCase { - - public HandlerTestCase( - IMessageSink diagnosticMessageSink, - TestMethodDisplay defaultMethodDisplay, - TestMethodDisplayOptions defaultMethodDisplayOptions, - ITestMethod testMethod, - string handlerName, - object[]? testMethodArguments = null - ) : base(diagnosticMessageSink, defaultMethodDisplay, defaultMethodDisplayOptions, testMethod, testMethodArguments) { - HandlerName = handlerName; - } - +public class HandlerTestCase : XunitTestCase, ISelfExecutingXunitTestCase { [EditorBrowsable(EditorBrowsableState.Never)] [Obsolete("Used for deserialization only.")] @@ -25,52 +13,73 @@ public HandlerTestCase() { } - protected string HandlerName { get; private set; } - - - protected override string GetDisplayName(IAttributeInfo factAttribute, string displayName) { - string[] nameParts; - - - // The base display name will be the full name of - // the method (namespace + class + method name). - // Add the handler name to the start of the method name. - nameParts = BaseDisplayName.Split('.'); - nameParts[nameParts.Length - 1] = $"[{HandlerName}] {nameParts[nameParts.Length - 1]}"; - - return string.Join(".", nameParts); + public HandlerTestCase( + string handlerName, + IXunitTestMethod testMethod, + string testCaseDisplayName, + string uniqueID, + bool @explicit, + string? skipReason = null, + Type? skipType = null, + string? skipUnless = null, + string? skipWhen = null, + Dictionary>? traits = null, + object?[]? testMethodArguments = null, + string? sourceFilePath = null, + int? sourceLineNumber = null, + int? timeout = null + ) : base( + testMethod, + testCaseDisplayName, + uniqueID, + @explicit, + skipReason, + skipType, + skipUnless, + skipWhen, + traits, + testMethodArguments, + sourceFilePath, + sourceLineNumber, + timeout + ) { + HandlerName = handlerName; } - protected override string GetUniqueID() { - return $"{base.GetUniqueID()}+{HandlerName.Replace(" ", "_")}"; - } + protected string HandlerName { get; private set; } - public override void Deserialize(IXunitSerializationInfo data) { - HandlerName = data.GetValue("HandlerName"); + protected override void Deserialize(IXunitSerializationInfo data) { base.Deserialize(data); + HandlerName = data.GetValue(nameof(HandlerName))!; } - public override void Serialize(IXunitSerializationInfo data) { - data.AddValue("HandlerName", HandlerName); + protected override void Serialize(IXunitSerializationInfo data) { base.Serialize(data); + data.AddValue(nameof(HandlerName), HandlerName); } - public override Task RunAsync(IMessageSink diagnosticMessageSink, IMessageBus messageBus, object[] constructorArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) { - return new HandlerTestCaseRunner( + public ValueTask Run( + ExplicitOption explicitOption, + IMessageBus messageBus, + object?[] constructorArguments, + ExceptionAggregator aggregator, + CancellationTokenSource cancellationTokenSource + ) { + return HandlerTestCaseRunner.Instance.RunAsync( + HandlerName, this, - DisplayName, - SkipReason, - constructorArguments, - TestMethodArguments, messageBus, - aggregator, + aggregator.Clone(), cancellationTokenSource, - HandlerName - ).RunAsync(); + TestCaseDisplayName, + SkipReason, + explicitOption, + constructorArguments + ); } } diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseDiscoverer.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseDiscoverer.cs index ecbc44d..7254a6c 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseDiscoverer.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseDiscoverer.cs @@ -1,32 +1,43 @@ -using Xunit.Abstractions; +using System.Text.RegularExpressions; +using Xunit.Internal; using Xunit.Sdk; +using Xunit.v3; namespace GitWebLinks; public class HandlerTestCaseDiscoverer : IXunitTestCaseDiscoverer { - private readonly IMessageSink _diagnosticMessageSink; - - - public HandlerTestCaseDiscoverer(IMessageSink diagnosticMessageSink) { - _diagnosticMessageSink = diagnosticMessageSink; - } - - - public IEnumerable Discover( + public ValueTask> Discover( ITestFrameworkDiscoveryOptions discoveryOptions, - ITestMethod testMethod, - IAttributeInfo factAttribute + IXunitTestMethod testMethod, + IFactAttribute factAttribute ) { - foreach (HandlerTestDefinition definition in TestDefinitionProvider.GetDefinitions()) { - yield return new HandlerTestCase( - _diagnosticMessageSink, - discoveryOptions.MethodDisplayOrDefault(), - discoveryOptions.MethodDisplayOptionsOrDefault(), - testMethod, - definition.Name - ); - } +#pragma warning disable IDE0008 // Use explicit type + var details = TestIntrospectionHelper.GetTestCaseDetails( + discoveryOptions, + testMethod, + factAttribute + ); +#pragma warning restore IDE0008 // Use explicit type + + return new ValueTask>( + ( + from definition in TestDefinitionProvider.GetDefinitions() + select new HandlerTestCase( + definition.Name, + details.ResolvedTestMethod, + definition.Name, + $"{details.UniqueID}+{Regex.Replace(definition.Name, "\\s\\.", "_")}", + details.Explicit, + details.SkipReason, + details.SkipType, + details.SkipUnless, + details.SkipWhen, + testMethod.Traits.ToReadWrite(StringComparer.OrdinalIgnoreCase), + timeout: details.Timeout + ) + ).ToList() + ); } } diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseRunner.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseRunner.cs index 7e14bb9..b0af2b0 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseRunner.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseRunner.cs @@ -1,47 +1,80 @@ -using System.Reflection; -using Xunit.Abstractions; using Xunit.Sdk; +using Xunit.v3; namespace GitWebLinks; -public class HandlerTestCaseRunner : XunitTestCaseRunner { +public class HandlerTestCaseRunner : XunitTestCaseRunnerBase { - private readonly string _handlerName; + public static HandlerTestCaseRunner Instance { get; } = new(); - public HandlerTestCaseRunner(IXunitTestCase testCase, string displayName, string skipReason, object[] constructorArguments, object[] testMethodArguments, IMessageBus messageBus, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource, string handlerName) : base(testCase, displayName, skipReason, constructorArguments, testMethodArguments, messageBus, aggregator, cancellationTokenSource) { - _handlerName = handlerName; - } - - - protected override ITest CreateTest(IXunitTestCase testCase, string displayName) { - return new HandlerTest(testCase, displayName, _handlerName); - } + private HandlerTestCaseRunner() { } - protected override XunitTestRunner CreateTestRunner( - ITest test, + public async ValueTask RunAsync( + string handlerName, + IXunitTestCase testCase, IMessageBus messageBus, - Type testClass, - object[] constructorArguments, - MethodInfo testMethod, - object[] testMethodArguments, - string skipReason, - IReadOnlyList beforeAfterAttributes, ExceptionAggregator aggregator, - CancellationTokenSource cancellationTokenSource + CancellationTokenSource cancellationTokenSource, + string displayName, + string? skipReason, + ExplicitOption explicitOption, + object?[] constructorArguments ) { - return new HandlerTestRunner( - test, + IReadOnlyCollection tests; + + + tests = await aggregator.RunAsync(testCase.CreateTests, []); + + if (aggregator.ToException() is Exception ex) { + if (ex.Message.StartsWith(DynamicSkipToken.Value, StringComparison.Ordinal)) { + return XunitRunnerHelper.SkipTestCases( + messageBus, + cancellationTokenSource, + [testCase], + ex.Message.Substring(DynamicSkipToken.Value.Length), + sendTestCaseMessages: false + ); + } else { + return XunitRunnerHelper.FailTestCases( + messageBus, + cancellationTokenSource, + [testCase], + ex, + sendTestCaseMessages: false + ); + } + } + + await using (HandlerTestCaseRunnerContext context = new( + handlerName, + testCase, + tests, messageBus, - testClass, - constructorArguments, - testMethod, - testMethodArguments, - skipReason, - beforeAfterAttributes, aggregator, - cancellationTokenSource + cancellationTokenSource, + displayName, + skipReason, + explicitOption, + constructorArguments + )) { + await context.InitializeAsync(); + return await Run(context); + } + } + + + protected override ValueTask RunTest(HandlerTestCaseRunnerContext context, IXunitTest test) { + return HandlerTestRunner.Instance.RunAsync( + context.HandlerName, + test, + context.MessageBus, + context.ConstructorArguments, + context.ExplicitOption, + context.Aggregator.Clone(), + context.CancellationTokenSource, + context.BeforeAfterTestAttributes ); } diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseRunnerContext.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseRunnerContext.cs new file mode 100644 index 0000000..07a9794 --- /dev/null +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestCaseRunnerContext.cs @@ -0,0 +1,36 @@ +using Xunit.Sdk; +using Xunit.v3; + +namespace GitWebLinks; + +public class HandlerTestCaseRunnerContext : XunitTestCaseRunnerBaseContext { + + public HandlerTestCaseRunnerContext( + string handlerName, + IXunitTestCase testCase, + IReadOnlyCollection tests, + IMessageBus messageBus, + ExceptionAggregator aggregator, + CancellationTokenSource cancellationTokenSource, + string displayName, + string? skipReason, + ExplicitOption explicitOption, + object?[] constructorArguments + ) : base( + testCase, + tests, + messageBus, + aggregator, + cancellationTokenSource, + displayName, + skipReason, + explicitOption, + constructorArguments + ) { + HandlerName = handlerName; + } + + + public string HandlerName { get; } + +} diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestInvoker.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestInvoker.cs deleted file mode 100644 index 8d1954b..0000000 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestInvoker.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System.Reflection; -using Xunit.Abstractions; -using Xunit.Sdk; - -namespace GitWebLinks; - -internal class HandlerTestInvoker : XunitTestInvoker { - - public HandlerTestInvoker(ITest test, IMessageBus messageBus, Type testClass, object[] constructorArguments, MethodInfo testMethod, object[] testMethodArguments, IReadOnlyList beforeAfterAttributes, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) : base(test, messageBus, testClass, constructorArguments, testMethod, testMethodArguments, beforeAfterAttributes, aggregator, cancellationTokenSource) { } - - - protected override object? CreateTestClass() { - IHandlerTestClass? testClass = null; - - if (!MessageBus.QueueMessage(new TestClassConstructionStarting(Test))) { - CancellationTokenSource.Cancel(); - - } else { - try { - if (!CancellationTokenSource.IsCancellationRequested) { - Timer.Aggregate(() => { - testClass = (IHandlerTestClass)Activator.CreateInstance(TestClass, ConstructorArguments); - testClass.SetDefinition(TestDefinitionProvider.GetDefinitions().First((x) => x.Name == ((HandlerTest)Test).HandlerName)); - }); - } - - } finally { - if (!MessageBus.QueueMessage(new TestClassConstructionFinished(Test))) { - CancellationTokenSource.Cancel(); - } - } - } - - return testClass; - } - -} diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestRunner.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestRunner.cs index a9533fa..3f5f9e1 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestRunner.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestRunner.cs @@ -1,16 +1,50 @@ -using System.Reflection; -using Xunit.Abstractions; using Xunit.Sdk; +using Xunit.v3; namespace GitWebLinks; -public class HandlerTestRunner : XunitTestRunner { +internal class HandlerTestRunner : XunitTestRunnerBase { - public HandlerTestRunner(ITest test, IMessageBus messageBus, Type testClass, object[] constructorArguments, MethodInfo testMethod, object[] testMethodArguments, string skipReason, IReadOnlyList beforeAfterAttributes, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) : base(test, messageBus, testClass, constructorArguments, testMethod, testMethodArguments, skipReason, beforeAfterAttributes, aggregator, cancellationTokenSource) { } + public static HandlerTestRunner Instance { get; } = new(); - protected override Task InvokeTestMethodAsync(ExceptionAggregator aggregator) { - return new HandlerTestInvoker(Test, MessageBus, TestClass, ConstructorArguments, TestMethod, TestMethodArguments, BeforeAfterAttributes, aggregator, CancellationTokenSource).RunAsync(); + private HandlerTestRunner() { } + + + protected override ValueTask InvokeTest(HandlerTestRunnerContext context, object? testClassInstance) { + if (testClassInstance is IHandlerTestClass testClass) { + testClass.SetDefinition( + TestDefinitionProvider.GetDefinitions().First((x) => x.Name == context.HandlerName) + ); + } + + return base.InvokeTest(context, testClassInstance); + } + + + public async ValueTask RunAsync( + string handlerName, + IXunitTest test, + IMessageBus messageBus, + object?[] constructorArguments, + ExplicitOption explicitOption, + ExceptionAggregator aggregator, + CancellationTokenSource cancellationTokenSource, + IReadOnlyCollection beforeAfterAttributes + ) { + await using (HandlerTestRunnerContext context = new( + handlerName, + test, + messageBus, + explicitOption, + aggregator, + cancellationTokenSource, + beforeAfterAttributes, + constructorArguments + )) { + await context.InitializeAsync(); + return await Run(context); + } } } diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestRunnerContext.cs b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestRunnerContext.cs new file mode 100644 index 0000000..bf89805 --- /dev/null +++ b/visual-studio/tests/GitWebLinks.UnitTests/Handlers/xUnit/HandlerTestRunnerContext.cs @@ -0,0 +1,32 @@ +using Xunit.Sdk; +using Xunit.v3; + +namespace GitWebLinks; + +public class HandlerTestRunnerContext : XunitTestRunnerBaseContext { + + public HandlerTestRunnerContext( + string handlerName, + IXunitTest test, + IMessageBus messageBus, + ExplicitOption explicitOption, + ExceptionAggregator aggregator, + CancellationTokenSource cancellationTokenSource, + IReadOnlyCollection beforeAfterTestAttributes, + object?[] constructorArguments + ) : base( + test, + messageBus, + explicitOption, + aggregator, + cancellationTokenSource, + beforeAfterTestAttributes, + constructorArguments + ) { + HandlerName = handlerName; + } + + + public string HandlerName { get; } + +} diff --git a/visual-studio/tests/GitWebLinks.UnitTests/Services/LinkHandlerTests.cs b/visual-studio/tests/GitWebLinks.UnitTests/Services/LinkHandlerTests.cs index 183570b..d33e130 100644 --- a/visual-studio/tests/GitWebLinks.UnitTests/Services/LinkHandlerTests.cs +++ b/visual-studio/tests/GitWebLinks.UnitTests/Services/LinkHandlerTests.cs @@ -475,7 +475,7 @@ public async Task ShouldUseTheRealPathForFilesUnderDirectoryThatIsSymbolicLink() link = Path.Combine(RootDirectory, "link"); if (!NativeMethods.CreateSymbolicLink(link, real, NativeMethods.SYMBOLIC_LINK_FLAG_DIRECTORY)) { - throw new InvalidOperationException("Could not create symlink."); + Assert.Skip("Could not create symlink."); } CreateFile("real/foo.js"); @@ -505,7 +505,7 @@ public async Task ShouldUseTheRealPathForFileThatIsSymbolicLink() { link = Path.Combine(RootDirectory, "link.js"); if (!NativeMethods.CreateSymbolicLink(link, file, 0)) { - throw new InvalidOperationException("Could not create symlink."); + Assert.Skip("Could not create symlink."); } Assert.Equal( @@ -531,7 +531,7 @@ public async Task ShouldNotUseTheRealPathWhenTheEntireGitRepositoryIsUnderSymbol link = Path.Combine(RootDirectory, "link"); if (!NativeMethods.CreateSymbolicLink(link, real, NativeMethods.SYMBOLIC_LINK_FLAG_DIRECTORY)) { - throw new InvalidOperationException("Could not create symlink."); + Assert.Skip("Could not create symlink."); } SetRepositoryRoot(link); diff --git a/visual-studio/tests/GitWebLinks.UnitTests/packages.lock.json b/visual-studio/tests/GitWebLinks.UnitTests/packages.lock.json deleted file mode 100644 index d4a69dc..0000000 --- a/visual-studio/tests/GitWebLinks.UnitTests/packages.lock.json +++ /dev/null @@ -1,1440 +0,0 @@ -{ - "version": 2, - "dependencies": { - ".NETFramework,Version=v4.8": { - "coverlet.collector": { - "type": "Direct", - "requested": "[6.0.2, )", - "resolved": "6.0.2", - "contentHash": "bJShQ6uWRTQ100ZeyiMqcFlhP7WJ+bCuabUs885dJiBEzMsJMSFr7BOyeCw4rgvQokteGi5rKQTlkhfQPUXg2A==" - }, - "Microsoft.NET.Test.Sdk": { - "type": "Direct", - "requested": "[17.12.0, )", - "resolved": "17.12.0", - "contentHash": "kt/PKBZ91rFCWxVIJZSgVLk+YR+4KxTuHf799ho8WNiK5ZQpJNAEZCAWX86vcKrs+DiYjiibpYKdGZP6+/N17w==", - "dependencies": { - "Microsoft.CodeCoverage": "17.12.0" - } - }, - "Microsoft.NETFramework.ReferenceAssemblies": { - "type": "Direct", - "requested": "[1.0.3, )", - "resolved": "1.0.3", - "contentHash": "vUc9Npcs14QsyOD01tnv/m8sQUnGTGOw1BCmKcv77LBJY7OxhJ+zJF7UD/sCL3lYNFuqmQEVlkfS4Quif6FyYg==", - "dependencies": { - "Microsoft.NETFramework.ReferenceAssemblies.net48": "1.0.3" - } - }, - "NSubstitute": { - "type": "Direct", - "requested": "[5.3.0, )", - "resolved": "5.3.0", - "contentHash": "lJ47Cps5Qzr86N99lcwd+OUvQma7+fBgr8+Mn+aOC0WrlqMNkdivaYD9IvnZ5Mqo6Ky3LS7ZI+tUq1/s9ERd0Q==", - "dependencies": { - "Castle.Core": "5.1.1", - "System.Threading.Tasks.Extensions": "4.3.0" - } - }, - "xunit": { - "type": "Direct", - "requested": "[2.9.2, )", - "resolved": "2.9.2", - "contentHash": "7LhFS2N9Z6Xgg8aE5lY95cneYivRMfRI8v+4PATa4S64D5Z/Plkg0qa8dTRHSiGRgVZ/CL2gEfJDE5AUhOX+2Q==", - "dependencies": { - "xunit.analyzers": "1.16.0", - "xunit.assert": "2.9.2", - "xunit.core": "[2.9.2]" - } - }, - "xunit.runner.msbuild": { - "type": "Direct", - "requested": "[2.9.2, )", - "resolved": "2.9.2", - "contentHash": "NRibZLMV9VYSYSa9F5JaV6Tp2MO0Y5WpqUEzj03pGEzRYPL/SzrJW9RqtafQ3Kkqc8EMcxsaYKWU9FNsA6NBDw==" - }, - "xunit.runner.visualstudio": { - "type": "Direct", - "requested": "[3.0.0, )", - "resolved": "3.0.0", - "contentHash": "HggUqjQJe8PtDxcP25Q+CnR6Lz4oX3GElhD9V4oU2+75x9HI6A6sxbfKGS4UwU4t4yJaS9fBmAuriz8bQApNjw==", - "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "17.12.0" - } - }, - "Castle.Core": { - "type": "Transitive", - "resolved": "5.1.1", - "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==" - }, - "Community.VisualStudio.Toolkit.Analyzers": { - "type": "Transitive", - "resolved": "1.0.527", - "contentHash": "mLGzmVovdUtRT0iqiewyz0RttBfyX17jLKsoiY+RKmVVZGDWyqDjZO8wSq8gBMcNVmyRRNyOe2qrF+k5kJoMcw==" - }, - "envdte": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "AC6jYeSnDnYZEs5nHKEtBupRWAQxriX2X3M25HyJlU9cvCCqPCByMwIbvlz8kXk+GfGxSL8sN+YOihU2SvrjXw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "envdte100": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "XICXfPHF4SQzqpUtQgXZsuSTyYOdSOymPMUqH/Q6QBrpEoMiJxmW/eEvLwgqJqiW5+HaajJImlVJkrnZJ4fjfg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "envdte80": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "79xAQpQmKqNnBWtH96Fm+onXsCS7ZTK0CfhCIe3BC56whCMwyh52M/+Qj/xOGhbFnPpjEzJhPnoL1jppniyRAw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "envdte90": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "AMFd0yjzXUV26i0Yzr5MBdolXtz92NZWUvacohGRFFHIHaa8BkKl1c40nw9m33l4cXcwMECsvPkhAcfietYkQg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "envdte90a": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "8rZmZEBu8uDMF1Fq1CITa540cJA8lVj9d9B2D2IgDL6heGkBfQc1nBf2BRcJT81SS9c0wEI1VLIVe3WSPeYG5g==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "MessagePack.Annotations": { - "type": "Transitive", - "resolved": "2.5.192", - "contentHash": "jaJuwcgovWIZ8Zysdyf3b7b34/BrADw4v82GaEZymUhDd3ScMPrYd/cttekeDteJJPXseJxp04yTIcxiVUjTWg==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Framework": { - "type": "Transitive", - "resolved": "16.5.0", - "contentHash": "K0hfdWy+0p8DJXxzpNc4T5zHm4hf9QONAvyzvw3utKExmxRBShtV/+uHVYTblZWk+rIHNEHeglyXMmqfSshdFA==" - }, - "Microsoft.CodeCoverage": { - "type": "Transitive", - "resolved": "17.12.0", - "contentHash": "4svMznBd5JM21JIG2xZKGNanAHNXplxf/kQDFfLHXQ3OnpJkayRK/TjacFjA+EYmoyuNXHo/sOETEfcYtAzIrA==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Extensions.FileProviders.Abstractions": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "8.0.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.NET.StringTools": { - "type": "Transitive", - "resolved": "17.6.3", - "contentHash": "N0ZIanl1QCgvUumEL1laasU0a7sOE5ZwLZVTn0pAePnfhq8P7SvTjF8Axq+CnavuQkmdQpGNXQ1efZtu5kDFbA==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.NETCore.Platforms": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==" - }, - "Microsoft.NETCore.Targets": { - "type": "Transitive", - "resolved": "1.1.3", - "contentHash": "3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==" - }, - "Microsoft.NETFramework.ReferenceAssemblies.net48": { - "type": "Transitive", - "resolved": "1.0.3", - "contentHash": "zMk4D+9zyiEWByyQ7oPImPN/Jhpj166Ky0Nlla4eXlNL8hI/BtSJsgR8Inldd4NNpIAH3oh8yym0W2DrhXdSLQ==" - }, - "Microsoft.ServiceHub.Analyzers": { - "type": "Transitive", - "resolved": "3.0.3078", - "contentHash": "LQsmEP/5i9PvM6O1dx69Yj3C0z/tSWiaLjoX31jQ+ilJZ8x7yqthYOnWaQpeZKxJn+oFxymzGtXgPasnqYM/ww==" - }, - "Microsoft.ServiceHub.Client": { - "type": "Transitive", - "resolved": "3.0.3078", - "contentHash": "hYqQlgUhnTq7VHYfIBvuWCwAiTjqhCfEX7d/ISVtEGEv7/N89QAbL+0XCz2NZRN6yMDtVMEoee5Q4k6/uwWlJg==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "3.0.3078", - "Microsoft.ServiceHub.Resources": "3.0.3078", - "Microsoft.VisualStudio.RemoteControl": "16.3.32", - "Microsoft.VisualStudio.Telemetry": "16.3.176", - "StreamJsonRpc": "2.7.70", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.ServiceHub.Framework": { - "type": "Transitive", - "resolved": "3.0.3078", - "contentHash": "RMBx+TEE3Fl6CRd1d1ZWKnNPRbPL23NFydDEEjRtZdwTSWe1x0gkUqnGU/ZgtqSsgWUfaQtEPxd8S9qfPGkz0Q==", - "dependencies": { - "Microsoft.ServiceHub.Analyzers": "3.0.3078", - "StreamJsonRpc": "2.7.70", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.ServiceHub.Resources": { - "type": "Transitive", - "resolved": "3.0.3078", - "contentHash": "02mGIKyVfnXFEeicpV2RbZapHd6vcefFSSZvjAA+O0kWgB9x2D5Pd3M94Il9LiLgFnw3mmxtf68tbEjOhQ0rWg==" - }, - "Microsoft.TestPlatform.ObjectModel": { - "type": "Transitive", - "resolved": "17.12.0", - "contentHash": "TDqkTKLfQuAaPcEb3pDDWnh7b3SyZF+/W9OZvWFp6eJCIiiYFdSB6taE2I6tWrFw5ywhzOb6sreoGJTI6m3rSQ==", - "dependencies": { - "System.Reflection.Metadata": "1.6.0" - } - }, - "Microsoft.VisualStudio.CommandBars": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "+eBuWROC04s6NyVhJW/GJIqy8gOhFaxkWiHtuEf2bVTGkKQ/gx/Rjfegj79H/xEPnBmvbKp8e5+dxJ1WA4r1XA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.ComponentModelHost": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "mIvfzFYYtPbf+aZRLjtOmMfksKPGML2U2z7RqHJ+m0AVTumssJbOpaD5gOgYcUvE6+AjFoUpg+NLVjwxdZnVYQ==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Interop": "17.0.31723.112", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.CoreUtility": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "qk4BeMGWIklu4ia8zf6JPLUGXuJcbjhqfYhIHYbDKETmGxRHoNsvzGBIZT8GkS4VSjcibOFnbCowJfNWy5TfhQ==", - "dependencies": { - "Microsoft.VisualStudio.Threading": "17.0.63", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.10.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "YipUF2uyw4MH3WFZf+/4lC9jcHjkL8GgPdwvH800x+kVHAAVIEXJTqPTmsJnBrT/QqXdPHQrM6Srae0VQjG3gA==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.InteropA": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.11.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "NENWpbG7TvdF1TwesraECA+PgprCLR3Mfts7t8fL5KGc59QiRCeZTpVWBzotvRLMQ0lhA0VYYh1ErDV9D+LM2g==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.InteropA": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.12.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "Os4TTwz9mrtS5AzTKMyEr2NPIJmmBGlf+Cn4eFPn6t4yMfDYfaFRnOtDgpiF7IyduB+mywO8v+wMLWiQuJth9Q==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.InteropA": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.14.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "UwQukQ2/HdIxKqHGDQ8oipxrJ4IWLdQfBBuY8Yl61SAVhcGzDP4Z/XkB7RSIbJOAeFDzu/kuKZ3zXR7jXazAJA==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.Interop.11.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.15.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "P7C071a0dx7TP9NEBmt8pR3BZMOIqQYNWYW1pvxaY6jOb99/q7sm/KgYDKGrK/HEBefbn6g9T6hrVlUeP2GsWQ==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.Interop.10.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.16.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "eYE5pOBbWacuf0pUyQHJH9LuP15x67CUy8VJv9AeJM3E91Y95Ff5hkCasBZtf9TJ9uMVnx0+6PdZLkZdYcS4Yg==", - "dependencies": { - "Microsoft.VisualStudio.Debugger.Interop.10.0": "17.0.31902.203", - "Microsoft.VisualStudio.Debugger.Interop.11.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Debugger.InteropA": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "y1CLio4/zI5PYWt760mJhduq/gpNZNrDwX2c2kBB5p+D8a1ExH4d2tNDTqbQdciOiNR47YenAcSUpyfHv9pNkg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Designer.Interfaces": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "eeNZCUX6RJGnc6YC6Bfs8qbEVt7WxWRPXEbEBjyOqCDU4dJPkR1OLVWMUHkA4XM3sXKImv1LmAwHZk3cWK5iGQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Editor": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "UuIMD8xLAkvwuszD7jlc4ADRckr59eyJ7YJFepTtja2IDMzt5SAGa0kxxjUQ3Zeg0KuhuwcZBwuYmSCgx5YSjA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.GraphModel": "17.0.31723.112", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Interop": "17.0.31723.112", - "Microsoft.VisualStudio.Language": "17.0.487", - "Microsoft.VisualStudio.ProjectAggregator": "17.0.31723.112", - "Microsoft.VisualStudio.RpcContracts": "17.0.51", - "Microsoft.VisualStudio.Shell.15.0": "17.0.31723.112", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.Text.UI": "17.0.487", - "Microsoft.VisualStudio.Text.UI.Wpf": "17.0.487", - "Microsoft.VisualStudio.Threading": "17.0.63", - "Microsoft.VisualStudio.Validation": "17.0.28" - } - }, - "Microsoft.VisualStudio.GraphModel": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "53cv+WBrXiX3Bomk2W+gz74tFqFa54OvJ++u4RYAdntvXb/hx+m1EhBgtHKOFu057rVxAq/YNFY7vLCUusQGoQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.ImageCatalog": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "nNfMuMiuC0UX/r5ryjIuqWyj/Wzrz63wuEcX70NtICUNmm/Bc5blXmgH7Et+ArVzZlXi2ExNqbLAi60IpNdaYw==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Imaging": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "NCJX5aUZxcj32Al5E9PI2XONEjR8gQyzjGL2NfNxw8PzDPd6yMmU96y7rnvv0dclPUw0gCcVMtLnNwpCaeXBdg==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Threading": "17.0.64", - "Microsoft.VisualStudio.Utilities": "17.0.31902.203", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "d9I8RzOeF9z1L/QJ3nWOMvJphsxe31cU7WBZW7aM0VTWZUWcYwYQH0CZWFPZsXgFWWRgiK5WL7FiMnYJfeDutw==" - }, - "Microsoft.VisualStudio.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "KWBjmU85KpWJiqRgkvuJfQgW8/1RtkFnJ4e4EIcoXYHab/1tinXv219midxHJoc6Sa6E/7Uo3Ku4bWBQMFE9dA==" - }, - "Microsoft.VisualStudio.Language": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "j8hL3Wwst8hwstbBzY24WV0PWYkcWDAC/Y2JHdO9jdlBjvHCHUPN4zNtu6A9oCTNsyLMxzK+pq+X45FFVTeqrA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.Text.UI": "17.0.487", - "Newtonsoft.Json": "13.0.1", - "StreamJsonRpc": "2.8.28", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "4.5.0", - "System.Private.Uri": "4.3.2" - } - }, - "Microsoft.VisualStudio.Language.Intellisense": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "iPi01Ep2YM4rgL6z26s4eEy8hOYwt5jE1aLebknCnBzUAB3avrSVa1AcOo726SdVN8h/h0lVRE4LMrC4WAQ4rQ==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Language": "17.0.487", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.Text.UI": "17.0.487", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "Microsoft.VisualStudio.Language.NavigateTo.Interfaces": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "5/3AstEbNcaZtwwONLcHXc2Nzels7j89jzXsYsxPQCSW9inbDbQoBC6+wtsAwKxOu1BeKpPaGi7bmc7Y+R+vSA==", - "dependencies": { - "Microsoft.VisualStudio.Imaging": "17.0.31723.112", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Interop": "17.0.31723.112", - "Microsoft.VisualStudio.Text.Logic": "17.0.448", - "Microsoft.VisualStudio.Utilities": "17.0.31723.112" - } - }, - "Microsoft.VisualStudio.Language.StandardClassification": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "n7l7tLV69+FtdH+/SPR8MdVc3UsAvlrgE38mMlXtW3dkxx5BYnSiHl93vZ4omDbX45Rzu9b4DDR1HMzg3GaKzQ==", - "dependencies": { - "Microsoft.VisualStudio.Text.Logic": "17.0.487" - } - }, - "Microsoft.VisualStudio.LanguageServer.Client": { - "type": "Transitive", - "resolved": "17.0.5158", - "contentHash": "cZNQHkvjpCnEnxZrLBflAAXc8CwJYMUgDEcCTgrY86Zpa6tHfaHpMoK3aBXtBlzlJ25vjeqBoilXbbCrPrHnJg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.448", - "Microsoft.VisualStudio.Shell.15.0": "17.0.31723.112", - "Microsoft.VisualStudio.Utilities": "17.0.31723.112", - "Microsoft.VisualStudio.Validation": "17.0.28", - "StreamJsonRpc": "2.8.28" - } - }, - "Microsoft.VisualStudio.OLE.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "lhZX3Vxm+bRP7/lb8zYG2DlLx3Ea1tnatV+SUYAJ+sL8Qr7v8VBmZurPxGsKYh5Q7ePNjOlkWk2eSaK6TaxUyg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Package.LanguageService.15.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "ZR8l9shqIHXGzfd4Wx9H7Bkgd4ydsMC+Sh8wk05jOV3qS9j9cYTNkRKXOny9rK7lZJIQcH8fPYpIe48kAwZPmg==", - "dependencies": { - "Microsoft.VisualStudio.Shell.Framework": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.ProjectAggregator": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "C96eQGjS87DX1yjl/C57YFpWX2hD2Vi0BlLnz44nFhAxCvQ2Fy5FN/E63yNMIdX+iAZkCoG80c1D7C6fBOL0XA==" - }, - "Microsoft.VisualStudio.RemoteControl": { - "type": "Transitive", - "resolved": "16.3.41", - "contentHash": "Q9lz2anDPJxDLznQRaybv21aY3qgQJmGJiUonH8z2D0XAgKMlMelsu9bg9zhnKCxtA/jreRAM3Md2W6thiDOwQ==", - "dependencies": { - "Microsoft.VisualStudio.Utilities.Internal": "16.3.23" - } - }, - "Microsoft.VisualStudio.RpcContracts": { - "type": "Transitive", - "resolved": "17.0.51", - "contentHash": "4cMhOmJJl18BU+LTrcjNTLDqWBuCN5t87fB64n7UNyKLs03o4UVNKEjsUwlo6USbccGfoyba4mWPWIo7vL0qkA==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "3.0.2061", - "StreamJsonRpc": "2.8.28" - } - }, - "Microsoft.VisualStudio.Setup.Configuration.Interop": { - "type": "Transitive", - "resolved": "3.0.4492", - "contentHash": "BfkqM96P8+N+cz4T+pxKrIKk2ZD1YMxCXH2ivtBDj5tx6Mc2YQLK1+3h+C6Qebper0RBipuHVn51lb9SZH6bKQ==" - }, - "Microsoft.VisualStudio.Shell.15.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "9bOKENGcO474GIgVoRzmkce6FdW/fiH/W2M0ULyRkFjNh9yEdJheYeyJFBr3Pb0EAwPwu2Q3gayQB7I9oTd/SA==", - "dependencies": { - "Microsoft.VisualStudio.ComponentModelHost": "17.0.487", - "Microsoft.VisualStudio.ImageCatalog": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.ProjectAggregator": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Framework": "17.0.31902.203", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Utilities": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Design": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "gFVdvJ9HOOnq4ntBCcULraptK+V+Mu1GahUXmd0dhsomGzkzgqDqN7aYQ3ys+K45pJhNeB3MJ/NNQUI4woyiBQ==", - "dependencies": { - "Microsoft.VisualStudio.ImageCatalog": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.15.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Framework": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Framework": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "L9s0/zSMeNlh1Pyzh9vX7T2+O3vg0JxTgXHyXGP/36DpJh4f+87D4rj+/nkESY4YXIUKPVl7XWXh3NLG0yjj1w==", - "dependencies": { - "Microsoft.Build.Framework": "16.5.0", - "Microsoft.VisualStudio.GraphModel": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Telemetry": "16.3.250", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Threading": "17.0.64", - "Microsoft.VisualStudio.Utilities": "17.0.31902.203", - "Newtonsoft.Json": "13.0.1", - "System.ComponentModel.Composition": "4.5.0", - "System.Threading.Tasks.Dataflow": "5.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Shell.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "GaGSme4K2Wy0b65evinVk7JCl1+Dn7TCxBBwKuzATjWWiY0lvvqLElhXBq+qpC23YN0I5jTBTv0inhZ3G06uMg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.10.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "CiHRisP0ts0lbyZ1SR0H7zfiVDTgkQTeORQTDY1xOTy7WL1hIzqmUz/M5UL7d6WcVI4hTAFosJ77NcqYrnTwGg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.11.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "doH7HCWzS2bXohKR0Vl1DRjzqV0iw/poZteLS0i4nzPqFs8e2xg+U6a/ysUQ3QHgZ5y7iraefPPmp/VMJfbIeQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.12.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "SfZOz3igcZc7mKOBOr2MrPnliJL0HWF0s9UAL1B05Rc8cI/wBNIbyC1PE8Xt44P6c1vjJm6tWscAFSHZdKpGuA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.8.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "rLDc0KVPc1HZEWd5OYyvKGJ2+0eay9gNeh2wMiEJC7UNLHo+JM0wxAYNehze50hWJKlFqefHKJ6Klmp1iX3kpQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Shell.Interop.9.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "bz8tlDefGkBIGfF5KSScfs6f7P79IYzX3mqKAlXUshZjYQNd+8hLngls19cCP4oNlOre/DXAhESptNOgVihzzg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TaskRunnerExplorer.14.0": { - "type": "Transitive", - "resolved": "14.0.0", - "contentHash": "iZpAv8bEWjkyxFF1GIcSOfldqP/umopJKnJGKHa0vg8KR7ZY3u3dWtJmwO4w3abIx+176SIkQe78y5A+/Md7FA==" - }, - "Microsoft.VisualStudio.Telemetry": { - "type": "Transitive", - "resolved": "16.3.250", - "contentHash": "Ijo4HUinCwSdgegeXXzfEYmWuVLC1o9CI3FXW2x4CPKoYemlrN6xcGDUy4oKRxyOsFkjAaiRxR/X9TOgy2xVsQ==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.VisualStudio.RemoteControl": "16.3.41", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.23", - "Newtonsoft.Json": "9.0.1" - } - }, - "Microsoft.VisualStudio.Text.Data": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "lrqBhf4lI8Xzk0Z5hwcAtqnYTL1OK+iwu6tHJXDR8Vv7hFvG/YwetOQMJPz6UaLd93PEX+jPh0IfdY/CddoVDQ==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Threading": "17.0.63" - } - }, - "Microsoft.VisualStudio.Text.Logic": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "ZLMg3fDYijfur0B02/tkB1lmUWQtRfC9xkRr2XlQ/x7MOotTvDQO3HJp9hZyqn9LVBTWbjOnLVcoSmzthsGnnw==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.Text.UI": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "f+7L6k+eyJtQzrr//j2ZtYRDnGJeGSluT10do9/3ajgfT3WpRdlq5HEr60imnHbUU5eY2V/bjbKIu8q6Yg2VfA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.Text.UI.Wpf": { - "type": "Transitive", - "resolved": "17.0.487", - "contentHash": "Aq+eNxbpBlU8RYsSwh2JM1ZsttVvU7BKgFG6I/356EaY1ZJVz2LhAfjAl6C/A3pmizxgcczQZOIIJsrhcP/OIQ==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31723.112", - "Microsoft.VisualStudio.Text.Data": "17.0.487", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.Text.UI": "17.0.487" - } - }, - "Microsoft.VisualStudio.TextManager.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "w4+TDaisrknpeXkeebsTQsgl+6gbJivFyZp18/7Yqpo/lyG+IttvE9ZnJ5fFofTyrmgSGLi9BLEifT0mtsEaXA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.10.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "ODXNlirs3ttpe1ooEDsKKw6XbQ06h3kvJua++J0gPqM6vMWS5YfJVH0UxHQ+BDAFZQnUJcbH9b0sVdC9JUKQ6g==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.11.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "7NvcHy27r3fmlgdxPrZy4LWAm3yFqNJB3vMTMJv0K/olUzIpNRXYJMeQNltb8AJuOrbpb6HV6L2MIyJDehEADg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.12.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "2ptvBpyBVEtxwUS+FfFKPjbj+l6u/3IyznQegMmEIoQda6oeg07TFL0VAVmsqg48s4FFtpqRklx8kWhMNZqSXQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.8.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "70mNZyDPIsC+rNov2wHYb6H+V8Woc/FJktj2JsA194eMxk+DPpF0Jx3/sMgkDycV+CjIJog6TguywF4q4milIA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.9.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "s59cD2jJpwEGs6HE0fbp0sE+ZsR4pp8bK91WCelRUVCiMNMtgzb3PVBCjvl082f9UxIsClOBBYDTUjrt/CFqVQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextTemplating": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "IYWBsY2RWM8p2blyT0ja94+YRSc0wmL5er4/DfQShc3JkrQpVmmnWwSjRWC5IEp/dSukMW1LEfStqi/Kc6ZTtQ==", - "dependencies": { - "Microsoft.VisualStudio.TextTemplating.Interfaces": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextTemplating.Interfaces": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "rCQLkYDAKJ4BGot0CL5dkYhwArR3x2COIiTF5z3cMONVVfQqoXJKXaXve/O22DaTE/28Zt5EnaDNzZHIwROpeg==", - "dependencies": { - "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "KsY6a4Nk+wOj/0aGAE21JSglQt6+tlsAyPnVyiqqHn+ir1Wx9o0rFtekc6EfSle8nn5RM7QqLGSUR/Bxy6rQbA==" - }, - "Microsoft.VisualStudio.TextTemplating.Interfaces.11.0": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "pDYRlZTH42mS+r+dIjce6KOt/3HSxX1M1tPldT8VySnQ2PsT/6kRK2UVMOPla9hfJ1dWj2wMpYF8UNN2nuzdjA==", - "dependencies": { - "Microsoft.VisualStudio.TextTemplating.Interfaces.10.0": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.TextTemplating.VSHost": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "srtrkd9VCmGFRvMNV6STSe0XqM/DSl7xfY+EUIWhPVO8k+dl+DBNPIZzCK43Enfb+i3OrYFY2yqB6baNaelnaA==", - "dependencies": { - "Microsoft.VisualStudio.Shell.Framework": "17.0.31902.203", - "Microsoft.VisualStudio.TextTemplating": "17.0.31902.203", - "Microsoft.VisualStudio.Validation": "17.0.28", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "Microsoft.VisualStudio.Threading": { - "type": "Transitive", - "resolved": "17.0.64", - "contentHash": "HD/yoC7u1Ignj/EsCST4iFXl8zaE+8r2A+4CUkl6GLTJjdNjfl8iNvhqpyK8+DjCMwhyNRRH0I6S6FA37fz95Q==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.0.64", - "Microsoft.VisualStudio.Validation": "16.10.35", - "Microsoft.Win32.Registry": "5.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Threading.Analyzers": { - "type": "Transitive", - "resolved": "17.0.64", - "contentHash": "+xz3lAqA3h2/5q6H7Udmz9TsxDQ99O+PjoQ4k4BTO3SfAfyJX7ejh7I1D1N/M/GzGUci9YOUpr6KBO4vXLg+zQ==" - }, - "Microsoft.VisualStudio.Utilities": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "j0c5dq1ZmFFAi4kB4wJ1BOUrb1kJyhFvaqDKymbdJNaib8DdG8PNAdLrW1l0RewsEMDy5Rh2cO7mzrG/FlyE5Q==", - "dependencies": { - "Microsoft.ServiceHub.Client": "3.0.3078", - "Microsoft.VisualStudio.RpcContracts": "17.0.51", - "Microsoft.VisualStudio.Telemetry": "16.3.250", - "System.ComponentModel.Composition": "4.5.0", - "System.Threading.AccessControl": "5.0.0", - "System.Threading.Tasks.Dataflow": "5.0.0" - } - }, - "Microsoft.VisualStudio.Utilities.Internal": { - "type": "Transitive", - "resolved": "16.3.23", - "contentHash": "AxbS8vXJj0IjTv67JbmOqwJERYUDE7BHbXYkXGiyqYblizMjhVdohNIethnJX9lVN2RmotN5GQbwLWDoMKatvw==" - }, - "Microsoft.VisualStudio.Validation": { - "type": "Transitive", - "resolved": "17.0.28", - "contentHash": "qT+0Qv7lxLt7NKQjkroi34s8cDXVPWA3vDkvoFZwM9PRmZ28aKrMLaQRnkT7rgBYLf+mNtr2najktKUzkAtP6Q==" - }, - "Microsoft.VisualStudio.VCProjectEngine": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "QjjZguY7FypxVasdPihUbVSP5PjwBPiitCgnC/ZPePFO5KYzJ99VxdlASDDxNGVq5+q/+3YlBD94PXComDRu2w==" - }, - "Microsoft.VisualStudio.VSHelp": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "PT4aoOrZfPHIpTq3lwamypIrx0hR7d5iLlHewwhjUNezQ8ElN/jbWjvx74r/uf2g6dVPiQcS4HI0RGgAb4MQ2A==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.VSHelp80": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "B/G69KkAcMIwXgEvGAMpGSq1PvMx9JKAVzQdKiX4gm2DMFEsT2Id89TxS0oPg2X7QC3JBCk+/+BDUjtWPkjqMA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.WCFReference.Interop": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "45HixSYn5IBSgc6MmVHhivWCiRgdZ8BruXOC9fUrQIRrYHu8DR9aw8imnFImmJY3Mii92VHV4NKPYOgUkXNd/Q==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "Microsoft.VisualStudio.Web.BrowserLink.12.0": { - "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "HeuaZh8+wNVdwx7VF8guFGH2Z2zH+FYxWBsRNp+FjjlmrhCfM7GUQV5azaTv/bN5TPaK8ALJoP9UX5o1FB5k1A==" - }, - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==" - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "Nerdbank.Streams": { - "type": "Transitive", - "resolved": "2.6.81", - "contentHash": "htBHFE359qyyFwrvAGvFxrbBAoldZdl0XjtQdDWTJ8t5sWWs7QVXID5y1ZGJE61UgpV5CqWsj/NT0LOAn5GdZw==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "1.1.1", - "Microsoft.VisualStudio.Threading": "16.7.56", - "Microsoft.VisualStudio.Validation": "15.5.31", - "System.IO.Pipelines": "4.7.2", - "System.Net.WebSockets": "4.3.0", - "System.Runtime.CompilerServices.Unsafe": "4.7.1" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.1", - "contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==" - }, - "Parlot": { - "type": "Transitive", - "resolved": "1.0.2", - "contentHash": "MVF15eZfdTxA0yH43E4xDgByRPlyrLkXKq5/0FtQQvNwOJIljz2p4/phEdLnjWhhftu9isae1EGVydnY333AFw==", - "dependencies": { - "System.Memory": "4.5.5" - } - }, - "stdole": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "c1WK5n8poXt1fafyuS+ntL5w0tc3P/r4F7+aeUaLYTp2/YoQB8XUpQFWqytZdtu7EAuMXoZ14T7jh7Vl+M4ZfQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "StreamJsonRpc": { - "type": "Transitive", - "resolved": "2.8.28", - "contentHash": "i2hKUXJSLEoWpPqQNyISqLDqmFHMiyasjTC/PrrHNWhQyauFeVoebSct3E4OTUzRC1DYjVJ9AMiVbp/uVYLnjQ==", - "dependencies": { - "MessagePack": "2.2.85", - "Microsoft.Bcl.AsyncInterfaces": "5.0.0", - "Microsoft.VisualStudio.Threading": "16.9.60", - "Nerdbank.Streams": "2.6.81", - "Newtonsoft.Json": "12.0.2", - "System.Collections.Immutable": "5.0.0", - "System.Diagnostics.DiagnosticSource": "5.0.1", - "System.IO.Pipelines": "5.0.1", - "System.Memory": "4.5.4", - "System.Net.Http": "4.3.4", - "System.Net.WebSockets": "4.3.0", - "System.Reflection.Emit": "4.7.0", - "System.Threading.Tasks.Dataflow": "5.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "l4zZJ1WU2hqpQQHXz1rvC3etVZN+2DLmQMO79FhOTZHMn8tDRr+WU287sbomD0BETlmKDn0ygUgVy9k5xkkJdA==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.ComponentModel.Composition": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "+iB9FoZnfdqMEGq6np28X6YNSUrse16CakmIhV3h6PxEWt7jYxUN3Txs1D8MZhhf4QmyvK0F/EcIN0f4gGN0dA==" - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "uXQEYqav2V3zP6OwkOKtLv+qIi6z3m1hsGyKwXX7ZA7htT4shoVccGxnJ9kVRFPNAsi1ArZTq2oh7WOto6GbkQ==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==" - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "5.0.1", - "contentHash": "qEePWsaq9LoEEIqhbGe6D5J8c9IqQOUuTzzV6wn1POlfdLkJliZY3OlB0j0f17uMWlqZYjH7txj+2YbyrIA8Yg==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Memory": { - "type": "Transitive", - "resolved": "4.5.5", - "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Net.WebSockets": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "u6fFNY5q4T8KerUAVbya7bR6b7muBuSTAersyrihkcmE5QhEOiH3t5rh4il15SexbVlpXFHGuMwr/m8fDrnkQg==" - }, - "System.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "Microsoft.NETCore.Targets": "1.1.3" - } - }, - "System.Reflection.Emit": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ==" - }, - "System.Reflection.Emit.Lightweight": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA==" - }, - "System.Reflection.Metadata": { - "type": "Transitive", - "resolved": "1.6.0", - "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", - "dependencies": { - "System.Collections.Immutable": "1.5.0" - } - }, - "System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==" - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Runtime.InteropServices.RuntimeInformation": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.Algorithms": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" - }, - "System.Security.Cryptography.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==" - }, - "System.Security.Cryptography.X509Certificates": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "dependencies": { - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "8.0.5", - "contentHash": "0f1B50Ss7rqxXiaBJyzUu9bWFOO2/zSlifZ/UNMdiIpDYe4cY4LQQicP4nirK1OS31I43rn062UIJ1Q9bpmHpg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "WJ9w9m4iHJVq0VoH7hZvYAccbRq95itYRhAAXd6M4kVCzLmT6NqTwmSXKwp3oQilWHhYTXgqaIXxBfg8YaqtmA==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "NBp0zSAMZp4muDje6XmbDfmkqw9+qsDCHp+YMEtnVgHEjQZ3Q7MzFTTp3eHqpExn4BwMrS7JkUVOTcVchig4Sw==" - }, - "System.Threading.Tasks.Extensions": { - "type": "Transitive", - "resolved": "4.5.4", - "contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "4.5.3" - } - }, - "System.ValueTuple": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==" - }, - "TimeZoneConverter": { - "type": "Transitive", - "resolved": "6.1.0", - "contentHash": "UGdtyKWJqXXinyvGB9X6NVoIYbTAidoZYmn3aXzxeEYC9+OL8vF36eDt1qjb6RqBkWDl4v7iE84ecI+dFhA80A==", - "dependencies": { - "System.Runtime.InteropServices.RuntimeInformation": "4.3.0" - } - }, - "VSLangProj": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "XjyhxIyXjPitKrxeWkF1yaiqT02Klct5yZHz93x9O4nLTEnbmAHb+HRNiIIgNMXvG2sboNIvTt1MpuR1AeJktw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj100": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "8pwHJP2XefsWxhL3dQ11MBD9WwxP3SjAO41t6ZcFSfTHtSQFsp7erdtBrKzuFXpnIp3WoVc26f7jWrt4rr66+g==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj110": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "UToccqkFdocw9LZx7Rn62/puqxPjF7MQWIk2yMGqIdHLcaeRmR6gI1/3Ea+57ZcVehhuEvtxH8jXV2t4HwwU8g==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj140": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "ssRCHLYW5nSJJBy3rad5JId8SjcXHOsOzVW4ohZgtnHBtf73ehIJLtr+oRc7JK3NasmWBuB9DJqwwJBLj4wn3Q==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj150": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "sxFOk5x5bDqyxUgfi5zF58E8BnfRQ17Ft0IbxJDS0Bvf+6CLYjWQzKXqxCczYHs2aD7upUpN1hrf93bHlqahAQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj157": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "jYp9X00aaJKttYL1IuME8mpvd349H2zDbaFIBRf6LnDUPHd7i7MsnaREpID1Dr+H37P16pzbv48taLKUnAoBsw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj158": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "bwHHmgclOjBNI/CpUqgPH274D7UKDrgzFAEtFULixlOhA6E4NfYOgdUdemiW5bg58i4ao60T9tz3ac6PQfHeAw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj165": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "Brh37fZOyPL0zC9XVtOzWRl22GZZnN6/TVEvg6PDhWhjgnkdHv8hz0GZCIzilbyl9ilOJnQCx8oVQ+KMfcvXFQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj2": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "hqP1IODtJneTrUwwXeqD0YHmqyde3/KJaJRJehsn07TQxYxzyigrpNsh8GEoExTSis0SoFt97tXTztbXiBvSvg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj80": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "qm0T7dPige52L6mnsk+3Q8QV8R/Rgdkdpb3FaUMolP4JWU4s2OfrUzFajFBf8auf/NBQgUcBvE1Kr5yRpYmL2Q==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "VSLangProj90": { - "type": "Transitive", - "resolved": "17.0.31902.203", - "contentHash": "KoyI+jvJ9fHwR2uGGlUxOqAmTgDO1naxwXbt504y/Jx1h/BXnhCWipGdyM/lS83GUGsmx8RhZbiiMlZw7LmYhw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.0.31902.203" - } - }, - "xunit.abstractions": { - "type": "Transitive", - "resolved": "2.0.3", - "contentHash": "pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==" - }, - "xunit.analyzers": { - "type": "Transitive", - "resolved": "1.16.0", - "contentHash": "hptYM7vGr46GUIgZt21YHO4rfuBAQS2eINbFo16CV/Dqq+24Tp+P5gDCACu1AbFfW4Sp/WRfDPSK8fmUUb8s0Q==" - }, - "xunit.assert": { - "type": "Transitive", - "resolved": "2.9.2", - "contentHash": "QkNBAQG4pa66cholm28AxijBjrmki98/vsEh4Sx5iplzotvPgpiotcxqJQMRC8d7RV7nIT8ozh97957hDnZwsQ==" - }, - "xunit.core": { - "type": "Transitive", - "resolved": "2.9.2", - "contentHash": "O6RrNSdmZ0xgEn5kT927PNwog5vxTtKrWMihhhrT0Sg9jQ7iBDciYOwzBgP2krBEk5/GBXI18R1lKvmnxGcb4w==", - "dependencies": { - "xunit.extensibility.core": "[2.9.2]", - "xunit.extensibility.execution": "[2.9.2]" - } - }, - "xunit.extensibility.core": { - "type": "Transitive", - "resolved": "2.9.2", - "contentHash": "Ol+KlBJz1x8BrdnhN2DeOuLrr1I/cTwtHCggL9BvYqFuVd/TUSzxNT5O0NxCIXth30bsKxgMfdqLTcORtM52yQ==", - "dependencies": { - "xunit.abstractions": "2.0.3" - } - }, - "xunit.extensibility.execution": { - "type": "Transitive", - "resolved": "2.9.2", - "contentHash": "rKMpq4GsIUIJibXuZoZ8lYp5EpROlnYaRpwu9Zr0sRZXE7JqJfEEbCsUriZqB+ByXCLFBJyjkTRULMdC+U566g==", - "dependencies": { - "xunit.extensibility.core": "[2.9.2]" - } - }, - "gitweblinks": { - "type": "Project", - "dependencies": { - "Community.VisualStudio.Toolkit.17": "[17.0.527, )", - "Fluid.Core": "[2.12.0, )", - "Microsoft.VisualStudio.SDK": "[17.0.31902.203, )" - } - }, - "Community.VisualStudio.Toolkit.17": { - "type": "CentralTransitive", - "requested": "[17.0.527, )", - "resolved": "17.0.527", - "contentHash": "lTJc2bRseTRXjSvWC6eUqr1E6Oqv5V97nLI2y3PhLxlUylalSC68uTib+BKsm209InWSrGYOQaqHvA8nKVoaaw==", - "dependencies": { - "Community.VisualStudio.Toolkit.Analyzers": "1.0.527", - "Microsoft.VisualStudio.SDK": "17.0.31902.203" - } - }, - "Fluid.Core": { - "type": "CentralTransitive", - "requested": "[2.12.0, )", - "resolved": "2.12.0", - "contentHash": "cOXkUnng3sclpWhUmL5Eg1tV8ieseeycge2K9NgCAJzW8oqZJz699xnVA3y5Bw+/zIDFGjkyldZ5rT14e2PDCA==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0", - "Parlot": "1.0.2", - "System.Reflection.Emit.Lightweight": "4.7.0", - "System.Text.Json": "8.0.5", - "TimeZoneConverter": "6.1.0" - } - }, - "MessagePack": { - "type": "CentralTransitive", - "requested": "[2.5.192, )", - "resolved": "2.5.192", - "contentHash": "Jtle5MaFeIFkdXtxQeL9Tu2Y3HsAQGoSntOzrn6Br/jrl6c8QmG22GEioT5HBtZJR0zw0s46OnKU8ei2M3QifA==", - "dependencies": { - "MessagePack.Annotations": "2.5.192", - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.NET.StringTools": "17.6.3", - "System.Collections.Immutable": "6.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.SDK": { - "type": "CentralTransitive", - "requested": "[17.0.31902.203, )", - "resolved": "17.0.31902.203", - "contentHash": "YSOMLjLm0k4Q5JeoPvyRrYaHdUzxkKtkt9Hn/0NjWDdQ7tLrhZjR3SOiaSMYOFYQCQ0G7v2UBIRHfbGAnt7SNg==", - "dependencies": { - "Microsoft.VisualStudio.CommandBars": "17.0.31902.203", - "Microsoft.VisualStudio.ComponentModelHost": "17.0.487", - "Microsoft.VisualStudio.CoreUtility": "17.0.487", - "Microsoft.VisualStudio.Debugger.Interop.12.0": "17.0.31902.203", - "Microsoft.VisualStudio.Debugger.Interop.14.0": "17.0.31902.203", - "Microsoft.VisualStudio.Debugger.Interop.15.0": "17.0.31902.203", - "Microsoft.VisualStudio.Debugger.Interop.16.0": "17.0.31902.203", - "Microsoft.VisualStudio.Designer.Interfaces": "17.0.31902.203", - "Microsoft.VisualStudio.Editor": "17.0.487", - "Microsoft.VisualStudio.ImageCatalog": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging": "17.0.31902.203", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.0.31902.203", - "Microsoft.VisualStudio.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Language": "17.0.487", - "Microsoft.VisualStudio.Language.Intellisense": "17.0.487", - "Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "17.0.487", - "Microsoft.VisualStudio.Language.StandardClassification": "17.0.487", - "Microsoft.VisualStudio.LanguageServer.Client": "17.0.5158", - "Microsoft.VisualStudio.OLE.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Package.LanguageService.15.0": "17.0.31902.203", - "Microsoft.VisualStudio.ProjectAggregator": "17.0.31902.203", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.0.4492", - "Microsoft.VisualStudio.Shell.Design": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.10.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.11.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.12.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.8.0": "17.0.31902.203", - "Microsoft.VisualStudio.Shell.Interop.9.0": "17.0.31902.203", - "Microsoft.VisualStudio.TaskRunnerExplorer.14.0": "14.0.0", - "Microsoft.VisualStudio.Text.Logic": "17.0.487", - "Microsoft.VisualStudio.TextManager.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.10.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.11.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.12.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.8.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextManager.Interop.9.0": "17.0.31902.203", - "Microsoft.VisualStudio.TextTemplating.VSHost": "17.0.31902.203", - "Microsoft.VisualStudio.VCProjectEngine": "17.0.31902.203", - "Microsoft.VisualStudio.VSHelp": "17.0.31902.203", - "Microsoft.VisualStudio.VSHelp80": "17.0.31902.203", - "Microsoft.VisualStudio.Validation": "17.0.28", - "Microsoft.VisualStudio.WCFReference.Interop": "17.0.31902.203", - "Microsoft.VisualStudio.Web.BrowserLink.12.0": "12.0.0", - "Microsoft.Win32.Primitives": "4.3.0", - "System.ComponentModel.Composition": "4.5.0", - "VSLangProj": "17.0.31902.203", - "VSLangProj100": "17.0.31902.203", - "VSLangProj110": "17.0.31902.203", - "VSLangProj140": "17.0.31902.203", - "VSLangProj150": "17.0.31902.203", - "VSLangProj157": "17.0.31902.203", - "VSLangProj158": "17.0.31902.203", - "VSLangProj165": "17.0.31902.203", - "VSLangProj2": "17.0.31902.203", - "VSLangProj80": "17.0.31902.203", - "VSLangProj90": "17.0.31902.203", - "envdte": "17.0.31902.203", - "envdte100": "17.0.31902.203", - "envdte80": "17.0.31902.203", - "envdte90": "17.0.31902.203", - "envdte90a": "17.0.31902.203", - "stdole": "17.0.31902.203" - } - } - }, - ".NETFramework,Version=v4.8/win": { - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "dependencies": { - "runtime.win.Microsoft.Win32.Primitives": "4.3.0" - } - }, - "Microsoft.Win32.Registry": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "runtime.any.System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "SDZ5AD1DtyRoxYtEcqQ3HDlcrorMYXZeCt7ZhG9US9I5Vva+gpIWDGMkcwa5XiKL0ceQKRZIX2x0XEjLX7PDzQ==" - }, - "runtime.any.System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==" - }, - "runtime.win.Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", - "dependencies": { - "runtime.any.System.IO": "4.3.0" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", - "dependencies": { - "runtime.any.System.Runtime": "4.3.0" - } - }, - "System.Runtime.InteropServices.RuntimeInformation": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Cryptography.Algorithms": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", - "dependencies": { - "System.IO": "4.3.0", - "System.Runtime": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0", - "System.Security.Cryptography.Primitives": "4.3.0" - } - }, - "System.Security.Cryptography.Encoding": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==" - }, - "System.Security.Cryptography.X509Certificates": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", - "dependencies": { - "System.Security.Cryptography.Algorithms": "4.3.0", - "System.Security.Cryptography.Encoding": "4.3.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "WJ9w9m4iHJVq0VoH7hZvYAccbRq95itYRhAAXd6M4kVCzLmT6NqTwmSXKwp3oQilWHhYTXgqaIXxBfg8YaqtmA==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - } - } -} \ No newline at end of file