From f6de99f53fd09fd7563ebbf86df9ae2f68b34c40 Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Tue, 25 Jun 2024 23:58:41 -0700 Subject: [PATCH 01/15] initial commit --- .../packages.lock.json | 42 ++-- src/Bicep.Cli.UnitTests/packages.lock.json | 42 ++-- src/Bicep.Cli/packages.lock.json | 42 ++-- .../RegistryProviderTests.cs | 84 ++++++++ .../packages.lock.json | 42 ++-- src/Bicep.Core.Samples/packages.lock.json | 42 ++-- src/Bicep.Core.UnitTests/packages.lock.json | 42 ++-- src/Bicep.Core/Emit/TemplateWriter.cs | 78 +++++++- .../packages.lock.json | 42 ++-- .../packages.lock.json | 42 ++-- .../packages.lock.json | 42 ++-- .../packages.lock.json | 42 ++-- src/Bicep.LangServer/packages.lock.json | 42 ++-- .../EndToEndDeploymentTests.cs | 31 ++- .../ProviderExtensionTests.cs | 28 +-- .../packages.lock.json | 42 ++-- .../Bicep.Local.Deploy.csproj | 2 +- .../Extensibility/AzExtensibilityProvider.cs | 68 ++++--- .../GrpcExtensibilityProvider.cs | 179 +++++++++++------- .../LocalExtensibilityHandler.cs | 58 +++++- .../LocalExtensibilityProvider.cs | 17 ++ .../LocalDeploymentEngineHost.cs | 19 ++ src/Bicep.Local.Deploy/packages.lock.json | 42 ++-- src/Bicep.Local.Extension.Mock/Program.cs | 2 - .../Rpc/BicepExtensionImpl.cs | 31 ++- src/Bicep.Local.Extension/extension.proto | 61 +++--- .../packages.lock.json | 42 ++-- .../packages.lock.json | 42 ++-- .../packages.lock.json | 42 ++-- src/Bicep.Tools.Benchmark/packages.lock.json | 42 ++-- 30 files changed, 844 insertions(+), 528 deletions(-) diff --git a/src/Bicep.Cli.IntegrationTests/packages.lock.json b/src/Bicep.Cli.IntegrationTests/packages.lock.json index 8d077a3264b..0d2f708fe53 100644 --- a/src/Bicep.Cli.IntegrationTests/packages.lock.json +++ b/src/Bicep.Cli.IntegrationTests/packages.lock.json @@ -122,8 +122,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -133,19 +133,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -155,20 +155,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -196,12 +196,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1627,7 +1627,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Cli.UnitTests/packages.lock.json b/src/Bicep.Cli.UnitTests/packages.lock.json index fb6d9d579d0..04050c3d75c 100644 --- a/src/Bicep.Cli.UnitTests/packages.lock.json +++ b/src/Bicep.Cli.UnitTests/packages.lock.json @@ -122,8 +122,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -133,19 +133,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -155,20 +155,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -196,12 +196,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1459,7 +1459,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Cli/packages.lock.json b/src/Bicep.Cli/packages.lock.json index 6d73db92f80..926a9d73a0c 100644 --- a/src/Bicep.Cli/packages.lock.json +++ b/src/Bicep.Cli/packages.lock.json @@ -140,8 +140,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -151,19 +151,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -173,20 +173,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -214,12 +214,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1357,7 +1357,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs b/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs index b04d7bb06fd..24c670359ec 100644 --- a/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs +++ b/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs @@ -20,6 +20,7 @@ namespace Bicep.Core.IntegrationTests; public class RegistryProviderTests : TestBase { private static readonly FeatureProviderOverrides AllFeaturesEnabled = new(ExtensibilityEnabled: true, ProviderRegistry: true, DynamicTypeLoadingEnabled: true); + private static readonly FeatureProviderOverrides AllFeaturesEnabledForLocalDeploy = new(LocalDeployEnabled: true, ExtensibilityEnabled: true, ProviderRegistry: true, DynamicTypeLoadingEnabled: true); [TestMethod] [TestCategory(BaselineHelper.BaselineTestCategory)] @@ -349,6 +350,89 @@ public async Task Missing_required_provider_configuration_blocks_compilation() }); } + [TestMethod] + public async Task Correct_local_deploy_provider_configuration_result_in_successful_compilation() + { + // tgzData provideds configType with the properties namespace, config, and context + var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetTestTypesTgzWithFallbackAndConfiguration(), AllFeaturesEnabledForLocalDeploy); + + var result = await CompilationHelper.RestoreAndCompile(services, """ +provider 'br:example.azurecr.io/providers/foo:1.2.3' with { + namespace: 'ThirdPartyNamespace' + config: 'Some path to config file' + context: 'Some ThirdParty context' +} + +resource dadJoke 'fooType@v1' = { + identifier: 'foo' + joke: 'dad joke' +} + +output joke string = dadJoke.joke +"""); + + result.Template.Should().NotBeNull(); + + result.Template.Should().HaveValueAtPath("$.extensions['ThirdPartyProvider']['name']", "ThirdPartyProvider"); + result.Template.Should().HaveValueAtPath("$.extensions['ThirdPartyProvider']['version']", "1.0.0"); + + result.Template.Should().HaveValueAtPath("$.extensions['ThirdPartyProvider']['config']['namespace']['type']", "string"); + result.Template.Should().HaveValueAtPath("$.extensions['ThirdPartyProvider']['config']['namespace']['defaultValue']", "ThirdPartyNamespace"); + result.Template.Should().HaveValueAtPath("$.extensions['ThirdPartyProvider']['config']['config']['type']", "string"); + result.Template.Should().HaveValueAtPath("$.extensions['ThirdPartyProvider']['config']['config']['defaultValue']", "Some path to config file"); + result.Template.Should().HaveValueAtPath("$.extensions['ThirdPartyProvider']['config']['context']['type']", "string"); + result.Template.Should().HaveValueAtPath("$.extensions['ThirdPartyProvider']['config']['context']['defaultValue']", "Some ThirdParty context"); + + result.Should().NotHaveAnyDiagnostics(); + } + + [TestMethod] + public async Task Local_deploy_provider_with_configuration_defined_and_empty_configuration_provided_result_in_failure_compilation() + { + // tgzData provideds configType with the properties namespace, config, and context + var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetTestTypesTgzWithFallbackAndConfiguration(), AllFeaturesEnabledForLocalDeploy); + + var result = await CompilationHelper.RestoreAndCompile(services, """ +provider 'br:example.azurecr.io/providers/foo:1.2.3' with { } + +resource dadJoke 'fooType@v1' = { + identifier: 'foo' + joke: 'dad joke' +} + +output joke string = dadJoke.joke +"""); + + result.Template.Should().BeNull(); + + result.Should().HaveDiagnostics([("BCP035", DiagnosticLevel.Error, "The specified \"object\" declaration is missing the following required properties: \"config\", \"namespace\".")], because: "Type checking should block the template compilation because required provider config properties hasn't been supplied."); + } + + [TestMethod] + public async Task Local_deploy_provider_without_configuration_defined_and_configuration_provided_result_in_failure_compilation() + { + var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetTestTypesTgz(), AllFeaturesEnabledForLocalDeploy); + + var result = await CompilationHelper.RestoreAndCompile(services, """ +provider 'br:example.azurecr.io/providers/foo:1.2.3' with { + namespace: 'ThirdPartyNamespace' + config: 'Some path to config file' + context: 'Some ThirdParty context' +} + +resource fooRes 'fooType@v1' existing = { + identifier: 'foo' +} + +output baz string = fooRes.convertBarToBaz('bar') + +"""); + + result.Template.Should().BeNull(); + + result.Should().HaveDiagnostics([("BCP205", DiagnosticLevel.Error, "Provider namespace \"ThirdPartyProvider\" does not support configuration.")], because: "Type checking should block the template compilation because provider does not support configuration but one has been provided."); + } + [TestMethod] public async Task Correct_provider_configuration_result_in_successful_compilation() { diff --git a/src/Bicep.Core.IntegrationTests/packages.lock.json b/src/Bicep.Core.IntegrationTests/packages.lock.json index 688639facfc..c1bceeda6d1 100644 --- a/src/Bicep.Core.IntegrationTests/packages.lock.json +++ b/src/Bicep.Core.IntegrationTests/packages.lock.json @@ -122,8 +122,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -133,19 +133,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -155,20 +155,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -196,12 +196,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1531,7 +1531,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Core.Samples/packages.lock.json b/src/Bicep.Core.Samples/packages.lock.json index 99094573c9b..03bc55f202f 100644 --- a/src/Bicep.Core.Samples/packages.lock.json +++ b/src/Bicep.Core.Samples/packages.lock.json @@ -117,8 +117,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -128,19 +128,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -150,20 +150,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -191,12 +191,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1478,7 +1478,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Core.UnitTests/packages.lock.json b/src/Bicep.Core.UnitTests/packages.lock.json index a4575dff040..9bb0b899e1c 100644 --- a/src/Bicep.Core.UnitTests/packages.lock.json +++ b/src/Bicep.Core.UnitTests/packages.lock.json @@ -159,8 +159,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -170,19 +170,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -192,20 +192,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -233,12 +233,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1483,7 +1483,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Core/Emit/TemplateWriter.cs b/src/Bicep.Core/Emit/TemplateWriter.cs index 7c93bb23a9f..cfc63219428 100644 --- a/src/Bicep.Core/Emit/TemplateWriter.cs +++ b/src/Bicep.Core/Emit/TemplateWriter.cs @@ -996,9 +996,16 @@ private void EmitProviders(ExpressionEmitter emitter, ImmutableArray providers) + { emitter.EmitObjectProperty("imports", () => { foreach (var provider in providers) @@ -1018,6 +1025,75 @@ private void EmitProviders(ExpressionEmitter emitter, ImmutableArray providers) + { + emitter.EmitObjectProperty("extensions", () => + { + foreach (var provider in providers) + { + var settings = provider.Settings; + + emitter.EmitObjectProperty(provider.Name, () => + { + emitter.EmitProperty("name", settings.ArmTemplateProviderName); + emitter.EmitProperty("version", settings.ArmTemplateProviderVersion); + + EmitProviderV2Config(provider, emitter); + }, + provider.SourceSyntax); + } + }); + } + + private void EmitProviderV2Config(DeclaredProviderExpression provider, ExpressionEmitter emitter) + { + if (provider.Config is null) + { + return; + } + + if (provider.Config is not ObjectExpression providerConfig) + { + throw new UnreachableException($"Provider config type expected to be of type: '{nameof(ObjectExpression)}' but received: '{provider.Config.GetType()}'"); + } + + emitter.EmitObjectProperty("config", () => + { + foreach (var providerConfigProperty in providerConfig.Properties) + { + // Type checking should have validated that the config name is not an expression (e.g. string interpolation), if we get a null value it means something + // was wrong with type checking validation. + var providerConfigName = providerConfigProperty.TryGetKeyText() ?? throw new UnreachableException("Expressions are not allowed as config names."); + var x = provider.Settings.ConfigurationType ?? throw new UnreachableException(); + var providerConfigType = GetProviderConfigType(providerConfigName, provider.Settings.ConfigurationType!); + + emitter.EmitObjectProperty(providerConfigName, () => + { + switch (providerConfigType) + { + case StringType: + emitter.EmitProperty("type", "string"); + break; + default: + throw new ArgumentException($"Config name: '{providerConfigName}' has an invalid type: '{providerConfigType}'. Supported types are: 'string, secureString'"); + } + + emitter.EmitProperty("defaultValue", providerConfigProperty.Value); + }); + } + }); + } + + private TypeSymbol GetProviderConfigType(string configName, ObjectType configType) + { + if (configType.Properties.TryGetValue(configName) is { } configItem) + { + return configItem.TypeReference.Type; + } + + throw new UnreachableException($"Configuration name: '{configName}' does not exist as part of provider configuration."); + } + private DeclaredProviderExpression GetProviderForLocalDeploy() { return new( diff --git a/src/Bicep.Decompiler.IntegrationTests/packages.lock.json b/src/Bicep.Decompiler.IntegrationTests/packages.lock.json index 5793012c028..c5b1837317b 100644 --- a/src/Bicep.Decompiler.IntegrationTests/packages.lock.json +++ b/src/Bicep.Decompiler.IntegrationTests/packages.lock.json @@ -122,8 +122,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -133,19 +133,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -155,20 +155,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -196,12 +196,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1531,7 +1531,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Decompiler.UnitTests/packages.lock.json b/src/Bicep.Decompiler.UnitTests/packages.lock.json index 5793012c028..c5b1837317b 100644 --- a/src/Bicep.Decompiler.UnitTests/packages.lock.json +++ b/src/Bicep.Decompiler.UnitTests/packages.lock.json @@ -122,8 +122,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -133,19 +133,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -155,20 +155,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -196,12 +196,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1531,7 +1531,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.LangServer.IntegrationTests/packages.lock.json b/src/Bicep.LangServer.IntegrationTests/packages.lock.json index a7cdfb478b1..7fda6fbe8fe 100644 --- a/src/Bicep.LangServer.IntegrationTests/packages.lock.json +++ b/src/Bicep.LangServer.IntegrationTests/packages.lock.json @@ -148,8 +148,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -159,19 +159,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -181,20 +181,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -222,12 +222,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1489,7 +1489,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.LangServer.UnitTests/packages.lock.json b/src/Bicep.LangServer.UnitTests/packages.lock.json index e15d76f77ca..1ef9b1126cc 100644 --- a/src/Bicep.LangServer.UnitTests/packages.lock.json +++ b/src/Bicep.LangServer.UnitTests/packages.lock.json @@ -158,8 +158,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -169,19 +169,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -191,20 +191,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -232,12 +232,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1556,7 +1556,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.LangServer/packages.lock.json b/src/Bicep.LangServer/packages.lock.json index 5f3ff65a536..b99d4dcc5f0 100644 --- a/src/Bicep.LangServer/packages.lock.json +++ b/src/Bicep.LangServer/packages.lock.json @@ -135,8 +135,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -146,19 +146,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -168,20 +168,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -209,12 +209,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1379,7 +1379,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs index edc8084d501..4855e5a7d84 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs @@ -3,6 +3,7 @@ using System.IO.Abstractions; using Azure.Deployments.Core.Definitions; +using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; using Azure.Deployments.Extensibility.Messages; using Bicep.Core.UnitTests; using Bicep.Core.UnitTests.Assertions; @@ -14,6 +15,7 @@ using Bicep.Local.Extension; using FluentAssertions; using Microsoft.VisualStudio.TestTools.UnitTesting; +using Microsoft.WindowsAzure.ResourceStack.Common.Json; using Moq; using Newtonsoft.Json.Linq; @@ -86,11 +88,11 @@ param coords { var parametersFile = result.Compilation.Emitter.Parameters().Parameters!; var templateFile = result.Compilation.Emitter.Parameters().Template!.Template!; - var providerMock = StrictMock.Of(); - providerMock.Setup(x => x.Save(It.Is(req => req.Resource.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) - .Returns((req, _) => + var providerMock = StrictMock.Of(); + providerMock.Setup(x => x.CreateOrUpdateResourceAsync(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) + .Returns((req, _) => { - req.Resource.Properties["body"] = """ + req.Properties["body"] = """ { "properties": { "gridId": "SEW", @@ -99,13 +101,17 @@ param coords { } } """; - - return Task.FromResult(new(req.Resource, null, null)); + JToken identifiers = new JObject + { + { "name", "someName" }, + { "namespace", "someNamespace" } + }; + return Task.FromResult(new(null, identifiers, req.Type, null, req.Properties)); }); - providerMock.Setup(x => x.Save(It.Is(req => req.Resource.Properties["uri"]!.ToString() == "https://api.weather.gov/gridpoints/SEW/131,68/forecast"), It.IsAny())) - .Returns((req, _) => + providerMock.Setup(x => x.CreateOrUpdateResourceAsync(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/gridpoints/SEW/131,68/forecast"), It.IsAny())) + .Returns((req, _) => { - req.Resource.Properties["body"] = """ + req.Properties["body"] = """ { "properties": { "periods": [ @@ -123,8 +129,13 @@ param coords { } } """; + JToken identifiers = new JObject + { + { "name", "someName" }, + { "namespace", "someNamespace" } + }; - return Task.FromResult(new(req.Resource, null, null)); + return Task.FromResult(new(null, identifiers, req.Type, null, req.Properties)); }); await using LocalExtensibilityHandler extensibilityHandler = new(BicepTestConstants.ModuleDispatcher, uri => Task.FromResult(providerMock.Object)); diff --git a/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs index 6076d7fc603..713e6a0e36d 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs @@ -71,23 +71,11 @@ await RunExtensionTest( builder => builder.AddHandler(handlerMock.Object), async (client, token) => { - var request = new Extension.Rpc.ExtensibilityOperationRequest + var request = new Extension.Rpc.ResourceRequestBody { - Import = new() - { - Provider = "Kubernetes", - Version = "1.0.0", - Config = """ - { - "kubeConfig": "redacted", - "namespace": "default" - } - """ - }, - Resource = new() - { - Type = "apps/Deployment@v1", - Properties = """ + ApiVersion = "v1", + Type = "Microsoft.Resources/deployments", + Properties = """ { "metadata": { "name": "echo-server" @@ -124,13 +112,13 @@ await RunExtensionTest( } } """ - } }; - var response = await client.SaveAsync(request, cancellationToken: token); + var response = await client.CreateOrUpdateAsync(request, cancellationToken: token); - response.Should().NotBeNull(); - response.Resource!.Type.Should().Be("apps/Deployment@v1"); + response.ResultCase.Should().Be(ResourceResponse.ResultOneofCase.Response); + response.Response.Should().NotBeNull(); + response.Response.Type.Should().Be("apps/Deployment@v1"); }); } } diff --git a/src/Bicep.Local.Deploy.IntegrationTests/packages.lock.json b/src/Bicep.Local.Deploy.IntegrationTests/packages.lock.json index 717d5b3e70d..8a93158c972 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/packages.lock.json +++ b/src/Bicep.Local.Deploy.IntegrationTests/packages.lock.json @@ -140,8 +140,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -151,19 +151,19 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Engine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -173,20 +173,20 @@ }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -214,12 +214,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } @@ -1541,7 +1541,7 @@ "dependencies": { "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", - "Azure.Deployments.Engine": "[1.34.0, )", + "Azure.Deployments.Engine": "[1.54.0, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Local.Deploy/Bicep.Local.Deploy.csproj b/src/Bicep.Local.Deploy/Bicep.Local.Deploy.csproj index c6ffb30fe5f..dfc8991532d 100644 --- a/src/Bicep.Local.Deploy/Bicep.Local.Deploy.csproj +++ b/src/Bicep.Local.Deploy/Bicep.Local.Deploy.csproj @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs index 5621d9ca6a8..2b6035c20b3 100644 --- a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs @@ -5,6 +5,7 @@ using System.Threading; using System.Threading.Tasks; using Azure.Deployments.Core.Definitions; +using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; using Azure.Deployments.Extensibility.Contract; using Azure.Deployments.Extensibility.Data; using Azure.Deployments.Extensibility.Messages; @@ -14,7 +15,7 @@ namespace Bicep.Local.Deploy.Extensibility; -public class AzExtensibilityProvider : LocalExtensibilityProvider +public class AzExtensibilityProvider : LocalExtensibilityProviderV2 { private readonly LocalExtensibilityHandler extensibilityHandler; @@ -23,55 +24,60 @@ public AzExtensibilityProvider(LocalExtensibilityHandler extensibilityHandler) this.extensibilityHandler = extensibilityHandler; } - public override Task Delete(ExtensibilityOperationRequest request, CancellationToken cancellationToken) + public override async Task CreateOrUpdateResourceAsync(ResourceRequestBody request, CancellationToken cancellationToken) { - throw new NotImplementedException(); - } - - public override Task Get(ExtensibilityOperationRequest request, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public override Task PreviewSave(ExtensibilityOperationRequest request, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public override async Task Save(ExtensibilityOperationRequest request, CancellationToken cancellationToken) - { - switch (request.Resource.Type) + switch (request.Type) { case "Microsoft.Resources/deployments": { - var template = request.Resource.Properties["template"]!.ToString(); + var template = request.Properties["template"]!.ToString(); var parameters = new JObject { ["$schema"] = "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", ["contentVersion"] = "1.0.0.0", - ["parameters"] = request.Resource.Properties["parameters"], + ["parameters"] = request.Properties["parameters"], }; var result = await LocalDeployment.Deploy(extensibilityHandler, template, parameters.ToJson(), cancellationToken); if (result.Deployment.Properties.ProvisioningState != ProvisioningState.Succeeded) { - return new( - null, - null, - result.Deployment.Properties.Error.Details.SelectArray(x => new ExtensibilityError(x.Code, x.Message, x.Target))); + return new ResourceResponseBody( + error: new ErrorPayload( + result.Deployment.Properties.Error.Code, + result.Deployment.Properties.Error.Target, + result.Deployment.Properties.Error.Message, + result.Deployment.Properties.Error.Details.SelectArray(x => new ErrorDetail(x.Code, x.Target, x.Message))), + identifiers: null, + type: null, + status: null, + properties: null); } - return new( - new ExtensibleResourceData(request.Resource.Type, new JObject - { - ["outputs"] = result.Deployment.Properties.Outputs?.ToJToken(), - }), - null, - null); + return new ResourceResponseBody( + error: null, + identifiers: result.Deployment.ToJToken(), + type: request.Type, + status: result.Deployment.Properties.ProvisioningState.ToString(), + properties: result.Deployment.Properties.ToJToken()); } } throw new NotImplementedException(); } + + public override Task DeleteResourceAsync(ResourceReferenceRequestBody request, CancellationToken cancellationToken) + { + throw new NotImplementedException(); + } + + public override Task GetResourceAsync(ResourceReferenceRequestBody request, CancellationToken cancellationToken) + { + throw new NotImplementedException(); + } + + public override Task PreviewResourceCreateOrUpdateAsync(ResourceRequestBody request, CancellationToken cancellationToken) + { + throw new NotImplementedException(); + } } diff --git a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs index 4ee61d8d84d..fbb3d5f4d3c 100644 --- a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs @@ -2,6 +2,7 @@ // Licensed under the MIT License. using System; +using System.Collections.Concurrent; using System.Configuration; using System.Diagnostics; using System.IO; @@ -19,14 +20,17 @@ using Newtonsoft.Json.Linq; using Data = Azure.Deployments.Extensibility.Data; using Messages = Azure.Deployments.Extensibility.Messages; +using ExtensibilityV2 = Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract; using Rpc = Bicep.Local.Extension.Rpc; +using Google.Protobuf.Collections; namespace Bicep.Local.Deploy.Extensibility; -public class GrpcExtensibilityProvider : LocalExtensibilityProvider +public class GrpcExtensibilityProvider : LocalExtensibilityProviderV2 { private readonly BicepExtension.BicepExtensionClient client; private readonly Process process; + private static readonly ConcurrentDictionary startedProviders = new(); private GrpcExtensibilityProvider(BicepExtension.BicepExtensionClient client, Process process) { @@ -34,98 +38,131 @@ private GrpcExtensibilityProvider(BicepExtension.BicepExtensionClient client, Pr this.process = process; } - public static async Task Start(Uri pathToBinary) + public static async Task Start(Uri pathToBinary) { - var socketName = $"{Guid.NewGuid()}.tmp"; - var socketPath = Path.Combine(Path.GetTempPath(), socketName); - - if (File.Exists(socketPath)) + // TODO: Acquire lock? + if (!startedProviders.TryGetValue(pathToBinary, out var localExtensibilityProvider)) { - File.Delete(socketPath); - } + var socketName = $"{Guid.NewGuid()}.tmp"; + var socketPath = Path.Combine(Path.GetTempPath(), socketName); - var process = new Process - { - StartInfo = new ProcessStartInfo + if (File.Exists(socketPath)) { - FileName = pathToBinary.LocalPath, - Arguments = $"--socket {socketPath}", - UseShellExecute = false, - RedirectStandardError = true, - RedirectStandardOutput = true, - }, - }; + File.Delete(socketPath); + } - try - { - // 30s timeout for starting up the RPC connection - var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); + var process = new Process + { + StartInfo = new ProcessStartInfo + { + FileName = pathToBinary.LocalPath, + Arguments = $"--socket {socketPath}", + UseShellExecute = false, + RedirectStandardError = true, + RedirectStandardOutput = true, + }, + }; + + try + { + // 30s timeout for starting up the RPC connection + var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); - process.EnableRaisingEvents = true; - process.Exited += (sender, e) => cts.Cancel(); - process.OutputDataReceived += (sender, e) => Trace.WriteLine($"{pathToBinary} stdout: {e.Data}"); - process.ErrorDataReceived += (sender, e) => Trace.WriteLine($"{pathToBinary} stderr: {e.Data}"); + process.EnableRaisingEvents = true; + process.Exited += (sender, e) => cts.Cancel(); + process.OutputDataReceived += (sender, e) => Trace.WriteLine($"{pathToBinary} stdout: {e.Data}"); + process.ErrorDataReceived += (sender, e) => Trace.WriteLine($"{pathToBinary} stderr: {e.Data}"); - process.Start(); + process.Start(); - process.BeginErrorReadLine(); - process.BeginOutputReadLine(); + process.BeginErrorReadLine(); + process.BeginOutputReadLine(); - var channel = GrpcChannelHelper.CreateChannel(socketPath); - var client = new BicepExtension.BicepExtensionClient(channel); + var channel = GrpcChannelHelper.CreateChannel(socketPath); + var client = new BicepExtension.BicepExtensionClient(channel); - await GrpcChannelHelper.WaitForConnectionAsync(client, cts.Token); + await GrpcChannelHelper.WaitForConnectionAsync(client, cts.Token); - return new GrpcExtensibilityProvider(client, process); - } - catch (Exception ex) - { - await TerminateProcess(process); - throw new InvalidOperationException($"Failed to connect to provider {pathToBinary.LocalPath}", ex); + localExtensibilityProvider = new GrpcExtensibilityProvider(client, process); + startedProviders[pathToBinary] = localExtensibilityProvider; + } + catch (Exception ex) + { + await TerminateProcess(process); + throw new InvalidOperationException($"Failed to connect to provider {pathToBinary.LocalPath}", ex); + } } - } - public async override Task Delete(Messages.ExtensibilityOperationRequest request, CancellationToken cancellationToken) - { - return Convert(await client.DeleteAsync(Convert(request), cancellationToken: cancellationToken)); + return localExtensibilityProvider; } - public async override Task Get(Messages.ExtensibilityOperationRequest request, CancellationToken cancellationToken) - { - return Convert(await client.GetAsync(Convert(request), cancellationToken: cancellationToken)); - } + public override async Task CreateOrUpdateResourceAsync(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) + => Convert(await client.CreateOrUpdateAsync(Convert(request), cancellationToken: cancellationToken)); - public async override Task PreviewSave(Messages.ExtensibilityOperationRequest request, CancellationToken cancellationToken) - { - return Convert(await client.PreviewSaveAsync(Convert(request), cancellationToken: cancellationToken)); - } + public override async Task DeleteResourceAsync(ExtensibilityV2.Models.ResourceReferenceRequestBody request, CancellationToken cancellationToken) + => Convert(await client.DeleteAsync(Convert(request), cancellationToken: cancellationToken)); - public async override Task Save(Messages.ExtensibilityOperationRequest request, CancellationToken cancellationToken) - { - return Convert(await client.SaveAsync(Convert(request), cancellationToken: cancellationToken)); - } + public override async Task GetResourceAsync(ExtensibilityV2.Models.ResourceReferenceRequestBody request, CancellationToken cancellationToken) + => Convert(await client.GetAsync(Convert(request), cancellationToken: cancellationToken)); - private static Rpc.ExtensibilityOperationRequest Convert(Messages.ExtensibilityOperationRequest request) + public override async Task PreviewResourceCreateOrUpdateAsync(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) + => Convert(await client.PreviewAsync(Convert(request), cancellationToken: cancellationToken)); + + private static Rpc.ResourceReferenceRequestBody Convert(ExtensibilityV2.Models.ResourceReferenceRequestBody request) => new() { - Import = new Rpc.ExtensibleImportData - { - Provider = request.Import.Provider, - Version = request.Import.Version, - Config = request.Import.Config?.ToJson(), - }, - Resource = new Rpc.ExtensibleResourceData - { - Type = request.Resource.Type, - Properties = request.Resource.Properties?.ToJson(), - }, + ApiVersion = request.ApiVersion, + Config = request.Config.ToJson(), + Identifiers = request.Identifiers.ToJson(), + Type = request.Type + }; + + private static Rpc.ResourceRequestBody Convert(ExtensibilityV2.Models.ResourceRequestBody request) + => new() + { + ApiVersion = request.ApiVersion, + Config = request.Config.ToJson(), + Properties = request.Properties.ToJson(), + Type = request.Type }; - private static Messages.ExtensibilityOperationResponse Convert(Rpc.ExtensibilityOperationResponse response) - => new( - response.Resource is { } resource ? new(resource.Type, resource.Properties?.FromJson()) : null, - response.ResourceMetadata is { } metadata ? new(metadata.ReadOnlyProperties.ToArray(), metadata.ImmutableProperties.ToArray(), metadata.DynamicProperties.ToArray()) : null, - response.Errors is { } errors ? errors.Select(error => new Data.ExtensibilityError(error.Code, error.Message, error.Target)).ToArray() : null); + private static ExtensibilityV2.Models.ErrorPayload Convert(Rpc.ErrorPayload error) + => new("", "", "", Convert(error.Details), error.InnerError != null ? JObject.Parse(error.InnerError): null); + + private static ExtensibilityV2.Models.ErrorDetail[]? Convert(RepeatedField? details) + { + if (details is not { }) + { + return default; + } + + var errorDetails = new ExtensibilityV2.Models.ErrorDetail[details.Count]; + + for (var i = 0; i < details.Count; i++) + { + if (details[i] is { }) + { + errorDetails[i] = Convert(details[i]); + } + } + return errorDetails; + } + + private static ExtensibilityV2.Models.ErrorDetail Convert(Rpc.ErrorDetail detail) + => new(detail.Code, detail.Message, detail.Target); + + private static ExtensibilityV2.Models.ResourceResponseBody Convert(Rpc.ResourceResponse response) + { + switch (response.ResultCase) + { + case ResourceResponse.ResultOneofCase.Response: + return new ExtensibilityV2.Models.ResourceResponseBody(error: null, response.Response.Identifiers, response.Response.Type, response.Response.Status, response.Response.Properties.ToJToken()); + case ResourceResponse.ResultOneofCase.Error: + return new ExtensibilityV2.Models.ResourceResponseBody(Convert(response.Error), null, null, null, null); + default: + throw new ArgumentException("Unexpected result."); + } + } public override async ValueTask DisposeAsync() { diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs index a43ba44c771..59bc9ca83a5 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs @@ -5,8 +5,12 @@ using System.Collections.Concurrent; using System.Collections.Immutable; using System.Diagnostics; +using System.Net.Http.Formatting; +using System.Net.Http; using System.Threading; using System.Threading.Tasks; +using System.Web; +using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; using Azure.Deployments.Extensibility.Contract; using Azure.Deployments.Extensibility.Messages; using Bicep.Core.Extensions; @@ -14,6 +18,7 @@ using Bicep.Core.Semantics; using Bicep.Core.Semantics.Namespaces; using Bicep.Core.TypeSystem.Types; +using Microsoft.WindowsAzure.ResourceStack.Common.Json; using Microsoft.WindowsAzure.ResourceStack.Common.Utilities; using IAsyncDisposable = System.IAsyncDisposable; @@ -25,11 +30,11 @@ private record ProviderKey( string Name, string Version); - private Dictionary RegisteredProviders = new(); + private Dictionary RegisteredProviders = new(); private readonly IModuleDispatcher moduleDispatcher; - private readonly Func> providerFactory; + private readonly Func> providerFactory; - public LocalExtensibilityHandler(IModuleDispatcher moduleDispatcher, Func> providerFactory) + public LocalExtensibilityHandler(IModuleDispatcher moduleDispatcher, Func> providerFactory) { this.moduleDispatcher = moduleDispatcher; this.providerFactory = providerFactory; @@ -55,8 +60,53 @@ public async Task CallExtensibilityHost( CancellationToken cancellationToken) { var provider = RegisteredProviders[new(request.Import.Provider, request.Import.Version)]; + IExtensibilityProvider? x = provider as IExtensibilityProvider; + return await CallProvider(method, x!, request, cancellationToken); + } + + public async Task CallExtensibilityHostV2( + string extensionName, + string extensionVersion, + string method, + HttpContent content, + CancellationToken cancellationToken) + { + var provider = RegisteredProviders[new(extensionName, extensionVersion)]; + + return await CallProviderV2(method, provider, content, cancellationToken); + } + + internal static class ModelSerializer + { + public static readonly JsonMediaTypeFormatter JsonMediaTypeFormatter = new() + { + SerializerSettings = JsonExtensions.MediaTypeFormatterSettings, + UseDataContractJsonSerializer = false + }; - return await CallProvider(method, provider, request, cancellationToken); + public static readonly JsonMediaTypeFormatter[] JsonMediaTypeFormatters = new[] + { + JsonMediaTypeFormatter, + }; + + public static Task DeserializeFromHttpContentAsync(HttpContent content, CancellationToken cancellationToken) + => content.ReadAsAsync(JsonMediaTypeFormatters, cancellationToken); + } + + private async Task CallProviderV2( + string method, + LocalExtensibilityProviderV2 provider, + HttpContent content, + CancellationToken cancellationToken) + { + return method switch + { + "get" => await provider.GetResourceAsync(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + "delete" => await provider.DeleteResourceAsync(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + "createOrUpdate" => await provider.CreateOrUpdateResourceAsync(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + "preview" => await provider.PreviewResourceCreateOrUpdateAsync(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + _ => throw new NotImplementedException($"Unsupported method {method}"), + }; } private IEnumerable<(NamespaceType namespaceType, Uri binaryUri)> GetBinaryProviders(Compilation compilation) diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs index e26b2998cde..4baea9e4cf2 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; using Azure.Deployments.Extensibility.Contract; using Azure.Deployments.Extensibility.Messages; @@ -21,3 +22,19 @@ public virtual ValueTask DisposeAsync() return ValueTask.CompletedTask; } } + +public abstract class LocalExtensibilityProviderV2 : IAsyncDisposable +{ + public abstract Task DeleteResourceAsync(ResourceReferenceRequestBody request, CancellationToken cancellationToken); + + public abstract Task GetResourceAsync(ResourceReferenceRequestBody request, CancellationToken cancellationToken); + + public abstract Task PreviewResourceCreateOrUpdateAsync(ResourceRequestBody request, CancellationToken cancellationToken); + + public abstract Task CreateOrUpdateResourceAsync(ResourceRequestBody request, CancellationToken cancellationToken); + + public virtual ValueTask DisposeAsync() + { + return ValueTask.CompletedTask; + } +} diff --git a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs index 3e2f2b75a03..e17058bf9f4 100644 --- a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs +++ b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs @@ -9,6 +9,7 @@ using System.Net.Http.Headers; using System.Threading; using System.Threading.Tasks; +using Azure.Core; using Azure.Deployments.Core.Definitions; using Azure.Deployments.Core.Definitions.Identifiers; using Azure.Deployments.Core.Definitions.Resources; @@ -140,6 +141,24 @@ protected override async Task TryReadAsString(HttpContent content, bool } } + public override async Task CallExtensibilityHostV2( + HttpMethod requestMethod, + Uri requestUri, + HttpContent content, + AuthenticationToken extensibilityHostToken, + CancellationToken cancellationToken) + { + var extensionName = "LocalNested"; + var extensionVersion = "0.0.0"; + var method = "createOrUpdate"; + var response = await extensibilityHandler.CallExtensibilityHostV2(extensionName, extensionVersion, method, content, cancellationToken); + + return new HttpResponseMessage(HttpStatusCode.OK) + { + Content = new StringContent(response.ToJson()), + }; + } + public override async Task CallExtensibilityHost( HttpMethod requestMethod, Uri requestUri, diff --git a/src/Bicep.Local.Deploy/packages.lock.json b/src/Bicep.Local.Deploy/packages.lock.json index 52bc4af9b9b..ed0e5a7821c 100644 --- a/src/Bicep.Local.Deploy/packages.lock.json +++ b/src/Bicep.Local.Deploy/packages.lock.json @@ -4,15 +4,15 @@ "net8.0": { "Azure.Deployments.Engine": { "type": "Direct", - "requested": "[1.34.0, )", - "resolved": "1.34.0", - "contentHash": "xP1lnwgceE74Tmp5N5R1SdcB0iICwH2QiwVWpZnjqzA5EXGr9tesEbV1EO7GTgfCXtTWYbcQlySkAKtDPuMt0A==", + "requested": "[1.54.0, )", + "resolved": "1.54.0", + "contentHash": "8mx0e0JUq43Ax/5I1BEcvUsFmDIUdsRnrKIMG3+QOz11SMbI2nHAPQYFkIkWnxgaxpObaZvx6EcJXQmptEgehg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.DiffEngine": "1.34.0", - "Azure.Deployments.Extensibility": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.DiffEngine": "1.54.0", + "Azure.Deployments.Extensibility": "1.54.0", "Azure.Deployments.ResourceMetadata": "1.0.1265", - "Azure.Deployments.Templates": "1.34.0", + "Azure.Deployments.Templates": "1.54.0", "Microsoft.AspNet.WebApi.Client": "5.2.9", "Microsoft.Extensions.DependencyInjection": "8.0.0", "Newtonsoft.Json": "13.0.2", @@ -122,8 +122,8 @@ }, "Azure.Deployments.Core": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "Zev+8/PldTvNwUEI84e7szmJm7/ClHyr4fe0hlMylZ9lwD4wCOyc3ijWe6LmI8J92WtXX7Mh1K1FtIcHOZC0iw==", + "resolved": "1.54.0", + "contentHash": "dItBSPwB83gv9BXwPEcef4VYufmuP7w59Bg/xpjCSlBEPlj3UukVypUqMmI2hRObhNnz2TQHiMw+Y/S8HtJbyA==", "dependencies": { "Microsoft.PowerPlatform.ResourceStack": "7.0.0.2007", "Newtonsoft.Json": "13.0.2", @@ -133,25 +133,25 @@ }, "Azure.Deployments.DiffEngine": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "JqDITGajqF4tjR0sqgl8YlwWEC92r7LOHjzP0cH6K0mQIyY3rRr2c1k3fbYRrbG1D69o4IiNXqqShDd8K4lSMg==" + "resolved": "1.54.0", + "contentHash": "Z+1Q/Vpy/LF0xKm3/0szoU/0AhZuNbnQOVMagtfejpRNteqnmeryLjdHG59AeKIpzgbHr3XxusfGz0jg4wjLdA==" }, "Azure.Deployments.Expression": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "4XIed8jUdWsc8IG2o2tdqJl8ioWjwN9MR2y9L9PV/5wlDUyb2I6MXVwU/f5d3ZMCD+svc4rE6HRgxMIBYHZmSQ==", + "resolved": "1.54.0", + "contentHash": "2nhYxVun701mghHxK5h5qZoL9RjaVCo83/VTc2HgPKJkIcRW3oYFbxnMQrP5pr9k0GsCxKmvOkwsoET9gy851A==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "IPNetwork2": "2.6.598", "Newtonsoft.Json": "13.0.2" } }, "Azure.Deployments.Extensibility": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "3n64LvNi90r70Puobb8OImKlivz6/JaCW7zVImwb8VXeXTJJtoPTuY0z81QroGqdQMA/aU8123edFBTM4hiBVg==", + "resolved": "1.54.0", + "contentHash": "CiMXvV8NVW/xQKMQVX7gmKj20GP/h1k+4nuCNyCoS5gek4WI9yk7pH0XHwmx1TVf2Ms1vtwc9bOYohq1kd27tg==", "dependencies": { - "Azure.Deployments.Core": "1.34.0", + "Azure.Deployments.Core": "1.54.0", "Newtonsoft.Json": "13.0.2" } }, @@ -179,12 +179,12 @@ }, "Azure.Deployments.Templates": { "type": "Transitive", - "resolved": "1.34.0", - "contentHash": "AlstKsqlGEv8XNEjtCZ9KsI//ZKtnKn0m18TSuSQT36w+RjWiCo35uE6U/HTIXmTRS/jJVOuwMSPU4FhTLW/jg==", + "resolved": "1.54.0", + "contentHash": "TNq6JNNcDVuNSS4sqBUETVTm8KDIYvt28vWSPaV+rHyTogo0qJHciSQglEwOk0zoTp1Qf8plT7QqXS0uM/A2AA==", "dependencies": { "Azure.Bicep.Types": "0.5.9", - "Azure.Deployments.Core": "1.34.0", - "Azure.Deployments.Expression": "1.34.0", + "Azure.Deployments.Core": "1.54.0", + "Azure.Deployments.Expression": "1.54.0", "Microsoft.Automata.SRM": "1.2.2", "Newtonsoft.Json": "13.0.2" } diff --git a/src/Bicep.Local.Extension.Mock/Program.cs b/src/Bicep.Local.Extension.Mock/Program.cs index 01c950e8ad9..963846b2857 100644 --- a/src/Bicep.Local.Extension.Mock/Program.cs +++ b/src/Bicep.Local.Extension.Mock/Program.cs @@ -25,8 +25,6 @@ public static async Task Main(string[] args) return; } - var extension = new KestrelProviderExtension(); - await ProviderExtension.Run(new KestrelProviderExtension(), RegisterHandlers, args); } diff --git a/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs b/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs index f680cdec326..674dc5e7564 100644 --- a/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs +++ b/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs @@ -5,6 +5,7 @@ using System.Text.Json.Nodes; using Bicep.Local.Extension.Protocol; using Grpc.Core; +using Grpc.Net.Client; using Microsoft.Extensions.Logging; namespace Bicep.Local.Extension.Rpc; @@ -20,22 +21,42 @@ public BicepExtensionImpl(ILogger logger, ResourceDispatcher this.dispatcher = dispatcher; } - public override Task Save(ExtensibilityOperationRequest request, ServerCallContext context) + public override async Task CreateOrUpdate(ResourceRequestBody request, ServerCallContext context) + { + return await base.CreateOrUpdate(request, context); + } + + public override Task Preview(ResourceRequestBody request, ServerCallContext context) + { + return base.Preview(request, context); + } + + public override Task Get(ResourceReferenceRequestBody request, ServerCallContext context) + { + return base.Get(request, context); + } + + public override Task Delete(ResourceReferenceRequestBody request, ServerCallContext context) + { + return base.Delete(request, context); + } + + /*public override Task Save(ExtensibilityOperationRequest request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).Save(Convert(request), context.CancellationToken))); - public override Task PreviewSave(ExtensibilityOperationRequest request, ServerCallContext context) + public override Task Preview2(ExtensibilityOperationRequest request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).PreviewSave(Convert(request), context.CancellationToken))); public override Task Get(ExtensibilityOperationRequest request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).Get(Convert(request), context.CancellationToken))); public override Task Delete(ExtensibilityOperationRequest request, ServerCallContext context) - => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).Delete(Convert(request), context.CancellationToken))); + => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).Delete(Convert(request), context.CancellationToken)));*/ public override Task Ping(Empty request, ServerCallContext context) => Task.FromResult(new Empty()); - private static Protocol.ExtensibilityOperationRequest Convert(ExtensibilityOperationRequest request) + /*private static Protocol.ExtensibilityOperationRequest Convert(ExtensibilityOperationRequest request) { return new( new(request.Import.Provider, request.Import.Version, request.Import.Config is { } ? JsonNode.Parse(request.Import.Config) as JsonObject : null), @@ -92,5 +113,5 @@ private static async Task WrapExceptions(Func Date: Wed, 26 Jun 2024 20:14:08 -0700 Subject: [PATCH 02/15] update test --- src/Bicep.Core/Emit/TemplateWriter.cs | 13 ++++++--- .../EndToEndDeploymentTests.cs | 27 +++++++++---------- .../LocalExtensibilityHandler.cs | 6 ++--- .../LocalDeploymentEngine.cs | 4 +-- .../LocalDeploymentEngineHost.cs | 18 ++++++++----- 5 files changed, 39 insertions(+), 29 deletions(-) diff --git a/src/Bicep.Core/Emit/TemplateWriter.cs b/src/Bicep.Core/Emit/TemplateWriter.cs index dbd328f458b..fd2b4fe6783 100644 --- a/src/Bicep.Core/Emit/TemplateWriter.cs +++ b/src/Bicep.Core/Emit/TemplateWriter.cs @@ -109,7 +109,7 @@ public void Write(SourceAwareJsonTextWriter writer) if (Context.Settings.UseExperimentalTemplateLanguageVersion) { - emitter.EmitProperty(LanguageVersionPropertyName, "2.1-experimental"); + emitter.EmitProperty(LanguageVersionPropertyName, "2.2-experimental"); } else if (Context.Settings.EnableSymbolicNames) { @@ -1179,7 +1179,14 @@ private void EmitResource(ExpressionEmitter emitter, DeclaredResourceExpression var importSymbol = Context.SemanticModel.Root.ProviderDeclarations.FirstOrDefault(i => metadata.Type.DeclaringNamespace.AliasNameEquals(i.Name)); if (importSymbol is not null) { - emitter.EmitProperty("import", importSymbol.Name); + if (this.Context.SemanticModel.Features.LocalDeployEnabled) + { + emitter.EmitProperty("extension", importSymbol.Name); + } + else + { + emitter.EmitProperty("import", importSymbol.Name); + } } if (metadata.IsAzResource) @@ -1301,7 +1308,7 @@ private void EmitModuleForLocalDeploy(PositionTrackingJsonTextWriter jsonWriter, { emitter.EmitObject(() => { - emitter.EmitProperty("import", "az0synthesized"); + emitter.EmitProperty("extension", "az0synthesized"); var body = module.Body; if (body is ForLoopExpression forLoop) diff --git a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs index 4855e5a7d84..2104a56d35e 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs @@ -2,6 +2,7 @@ // Licensed under the MIT License. using System.IO.Abstractions; +using System.Text; using Azure.Deployments.Core.Definitions; using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; using Azure.Deployments.Extensibility.Messages; @@ -88,9 +89,15 @@ param coords { var parametersFile = result.Compilation.Emitter.Parameters().Parameters!; var templateFile = result.Compilation.Emitter.Parameters().Template!.Template!; + JToken identifiers = new JObject + { + { "name", "someName" }, + { "namespace", "someNamespace" } + }; + var providerMock = StrictMock.Of(); providerMock.Setup(x => x.CreateOrUpdateResourceAsync(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) - .Returns((req, _) => + .Returns((req, _) => { req.Properties["body"] = """ { @@ -101,15 +108,11 @@ param coords { } } """; - JToken identifiers = new JObject - { - { "name", "someName" }, - { "namespace", "someNamespace" } - }; - return Task.FromResult(new(null, identifiers, req.Type, null, req.Properties)); + return Task.FromResult(new(null, identifiers, req.Type, "Succeeded", req.Properties)); }); + providerMock.Setup(x => x.CreateOrUpdateResourceAsync(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/gridpoints/SEW/131,68/forecast"), It.IsAny())) - .Returns((req, _) => + .Returns((req, _) => { req.Properties["body"] = """ { @@ -129,13 +132,7 @@ param coords { } } """; - JToken identifiers = new JObject - { - { "name", "someName" }, - { "namespace", "someNamespace" } - }; - - return Task.FromResult(new(null, identifiers, req.Type, null, req.Properties)); + return Task.FromResult(new(null, identifiers, req.Type, "Succeeded", req.Properties)); }); await using LocalExtensibilityHandler extensibilityHandler = new(BicepTestConstants.ModuleDispatcher, uri => Task.FromResult(providerMock.Object)); diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs index 59bc9ca83a5..6be18547be6 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs @@ -84,10 +84,10 @@ internal static class ModelSerializer UseDataContractJsonSerializer = false }; - public static readonly JsonMediaTypeFormatter[] JsonMediaTypeFormatters = new[] - { + public static readonly JsonMediaTypeFormatter[] JsonMediaTypeFormatters = + [ JsonMediaTypeFormatter, - }; + ]; public static Task DeserializeFromHttpContentAsync(HttpContent content, CancellationToken cancellationToken) => content.ReadAsAsync(JsonMediaTypeFormatters, cancellationToken); diff --git a/src/Bicep.Local.Deploy/LocalDeploymentEngine.cs b/src/Bicep.Local.Deploy/LocalDeploymentEngine.cs index c2b1bada1f1..5642d154d2a 100644 --- a/src/Bicep.Local.Deploy/LocalDeploymentEngine.cs +++ b/src/Bicep.Local.Deploy/LocalDeploymentEngine.cs @@ -77,9 +77,9 @@ private static (Template template, Dictionary x.Import is null)) + if (template.Resources.Any(x => x.Extension is null)) { - throw new NotImplementedException("Only resources with imports are supported"); + throw new NotImplementedException("Only resources with extensions are supported"); } var context = DeploymentContextWithScopeDefinition.CreateAtResourceGroup( diff --git a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs index e17058bf9f4..39a26c90abb 100644 --- a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs +++ b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs @@ -7,6 +7,7 @@ using System.Net; using System.Net.Http; using System.Net.Http.Headers; +using System.Text; using System.Threading; using System.Threading.Tasks; using Azure.Core; @@ -148,15 +149,20 @@ public override async Task CallExtensibilityHostV2( AuthenticationToken extensibilityHostToken, CancellationToken cancellationToken) { - var extensionName = "LocalNested"; - var extensionVersion = "0.0.0"; - var method = "createOrUpdate"; - var response = await extensibilityHandler.CallExtensibilityHostV2(extensionName, extensionVersion, method, content, cancellationToken); + var extensionName = requestUri.Segments[^4].TrimEnd('/'); + var extensionVersion = requestUri.Segments[^3].TrimEnd('/'); + var method = requestUri.Segments[^1].TrimEnd('/'); + var extensibilityResponse = await extensibilityHandler.CallExtensibilityHostV2(extensionName, extensionVersion, method, content, cancellationToken); - return new HttpResponseMessage(HttpStatusCode.OK) + var response = new HttpResponseMessage(HttpStatusCode.OK) { - Content = new StringContent(response.ToJson()), + Content = new StringContent(extensibilityResponse.ToJson(), encoding: Encoding.UTF8, mediaType: "application/json") }; + + response.Headers.Add("Location", "local"); + response.Headers.Add("Version", extensionVersion); + + return response; } public override async Task CallExtensibilityHost( From ff0e20980284b3b4fa01c812b06217602c41481c Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Wed, 26 Jun 2024 20:37:07 -0700 Subject: [PATCH 03/15] added missing fields --- .../GrpcExtensibilityProvider.cs | 102 +++++++----------- 1 file changed, 39 insertions(+), 63 deletions(-) diff --git a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs index fbb3d5f4d3c..bd9ac18c362 100644 --- a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs @@ -30,7 +30,6 @@ public class GrpcExtensibilityProvider : LocalExtensibilityProviderV2 { private readonly BicepExtension.BicepExtensionClient client; private readonly Process process; - private static readonly ConcurrentDictionary startedProviders = new(); private GrpcExtensibilityProvider(BicepExtension.BicepExtensionClient client, Process process) { @@ -40,60 +39,53 @@ private GrpcExtensibilityProvider(BicepExtension.BicepExtensionClient client, Pr public static async Task Start(Uri pathToBinary) { - // TODO: Acquire lock? - if (!startedProviders.TryGetValue(pathToBinary, out var localExtensibilityProvider)) + var socketName = $"{Guid.NewGuid()}.tmp"; + var socketPath = Path.Combine(Path.GetTempPath(), socketName); + + if (File.Exists(socketPath)) { - var socketName = $"{Guid.NewGuid()}.tmp"; - var socketPath = Path.Combine(Path.GetTempPath(), socketName); + File.Delete(socketPath); + } - if (File.Exists(socketPath)) + var process = new Process + { + StartInfo = new ProcessStartInfo { - File.Delete(socketPath); - } + FileName = pathToBinary.LocalPath, + Arguments = $"--socket {socketPath}", + UseShellExecute = false, + RedirectStandardError = true, + RedirectStandardOutput = true, + }, + }; - var process = new Process - { - StartInfo = new ProcessStartInfo - { - FileName = pathToBinary.LocalPath, - Arguments = $"--socket {socketPath}", - UseShellExecute = false, - RedirectStandardError = true, - RedirectStandardOutput = true, - }, - }; - - try - { - // 30s timeout for starting up the RPC connection - var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); + try + { + // 30s timeout for starting up the RPC connection + var cts = new CancellationTokenSource(TimeSpan.FromSeconds(30)); - process.EnableRaisingEvents = true; - process.Exited += (sender, e) => cts.Cancel(); - process.OutputDataReceived += (sender, e) => Trace.WriteLine($"{pathToBinary} stdout: {e.Data}"); - process.ErrorDataReceived += (sender, e) => Trace.WriteLine($"{pathToBinary} stderr: {e.Data}"); + process.EnableRaisingEvents = true; + process.Exited += (sender, e) => cts.Cancel(); + process.OutputDataReceived += (sender, e) => Trace.WriteLine($"{pathToBinary} stdout: {e.Data}"); + process.ErrorDataReceived += (sender, e) => Trace.WriteLine($"{pathToBinary} stderr: {e.Data}"); - process.Start(); + process.Start(); - process.BeginErrorReadLine(); - process.BeginOutputReadLine(); + process.BeginErrorReadLine(); + process.BeginOutputReadLine(); - var channel = GrpcChannelHelper.CreateChannel(socketPath); - var client = new BicepExtension.BicepExtensionClient(channel); + var channel = GrpcChannelHelper.CreateChannel(socketPath); + var client = new BicepExtension.BicepExtensionClient(channel); - await GrpcChannelHelper.WaitForConnectionAsync(client, cts.Token); + await GrpcChannelHelper.WaitForConnectionAsync(client, cts.Token); - localExtensibilityProvider = new GrpcExtensibilityProvider(client, process); - startedProviders[pathToBinary] = localExtensibilityProvider; - } - catch (Exception ex) - { - await TerminateProcess(process); - throw new InvalidOperationException($"Failed to connect to provider {pathToBinary.LocalPath}", ex); - } + return new GrpcExtensibilityProvider(client, process); + } + catch (Exception ex) + { + await TerminateProcess(process); + throw new InvalidOperationException($"Failed to connect to provider {pathToBinary.LocalPath}", ex); } - - return localExtensibilityProvider; } public override async Task CreateOrUpdateResourceAsync(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) @@ -127,26 +119,10 @@ private static Rpc.ResourceRequestBody Convert(ExtensibilityV2.Models.ResourceRe }; private static ExtensibilityV2.Models.ErrorPayload Convert(Rpc.ErrorPayload error) - => new("", "", "", Convert(error.Details), error.InnerError != null ? JObject.Parse(error.InnerError): null); - - private static ExtensibilityV2.Models.ErrorDetail[]? Convert(RepeatedField? details) - { - if (details is not { }) - { - return default; - } + => new(error.Code, error.Target, error.Message, error.Details is null ? null : Convert(error.Details), error.InnerError is null ? null : JObject.Parse(error.InnerError)); - var errorDetails = new ExtensibilityV2.Models.ErrorDetail[details.Count]; - - for (var i = 0; i < details.Count; i++) - { - if (details[i] is { }) - { - errorDetails[i] = Convert(details[i]); - } - } - return errorDetails; - } + private static ExtensibilityV2.Models.ErrorDetail[] Convert(RepeatedField details) + => details.Select(Convert).ToArray(); private static ExtensibilityV2.Models.ErrorDetail Convert(Rpc.ErrorDetail detail) => new(detail.Code, detail.Message, detail.Target); From 29d2d3cf47d49138b0cf4675ebdd9bb62c715fd7 Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Thu, 27 Jun 2024 19:01:00 -0700 Subject: [PATCH 04/15] updated grpc test --- .../EndToEndDeploymentTests.cs | 4 +- .../ProviderExtensionTests.cs | 28 +++++--- .../Extensibility/AzExtensibilityProvider.cs | 8 +-- .../GrpcExtensibilityProvider.cs | 22 ++---- .../LocalExtensibilityHandler.cs | 8 +-- .../LocalExtensibilityProvider.cs | 8 +-- .../Handlers/EchoResourceHandler.cs | 26 ++++--- .../Protocol/IResourceHandler.cs | 62 +++++++++-------- .../Rpc/BicepExtensionImpl.cs | 69 ++++++++++++++----- src/Bicep.Local.Extension/extension.proto | 19 ++--- 10 files changed, 149 insertions(+), 105 deletions(-) diff --git a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs index 2104a56d35e..5d7dc9ac604 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs @@ -96,7 +96,7 @@ param coords { }; var providerMock = StrictMock.Of(); - providerMock.Setup(x => x.CreateOrUpdateResourceAsync(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) + providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) .Returns((req, _) => { req.Properties["body"] = """ @@ -111,7 +111,7 @@ param coords { return Task.FromResult(new(null, identifiers, req.Type, "Succeeded", req.Properties)); }); - providerMock.Setup(x => x.CreateOrUpdateResourceAsync(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/gridpoints/SEW/131,68/forecast"), It.IsAny())) + providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/gridpoints/SEW/131,68/forecast"), It.IsAny())) .Returns((req, _) => { req.Properties["body"] = """ diff --git a/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs index 713e6a0e36d..e3b7f766220 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs @@ -1,8 +1,10 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. +using System.Diagnostics; using System.IO.Pipes; using System.Text.Json; +using System.Text.Json.Nodes; using Bicep.Core.UnitTests; using Bicep.Core.UnitTests.Assertions; using Bicep.Core.UnitTests.Mock; @@ -50,6 +52,10 @@ await Task.WhenAll( await testFunc(client, cts.Token); } + catch (Exception ex) + { + Trace.TraceError(ex.Message); + } finally { await cts.CancelAsync(); @@ -60,12 +66,18 @@ await Task.WhenAll( [TestMethod] public async Task Save_request_works_as_expected() { + JsonObject identifiers = new() + { + { "name", "someName" }, + { "namespace", "someNamespace" } + }; + var handlerMock = StrictMock.Of(); - handlerMock.SetupGet(x => x.ResourceType).Returns("apps/Deployment@v1"); + handlerMock.SetupGet(x => x.ResourceType).Returns("apps/Deployment"); - handlerMock.Setup(x => x.Save(It.IsAny(), It.IsAny())) - .Returns((req, _) => - Task.FromResult(new Protocol.ExtensibilityOperationResponse(req.Resource, null, null))); + handlerMock.Setup(x => x.CreateOrUpdate(It.IsAny(), It.IsAny())) + .Returns((req, _) => + Task.FromResult(new Protocol.ResourceResponseBody(null, identifiers, req.Type, "Succeeded", req.Properties))); await RunExtensionTest( builder => builder.AddHandler(handlerMock.Object), @@ -74,7 +86,7 @@ await RunExtensionTest( var request = new Extension.Rpc.ResourceRequestBody { ApiVersion = "v1", - Type = "Microsoft.Resources/deployments", + Type = "apps/Deployment", Properties = """ { "metadata": { @@ -116,9 +128,9 @@ await RunExtensionTest( var response = await client.CreateOrUpdateAsync(request, cancellationToken: token); - response.ResultCase.Should().Be(ResourceResponse.ResultOneofCase.Response); - response.Response.Should().NotBeNull(); - response.Response.Type.Should().Be("apps/Deployment@v1"); + response.Should().NotBeNull(); + response.Type.Should().Be("apps/Deployment"); + response.Identifiers.Should().Be(identifiers.ToJson()); }); } } diff --git a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs index 2b6035c20b3..d3c37508070 100644 --- a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs @@ -24,7 +24,7 @@ public AzExtensibilityProvider(LocalExtensibilityHandler extensibilityHandler) this.extensibilityHandler = extensibilityHandler; } - public override async Task CreateOrUpdateResourceAsync(ResourceRequestBody request, CancellationToken cancellationToken) + public override async Task CreateOrUpdate(ResourceRequestBody request, CancellationToken cancellationToken) { switch (request.Type) { @@ -66,17 +66,17 @@ public override async Task CreateOrUpdateResourceAsync(Res throw new NotImplementedException(); } - public override Task DeleteResourceAsync(ResourceReferenceRequestBody request, CancellationToken cancellationToken) + public override Task Delete(ResourceReferenceRequestBody request, CancellationToken cancellationToken) { throw new NotImplementedException(); } - public override Task GetResourceAsync(ResourceReferenceRequestBody request, CancellationToken cancellationToken) + public override Task Get(ResourceReferenceRequestBody request, CancellationToken cancellationToken) { throw new NotImplementedException(); } - public override Task PreviewResourceCreateOrUpdateAsync(ResourceRequestBody request, CancellationToken cancellationToken) + public override Task Preview(ResourceRequestBody request, CancellationToken cancellationToken) { throw new NotImplementedException(); } diff --git a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs index bd9ac18c362..854cd5ad7f8 100644 --- a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs @@ -88,16 +88,16 @@ public static async Task Start(Uri pathToBinary) } } - public override async Task CreateOrUpdateResourceAsync(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) + public override async Task CreateOrUpdate(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) => Convert(await client.CreateOrUpdateAsync(Convert(request), cancellationToken: cancellationToken)); - public override async Task DeleteResourceAsync(ExtensibilityV2.Models.ResourceReferenceRequestBody request, CancellationToken cancellationToken) + public override async Task Delete(ExtensibilityV2.Models.ResourceReferenceRequestBody request, CancellationToken cancellationToken) => Convert(await client.DeleteAsync(Convert(request), cancellationToken: cancellationToken)); - public override async Task GetResourceAsync(ExtensibilityV2.Models.ResourceReferenceRequestBody request, CancellationToken cancellationToken) + public override async Task Get(ExtensibilityV2.Models.ResourceReferenceRequestBody request, CancellationToken cancellationToken) => Convert(await client.GetAsync(Convert(request), cancellationToken: cancellationToken)); - public override async Task PreviewResourceCreateOrUpdateAsync(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) + public override async Task Preview(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) => Convert(await client.PreviewAsync(Convert(request), cancellationToken: cancellationToken)); private static Rpc.ResourceReferenceRequestBody Convert(ExtensibilityV2.Models.ResourceReferenceRequestBody request) @@ -127,18 +127,8 @@ private static ExtensibilityV2.Models.ErrorDetail[] Convert(RepeatedField new(detail.Code, detail.Message, detail.Target); - private static ExtensibilityV2.Models.ResourceResponseBody Convert(Rpc.ResourceResponse response) - { - switch (response.ResultCase) - { - case ResourceResponse.ResultOneofCase.Response: - return new ExtensibilityV2.Models.ResourceResponseBody(error: null, response.Response.Identifiers, response.Response.Type, response.Response.Status, response.Response.Properties.ToJToken()); - case ResourceResponse.ResultOneofCase.Error: - return new ExtensibilityV2.Models.ResourceResponseBody(Convert(response.Error), null, null, null, null); - default: - throw new ArgumentException("Unexpected result."); - } - } + private static ExtensibilityV2.Models.ResourceResponseBody Convert(Rpc.ResourceResponseBody response) + => new(Convert(response.Error), response.Identifiers, response.Type, response.Status, response.Properties.ToJToken()); public override async ValueTask DisposeAsync() { diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs index 6be18547be6..495db380679 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs @@ -101,10 +101,10 @@ private async Task CallProviderV2( { return method switch { - "get" => await provider.GetResourceAsync(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), - "delete" => await provider.DeleteResourceAsync(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), - "createOrUpdate" => await provider.CreateOrUpdateResourceAsync(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), - "preview" => await provider.PreviewResourceCreateOrUpdateAsync(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + "get" => await provider.Get(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + "delete" => await provider.Delete(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + "createOrUpdate" => await provider.CreateOrUpdate(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + "preview" => await provider.Preview(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), _ => throw new NotImplementedException($"Unsupported method {method}"), }; } diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs index 4baea9e4cf2..93a63e67657 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs @@ -25,13 +25,13 @@ public virtual ValueTask DisposeAsync() public abstract class LocalExtensibilityProviderV2 : IAsyncDisposable { - public abstract Task DeleteResourceAsync(ResourceReferenceRequestBody request, CancellationToken cancellationToken); + public abstract Task Delete(ResourceReferenceRequestBody request, CancellationToken cancellationToken); - public abstract Task GetResourceAsync(ResourceReferenceRequestBody request, CancellationToken cancellationToken); + public abstract Task Get(ResourceReferenceRequestBody request, CancellationToken cancellationToken); - public abstract Task PreviewResourceCreateOrUpdateAsync(ResourceRequestBody request, CancellationToken cancellationToken); + public abstract Task Preview(ResourceRequestBody request, CancellationToken cancellationToken); - public abstract Task CreateOrUpdateResourceAsync(ResourceRequestBody request, CancellationToken cancellationToken); + public abstract Task CreateOrUpdate(ResourceRequestBody request, CancellationToken cancellationToken); public virtual ValueTask DisposeAsync() { diff --git a/src/Bicep.Local.Extension.Mock/Handlers/EchoResourceHandler.cs b/src/Bicep.Local.Extension.Mock/Handlers/EchoResourceHandler.cs index f1ab1e6fca7..bcbbc99613a 100644 --- a/src/Bicep.Local.Extension.Mock/Handlers/EchoResourceHandler.cs +++ b/src/Bicep.Local.Extension.Mock/Handlers/EchoResourceHandler.cs @@ -5,6 +5,7 @@ using System.Text.Json.Nodes; using Bicep.Core.Json; using Bicep.Local.Extension.Protocol; +using Newtonsoft.Json.Linq; namespace Bicep.Local.Extension.Mock.Handlers; @@ -18,26 +19,33 @@ public class EchoResourceHandler : IResourceHandler { public string ResourceType => "echo"; - public Task Delete(ExtensibilityOperationRequest request, CancellationToken cancellationToken) + public Task Delete(ResourceReferenceRequestBody request, CancellationToken cancellationToken) => throw new NotImplementedException(); - public Task Get(ExtensibilityOperationRequest request, CancellationToken cancellationToken) + public Task Get(ResourceReferenceRequestBody request, CancellationToken cancellationToken) => throw new NotImplementedException(); - public Task PreviewSave(ExtensibilityOperationRequest request, CancellationToken cancellationToken) + public Task Preview(ResourceRequestBody request, CancellationToken cancellationToken) => throw new NotImplementedException(); - public async Task Save(ExtensibilityOperationRequest request, CancellationToken cancellationToken) + public async Task CreateOrUpdate(ResourceRequestBody request, CancellationToken cancellationToken) { await Task.Yield(); - var requestBody = JsonSerializer.Deserialize(request.Resource.Properties, SerializationContext.Default.EchoRequest) + var requestBody = JsonSerializer.Deserialize(request.Properties, SerializationContext.Default.EchoRequest) ?? throw new InvalidOperationException("Failed to deserialize request body"); + JsonObject identifiers = new() + { + { "name", "someName" }, + { "namespace", "someNamespace" } + }; + var responseBody = new EchoResponse(requestBody.Payload); - var response = new ExtensibleResourceData( - request.Resource.Type, + return new ResourceResponseBody( + null, + identifiers, + request.Type, + "Succeeded", JsonNode.Parse(JsonSerializer.Serialize(responseBody, SerializationContext.Default.EchoResponse))!.AsObject()); - - return new ExtensibilityOperationResponse(response, null, null); } } diff --git a/src/Bicep.Local.Extension/Protocol/IResourceHandler.cs b/src/Bicep.Local.Extension/Protocol/IResourceHandler.cs index 91267f2207f..847cea387cb 100644 --- a/src/Bicep.Local.Extension/Protocol/IResourceHandler.cs +++ b/src/Bicep.Local.Extension/Protocol/IResourceHandler.cs @@ -4,53 +4,57 @@ using System.Collections.Immutable; using System.Text.Json.Nodes; using System.Text.Json.Serialization.Metadata; +using Bicep.Local.Extension.Rpc; namespace Bicep.Local.Extension.Protocol; -public record ExtensibilityOperationRequest( - ExtensibleImportData Import, - ExtensibleResourceData Resource); - -public record ExtensibilityOperationResponse( - ExtensibleResourceData? Resource, - ExtensibleResourceMetadata? ResourceMetadata, - ImmutableArray? Errors); - -public record ExtensibleImportData( - string Provider, - string Version, - JsonObject? Config); +public record ResourceRequestBody( + JsonObject? Config, + string Type, + JsonObject Properties, + string? ApiVersion); -public record ExtensibleResourceData( +public record ResourceReferenceRequestBody( + JsonObject Identifiers, + JsonObject? Config, string Type, - JsonObject? Properties); + string? ApiVersion); -public record ExtensibleResourceMetadata( - ImmutableArray? ReadOnlyProperties, - ImmutableArray? ImmutableProperties, - ImmutableArray? DynamicProperties); +public record ResourceResponseBody( + ErrorPayload? Error, + JsonObject Identifiers, + string Type, + string Status, + JsonObject Properties); -public record ExtensibilityError( +public record ErrorPayload( string Code, + string Target, string Message, - string Target); + ErrorDetail[]? Details, + JsonObject? InnerError); + +public record ErrorDetail( + string Code, + string Target, + string Message); public interface IGenericResourceHandler { - Task Save( - ExtensibilityOperationRequest request, + Task CreateOrUpdate( + ResourceRequestBody request, CancellationToken cancellationToken); - Task PreviewSave( - ExtensibilityOperationRequest request, + Task Preview( + ResourceRequestBody request, CancellationToken cancellationToken); - Task Get( - ExtensibilityOperationRequest request, + Task Get( + ResourceReferenceRequestBody request, CancellationToken cancellationToken); - Task Delete( - ExtensibilityOperationRequest request, + Task Delete( + ResourceReferenceRequestBody request, CancellationToken cancellationToken); } diff --git a/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs b/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs index 674dc5e7564..0562c67623a 100644 --- a/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs +++ b/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs @@ -21,25 +21,17 @@ public BicepExtensionImpl(ILogger logger, ResourceDispatcher this.dispatcher = dispatcher; } - public override async Task CreateOrUpdate(ResourceRequestBody request, ServerCallContext context) - { - return await base.CreateOrUpdate(request, context); - } + public override Task CreateOrUpdate(ResourceRequestBody request, ServerCallContext context) + => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).CreateOrUpdate(Convert(request), context.CancellationToken))); - public override Task Preview(ResourceRequestBody request, ServerCallContext context) - { - return base.Preview(request, context); - } + public override Task Preview(ResourceRequestBody request, ServerCallContext context) + => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).Preview(Convert(request), context.CancellationToken))); - public override Task Get(ResourceReferenceRequestBody request, ServerCallContext context) - { - return base.Get(request, context); - } + public override Task Get(ResourceReferenceRequestBody request, ServerCallContext context) + => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).Get(Convert(request), context.CancellationToken))); - public override Task Delete(ResourceReferenceRequestBody request, ServerCallContext context) - { - return base.Delete(request, context); - } + public override Task Delete(ResourceReferenceRequestBody request, ServerCallContext context) + => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).Delete(Convert(request), context.CancellationToken))); /*public override Task Save(ExtensibilityOperationRequest request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).Save(Convert(request), context.CancellationToken))); @@ -56,6 +48,51 @@ public override Task Delete(ExtensibilityOperati public override Task Ping(Empty request, ServerCallContext context) => Task.FromResult(new Empty()); + private Protocol.ResourceRequestBody Convert(ResourceRequestBody request) + => new(!string.IsNullOrEmpty(request.Config) ? JsonNode.Parse(request.Config) as JsonObject : null, + request.Type, + JsonNode.Parse(request.Properties)!.AsObject(), // TODO: Is there a better way to parse to ensure result might not be null? + request.ApiVersion); + + private Protocol.ResourceReferenceRequestBody Convert(ResourceReferenceRequestBody request) + => new(JsonNode.Parse(request.Identifiers)!.AsObject(), + !string.IsNullOrEmpty(request.Config) ? JsonNode.Parse(request.Config) as JsonObject : null, + request.Type, + request.ApiVersion); + + private ResourceResponseBody Convert(Protocol.ResourceResponseBody response) + { + return new ResourceResponseBody + { + Identifiers = response.Identifiers.ToJsonString(), + Properties = response.Properties.ToJsonString(), + Status = response.Status, + Type = response.Type, + }; + } + + private static async Task WrapExceptions(Func> func) + { + try + { + return await func(); + } + catch (Exception ex) + { + var response = new ResourceResponseBody + { + Error = new ErrorPayload + { + Message = $"Rpc request failed: {ex}", + Code = "RpcException", + Target = "" + } + }; + + return response; + } + } + /*private static Protocol.ExtensibilityOperationRequest Convert(ExtensibilityOperationRequest request) { return new( diff --git a/src/Bicep.Local.Extension/extension.proto b/src/Bicep.Local.Extension/extension.proto index 7e4b062bc59..376814395f9 100644 --- a/src/Bicep.Local.Extension/extension.proto +++ b/src/Bicep.Local.Extension/extension.proto @@ -5,10 +5,10 @@ option csharp_namespace = "Bicep.Local.Extension.Rpc"; package extension; service BicepExtension { - rpc CreateOrUpdate (ResourceRequestBody) returns (ResourceResponse); - rpc Preview (ResourceRequestBody) returns (ResourceResponse); - rpc Get (ResourceReferenceRequestBody) returns (ResourceResponse); - rpc Delete (ResourceReferenceRequestBody) returns (ResourceResponse); + rpc CreateOrUpdate (ResourceRequestBody) returns (ResourceResponseBody); + rpc Preview (ResourceRequestBody) returns (ResourceResponseBody); + rpc Get (ResourceReferenceRequestBody) returns (ResourceResponseBody); + rpc Delete (ResourceReferenceRequestBody) returns (ResourceResponseBody); rpc Ping(Empty) returns (Empty); } @@ -28,19 +28,12 @@ message ResourceReferenceRequestBody { optional string apiVersion = 4; } -message ResourceResponse { - oneof result { - ResourceResponseBody response = 1; - ErrorPayload error = 2; - } -} - message ResourceResponseBody { optional string identifiers = 1; string type = 2; optional string status = 3; - optional string apiVersion = 4; - string properties = 5; + string properties = 4; + optional ErrorPayload error = 5; } message ErrorPayload { From e0c8ac28e0f3547177c06c4627cf667e0f8cf3f7 Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Fri, 28 Jun 2024 14:37:12 -0700 Subject: [PATCH 05/15] removed v2 suffix --- .../EndToEndDeploymentTests.cs | 2 +- .../Extensibility/AzExtensibilityProvider.cs | 2 +- .../GrpcExtensibilityProvider.cs | 4 +- .../LocalExtensibilityHandler.cs | 61 +++------------- .../LocalExtensibilityProvider.cs | 18 +---- .../LocalDeploymentEngineHost.cs | 17 +---- .../Rpc/BicepExtensionImpl.cs | 71 ------------------- 7 files changed, 17 insertions(+), 158 deletions(-) diff --git a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs index 5d7dc9ac604..e1990473ab4 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs @@ -95,7 +95,7 @@ param coords { { "namespace", "someNamespace" } }; - var providerMock = StrictMock.Of(); + var providerMock = StrictMock.Of(); providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) .Returns((req, _) => { diff --git a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs index d3c37508070..05572fb5266 100644 --- a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs @@ -15,7 +15,7 @@ namespace Bicep.Local.Deploy.Extensibility; -public class AzExtensibilityProvider : LocalExtensibilityProviderV2 +public class AzExtensibilityProvider : LocalExtensibilityProvider { private readonly LocalExtensibilityHandler extensibilityHandler; diff --git a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs index 854cd5ad7f8..7fbe1e393a4 100644 --- a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs @@ -26,7 +26,7 @@ namespace Bicep.Local.Deploy.Extensibility; -public class GrpcExtensibilityProvider : LocalExtensibilityProviderV2 +public class GrpcExtensibilityProvider : LocalExtensibilityProvider { private readonly BicepExtension.BicepExtensionClient client; private readonly Process process; @@ -37,7 +37,7 @@ private GrpcExtensibilityProvider(BicepExtension.BicepExtensionClient client, Pr this.process = process; } - public static async Task Start(Uri pathToBinary) + public static async Task Start(Uri pathToBinary) { var socketName = $"{Guid.NewGuid()}.tmp"; var socketPath = Path.Combine(Path.GetTempPath(), socketName); diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs index 495db380679..bb8d21d5057 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs @@ -30,11 +30,11 @@ private record ProviderKey( string Name, string Version); - private Dictionary RegisteredProviders = new(); + private Dictionary RegisteredProviders = new(); private readonly IModuleDispatcher moduleDispatcher; - private readonly Func> providerFactory; + private readonly Func> providerFactory; - public LocalExtensibilityHandler(IModuleDispatcher moduleDispatcher, Func> providerFactory) + public LocalExtensibilityHandler(IModuleDispatcher moduleDispatcher, Func> providerFactory) { this.moduleDispatcher = moduleDispatcher; this.providerFactory = providerFactory; @@ -42,29 +42,7 @@ public LocalExtensibilityHandler(IModuleDispatcher moduleDispatcher, Func CallProvider(string method, IExtensibilityProvider provider, ExtensibilityOperationRequest request, CancellationToken cancellationToken) - { - return method switch - { - "get" => await provider.Get(request, cancellationToken), - "delete" => await provider.Delete(request, cancellationToken), - "save" => await provider.Save(request, cancellationToken), - "previewSave" => await provider.PreviewSave(request, cancellationToken), - _ => throw new NotImplementedException($"Unsupported method {method}"), - }; - } - - public async Task CallExtensibilityHost( - string method, - ExtensibilityOperationRequest request, - CancellationToken cancellationToken) - { - var provider = RegisteredProviders[new(request.Import.Provider, request.Import.Version)]; - IExtensibilityProvider? x = provider as IExtensibilityProvider; - return await CallProvider(method, x!, request, cancellationToken); - } - - public async Task CallExtensibilityHostV2( + public async Task CallExtensibilityHost( string extensionName, string extensionVersion, string method, @@ -73,38 +51,21 @@ public async Task CallExtensibilityHostV2( { var provider = RegisteredProviders[new(extensionName, extensionVersion)]; - return await CallProviderV2(method, provider, content, cancellationToken); - } - - internal static class ModelSerializer - { - public static readonly JsonMediaTypeFormatter JsonMediaTypeFormatter = new() - { - SerializerSettings = JsonExtensions.MediaTypeFormatterSettings, - UseDataContractJsonSerializer = false - }; - - public static readonly JsonMediaTypeFormatter[] JsonMediaTypeFormatters = - [ - JsonMediaTypeFormatter, - ]; - - public static Task DeserializeFromHttpContentAsync(HttpContent content, CancellationToken cancellationToken) - => content.ReadAsAsync(JsonMediaTypeFormatters, cancellationToken); + return await CallProvider(method, provider, content, cancellationToken); } - private async Task CallProviderV2( + private async Task CallProvider( string method, - LocalExtensibilityProviderV2 provider, + LocalExtensibilityProvider provider, HttpContent content, CancellationToken cancellationToken) { return method switch { - "get" => await provider.Get(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), - "delete" => await provider.Delete(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), - "createOrUpdate" => await provider.CreateOrUpdate(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), - "preview" => await provider.Preview(await ModelSerializer.DeserializeFromHttpContentAsync(content, cancellationToken), cancellationToken), + "get" => await provider.Get(await content.ReadAsAsync(cancellationToken), cancellationToken), + "delete" => await provider.Delete(await content.ReadAsAsync(cancellationToken), cancellationToken), + "createOrUpdate" => await provider.CreateOrUpdate(await content.ReadAsAsync(cancellationToken), cancellationToken), + "preview" => await provider.Preview(await content.ReadAsAsync(cancellationToken), cancellationToken), _ => throw new NotImplementedException($"Unsupported method {method}"), }; } diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs index 93a63e67657..dd5a796f9ea 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs @@ -7,23 +7,7 @@ namespace Bicep.Local.Deploy.Extensibility; -public abstract class LocalExtensibilityProvider : IExtensibilityProvider, IAsyncDisposable -{ - public abstract Task Delete(ExtensibilityOperationRequest request, CancellationToken cancellationToken); - - public abstract Task Get(ExtensibilityOperationRequest request, CancellationToken cancellationToken); - - public abstract Task PreviewSave(ExtensibilityOperationRequest request, CancellationToken cancellationToken); - - public abstract Task Save(ExtensibilityOperationRequest request, CancellationToken cancellationToken); - - public virtual ValueTask DisposeAsync() - { - return ValueTask.CompletedTask; - } -} - -public abstract class LocalExtensibilityProviderV2 : IAsyncDisposable +public abstract class LocalExtensibilityProvider : IAsyncDisposable { public abstract Task Delete(ResourceReferenceRequestBody request, CancellationToken cancellationToken); diff --git a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs index 39a26c90abb..2bb0bf70d20 100644 --- a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs +++ b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs @@ -152,7 +152,7 @@ public override async Task CallExtensibilityHostV2( var extensionName = requestUri.Segments[^4].TrimEnd('/'); var extensionVersion = requestUri.Segments[^3].TrimEnd('/'); var method = requestUri.Segments[^1].TrimEnd('/'); - var extensibilityResponse = await extensibilityHandler.CallExtensibilityHostV2(extensionName, extensionVersion, method, content, cancellationToken); + var extensibilityResponse = await extensibilityHandler.CallExtensibilityHost(extensionName, extensionVersion, method, content, cancellationToken); var response = new HttpResponseMessage(HttpStatusCode.OK) { @@ -165,21 +165,6 @@ public override async Task CallExtensibilityHostV2( return response; } - public override async Task CallExtensibilityHost( - HttpMethod requestMethod, - Uri requestUri, - ExtensibilityOperationRequest request, - AuthenticationToken extensibilityHostToken, - CancellationToken cancellationToken) - { - var response = await extensibilityHandler.CallExtensibilityHost(requestUri.Segments[^1], request, cancellationToken); - - return new HttpResponseMessage(HttpStatusCode.OK) - { - Content = new StringContent(response.ToJson()), - }; - } - protected override Task GetEnvironmentKey() => Task.FromResult(new JObject()); diff --git a/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs b/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs index 0562c67623a..972230c976d 100644 --- a/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs +++ b/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs @@ -33,18 +33,6 @@ public override Task Get(ResourceReferenceRequestBody requ public override Task Delete(ResourceReferenceRequestBody request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).Delete(Convert(request), context.CancellationToken))); - /*public override Task Save(ExtensibilityOperationRequest request, ServerCallContext context) - => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).Save(Convert(request), context.CancellationToken))); - - public override Task Preview2(ExtensibilityOperationRequest request, ServerCallContext context) - => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).PreviewSave(Convert(request), context.CancellationToken))); - - public override Task Get(ExtensibilityOperationRequest request, ServerCallContext context) - => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).Get(Convert(request), context.CancellationToken))); - - public override Task Delete(ExtensibilityOperationRequest request, ServerCallContext context) - => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Resource.Type).Delete(Convert(request), context.CancellationToken)));*/ - public override Task Ping(Empty request, ServerCallContext context) => Task.FromResult(new Empty()); @@ -92,63 +80,4 @@ private static async Task WrapExceptions(Func new ExtensibilityError - { - Code = error.Code, - Message = error.Message, - Target = error.Target - })); - } - - return output; - } - - private static async Task WrapExceptions(Func> func) - { - try - { - return await func(); - } - catch (Exception ex) - { - var response = new ExtensibilityOperationResponse(); - response.Errors.Add(new ExtensibilityError - { - Code = "RpcException", - Message = $"Rpc request failed: {ex}", - Target = "" - }); - - return response; - } - }*/ } From eb89bb06b65c29b7e93fc6ec52234ce901a65a60 Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Mon, 1 Jul 2024 12:11:16 -0700 Subject: [PATCH 06/15] fixed emitter --- src/Bicep.Core/Emit/EmitterSettings.cs | 6 ++++++ src/Bicep.Core/Emit/TemplateWriter.cs | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Bicep.Core/Emit/EmitterSettings.cs b/src/Bicep.Core/Emit/EmitterSettings.cs index cb5319f9bf2..12f24dbbd60 100644 --- a/src/Bicep.Core/Emit/EmitterSettings.cs +++ b/src/Bicep.Core/Emit/EmitterSettings.cs @@ -13,6 +13,7 @@ public EmitterSettings(SemanticModel model) { FileKind = model.SourceFileKind; UseExperimentalTemplateLanguageVersion = model.Features.EnabledFeatureMetadata.Any(feature => feature.usesExperimentalArmEngineFeature); + LocalDeployEnabled = model.Features.LocalDeployEnabled; // Symbolic names are used if (evaluated in increasing order of computational cost): EnableSymbolicNames = @@ -51,6 +52,11 @@ syntax is UnionTypeSyntax || /// public bool UseExperimentalTemplateLanguageVersion { get; } + /// + /// Enables bicep local deploy + /// + public bool LocalDeployEnabled { get; } + public BicepSourceFileKind FileKind { get; } } } diff --git a/src/Bicep.Core/Emit/TemplateWriter.cs b/src/Bicep.Core/Emit/TemplateWriter.cs index fd2b4fe6783..1994987185d 100644 --- a/src/Bicep.Core/Emit/TemplateWriter.cs +++ b/src/Bicep.Core/Emit/TemplateWriter.cs @@ -109,7 +109,14 @@ public void Write(SourceAwareJsonTextWriter writer) if (Context.Settings.UseExperimentalTemplateLanguageVersion) { - emitter.EmitProperty(LanguageVersionPropertyName, "2.2-experimental"); + if (Context.Settings.LocalDeployEnabled) + { + emitter.EmitProperty(LanguageVersionPropertyName, "2.2-experimental"); + } + else + { + emitter.EmitProperty(LanguageVersionPropertyName, "2.1-experimental"); + } } else if (Context.Settings.EnableSymbolicNames) { From 3132ee1b3b46634752a89172b8a35c971970c2e4 Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Mon, 1 Jul 2024 12:55:41 -0700 Subject: [PATCH 07/15] fixed expected error messages --- .../RegistryProviderTests.cs | 12 ++++++------ src/Bicep.Core/Emit/TemplateWriter.cs | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs b/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs index bda08bc25a2..a4980d90e78 100644 --- a/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs +++ b/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs @@ -357,7 +357,7 @@ public async Task Correct_local_deploy_provider_configuration_result_in_successf var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetTestTypesTgzWithFallbackAndConfiguration(), AllFeaturesEnabledForLocalDeploy); var result = await CompilationHelper.RestoreAndCompile(services, """ -provider 'br:example.azurecr.io/providers/foo:1.2.3' with { +extension 'br:example.azurecr.io/providers/foo:1.2.3' with { namespace: 'ThirdPartyNamespace' config: 'Some path to config file' context: 'Some ThirdParty context' @@ -387,13 +387,13 @@ public async Task Correct_local_deploy_provider_configuration_result_in_successf } [TestMethod] - public async Task Local_deploy_provider_with_configuration_defined_and_empty_configuration_provided_result_in_failure_compilation() + public async Task Local_deploy_provider_with_configuration_defined_and_empty_configuration_provided_throws_errors() { // tgzData provideds configType with the properties namespace, config, and context var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetTestTypesTgzWithFallbackAndConfiguration(), AllFeaturesEnabledForLocalDeploy); var result = await CompilationHelper.RestoreAndCompile(services, """ -provider 'br:example.azurecr.io/providers/foo:1.2.3' with { } +extension 'br:example.azurecr.io/providers/foo:1.2.3' with { } resource dadJoke 'fooType@v1' = { identifier: 'foo' @@ -409,12 +409,12 @@ public async Task Local_deploy_provider_with_configuration_defined_and_empty_con } [TestMethod] - public async Task Local_deploy_provider_without_configuration_defined_and_configuration_provided_result_in_failure_compilation() + public async Task Local_deploy_provider_without_configuration_defined_but_configuration_provided_throws_errors() { var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetTestTypesTgz(), AllFeaturesEnabledForLocalDeploy); var result = await CompilationHelper.RestoreAndCompile(services, """ -provider 'br:example.azurecr.io/providers/foo:1.2.3' with { +extension 'br:example.azurecr.io/providers/foo:1.2.3' with { namespace: 'ThirdPartyNamespace' config: 'Some path to config file' context: 'Some ThirdParty context' @@ -430,7 +430,7 @@ public async Task Local_deploy_provider_without_configuration_defined_and_config result.Template.Should().BeNull(); - result.Should().HaveDiagnostics([("BCP205", DiagnosticLevel.Error, "Provider namespace \"ThirdPartyProvider\" does not support configuration.")], because: "Type checking should block the template compilation because provider does not support configuration but one has been provided."); + result.Should().HaveDiagnostics([("BCP205", DiagnosticLevel.Error, "Extension \"ThirdPartyProvider\" does not support configuration.")], because: "Type checking should block the template compilation because provider does not support configuration but one has been provided."); } [TestMethod] diff --git a/src/Bicep.Core/Emit/TemplateWriter.cs b/src/Bicep.Core/Emit/TemplateWriter.cs index 1994987185d..58fd37a8c57 100644 --- a/src/Bicep.Core/Emit/TemplateWriter.cs +++ b/src/Bicep.Core/Emit/TemplateWriter.cs @@ -1071,8 +1071,8 @@ private void EmitProviderV2Config(DeclaredProviderExpression provider, Expressio // Type checking should have validated that the config name is not an expression (e.g. string interpolation), if we get a null value it means something // was wrong with type checking validation. var providerConfigName = providerConfigProperty.TryGetKeyText() ?? throw new UnreachableException("Expressions are not allowed as config names."); - var x = provider.Settings.ConfigurationType ?? throw new UnreachableException(); - var providerConfigType = GetProviderConfigType(providerConfigName, provider.Settings.ConfigurationType!); + var configType = provider.Settings.ConfigurationType ?? throw new UnreachableException(); + var providerConfigType = GetProviderConfigType(providerConfigName, configType); emitter.EmitObjectProperty(providerConfigName, () => { From 13e20166aee4977cae58ed2b3b86afdb4da8f0b0 Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Mon, 1 Jul 2024 14:57:56 -0700 Subject: [PATCH 08/15] updated missing rename and updated code based on feedback --- src/Bicep.Cli/Commands/LocalDeployCommand.cs | 4 +- .../Handlers/LocalDeployHandler.cs | 4 +- .../EndToEndDeploymentTests.cs | 6 +-- ...rovider.cs => AzExtensibilityExtension.cs} | 4 +- .../Extensibility/ExtensionInfo.cs | 13 ++++++ ...vider.cs => GrpcExtensibilityExtension.cs} | 8 ++-- ...ider.cs => LocalExtensibilityExtension.cs} | 2 +- .../LocalExtensibilityHandler.cs | 38 ++++++++--------- .../LocalDeploymentEngineHost.cs | 10 ++++- src/Bicep.Local.Extension/extension.proto | 42 +++++++++---------- 10 files changed, 75 insertions(+), 56 deletions(-) rename src/Bicep.Local.Deploy/Extensibility/{AzExtensibilityProvider.cs => AzExtensibilityExtension.cs} (95%) create mode 100644 src/Bicep.Local.Deploy/Extensibility/ExtensionInfo.cs rename src/Bicep.Local.Deploy/Extensibility/{GrpcExtensibilityProvider.cs => GrpcExtensibilityExtension.cs} (94%) rename src/Bicep.Local.Deploy/Extensibility/{LocalExtensibilityProvider.cs => LocalExtensibilityExtension.cs} (92%) diff --git a/src/Bicep.Cli/Commands/LocalDeployCommand.cs b/src/Bicep.Cli/Commands/LocalDeployCommand.cs index b43ad5acf5f..e0b123196c6 100644 --- a/src/Bicep.Cli/Commands/LocalDeployCommand.cs +++ b/src/Bicep.Cli/Commands/LocalDeployCommand.cs @@ -65,8 +65,8 @@ parameters.Parameters is not { } parametersString || return 1; } - await using LocalExtensibilityHandler extensibilityHandler = new(moduleDispatcher, GrpcExtensibilityProvider.Start); - await extensibilityHandler.InitializeProviders(compilation); + await using LocalExtensibilityHandler extensibilityHandler = new(moduleDispatcher, GrpcExtensibilityExtension.Start); + await extensibilityHandler.InitializeExtensions(compilation); var result = await LocalDeployment.Deploy(extensibilityHandler, templateString, parametersString, cancellationToken); diff --git a/src/Bicep.LangServer/Handlers/LocalDeployHandler.cs b/src/Bicep.LangServer/Handlers/LocalDeployHandler.cs index 2334c5bc602..0df6823c7d9 100644 --- a/src/Bicep.LangServer/Handlers/LocalDeployHandler.cs +++ b/src/Bicep.LangServer/Handlers/LocalDeployHandler.cs @@ -81,8 +81,8 @@ public async Task Handle(LocalDeployRequest request, Cancel throw new InvalidOperationException("Bicep file had errors."); } - await using LocalExtensibilityHandler extensibilityHandler = new(moduleDispatcher, GrpcExtensibilityProvider.Start); - await extensibilityHandler.InitializeProviders(context.Compilation); + await using LocalExtensibilityHandler extensibilityHandler = new(moduleDispatcher, GrpcExtensibilityExtension.Start); + await extensibilityHandler.InitializeExtensions(context.Compilation); var result = await LocalDeployment.Deploy(extensibilityHandler, templateString, parametersString, cancellationToken); diff --git a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs index e1990473ab4..0f4bf549ddb 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs @@ -44,7 +44,7 @@ public async Task End_to_end_deployment_basic() } """), ("main.bicep", """ -provider http +extension http param coords { lattitude: string @@ -95,7 +95,7 @@ param coords { { "namespace", "someNamespace" } }; - var providerMock = StrictMock.Of(); + var providerMock = StrictMock.Of(); providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) .Returns((req, _) => { @@ -136,7 +136,7 @@ param coords { }); await using LocalExtensibilityHandler extensibilityHandler = new(BicepTestConstants.ModuleDispatcher, uri => Task.FromResult(providerMock.Object)); - await extensibilityHandler.InitializeProviders(result.Compilation); + await extensibilityHandler.InitializeExtensions(result.Compilation); var localDeployResult = await LocalDeployment.Deploy(extensibilityHandler, templateFile, parametersFile, TestContext.CancellationTokenSource.Token); diff --git a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityExtension.cs similarity index 95% rename from src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs rename to src/Bicep.Local.Deploy/Extensibility/AzExtensibilityExtension.cs index 05572fb5266..2382e4f9ab8 100644 --- a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityExtension.cs @@ -15,11 +15,11 @@ namespace Bicep.Local.Deploy.Extensibility; -public class AzExtensibilityProvider : LocalExtensibilityProvider +public class AzExtensibilityExtension : LocalExtensibilityExtension { private readonly LocalExtensibilityHandler extensibilityHandler; - public AzExtensibilityProvider(LocalExtensibilityHandler extensibilityHandler) + public AzExtensibilityExtension(LocalExtensibilityHandler extensibilityHandler) { this.extensibilityHandler = extensibilityHandler; } diff --git a/src/Bicep.Local.Deploy/Extensibility/ExtensionInfo.cs b/src/Bicep.Local.Deploy/Extensibility/ExtensionInfo.cs new file mode 100644 index 00000000000..74bea9da660 --- /dev/null +++ b/src/Bicep.Local.Deploy/Extensibility/ExtensionInfo.cs @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Bicep.Local.Deploy.Extensibility +{ + public readonly record struct ExtensionInfo(string ExtensionName, string ExtensionVersion, string Method); +} diff --git a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityExtension.cs similarity index 94% rename from src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs rename to src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityExtension.cs index 7fbe1e393a4..26385e6b240 100644 --- a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityExtension.cs @@ -26,18 +26,18 @@ namespace Bicep.Local.Deploy.Extensibility; -public class GrpcExtensibilityProvider : LocalExtensibilityProvider +public class GrpcExtensibilityExtension : LocalExtensibilityExtension { private readonly BicepExtension.BicepExtensionClient client; private readonly Process process; - private GrpcExtensibilityProvider(BicepExtension.BicepExtensionClient client, Process process) + private GrpcExtensibilityExtension(BicepExtension.BicepExtensionClient client, Process process) { this.client = client; this.process = process; } - public static async Task Start(Uri pathToBinary) + public static async Task Start(Uri pathToBinary) { var socketName = $"{Guid.NewGuid()}.tmp"; var socketPath = Path.Combine(Path.GetTempPath(), socketName); @@ -79,7 +79,7 @@ public static async Task Start(Uri pathToBinary) await GrpcChannelHelper.WaitForConnectionAsync(client, cts.Token); - return new GrpcExtensibilityProvider(client, process); + return new GrpcExtensibilityExtension(client, process); } catch (Exception ex) { diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityExtension.cs similarity index 92% rename from src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs rename to src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityExtension.cs index dd5a796f9ea..550ff297d91 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityProvider.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityExtension.cs @@ -7,7 +7,7 @@ namespace Bicep.Local.Deploy.Extensibility; -public abstract class LocalExtensibilityProvider : IAsyncDisposable +public abstract class LocalExtensibilityExtension : IAsyncDisposable { public abstract Task Delete(ResourceReferenceRequestBody request, CancellationToken cancellationToken); diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs index bb8d21d5057..c48a1d37aa9 100644 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs @@ -26,37 +26,35 @@ namespace Bicep.Local.Deploy.Extensibility; public class LocalExtensibilityHandler : IAsyncDisposable { - private record ProviderKey( + private record ExtensionKey( string Name, string Version); - private Dictionary RegisteredProviders = new(); + private Dictionary RegisteredExtensions = new(); private readonly IModuleDispatcher moduleDispatcher; - private readonly Func> providerFactory; + private readonly Func> extensionFactory; - public LocalExtensibilityHandler(IModuleDispatcher moduleDispatcher, Func> providerFactory) + public LocalExtensibilityHandler(IModuleDispatcher moduleDispatcher, Func> extensionFactory) { this.moduleDispatcher = moduleDispatcher; - this.providerFactory = providerFactory; + this.extensionFactory = extensionFactory; // Built in provider for handling nested deployments - RegisteredProviders[new("LocalNested", "0.0.0")] = new AzExtensibilityProvider(this); + RegisteredExtensions[new("LocalNested", "0.0.0")] = new AzExtensibilityExtension(this); } public async Task CallExtensibilityHost( - string extensionName, - string extensionVersion, - string method, + ExtensionInfo extensionInfo, HttpContent content, CancellationToken cancellationToken) { - var provider = RegisteredProviders[new(extensionName, extensionVersion)]; + var extension = RegisteredExtensions[new(extensionInfo.ExtensionName, extensionInfo.ExtensionVersion)]; - return await CallProvider(method, provider, content, cancellationToken); + return await CallExtension(extensionInfo.Method, extension, content, cancellationToken); } - private async Task CallProvider( + private async Task CallExtension( string method, - LocalExtensibilityProvider provider, + LocalExtensibilityExtension provider, HttpContent content, CancellationToken cancellationToken) { @@ -70,7 +68,7 @@ private async Task CallProvider( }; } - private IEnumerable<(NamespaceType namespaceType, Uri binaryUri)> GetBinaryProviders(Compilation compilation) + private IEnumerable<(NamespaceType namespaceType, Uri binaryUri)> GetBinaryExtensions(Compilation compilation) { var namespaceTypes = compilation.GetAllBicepModels() .Select(x => x.Root.NamespaceResolver) @@ -87,20 +85,20 @@ private async Task CallProvider( } } - public async Task InitializeProviders(Compilation compilation) + public async Task InitializeExtensions(Compilation compilation) { - var binaryProviders = GetBinaryProviders(compilation).DistinctBy(x => x.binaryUri); + var binaryExtensions = GetBinaryExtensions(compilation).DistinctBy(x => x.binaryUri); - foreach (var (namespaceType, binaryUri) in binaryProviders) + foreach (var (namespaceType, binaryUri) in binaryExtensions) { - ProviderKey providerKey = new(namespaceType.Settings.ArmTemplateProviderName, namespaceType.Settings.ArmTemplateProviderVersion); - RegisteredProviders[providerKey] = await providerFactory(binaryUri); + ExtensionKey providerKey = new(namespaceType.Settings.ArmTemplateProviderName, namespaceType.Settings.ArmTemplateProviderVersion); + RegisteredExtensions[providerKey] = await extensionFactory(binaryUri); } } public async ValueTask DisposeAsync() { - await Task.WhenAll(RegisteredProviders.Values.Select(async provider => + await Task.WhenAll(RegisteredExtensions.Values.Select(async provider => { try { diff --git a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs index 2bb0bf70d20..d5707a22f81 100644 --- a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs +++ b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs @@ -50,6 +50,12 @@ public class LocalDeploymentEngineHost : DeploymentEngineHostBase { private readonly LocalExtensibilityHandler extensibilityHandler; + /*var extensionName = requestUri.Segments[^4].TrimEnd('/'); + var extensionVersion = requestUri.Segments[^3].TrimEnd('/'); + var method = requestUri.Segments[^1].TrimEnd('/');*/ + + private record ExtensibilityV2ExtensionInfo(string ExtensionName, string ExtensionVersion, string Method); + public LocalDeploymentEngineHost( LocalExtensibilityHandler extensibilityHandler, IDeploymentsRequestContext requestContext, @@ -152,7 +158,9 @@ public override async Task CallExtensibilityHostV2( var extensionName = requestUri.Segments[^4].TrimEnd('/'); var extensionVersion = requestUri.Segments[^3].TrimEnd('/'); var method = requestUri.Segments[^1].TrimEnd('/'); - var extensibilityResponse = await extensibilityHandler.CallExtensibilityHost(extensionName, extensionVersion, method, content, cancellationToken); + + var extensionInfo = new ExtensionInfo(extensionName, extensionVersion, method); + var extensibilityResponse = await extensibilityHandler.CallExtensibilityHost(extensionInfo, content, cancellationToken); var response = new HttpResponseMessage(HttpStatusCode.OK) { diff --git a/src/Bicep.Local.Extension/extension.proto b/src/Bicep.Local.Extension/extension.proto index 376814395f9..9299190f264 100644 --- a/src/Bicep.Local.Extension/extension.proto +++ b/src/Bicep.Local.Extension/extension.proto @@ -15,37 +15,37 @@ service BicepExtension { message Empty {} message ResourceRequestBody { - optional string config = 1; - string type = 2; - optional string apiVersion = 3; - string properties = 4; + optional string config = 1; + string type = 2; + optional string apiVersion = 3; + string properties = 4; } message ResourceReferenceRequestBody { - string identifiers = 1; - optional string config = 2; - string type = 3; - optional string apiVersion = 4; + string identifiers = 1; + optional string config = 2; + string type = 3; + optional string apiVersion = 4; } message ResourceResponseBody { - optional string identifiers = 1; - string type = 2; - optional string status = 3; - string properties = 4; - optional ErrorPayload error = 5; + optional string identifiers = 1; + string type = 2; + optional string status = 3; + string properties = 4; + optional ErrorPayload error = 5; } message ErrorPayload { - string code = 1; - optional string target = 2; - string message = 3; - repeated ErrorDetail details = 4; - optional string innerError = 5; + string code = 1; + optional string target = 2; + string message = 3; + repeated ErrorDetail details = 4; + optional string innerError = 5; } message ErrorDetail { - string code = 1; - optional string target = 2; - string message = 3; + string code = 1; + optional string target = 2; + string message = 3; } \ No newline at end of file From 3cd71691005d30c44cbe58dce46db8e4e23c6f4f Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Mon, 1 Jul 2024 15:11:01 -0700 Subject: [PATCH 09/15] nit message update --- src/Bicep.Core/Emit/TemplateWriter.cs | 33 ++++++++++++++------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/Bicep.Core/Emit/TemplateWriter.cs b/src/Bicep.Core/Emit/TemplateWriter.cs index 58fd37a8c57..8625f0aa676 100644 --- a/src/Bicep.Core/Emit/TemplateWriter.cs +++ b/src/Bicep.Core/Emit/TemplateWriter.cs @@ -135,7 +135,7 @@ public void Write(SourceAwareJsonTextWriter writer) this.EmitVariablesIfPresent(emitter, program.Variables.Concat(Context.ImportClosureInfo.ImportedVariablesInClosure)); - this.EmitProviders(emitter, program.Providers); + this.EmitExtensionsIfPresent(emitter, program.Providers); this.EmitResources(jsonWriter, emitter, program.Resources, program.Modules); @@ -994,24 +994,25 @@ private void EmitVariablesIfPresent(ExpressionEmitter emitter, IEnumerable providers) + private void EmitExtensionsIfPresent(ExpressionEmitter emitter, ImmutableArray providers) { if (!providers.Any()) { return; } + // TODO: Remove if statement once all providers got migrated to extensions (extensibility v2 contract). if (this.Context.SemanticModel.Features.LocalDeployEnabled) { - EmitProvidersV2(emitter, providers.Add(GetProviderForLocalDeploy())); + EmitExtensions(emitter, providers.Add(GetExtensionForLocalDeploy())); } else { - EmitProvidersV1(emitter, providers); + EmitProviders(emitter, providers); } } - private static void EmitProvidersV1(ExpressionEmitter emitter, ImmutableArray providers) + private static void EmitProviders(ExpressionEmitter emitter, ImmutableArray providers) { emitter.EmitObjectProperty("imports", () => { @@ -1032,7 +1033,7 @@ private static void EmitProvidersV1(ExpressionEmitter emitter, ImmutableArray providers) + private void EmitExtensions(ExpressionEmitter emitter, ImmutableArray providers) { emitter.EmitObjectProperty("extensions", () => { @@ -1045,14 +1046,14 @@ private void EmitProvidersV2(ExpressionEmitter emitter, ImmutableArray + emitter.EmitObjectProperty(extensionConfigName, () => { - switch (providerConfigType) + switch (extensionConfigType) { case StringType: emitter.EmitProperty("type", "string"); break; default: - throw new ArgumentException($"Config name: '{providerConfigName}' has an invalid type: '{providerConfigType}'. Supported types are: 'string, secureString'"); + throw new ArgumentException($"Config name: '{extensionConfigName}' has an invalid type: '{extensionConfigType}'. Supported types are: 'string, secureString'"); } emitter.EmitProperty("defaultValue", providerConfigProperty.Value); @@ -1091,7 +1092,7 @@ private void EmitProviderV2Config(DeclaredProviderExpression provider, Expressio }); } - private TypeSymbol GetProviderConfigType(string configName, ObjectType configType) + private TypeSymbol GetExtensionConfigType(string configName, ObjectType configType) { if (configType.Properties.TryGetValue(configName) is { } configItem) { @@ -1101,7 +1102,7 @@ private TypeSymbol GetProviderConfigType(string configName, ObjectType configTyp throw new UnreachableException($"Configuration name: '{configName}' does not exist as part of provider configuration."); } - private DeclaredProviderExpression GetProviderForLocalDeploy() + private DeclaredProviderExpression GetExtensionForLocalDeploy() { return new( null, From 765d5207c98fac64e57db40e81c5e2cade7750ea Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Tue, 2 Jul 2024 06:12:27 -0700 Subject: [PATCH 10/15] merge from master --- .../BicepTestProject/packages.lock.json | 46 - .../packages.lock.json | 1900 -------------- .../packages.lock.json | 354 --- .../packages.lock.json | 1348 ---------- .../packages.lock.json | 1465 ----------- .../packages.lock.json | 2190 ----------------- .../packages.lock.json | 1074 -------- 7 files changed, 8377 deletions(-) delete mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/TestSolution/BicepTestProject/packages.lock.json delete mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/packages.lock.json delete mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.ItemTemplate/packages.lock.json delete mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.TestServices/packages.lock.json delete mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.UnitTests/packages.lock.json delete mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.Vsix/packages.lock.json delete mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient/packages.lock.json diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/TestSolution/BicepTestProject/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/TestSolution/BicepTestProject/packages.lock.json deleted file mode 100644 index 0a14f3bdf01..00000000000 --- a/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/TestSolution/BicepTestProject/packages.lock.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "version": 1, - "dependencies": { - "net6.0": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": { - "type": "Direct", - "requested": "[3.3.3, )", - "resolved": "3.3.3", - "contentHash": "vvz3XCHVrd/Ks4xPoutLmL/T2+8JcOk/OMs3ngwQqnzokQCGEDsY+WjK/txCsDWU29sX3fGzH/FnYwNV93O1mA==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[1.1.1, )", - "resolved": "1.1.1", - "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "1.1.1", - "Microsoft.SourceLink.Common": "1.1.1" - } - }, - "Nerdbank.GitVersioning": { - "type": "Direct", - "requested": "[3.5.113, )", - "resolved": "3.5.113", - "contentHash": "4fBSMkqhi410qlkjPm+Mxfk8iO3C7dmgdVS7ljsfVO21WEzZCHP1VCOqB6rlOPfPidR/oxX+/Do/I7meCAz+Jg==" - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "1.1.1", - "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" - } - }, - "net6.0/linux-arm64": {}, - "net6.0/linux-musl-x64": {}, - "net6.0/linux-x64": {}, - "net6.0/osx-arm64": {}, - "net6.0/osx-x64": {}, - "net6.0/win-arm64": {}, - "net6.0/win-x64": {} - } -} diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/packages.lock.json deleted file mode 100644 index eadb5960c85..00000000000 --- a/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/packages.lock.json +++ /dev/null @@ -1,1900 +0,0 @@ -{ - "version": 1, - "dependencies": { - ".NETFramework,Version=v4.7.2": { - "FluentAssertions": { - "type": "Direct", - "requested": "[6.9.0, )", - "resolved": "6.9.0", - "contentHash": "Z+alhbX6FreF+buZlOpP4jt93wofAdAzyUngcDNHYcuVsDUh/rjIB9WcqXctxffh4XZ3xUG/Ew4UgULSP/kUZg==", - "dependencies": { - "System.Net.Http": "4.3.4", - "System.Threading.Tasks.Extensions": "4.5.0" - } - }, - "Microsoft.CodeAnalysis.BannedApiAnalyzers": { - "type": "Direct", - "requested": "[3.3.4, )", - "resolved": "3.3.4", - "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" - }, - "Microsoft.CodeAnalysis.CSharp.CodeStyle": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" - }, - "Microsoft.Net.Compilers.Toolset": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "2j3UDVESH3nVyOr3EF3Om0nSfbZ70dRfiSxmFEoCMar9fApOsns+Odv6g3bMH8rZriY6G4x3LCsnsDl+CEt5KQ==" - }, - "Microsoft.NET.Test.Sdk": { - "type": "Direct", - "requested": "[17.9.0, )", - "resolved": "17.9.0", - "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==", - "dependencies": { - "Microsoft.CodeCoverage": "17.9.0" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "Microsoft.Test.Apex.VisualStudio": { - "type": "Direct", - "requested": "[17.9.34701.34, )", - "resolved": "17.9.34701.34", - "contentHash": "jUpqt3cjbXlcmyDUH4cuS+ZR6p3AHV5Uvoo5YQ27wmkjOmH827gfUVV+hJaaNOt6Kgo13asTzKfFHPwfefQoLQ==", - "dependencies": { - "MSTest.TestAdapter": "3.0.3", - "MSTest.TestFramework": "3.0.3" - } - }, - "Microsoft.VisualStudio.Composition": { - "type": "Direct", - "requested": "[17.7.40, )", - "resolved": "17.7.40", - "contentHash": "BjQMHw97eZFaP+5Ng0iJaHOFGmRowZHfHRHWZGlz3h9eC1bEwNSaBXZT+tha9NhR+jPRnK1xNwCeoPtN8U0yMQ==", - "dependencies": { - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Composition": "7.0.0", - "System.Composition.AttributedModel": "7.0.0", - "System.Reflection.Metadata": "7.0.0", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "Microsoft.VisualStudio.Editor": { - "type": "Direct", - "requested": "[17.2.3194, )", - "resolved": "17.2.3194", - "contentHash": "24RGth15SXCwIiZB9n7juG0SxiUyirD9dAzLrqTulkVZZlqQjv6iJWy4QC6KmaVISFbjHjTGUCn2mP38D1vi1A==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.GraphModel": "17.2.32330.158", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", - "Microsoft.VisualStudio.Language": "17.2.3194", - "Microsoft.VisualStudio.RpcContracts": "17.2.31", - "Microsoft.VisualStudio.Shell.15.0": "17.2.32330.158", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "Microsoft.VisualStudio.Text.Logic": "17.2.3194", - "Microsoft.VisualStudio.Text.UI": "17.2.3194", - "Microsoft.VisualStudio.Text.UI.Wpf": "17.2.3194", - "Microsoft.VisualStudio.Threading": "17.2.32", - "Microsoft.VisualStudio.Validation": "17.0.53" - } - }, - "Microsoft.VisualStudio.Shell.Framework": { - "type": "Direct", - "requested": "[17.9.37000, )", - "resolved": "17.9.37000", - "contentHash": "Inem6IWh7sCSkn2Up6w8hCJziHkwnlIwxHbIihDOFLNj70eMmxtYbrK/YK5Wj/3/hlWXyQM0m5GxPZiLVKjOfA==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.Build.Framework": "17.9.5", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.GraphModel": "17.9.37000", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", - "Microsoft.VisualStudio.Interop": "17.9.37000", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities": "17.9.37000", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Threading.Analyzers": { - "type": "Direct", - "requested": "[17.10.48, )", - "resolved": "17.10.48", - "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" - }, - "MSTest.TestAdapter": { - "type": "Direct", - "requested": "[3.4.0, )", - "resolved": "3.4.0", - "contentHash": "s8SNJ09FY8slmrPHIyNtAZbPbL1KP/5r/25DFYhQ6o1e/ETYZgcUx00eib8a3n2nCsPWrql79QXRI58PNbquAQ==", - "dependencies": { - "Microsoft.Testing.Extensions.VSTestBridge": "1.2.1", - "Microsoft.Testing.Platform.MSBuild": "1.2.1" - } - }, - "MSTest.TestFramework": { - "type": "Direct", - "requested": "[3.3.1, )", - "resolved": "3.3.1", - "contentHash": "020SuA2p8N7o+/AHC0SLgzGpyS1hNjR8m5tWxnuGqJ3HeJhArUbuPAU8RZr8Ll38ij8oiutGCkQ/G+ymyO51Ow==" - }, - "Nerdbank.GitVersioning": { - "type": "Direct", - "requested": "[3.6.133, )", - "resolved": "3.6.133", - "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" - }, - "MediatR": { - "type": "Transitive", - "resolved": "8.1.0", - "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" - }, - "MessagePack": { - "type": "Transitive", - "resolved": "2.5.108", - "contentHash": "kcVRbdWP3xNWLZmmpm4DFO+kuXf6mUR2mHZ27WoZIEFIv9hazuUd80injXhNrZnlq/FklAdCsLOil5M76I4Ndg==", - "dependencies": { - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.NET.StringTools": "17.4.0", - "System.Collections.Immutable": "6.0.0", - "System.Reflection.Emit": "4.7.0", - "System.Reflection.Emit.Lightweight": "4.7.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "MessagePack.Annotations": { - "type": "Transitive", - "resolved": "2.5.108", - "contentHash": "28aNCvfJClgwaKr26gf2S6LT+C1PNyPxiG+ihYpy8uCJsRLJEDoCt2I0Uk5hqOPQ8P8hI0ESy520oMkZkPmsOQ==" - }, - "Microsoft.ApplicationInsights": { - "type": "Transitive", - "resolved": "2.22.0", - "contentHash": "3AOM9bZtku7RQwHyMEY3tQMrHIgjcfRDa6YQpd/QG2LDGvMydSlL9Di+8LLMt7J2RDdfJ7/2jdYv6yHcMJAnNw==", - "dependencies": { - "System.Diagnostics.DiagnosticSource": "5.0.0" - } - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build": { - "type": "Transitive", - "resolved": "16.8.0", - "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", - "dependencies": { - "Microsoft.Build.Framework": "16.8.0", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", - "System.Collections.Immutable": "1.5.0", - "System.Memory": "4.5.3", - "System.Text.Json": "4.7.0", - "System.Threading.Tasks.Dataflow": "4.9.0" - } - }, - "Microsoft.Build.Framework": { - "type": "Transitive", - "resolved": "17.9.5", - "contentHash": "CjRmqu9Wv2fyC1d7NKOuBDXcNMI8+GiXGM6izygB+skGGu4Vf0cBcoPq7AFqZCcMpn5DtZ+y7RpaLpB2qrzanQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CodeCoverage": { - "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.Logging": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Options.ConfigurationExtensions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.IO.Redist": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "uxXZ8pAcYtIJm8iqu/0e+CkM/VSwfgbHpnCDu7s8+gn/VUD5R6PxH3RGZFPaHgTisrlwD+BIyL5TqG6qwuZtOQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.NET.StringTools": { - "type": "Transitive", - "resolved": "17.9.5", - "contentHash": "C/oPRnjcIZBRzcpl1V06R1eEMCxOGt6mIm+8ioyblELgJEXLM8XjUPuCwljMO52VetsHw54xMcYwU8UEeHEIEg==", - "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": "4.4.22", - "contentHash": "j1tTGfD977w7eorHfgUS7mARtNufQtig9YqDrLi8CbS4HJU22pBm8Qu+F/9EsnA0XsQWFJo2BcqGWRlWdjXbCw==" - }, - "Microsoft.ServiceHub.Framework": { - "type": "Transitive", - "resolved": "4.4.22", - "contentHash": "fGRLbxg+J2xyoyNxI8x4gcrbc1ouMyob63kFG7xrteOUboyMIfAgIye8d7SnliTMwbcYStVYsELSE0GrHX8Pjw==", - "dependencies": { - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.VisualStudio.Composition": "17.6.17", - "Microsoft.VisualStudio.Threading": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "Nerdbank.Streams": "2.10.69", - "StreamJsonRpc": "2.16.41", - "System.Collections.Immutable": "7.0.0", - "System.Text.Json": "7.0.3" - } - }, - "Microsoft.ServiceHub.Resources": { - "type": "Transitive", - "resolved": "4.4.4171", - "contentHash": "0+hr177wzlS6m9IXjG9EW8BzyqfT+mGFL49NHlRKQHRVzSl2NUBI3yrftlFyz6oNgbsyitTkkWcHe2VYN/vpfQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Microsoft.Testing.Extensions.Telemetry": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "MKGxwQhDDEoTS/ntFb21Z6Bxh9VvknmSLgEWH+NFD86fbcIqE2Al8lrXkQPeH+AqCvlhx2WnPLKd81T2PXc2dw==", - "dependencies": { - "Microsoft.ApplicationInsights": "2.22.0", - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Extensions.TrxReport.Abstractions": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "46SnzaLR+SDaTtBWy49xdFm/rI40I8nZtziqnt2d4lgILKovWPnkM8Pehnga/uwl+OznVIh0XuRsN3NokkX1TQ==", - "dependencies": { - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Extensions.VSTestBridge": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "Tu8CWHEwV/92WM2DRr/qeIdH243diV5s43ODPLl13XeRqGbZlu9lk7X0a7kcxhp0BLRlA3fqMW3F6RynrnDrPw==", - "dependencies": { - "Microsoft.ApplicationInsights": "2.22.0", - "Microsoft.TestPlatform.ObjectModel": "17.5.0", - "Microsoft.Testing.Extensions.Telemetry": "1.2.1", - "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.2.1", - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Platform": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "mb7irPwqjgusJ05BxuQ5KP6uofWaoDr/dfjFNItX1Q1Ntv3EDMr3CeLInrlU2PNcPwwObw4X6bZG7wJvvFjKZQ==" - }, - "Microsoft.Testing.Platform.MSBuild": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "leUhW4iQNy7vmPk5uRHd4OROqfRtugWDQkWL/4AD17gxZwAAwGCaTcrqG0YVPi7uuZ+lj2Loa6kU7hBLA/v5+w==", - "dependencies": { - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.TestPlatform.ObjectModel": { - "type": "Transitive", - "resolved": "17.5.0", - "contentHash": "QwiBJcC/oEA1kojOaB0uPWOIo4i6BYuTBBYJVhUvmXkyYqZ2Ut/VZfgi+enf8LF8J4sjO98oRRFt39MiRorcIw==", - "dependencies": { - "NuGet.Frameworks": "5.11.0", - "System.Reflection.Metadata": "1.6.0" - } - }, - "Microsoft.VisualStudio.ComponentModelHost": { - "type": "Transitive", - "resolved": "17.2.3190", - "contentHash": "Ny42WwcnrvrsbpMDYuuIhG1h2WOKj/Ix6SxNc/PBxPIbnlI3K4h75L00rrWtqiXdnZIQ/dwT3YmQHWEDj3sulg==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", - "Microsoft.VisualStudio.Interop": "17.2.32330.158", - "Microsoft.VisualStudio.Validation": "17.0.53", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.Composition.Analyzers": { - "type": "Transitive", - "resolved": "17.7.40", - "contentHash": "rgFie5cK34I310RrLjjBnfH+bmOM7gUtcx8+PH65f1TeVQkWZzxr1b2/QsH/tHt3bsipvKghhp2VkUtLO5x8wA==" - }, - "Microsoft.VisualStudio.CoreUtility": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "bcPvoEHxv6EYWgNsFnwg8vlEB90MB44LWvuJtCRf3cOCCAGjMcDysLtq5IThaIIVsL5uvb3bv4i+f1L7NNGwjQ==", - "dependencies": { - "Microsoft.VisualStudio.Threading": "17.2.32", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.GraphModel": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "8JLGacPJ57RtKXXPr21jBE54mIwFi7hvWgM/PNGTOSwKMccCrcoayfv7gRb+hbtbhVwqEfTMi+xfMs32uF60SA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000", - "System.ComponentModel.Composition": "8.0.0" - } - }, - "Microsoft.VisualStudio.ImageCatalog": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "cKfl2RJ/7SevIlBeOAQNVGTDtpK7IOedOltdOk9W3nDmW8Uj3dmGg5bsRLv9bwSAhTxeh9Al0c9K01jgcRU29A==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100" - } - }, - "Microsoft.VisualStudio.Imaging": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "vKp3F+ORaRKd9Z2A28yTM7H6/QvmzSJE6ceVlimRSmNRFz/ANysYDwTMpCxCKbzwb5tVhlQxNIKqAFuwgYVPEQ==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Threading": "17.2.32", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "Microsoft.VisualStudio.Validation": "17.0.53", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "k0OtC0xLjVelFL9HVUNfOWA6qL+F+MDRyWCN1sJ/QzizTNUXWfOVVAv7Vpbz4Bf+0tmOhjS/KL3iS6brg+a8hg==" - }, - "Microsoft.VisualStudio.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" - }, - "Microsoft.VisualStudio.Language": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "1tepx+XpLYhbn0DcoNOQz2FbPhk6HOZnTHzX18OydArP0/GnCcLbb50drT0/S4iZ26mSANzw0NfrMJnegEGTpg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "Microsoft.VisualStudio.Text.Logic": "17.2.3194", - "Microsoft.VisualStudio.Text.UI": "17.2.3194", - "StreamJsonRpc": "2.11.35", - "System.ComponentModel.Composition": "6.0.0", - "System.Private.Uri": "4.3.2" - } - }, - "Microsoft.VisualStudio.LanguageServer.Client": { - "type": "Transitive", - "resolved": "17.2.2105", - "contentHash": "nIECUBSgRnpz5Dhfy+SlCJB5eMy7UIO7ZzP07bhecNVivOnAPQdh+uJj7EpYKlOgB95CHuSAB/L58vLLxXN/BA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3192", - "Microsoft.VisualStudio.Shell.15.0": "17.2.32406.100", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "Microsoft.VisualStudio.Validation": "17.0.53", - "StreamJsonRpc": "2.11.35" - } - }, - "Microsoft.VisualStudio.LanguageServer.Protocol": { - "type": "Transitive", - "resolved": "17.2.8", - "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", - "dependencies": { - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.VisualStudio.ProjectAggregator": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "1TuECpI8kKRAkc2kPI5Z5XHBcsJbyeG5vtAAfbYpFkNOXOkyoS8oOAX39b9Vp1jDb8jdSARfTUsdIM3BmlYE+g==" - }, - "Microsoft.VisualStudio.RemoteControl": { - "type": "Transitive", - "resolved": "16.3.52", - "contentHash": "+MgP1+Rtt1uJZyqhf7+H6KAQ57wc7v00ixuLhEgFggIbmW2/29YXfPK7gLvXw+vU7vimuM47cqAHrnB7RWYqtg==", - "dependencies": { - "Microsoft.VisualStudio.Utilities.Internal": "16.3.42" - } - }, - "Microsoft.VisualStudio.RpcContracts": { - "type": "Transitive", - "resolved": "17.9.7", - "contentHash": "Vzu2tCqKQxaBc1i5VF6hF6Wg+EhNRA27voQ8XPgQ2MxrzQRheivH92xvkynpE5hWYg+qeH29axH/wOMDZ9MnmQ==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "4.2.100", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "Microsoft.VisualStudio.SDK.Analyzers": { - "type": "Transitive", - "resolved": "16.10.10", - "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", - "dependencies": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", - "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" - } - }, - "Microsoft.VisualStudio.Setup.Configuration.Interop": { - "type": "Transitive", - "resolved": "3.9.2164", - "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" - }, - "Microsoft.VisualStudio.Shell.15.0": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "8jzfqOOZfMwtIwWkut+7MC/S8Ds0zLHmS1Ljdph2tWwIApgGPsy8Bi+0uVwb9uPhEDgEsAROOOtE8DdG5VpErg==", - "dependencies": { - "Microsoft.Build.Framework": "17.1.0", - "Microsoft.VisualStudio.ComponentModelHost": "17.2.3190", - "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", - "Microsoft.VisualStudio.ImageCatalog": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100", - "Microsoft.VisualStudio.ProjectAggregator": "17.2.32406.100", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Shell.Framework": "17.2.32406.100", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100" - } - }, - "Microsoft.VisualStudio.Shell.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.10.40170" - } - }, - "Microsoft.VisualStudio.Telemetry": { - "type": "Transitive", - "resolved": "17.9.305", - "contentHash": "dWQlTc3o1zvnr0dFD+ZpC04gZtP3pzAMEQBK2oqPZoMRm4n3cj5sSNSlSugDjWHAnVAKzses/ZTvR2SHTyCQNA==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.VisualStudio.Text.Data": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "ZyUCnWT+Dr5TdcvaArPN8ijXu76jM7de7NLvaaaQyZXoUzHYzNQz0fzoRlxRYET9cvDu6tsCZT431JxKPn5p9w==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Threading": "17.2.32" - } - }, - "Microsoft.VisualStudio.Text.Logic": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "R3n80K1+OwW1lRCKifzfAnXbgb7PJvKELzxtaDGxo8SoNnUTXkO0P2qSK5Y0jFoJK+7yfLOxpQNhfIFKTE4igg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.Text.UI": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "UGegXrUnqhhXhlZsbklBZIp4wd0vHZQitkWMTR13SdwVQPUdpQYRNgsom9FBxM+3t9f8Dreg4ALt0SXFnCL3Yw==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "Microsoft.VisualStudio.Text.Logic": "17.2.3194", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.Text.UI.Wpf": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "cIqcmdw5wrgDK5BohuOOjXJbn3dkoRDsN6mohWV8Y4faA3oZMxuLB3ljKQNPq5B8rG6Z7ZS2z6u9W/vFpPwAmA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "Microsoft.VisualStudio.Text.Logic": "17.2.3194", - "Microsoft.VisualStudio.Text.UI": "17.2.3194" - } - }, - "Microsoft.VisualStudio.Threading": { - "type": "Transitive", - "resolved": "17.9.28", - "contentHash": "n1bG965yT/7QHChX4x8zJ28LDaNdlJ6AgzthU3XzCsV9fVAMXYJEFi6BbWt8EM+7t0Wz9Oy021VMH2Z/iyz/Qw==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Utilities": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "tiNenrZYKSxC/i0LDcXbENeuJDzxKgYFd+LA4iwI18LMN85ThffoFbvGij5CQ6IBa6FWL8VQGlPuE65iMXWfNQ==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Utilities.Internal": { - "type": "Transitive", - "resolved": "16.3.56", - "contentHash": "QX5UVVk4+/rPu3Xy3QRAntNBy/3VMl2whwSlt73Ksp6MRf5ersUopgmHbkEnWSTX6e/SZf+mfqTmvdk67URH2Q==" - }, - "Microsoft.VisualStudio.Validation": { - "type": "Transitive", - "resolved": "17.8.8", - "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g==" - }, - "Microsoft.VisualStudio.Workspace": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", - "dependencies": { - "Microsoft.IO.Redist": "4.7.1", - "Microsoft.VisualStudio.Composition": "16.4.11", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Workspace.Extensions": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", - "dependencies": { - "Microsoft.Build": "16.8.0", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" - } - }, - "Microsoft.VisualStudio.Workspace.VSIntegration": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", - "dependencies": { - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", - "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" - } - }, - "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.10.69", - "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "System.IO.Pipelines": "7.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.3", - "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" - }, - "NuGet.Frameworks": { - "type": "Transitive", - "resolved": "5.11.0", - "contentHash": "eaiXkUjC4NPcquGWzAGMXjuxvLwc6XGKMptSyOGQeT0X70BUZObuybJFZLA0OfTdueLd3US23NBPTBb6iF3V1Q==" - }, - "OmniSharp.Extensions.JsonRpc": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", - "dependencies": { - "MediatR": "8.1.0", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.Extensions.Logging": "6.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", - "System.Collections.Immutable": "5.0.0", - "System.Reactive": "6.0.0", - "System.Threading.Channels": "6.0.0" - } - }, - "OmniSharp.Extensions.JsonRpc.Generators": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" - }, - "OmniSharp.Extensions.LanguageProtocol": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.LanguageProtocol": "0.19.9", - "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer.Shared": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", - "dependencies": { - "OmniSharp.Extensions.LanguageProtocol": "0.19.9" - } - }, - "StreamJsonRpc": { - "type": "Transitive", - "resolved": "2.17.11", - "contentHash": "fygZJqYer5WPBwDqT0TOsVRTlsCZV3Q8HQMkoja+jhC2KkCbUW038njK29pf8Hqv5/IfxWb72LCR49wq4nz3ow==", - "dependencies": { - "MessagePack": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading": "17.7.35", - "Microsoft.VisualStudio.Threading.Analyzers": "17.7.35", - "Microsoft.VisualStudio.Validation": "17.6.11", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.1", - "System.Collections.Immutable": "7.0.0", - "System.Diagnostics.DiagnosticSource": "7.0.2", - "System.IO.Pipelines": "7.0.0", - "System.Text.Encodings.Web": "7.0.0", - "System.Text.Json": "7.0.3", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.ComponentModel.Composition": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bGhUX5BTivJ9Wax0qnJy7uGq7dn/TQkEpJ2Fpu1etg8dbPwyDkUzNPc1d3I2/jUr9y4wDI3a1dkSmi8X21Pzbw==" - }, - "System.Composition": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0" - } - }, - "System.Composition.AttributedModel": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" - }, - "System.Composition.Convention": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0" - } - }, - "System.Composition.Hosting": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", - "dependencies": { - "System.Composition.Runtime": "8.0.0" - } - }, - "System.Composition.Runtime": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" - }, - "System.Composition.TypedParts": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==" - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "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.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.Reactive": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "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": "8.0.0", - "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", - "dependencies": { - "System.Collections.Immutable": "8.0.0", - "System.Memory": "4.5.5" - } - }, - "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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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.0", - "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", - "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": "8.0.0", - "contentHash": "cIed5+HuYz+eV9yu9TH95zPkqmm1J9Qps9wxjB335sU8tsqc2kGdlTEH9FZzZeCS8a7mNSEsN8ZkyhQp1gfdEw==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Threading.Channels": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "7V0I8tPa9V7UxMx/+7DIwkhls5ouaEMQx6l/GwGm1Y8kJQ61On9B/PxCXFLbgu5/C47g0BP2CUYs+nMv1+Oaqw==" - }, - "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==" - }, - "bicep.vslanguageserverclient": { - "type": "Project", - "dependencies": { - "Microsoft.VisualStudio.LanguageServer.Client": "[17.2.2105, )", - "Microsoft.VisualStudio.LanguageServer.Protocol": "[17.2.8, )", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "[3.9.2164, )", - "Microsoft.VisualStudio.Shell.Interop": "[17.10.40170, )", - "Microsoft.VisualStudio.Utilities": "[17.2.32505.113, )", - "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )", - "Microsoft.Visualstudio.Telemetry": "[16.5.6, )", - "OmniSharp.Extensions.LanguageServer": "[0.19.9, )" - } - }, - "bicep.vslanguageserverclient.testservices": { - "type": "Project", - "dependencies": { - "Bicep.VSLanguageServerClient": "[1.0.0, )", - "Microsoft.NET.Test.Sdk": "[17.9.0, )", - "Microsoft.Test.Apex.VisualStudio": "[17.9.34701.34, )", - "Microsoft.VisualStudio.Composition": "[17.7.40, )", - "Microsoft.VisualStudio.Editor": "[17.2.3194, )", - "Microsoft.VisualStudio.Shell.Framework": "[17.9.37000, )", - "Microsoft.VisualStudio.Workspace": "[17.1.11-preview-0002, )", - "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-arm64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "Microsoft.NETCore.Targets": "1.1.3", - "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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==" - } - }, - ".NETFramework,Version=v4.7.2/linux-musl-x64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "Microsoft.NETCore.Targets": "1.1.3", - "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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==" - } - }, - ".NETFramework,Version=v4.7.2/linux-x64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "Microsoft.NETCore.Targets": "1.1.3", - "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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==" - } - }, - ".NETFramework,Version=v4.7.2/osx-arm64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "Microsoft.NETCore.Targets": "1.1.3", - "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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==" - } - }, - ".NETFramework,Version=v4.7.2/osx-x64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.2", - "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.1", - "Microsoft.NETCore.Targets": "1.1.3", - "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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==" - } - }, - ".NETFramework,Version=v4.7.2/win-arm64": { - "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==" - }, - "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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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==" - } - }, - ".NETFramework,Version=v4.7.2/win-x64": { - "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==" - }, - "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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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==" - } - } - } -} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.ItemTemplate/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.ItemTemplate/packages.lock.json deleted file mode 100644 index 28198ac2a6e..00000000000 --- a/src/vs-bicep/Bicep.VSLanguageServerClient.ItemTemplate/packages.lock.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "version": 1, - "dependencies": { - ".NETFramework,Version=v4.7.2": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": { - "type": "Direct", - "requested": "[3.3.4, )", - "resolved": "3.3.4", - "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" - }, - "Microsoft.CodeAnalysis.CSharp.CodeStyle": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "Microsoft.VisualStudio.CoreUtility": { - "type": "Direct", - "requested": "[17.9.187, )", - "resolved": "17.9.187", - "contentHash": "J70GXhSyfP4gFdfrYg0Xf79gkSEbk2rvvRpFq9fAQ/AwXIvR2AlmwJgdPSqh9d1X4mWVAIrDjE26JVf/AnS1Sg==", - "dependencies": { - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.VisualStudio.Threading.Analyzers": { - "type": "Direct", - "requested": "[17.10.48, )", - "resolved": "17.10.48", - "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" - }, - "Nerdbank.GitVersioning": { - "type": "Direct", - "requested": "[3.6.133, )", - "resolved": "3.6.133", - "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "3aeMZ1N0lJoSyzqiP03hqemtb1BijhsJADdobn/4nsMJ8V1H+CrpuduUe4hlRdx+ikBQju1VGjMD1GJ3Sk05Eg==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Microsoft.VisualStudio.Threading": { - "type": "Transitive", - "resolved": "17.9.28", - "contentHash": "n1bG965yT/7QHChX4x8zJ28LDaNdlJ6AgzthU3XzCsV9fVAMXYJEFi6BbWt8EM+7t0Wz9Oy021VMH2Z/iyz/Qw==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Validation": { - "type": "Transitive", - "resolved": "17.8.8", - "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g==" - }, - "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" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.ComponentModel.Composition": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "orv0h38ZVPCPo/FW0LGv8/TigXwX8cIwXeQcaNYhikkqELDm8sUFLMcof/Sjcq5EvYCm5NA7MV3hG4u75H44UQ==" - }, - "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.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "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" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-arm64": { - "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" - } - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/linux-musl-x64": { - "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" - } - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/linux-x64": { - "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" - } - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/osx-arm64": { - "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" - } - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/osx-x64": { - "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" - } - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/win": { - "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" - } - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/win-arm64": { - "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" - } - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/win-x64": { - "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" - } - }, - "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.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - } - } -} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.TestServices/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.TestServices/packages.lock.json deleted file mode 100644 index c86e0969f81..00000000000 --- a/src/vs-bicep/Bicep.VSLanguageServerClient.TestServices/packages.lock.json +++ /dev/null @@ -1,1348 +0,0 @@ -{ - "version": 1, - "dependencies": { - ".NETFramework,Version=v4.7.2": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": { - "type": "Direct", - "requested": "[3.3.4, )", - "resolved": "3.3.4", - "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" - }, - "Microsoft.CodeAnalysis.CSharp.CodeStyle": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" - }, - "Microsoft.Net.Compilers.Toolset": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "2j3UDVESH3nVyOr3EF3Om0nSfbZ70dRfiSxmFEoCMar9fApOsns+Odv6g3bMH8rZriY6G4x3LCsnsDl+CEt5KQ==" - }, - "Microsoft.NET.Test.Sdk": { - "type": "Direct", - "requested": "[17.9.0, )", - "resolved": "17.9.0", - "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==", - "dependencies": { - "Microsoft.CodeCoverage": "17.9.0" - } - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "Microsoft.Test.Apex.VisualStudio": { - "type": "Direct", - "requested": "[17.9.34701.34, )", - "resolved": "17.9.34701.34", - "contentHash": "jUpqt3cjbXlcmyDUH4cuS+ZR6p3AHV5Uvoo5YQ27wmkjOmH827gfUVV+hJaaNOt6Kgo13asTzKfFHPwfefQoLQ==", - "dependencies": { - "MSTest.TestAdapter": "3.0.3", - "MSTest.TestFramework": "3.0.3" - } - }, - "Microsoft.VisualStudio.Composition": { - "type": "Direct", - "requested": "[17.7.40, )", - "resolved": "17.7.40", - "contentHash": "BjQMHw97eZFaP+5Ng0iJaHOFGmRowZHfHRHWZGlz3h9eC1bEwNSaBXZT+tha9NhR+jPRnK1xNwCeoPtN8U0yMQ==", - "dependencies": { - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Composition": "7.0.0", - "System.Composition.AttributedModel": "7.0.0", - "System.Reflection.Metadata": "7.0.0", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "Microsoft.VisualStudio.Editor": { - "type": "Direct", - "requested": "[17.2.3194, )", - "resolved": "17.2.3194", - "contentHash": "24RGth15SXCwIiZB9n7juG0SxiUyirD9dAzLrqTulkVZZlqQjv6iJWy4QC6KmaVISFbjHjTGUCn2mP38D1vi1A==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.GraphModel": "17.2.32330.158", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", - "Microsoft.VisualStudio.Language": "17.2.3194", - "Microsoft.VisualStudio.RpcContracts": "17.2.31", - "Microsoft.VisualStudio.Shell.15.0": "17.2.32330.158", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "Microsoft.VisualStudio.Text.Logic": "17.2.3194", - "Microsoft.VisualStudio.Text.UI": "17.2.3194", - "Microsoft.VisualStudio.Text.UI.Wpf": "17.2.3194", - "Microsoft.VisualStudio.Threading": "17.2.32", - "Microsoft.VisualStudio.Validation": "17.0.53" - } - }, - "Microsoft.VisualStudio.Shell.Framework": { - "type": "Direct", - "requested": "[17.9.37000, )", - "resolved": "17.9.37000", - "contentHash": "Inem6IWh7sCSkn2Up6w8hCJziHkwnlIwxHbIihDOFLNj70eMmxtYbrK/YK5Wj/3/hlWXyQM0m5GxPZiLVKjOfA==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.Build.Framework": "17.9.5", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.GraphModel": "17.9.37000", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", - "Microsoft.VisualStudio.Interop": "17.9.37000", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities": "17.9.37000", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Threading.Analyzers": { - "type": "Direct", - "requested": "[17.10.48, )", - "resolved": "17.10.48", - "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" - }, - "Microsoft.VisualStudio.Workspace": { - "type": "Direct", - "requested": "[17.1.11-preview-0002, )", - "resolved": "17.1.11-preview-0002", - "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", - "dependencies": { - "Microsoft.IO.Redist": "4.7.1", - "Microsoft.VisualStudio.Composition": "16.4.11", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Workspace.VSIntegration": { - "type": "Direct", - "requested": "[17.1.11-preview-0002, )", - "resolved": "17.1.11-preview-0002", - "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", - "dependencies": { - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", - "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" - } - }, - "Nerdbank.GitVersioning": { - "type": "Direct", - "requested": "[3.6.133, )", - "resolved": "3.6.133", - "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" - }, - "MediatR": { - "type": "Transitive", - "resolved": "8.1.0", - "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" - }, - "MessagePack": { - "type": "Transitive", - "resolved": "2.5.108", - "contentHash": "kcVRbdWP3xNWLZmmpm4DFO+kuXf6mUR2mHZ27WoZIEFIv9hazuUd80injXhNrZnlq/FklAdCsLOil5M76I4Ndg==", - "dependencies": { - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.NET.StringTools": "17.4.0", - "System.Collections.Immutable": "6.0.0", - "System.Reflection.Emit": "4.7.0", - "System.Reflection.Emit.Lightweight": "4.7.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "MessagePack.Annotations": { - "type": "Transitive", - "resolved": "2.5.108", - "contentHash": "28aNCvfJClgwaKr26gf2S6LT+C1PNyPxiG+ihYpy8uCJsRLJEDoCt2I0Uk5hqOPQ8P8hI0ESy520oMkZkPmsOQ==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build": { - "type": "Transitive", - "resolved": "16.8.0", - "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", - "dependencies": { - "Microsoft.Build.Framework": "16.8.0", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", - "System.Collections.Immutable": "1.5.0", - "System.Memory": "4.5.3", - "System.Text.Json": "4.7.0", - "System.Threading.Tasks.Dataflow": "4.9.0" - } - }, - "Microsoft.Build.Framework": { - "type": "Transitive", - "resolved": "17.9.5", - "contentHash": "CjRmqu9Wv2fyC1d7NKOuBDXcNMI8+GiXGM6izygB+skGGu4Vf0cBcoPq7AFqZCcMpn5DtZ+y7RpaLpB2qrzanQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CodeCoverage": { - "type": "Transitive", - "resolved": "17.9.0", - "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.Logging": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Options.ConfigurationExtensions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.IO.Redist": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "uxXZ8pAcYtIJm8iqu/0e+CkM/VSwfgbHpnCDu7s8+gn/VUD5R6PxH3RGZFPaHgTisrlwD+BIyL5TqG6qwuZtOQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.NET.StringTools": { - "type": "Transitive", - "resolved": "17.9.5", - "contentHash": "C/oPRnjcIZBRzcpl1V06R1eEMCxOGt6mIm+8ioyblELgJEXLM8XjUPuCwljMO52VetsHw54xMcYwU8UEeHEIEg==", - "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": "4.4.22", - "contentHash": "j1tTGfD977w7eorHfgUS7mARtNufQtig9YqDrLi8CbS4HJU22pBm8Qu+F/9EsnA0XsQWFJo2BcqGWRlWdjXbCw==" - }, - "Microsoft.ServiceHub.Framework": { - "type": "Transitive", - "resolved": "4.4.22", - "contentHash": "fGRLbxg+J2xyoyNxI8x4gcrbc1ouMyob63kFG7xrteOUboyMIfAgIye8d7SnliTMwbcYStVYsELSE0GrHX8Pjw==", - "dependencies": { - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.VisualStudio.Composition": "17.6.17", - "Microsoft.VisualStudio.Threading": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "Nerdbank.Streams": "2.10.69", - "StreamJsonRpc": "2.16.41", - "System.Collections.Immutable": "7.0.0", - "System.Text.Json": "7.0.3" - } - }, - "Microsoft.ServiceHub.Resources": { - "type": "Transitive", - "resolved": "4.4.4171", - "contentHash": "0+hr177wzlS6m9IXjG9EW8BzyqfT+mGFL49NHlRKQHRVzSl2NUBI3yrftlFyz6oNgbsyitTkkWcHe2VYN/vpfQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Microsoft.VisualStudio.ComponentModelHost": { - "type": "Transitive", - "resolved": "17.2.3190", - "contentHash": "Ny42WwcnrvrsbpMDYuuIhG1h2WOKj/Ix6SxNc/PBxPIbnlI3K4h75L00rrWtqiXdnZIQ/dwT3YmQHWEDj3sulg==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", - "Microsoft.VisualStudio.Interop": "17.2.32330.158", - "Microsoft.VisualStudio.Validation": "17.0.53", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.Composition.Analyzers": { - "type": "Transitive", - "resolved": "17.7.40", - "contentHash": "rgFie5cK34I310RrLjjBnfH+bmOM7gUtcx8+PH65f1TeVQkWZzxr1b2/QsH/tHt3bsipvKghhp2VkUtLO5x8wA==" - }, - "Microsoft.VisualStudio.CoreUtility": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "bcPvoEHxv6EYWgNsFnwg8vlEB90MB44LWvuJtCRf3cOCCAGjMcDysLtq5IThaIIVsL5uvb3bv4i+f1L7NNGwjQ==", - "dependencies": { - "Microsoft.VisualStudio.Threading": "17.2.32", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.GraphModel": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "8JLGacPJ57RtKXXPr21jBE54mIwFi7hvWgM/PNGTOSwKMccCrcoayfv7gRb+hbtbhVwqEfTMi+xfMs32uF60SA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000", - "System.ComponentModel.Composition": "8.0.0" - } - }, - "Microsoft.VisualStudio.ImageCatalog": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "cKfl2RJ/7SevIlBeOAQNVGTDtpK7IOedOltdOk9W3nDmW8Uj3dmGg5bsRLv9bwSAhTxeh9Al0c9K01jgcRU29A==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100" - } - }, - "Microsoft.VisualStudio.Imaging": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "vKp3F+ORaRKd9Z2A28yTM7H6/QvmzSJE6ceVlimRSmNRFz/ANysYDwTMpCxCKbzwb5tVhlQxNIKqAFuwgYVPEQ==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Threading": "17.2.32", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "Microsoft.VisualStudio.Validation": "17.0.53", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "k0OtC0xLjVelFL9HVUNfOWA6qL+F+MDRyWCN1sJ/QzizTNUXWfOVVAv7Vpbz4Bf+0tmOhjS/KL3iS6brg+a8hg==" - }, - "Microsoft.VisualStudio.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" - }, - "Microsoft.VisualStudio.Language": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "1tepx+XpLYhbn0DcoNOQz2FbPhk6HOZnTHzX18OydArP0/GnCcLbb50drT0/S4iZ26mSANzw0NfrMJnegEGTpg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "Microsoft.VisualStudio.Text.Logic": "17.2.3194", - "Microsoft.VisualStudio.Text.UI": "17.2.3194", - "StreamJsonRpc": "2.11.35", - "System.ComponentModel.Composition": "6.0.0", - "System.Private.Uri": "4.3.2" - } - }, - "Microsoft.VisualStudio.LanguageServer.Client": { - "type": "Transitive", - "resolved": "17.2.2105", - "contentHash": "nIECUBSgRnpz5Dhfy+SlCJB5eMy7UIO7ZzP07bhecNVivOnAPQdh+uJj7EpYKlOgB95CHuSAB/L58vLLxXN/BA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3192", - "Microsoft.VisualStudio.Shell.15.0": "17.2.32406.100", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "Microsoft.VisualStudio.Validation": "17.0.53", - "StreamJsonRpc": "2.11.35" - } - }, - "Microsoft.VisualStudio.LanguageServer.Protocol": { - "type": "Transitive", - "resolved": "17.2.8", - "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", - "dependencies": { - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.VisualStudio.ProjectAggregator": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "1TuECpI8kKRAkc2kPI5Z5XHBcsJbyeG5vtAAfbYpFkNOXOkyoS8oOAX39b9Vp1jDb8jdSARfTUsdIM3BmlYE+g==" - }, - "Microsoft.VisualStudio.RemoteControl": { - "type": "Transitive", - "resolved": "16.3.52", - "contentHash": "+MgP1+Rtt1uJZyqhf7+H6KAQ57wc7v00ixuLhEgFggIbmW2/29YXfPK7gLvXw+vU7vimuM47cqAHrnB7RWYqtg==", - "dependencies": { - "Microsoft.VisualStudio.Utilities.Internal": "16.3.42" - } - }, - "Microsoft.VisualStudio.RpcContracts": { - "type": "Transitive", - "resolved": "17.9.7", - "contentHash": "Vzu2tCqKQxaBc1i5VF6hF6Wg+EhNRA27voQ8XPgQ2MxrzQRheivH92xvkynpE5hWYg+qeH29axH/wOMDZ9MnmQ==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "4.2.100", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "Microsoft.VisualStudio.SDK.Analyzers": { - "type": "Transitive", - "resolved": "16.10.10", - "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", - "dependencies": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", - "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" - } - }, - "Microsoft.VisualStudio.Setup.Configuration.Interop": { - "type": "Transitive", - "resolved": "3.9.2164", - "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" - }, - "Microsoft.VisualStudio.Shell.15.0": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "8jzfqOOZfMwtIwWkut+7MC/S8Ds0zLHmS1Ljdph2tWwIApgGPsy8Bi+0uVwb9uPhEDgEsAROOOtE8DdG5VpErg==", - "dependencies": { - "Microsoft.Build.Framework": "17.1.0", - "Microsoft.VisualStudio.ComponentModelHost": "17.2.3190", - "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", - "Microsoft.VisualStudio.ImageCatalog": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100", - "Microsoft.VisualStudio.ProjectAggregator": "17.2.32406.100", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Shell.Framework": "17.2.32406.100", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100" - } - }, - "Microsoft.VisualStudio.Shell.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.10.40170" - } - }, - "Microsoft.VisualStudio.Telemetry": { - "type": "Transitive", - "resolved": "17.9.305", - "contentHash": "dWQlTc3o1zvnr0dFD+ZpC04gZtP3pzAMEQBK2oqPZoMRm4n3cj5sSNSlSugDjWHAnVAKzses/ZTvR2SHTyCQNA==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.VisualStudio.Text.Data": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "ZyUCnWT+Dr5TdcvaArPN8ijXu76jM7de7NLvaaaQyZXoUzHYzNQz0fzoRlxRYET9cvDu6tsCZT431JxKPn5p9w==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Threading": "17.2.32" - } - }, - "Microsoft.VisualStudio.Text.Logic": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "R3n80K1+OwW1lRCKifzfAnXbgb7PJvKELzxtaDGxo8SoNnUTXkO0P2qSK5Y0jFoJK+7yfLOxpQNhfIFKTE4igg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.Text.UI": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "UGegXrUnqhhXhlZsbklBZIp4wd0vHZQitkWMTR13SdwVQPUdpQYRNgsom9FBxM+3t9f8Dreg4ALt0SXFnCL3Yw==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "Microsoft.VisualStudio.Text.Logic": "17.2.3194", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.Text.UI.Wpf": { - "type": "Transitive", - "resolved": "17.2.3194", - "contentHash": "cIqcmdw5wrgDK5BohuOOjXJbn3dkoRDsN6mohWV8Y4faA3oZMxuLB3ljKQNPq5B8rG6Z7ZS2z6u9W/vFpPwAmA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3194", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", - "Microsoft.VisualStudio.Text.Data": "17.2.3194", - "Microsoft.VisualStudio.Text.Logic": "17.2.3194", - "Microsoft.VisualStudio.Text.UI": "17.2.3194" - } - }, - "Microsoft.VisualStudio.Threading": { - "type": "Transitive", - "resolved": "17.9.28", - "contentHash": "n1bG965yT/7QHChX4x8zJ28LDaNdlJ6AgzthU3XzCsV9fVAMXYJEFi6BbWt8EM+7t0Wz9Oy021VMH2Z/iyz/Qw==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Utilities": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "tiNenrZYKSxC/i0LDcXbENeuJDzxKgYFd+LA4iwI18LMN85ThffoFbvGij5CQ6IBa6FWL8VQGlPuE65iMXWfNQ==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Utilities.Internal": { - "type": "Transitive", - "resolved": "16.3.56", - "contentHash": "QX5UVVk4+/rPu3Xy3QRAntNBy/3VMl2whwSlt73Ksp6MRf5ersUopgmHbkEnWSTX6e/SZf+mfqTmvdk67URH2Q==" - }, - "Microsoft.VisualStudio.Validation": { - "type": "Transitive", - "resolved": "17.8.8", - "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g==" - }, - "Microsoft.VisualStudio.Workspace.Extensions": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", - "dependencies": { - "Microsoft.Build": "16.8.0", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" - } - }, - "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" - } - }, - "MSTest.TestAdapter": { - "type": "Transitive", - "resolved": "3.0.3", - "contentHash": "k2LRhIKbgc0HQQvTYZVsBby3I1V9q4h+xbXP3A0yQuB1jEeMze/JnJb3UCyUUElSx1CAfmyMazuTfbYaZwqZGw==" - }, - "MSTest.TestFramework": { - "type": "Transitive", - "resolved": "3.0.3", - "contentHash": "7EN6HmpSuNBnk3UP/FHvg3VeL13Gwc/D5vtZ+SFIkzDO99avVm8oYqbe19JCht4wy9cY13dpNA4gssCE8hp08Q==" - }, - "Nerdbank.Streams": { - "type": "Transitive", - "resolved": "2.10.69", - "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "System.IO.Pipelines": "7.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.3", - "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" - }, - "OmniSharp.Extensions.JsonRpc": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", - "dependencies": { - "MediatR": "8.1.0", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.Extensions.Logging": "6.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", - "System.Collections.Immutable": "5.0.0", - "System.Reactive": "6.0.0", - "System.Threading.Channels": "6.0.0" - } - }, - "OmniSharp.Extensions.JsonRpc.Generators": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" - }, - "OmniSharp.Extensions.LanguageProtocol": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.LanguageProtocol": "0.19.9", - "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer.Shared": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", - "dependencies": { - "OmniSharp.Extensions.LanguageProtocol": "0.19.9" - } - }, - "StreamJsonRpc": { - "type": "Transitive", - "resolved": "2.17.11", - "contentHash": "fygZJqYer5WPBwDqT0TOsVRTlsCZV3Q8HQMkoja+jhC2KkCbUW038njK29pf8Hqv5/IfxWb72LCR49wq4nz3ow==", - "dependencies": { - "MessagePack": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading": "17.7.35", - "Microsoft.VisualStudio.Threading.Analyzers": "17.7.35", - "Microsoft.VisualStudio.Validation": "17.6.11", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.1", - "System.Collections.Immutable": "7.0.0", - "System.Diagnostics.DiagnosticSource": "7.0.2", - "System.IO.Pipelines": "7.0.0", - "System.Text.Encodings.Web": "7.0.0", - "System.Text.Json": "7.0.3", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.ComponentModel.Composition": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bGhUX5BTivJ9Wax0qnJy7uGq7dn/TQkEpJ2Fpu1etg8dbPwyDkUzNPc1d3I2/jUr9y4wDI3a1dkSmi8X21Pzbw==" - }, - "System.Composition": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0" - } - }, - "System.Composition.AttributedModel": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" - }, - "System.Composition.Convention": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0" - } - }, - "System.Composition.Hosting": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", - "dependencies": { - "System.Composition.Runtime": "8.0.0" - } - }, - "System.Composition.Runtime": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" - }, - "System.Composition.TypedParts": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "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.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.Reactive": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "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": "8.0.0", - "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", - "dependencies": { - "System.Collections.Immutable": "8.0.0", - "System.Memory": "4.5.5" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.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.0", - "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", - "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": "8.0.0", - "contentHash": "cIed5+HuYz+eV9yu9TH95zPkqmm1J9Qps9wxjB335sU8tsqc2kGdlTEH9FZzZeCS8a7mNSEsN8ZkyhQp1gfdEw==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Threading.Channels": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "7V0I8tPa9V7UxMx/+7DIwkhls5ouaEMQx6l/GwGm1Y8kJQ61On9B/PxCXFLbgu5/C47g0BP2CUYs+nMv1+Oaqw==" - }, - "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==" - }, - "bicep.vslanguageserverclient": { - "type": "Project", - "dependencies": { - "Microsoft.VisualStudio.LanguageServer.Client": "[17.2.2105, )", - "Microsoft.VisualStudio.LanguageServer.Protocol": "[17.2.8, )", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "[3.9.2164, )", - "Microsoft.VisualStudio.Shell.Interop": "[17.10.40170, )", - "Microsoft.VisualStudio.Utilities": "[17.2.32505.113, )", - "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )", - "Microsoft.Visualstudio.Telemetry": "[16.5.6, )", - "OmniSharp.Extensions.LanguageServer": "[0.19.9, )" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-arm64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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", - "runtime.unix.System.Private.Uri": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/linux-musl-x64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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", - "runtime.unix.System.Private.Uri": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/linux-x64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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", - "runtime.unix.System.Private.Uri": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/osx-arm64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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", - "runtime.unix.System.Private.Uri": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/osx-x64": { - "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.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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", - "runtime.unix.System.Private.Uri": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/win-arm64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/win-x64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - } - } -} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.UnitTests/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.UnitTests/packages.lock.json deleted file mode 100644 index 13a59a3c28d..00000000000 --- a/src/vs-bicep/Bicep.VSLanguageServerClient.UnitTests/packages.lock.json +++ /dev/null @@ -1,1465 +0,0 @@ -{ - "version": 1, - "dependencies": { - ".NETFramework,Version=v4.7.2": { - "FluentAssertions": { - "type": "Direct", - "requested": "[6.9.0, )", - "resolved": "6.9.0", - "contentHash": "Z+alhbX6FreF+buZlOpP4jt93wofAdAzyUngcDNHYcuVsDUh/rjIB9WcqXctxffh4XZ3xUG/Ew4UgULSP/kUZg==", - "dependencies": { - "System.Net.Http": "4.3.4", - "System.Threading.Tasks.Extensions": "4.5.0" - } - }, - "Microsoft.CodeAnalysis.BannedApiAnalyzers": { - "type": "Direct", - "requested": "[3.3.4, )", - "resolved": "3.3.4", - "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" - }, - "Microsoft.CodeAnalysis.CSharp.CodeStyle": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" - }, - "Microsoft.Net.Compilers.Toolset": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "2j3UDVESH3nVyOr3EF3Om0nSfbZ70dRfiSxmFEoCMar9fApOsns+Odv6g3bMH8rZriY6G4x3LCsnsDl+CEt5KQ==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "Microsoft.VisualStudio.LanguageServer.Protocol": { - "type": "Direct", - "requested": "[17.2.8, )", - "resolved": "17.2.8", - "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", - "dependencies": { - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.VisualStudio.Threading.Analyzers": { - "type": "Direct", - "requested": "[17.10.48, )", - "resolved": "17.10.48", - "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" - }, - "Microsoft.VisualStudio.Utilities": { - "type": "Direct", - "requested": "[17.2.32505.113, )", - "resolved": "17.2.32505.113", - "contentHash": "4Pyq/vfl4yKtXL/OojK1ekQ7eo164KK4ud5AC4NFxBbSKjvHuLvt/MHzAOcV1s8MwR2/Eqj9rSmptTth7vsSEA==", - "dependencies": { - "Microsoft.ServiceHub.Client": "3.1.4097", - "Microsoft.VisualStudio.RpcContracts": "17.2.31", - "Microsoft.VisualStudio.Telemetry": "16.4.56", - "StreamJsonRpc": "2.11.35", - "System.ComponentModel.Composition": "6.0.0", - "System.Composition": "6.0.0", - "System.Threading.AccessControl": "6.0.0", - "System.Threading.Tasks.Dataflow": "6.0.0" - } - }, - "Moq": { - "type": "Direct", - "requested": "[4.18.4, )", - "resolved": "4.18.4", - "contentHash": "IOo+W51+7Afnb0noltJrKxPBSfsgMzTKCw+Re5AMx8l/vBbAbMDOynLik4+lBYIWDJSO0uV7Zdqt7cNb6RZZ+A==", - "dependencies": { - "Castle.Core": "5.1.1", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "MSTest.TestAdapter": { - "type": "Direct", - "requested": "[3.4.0, )", - "resolved": "3.4.0", - "contentHash": "s8SNJ09FY8slmrPHIyNtAZbPbL1KP/5r/25DFYhQ6o1e/ETYZgcUx00eib8a3n2nCsPWrql79QXRI58PNbquAQ==", - "dependencies": { - "Microsoft.Testing.Extensions.VSTestBridge": "1.2.1", - "Microsoft.Testing.Platform.MSBuild": "1.2.1" - } - }, - "MSTest.TestFramework": { - "type": "Direct", - "requested": "[3.3.1, )", - "resolved": "3.3.1", - "contentHash": "020SuA2p8N7o+/AHC0SLgzGpyS1hNjR8m5tWxnuGqJ3HeJhArUbuPAU8RZr8Ll38ij8oiutGCkQ/G+ymyO51Ow==" - }, - "Nerdbank.GitVersioning": { - "type": "Direct", - "requested": "[3.6.133, )", - "resolved": "3.6.133", - "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" - }, - "Castle.Core": { - "type": "Transitive", - "resolved": "5.1.1", - "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==" - }, - "MediatR": { - "type": "Transitive", - "resolved": "8.1.0", - "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" - }, - "MessagePack": { - "type": "Transitive", - "resolved": "2.3.85", - "contentHash": "wOabnqkrXp7oeEYLY4Kd0m0eT4falJQukqvErfz5Y4FKKo9mSQQ1+rMxx9mapF2el+P0XQxiZOBKFm+oCvu0aw==", - "dependencies": { - "MessagePack.Annotations": "2.3.85", - "Microsoft.Bcl.AsyncInterfaces": "1.0.0", - "System.Collections.Immutable": "1.5.0", - "System.Memory": "4.5.3", - "System.Reflection.Emit": "4.6.0", - "System.Reflection.Emit.Lightweight": "4.6.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.2", - "System.Threading.Tasks.Extensions": "4.5.3" - } - }, - "MessagePack.Annotations": { - "type": "Transitive", - "resolved": "2.3.85", - "contentHash": "2GCYZ9qgNS5Og0tiqfhWRhcfDZI/iRi8t07R0fNic1HthMMRfWxWOKDIBhtMA1RwZM4BuRsmJXUgk3evyisb1w==" - }, - "Microsoft.ApplicationInsights": { - "type": "Transitive", - "resolved": "2.22.0", - "contentHash": "3AOM9bZtku7RQwHyMEY3tQMrHIgjcfRDa6YQpd/QG2LDGvMydSlL9Di+8LLMt7J2RDdfJ7/2jdYv6yHcMJAnNw==", - "dependencies": { - "System.Diagnostics.DiagnosticSource": "5.0.0" - } - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "3aeMZ1N0lJoSyzqiP03hqemtb1BijhsJADdobn/4nsMJ8V1H+CrpuduUe4hlRdx+ikBQju1VGjMD1GJ3Sk05Eg==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build": { - "type": "Transitive", - "resolved": "16.8.0", - "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", - "dependencies": { - "Microsoft.Build.Framework": "16.8.0", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", - "System.Collections.Immutable": "1.5.0", - "System.Memory": "4.5.3", - "System.Text.Json": "4.7.0", - "System.Threading.Tasks.Dataflow": "4.9.0" - } - }, - "Microsoft.Build.Framework": { - "type": "Transitive", - "resolved": "17.1.0", - "contentHash": "7PPEbjuL/lKQ8ftblxwBZKf5alZCA4GDvBTiO3UAVxtRe52a2jL3mc8TpKNiJZzytGz7fKdR5ClDCs7+Uw4hMg==", - "dependencies": { - "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.0.4492", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.Logging": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Options.ConfigurationExtensions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.IO.Redist": { - "type": "Transitive", - "resolved": "4.7.1", - "contentHash": "WaA56Jq9Hk0Bz/c3eIWIepnCj+AXJajTZ3RQUk7PRT8DEXk9RY0vfoNrZmNC2JTrnKXGigz3js3PReGHxGpdhw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.ServiceHub.Analyzers": { - "type": "Transitive", - "resolved": "3.1.4097", - "contentHash": "ZOTK44YxmQ/YV+PAv7XSN2rj7UTfR2NSy8UHOaPZU8kE1giTDHvMY9QtcvnaKurD6eNtLCbCfHWhrt6Inev43Q==" - }, - "Microsoft.ServiceHub.Client": { - "type": "Transitive", - "resolved": "3.1.4097", - "contentHash": "+cKDvtcgOCzqJeqzXk657QHwSiPB9Iv1vFgeb4uERwW5F8me/20XlHVpuYgRSdBOCMRFV7M1nlrbD2a56cG7qg==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "3.1.4097", - "Microsoft.ServiceHub.Resources": "3.1.4097", - "Microsoft.VisualStudio.Telemetry": "16.4.37", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", - "StreamJsonRpc": "2.7.70", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.ServiceHub.Framework": { - "type": "Transitive", - "resolved": "3.1.4097", - "contentHash": "DTZcqBSYWqvb15XLPyFepT3j4L9kCiVz91ByAwjRGEQ8Raka0aFzTd53rp1lSVnEfZ9gsJpX5ha6TzW13ptvNw==", - "dependencies": { - "Microsoft.ServiceHub.Analyzers": "3.1.4097", - "StreamJsonRpc": "2.7.70", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.ServiceHub.Resources": { - "type": "Transitive", - "resolved": "3.1.4097", - "contentHash": "/iQi5lZ9FhlaDZ6V2bfPH69c0ESLL6pQRCCKbXe99aFGcdOk+dsRGygwmi7mjvc7qlEFY0x7dlXQ+ctsxMdDVw==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Microsoft.Testing.Extensions.Telemetry": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "MKGxwQhDDEoTS/ntFb21Z6Bxh9VvknmSLgEWH+NFD86fbcIqE2Al8lrXkQPeH+AqCvlhx2WnPLKd81T2PXc2dw==", - "dependencies": { - "Microsoft.ApplicationInsights": "2.22.0", - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Extensions.TrxReport.Abstractions": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "46SnzaLR+SDaTtBWy49xdFm/rI40I8nZtziqnt2d4lgILKovWPnkM8Pehnga/uwl+OznVIh0XuRsN3NokkX1TQ==", - "dependencies": { - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Extensions.VSTestBridge": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "Tu8CWHEwV/92WM2DRr/qeIdH243diV5s43ODPLl13XeRqGbZlu9lk7X0a7kcxhp0BLRlA3fqMW3F6RynrnDrPw==", - "dependencies": { - "Microsoft.ApplicationInsights": "2.22.0", - "Microsoft.TestPlatform.ObjectModel": "17.5.0", - "Microsoft.Testing.Extensions.Telemetry": "1.2.1", - "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.2.1", - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.Testing.Platform": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "mb7irPwqjgusJ05BxuQ5KP6uofWaoDr/dfjFNItX1Q1Ntv3EDMr3CeLInrlU2PNcPwwObw4X6bZG7wJvvFjKZQ==" - }, - "Microsoft.Testing.Platform.MSBuild": { - "type": "Transitive", - "resolved": "1.2.1", - "contentHash": "leUhW4iQNy7vmPk5uRHd4OROqfRtugWDQkWL/4AD17gxZwAAwGCaTcrqG0YVPi7uuZ+lj2Loa6kU7hBLA/v5+w==", - "dependencies": { - "Microsoft.Testing.Platform": "1.2.1" - } - }, - "Microsoft.TestPlatform.ObjectModel": { - "type": "Transitive", - "resolved": "17.5.0", - "contentHash": "QwiBJcC/oEA1kojOaB0uPWOIo4i6BYuTBBYJVhUvmXkyYqZ2Ut/VZfgi+enf8LF8J4sjO98oRRFt39MiRorcIw==", - "dependencies": { - "NuGet.Frameworks": "5.11.0", - "System.Reflection.Metadata": "1.6.0" - } - }, - "Microsoft.VisualStudio.ComponentModelHost": { - "type": "Transitive", - "resolved": "17.2.3190", - "contentHash": "Ny42WwcnrvrsbpMDYuuIhG1h2WOKj/Ix6SxNc/PBxPIbnlI3K4h75L00rrWtqiXdnZIQ/dwT3YmQHWEDj3sulg==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", - "Microsoft.VisualStudio.Interop": "17.2.32330.158", - "Microsoft.VisualStudio.Validation": "17.0.53", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.Composition": { - "type": "Transitive", - "resolved": "16.4.11", - "contentHash": "JinutaulyPMTEWpdyegz3LLTtChZC+YYMjaQosCwIrapfTncOnatY85j8DpmuqHYADiJ6kkHYEPT71yS5eEqSA==", - "dependencies": { - "Microsoft.VisualStudio.Composition.NetFxAttributes": "16.4.11", - "Microsoft.VisualStudio.Validation": "15.0.82", - "System.ComponentModel.Composition": "4.5.0", - "System.Composition": "1.0.31", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Metadata": "1.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Threading.Tasks.Dataflow": "4.6.0" - } - }, - "Microsoft.VisualStudio.Composition.NetFxAttributes": { - "type": "Transitive", - "resolved": "16.4.11", - "contentHash": "KufBhjVwhq+Sgt9Vl5XNOsZykU5aXpU8hO0UXlM98Giw5iRDJAxHBLSRYDzcadVtVrf++QSB95bVydxem0jegQ==", - "dependencies": { - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.CoreUtility": { - "type": "Transitive", - "resolved": "17.2.3192", - "contentHash": "KomP1sdum+yYSe5TMOS7cMkOOv4SmnP05zZ8AjKWH/ugKLHqXiXC2zkMplx5ZRw3sDi8ddKk6ZOB0TeHOLhaFw==", - "dependencies": { - "Microsoft.VisualStudio.Threading": "17.2.32", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.GraphModel": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "wqjsqpWnTs3fMthNW795oySYZ65jfkHV7qw5xBJ8G0Zi+pDjNf0hoizC1ma2bVB+d8TPrJIvRJzGUjhaviOKwA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.2.32406.100", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.ImageCatalog": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "cKfl2RJ/7SevIlBeOAQNVGTDtpK7IOedOltdOk9W3nDmW8Uj3dmGg5bsRLv9bwSAhTxeh9Al0c9K01jgcRU29A==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100" - } - }, - "Microsoft.VisualStudio.Imaging": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "vKp3F+ORaRKd9Z2A28yTM7H6/QvmzSJE6ceVlimRSmNRFz/ANysYDwTMpCxCKbzwb5tVhlQxNIKqAFuwgYVPEQ==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Threading": "17.2.32", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "Microsoft.VisualStudio.Validation": "17.0.53", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "fkbGSOiS06liWHFngdU9BTM0f7+AIA3MQWk63dPUAVB7jz79oM3REAwm5eNQbkrjSe+C98Nxjhui7TV+8zh4KA==" - }, - "Microsoft.VisualStudio.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" - }, - "Microsoft.VisualStudio.LanguageServer.Client": { - "type": "Transitive", - "resolved": "17.2.2105", - "contentHash": "nIECUBSgRnpz5Dhfy+SlCJB5eMy7UIO7ZzP07bhecNVivOnAPQdh+uJj7EpYKlOgB95CHuSAB/L58vLLxXN/BA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3192", - "Microsoft.VisualStudio.Shell.15.0": "17.2.32406.100", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "Microsoft.VisualStudio.Validation": "17.0.53", - "StreamJsonRpc": "2.11.35" - } - }, - "Microsoft.VisualStudio.ProjectAggregator": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "1TuECpI8kKRAkc2kPI5Z5XHBcsJbyeG5vtAAfbYpFkNOXOkyoS8oOAX39b9Vp1jDb8jdSARfTUsdIM3BmlYE+g==" - }, - "Microsoft.VisualStudio.RemoteControl": { - "type": "Transitive", - "resolved": "16.3.44", - "contentHash": "hbc2FxReEyotRXM1dtQSZxt2ccNMBgPbcX6MylKp9UDbHsTPJ0dk5CEuZAqoqOFKUzFtorZL6A7BcRAjP9HU1g==", - "dependencies": { - "Microsoft.VisualStudio.Utilities.Internal": "16.3.36" - } - }, - "Microsoft.VisualStudio.RpcContracts": { - "type": "Transitive", - "resolved": "17.2.31", - "contentHash": "MSOsNBJv7/IFaP8aaEJtugp5OSzQgIlemTtROBBDhwQMLZGe+T2A+TofKl4PEydiX+Fwfuyged4tDmpazdUI5Q==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "3.0.2061", - "StreamJsonRpc": "2.11.35" - } - }, - "Microsoft.VisualStudio.SDK.Analyzers": { - "type": "Transitive", - "resolved": "16.10.10", - "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", - "dependencies": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", - "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" - } - }, - "Microsoft.VisualStudio.Setup.Configuration.Interop": { - "type": "Transitive", - "resolved": "3.9.2164", - "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" - }, - "Microsoft.VisualStudio.Shell.15.0": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "8jzfqOOZfMwtIwWkut+7MC/S8Ds0zLHmS1Ljdph2tWwIApgGPsy8Bi+0uVwb9uPhEDgEsAROOOtE8DdG5VpErg==", - "dependencies": { - "Microsoft.Build.Framework": "17.1.0", - "Microsoft.VisualStudio.ComponentModelHost": "17.2.3190", - "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", - "Microsoft.VisualStudio.ImageCatalog": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100", - "Microsoft.VisualStudio.ProjectAggregator": "17.2.32406.100", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Shell.Framework": "17.2.32406.100", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100" - } - }, - "Microsoft.VisualStudio.Shell.Framework": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "7WD50dmv9qI2FeNE+yjJq7ewf9J9mYWimZIPnET53YBtwcqf5nA4aH0TedwdhJUWa1Blnidc9ZZvDM3YiUx84Q==", - "dependencies": { - "Microsoft.Build.Framework": "17.1.0", - "Microsoft.ServiceHub.Framework": "3.1.4097", - "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Telemetry": "16.4.56", - "Microsoft.VisualStudio.Threading": "17.2.32", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "System.Text.Json": "6.0.0", - "System.Threading.Tasks.Dataflow": "6.0.0" - } - }, - "Microsoft.VisualStudio.Shell.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.10.40170" - } - }, - "Microsoft.VisualStudio.Telemetry": { - "type": "Transitive", - "resolved": "16.5.6", - "contentHash": "afyxTJBcntD92T9Ce8gZxOgEZBLZXFA7kxQLW1gnbnF5yGBkeF8vdwIlvJ/aw6+Of0cgfjgY9J/bLGZ976puAQ==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.VisualStudio.RemoteControl": "16.3.44", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", - "Newtonsoft.Json": "13.0.1", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "Microsoft.VisualStudio.Threading": { - "type": "Transitive", - "resolved": "17.6.40", - "contentHash": "hLa/0xargG7p3bF7aeq2/lRYn/bVnfZXurUWVHx+MNqxxAUjIDMKi4OIOWbYQ/DTkbn9gv8TLvgso+6EtHVQQg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.0.71", - "Microsoft.Win32.Registry": "5.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Utilities.Internal": { - "type": "Transitive", - "resolved": "16.3.36", - "contentHash": "tVOE9DJbd4PETSgBW+9448jvRdhm/hNHJFaGyCq6Gtlg+ElELBmfMFxgp2rsrqzUkLjehwnrw6uX4Yj9krOfJQ==" - }, - "Microsoft.VisualStudio.Validation": { - "type": "Transitive", - "resolved": "17.6.11", - "contentHash": "J+9L/iac6c8cwcgVSCMuoIYOlD1Jw4mbZ8XMe1IZVj8p8+3dJ46LnnkIkTRMjK7xs9UtU9MoUp1JGhWoN6fAEw==" - }, - "Microsoft.VisualStudio.Workspace": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", - "dependencies": { - "Microsoft.IO.Redist": "4.7.1", - "Microsoft.VisualStudio.Composition": "16.4.11", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Workspace.Extensions": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", - "dependencies": { - "Microsoft.Build": "16.8.0", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" - } - }, - "Microsoft.VisualStudio.Workspace.VSIntegration": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", - "dependencies": { - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", - "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" - } - }, - "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.10.69", - "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "System.IO.Pipelines": "7.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.3", - "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" - }, - "NuGet.Frameworks": { - "type": "Transitive", - "resolved": "5.11.0", - "contentHash": "eaiXkUjC4NPcquGWzAGMXjuxvLwc6XGKMptSyOGQeT0X70BUZObuybJFZLA0OfTdueLd3US23NBPTBb6iF3V1Q==" - }, - "OmniSharp.Extensions.JsonRpc": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", - "dependencies": { - "MediatR": "8.1.0", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.Extensions.Logging": "6.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", - "System.Collections.Immutable": "5.0.0", - "System.Reactive": "6.0.0", - "System.Threading.Channels": "6.0.0" - } - }, - "OmniSharp.Extensions.JsonRpc.Generators": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" - }, - "OmniSharp.Extensions.LanguageProtocol": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.LanguageProtocol": "0.19.9", - "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer.Shared": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", - "dependencies": { - "OmniSharp.Extensions.LanguageProtocol": "0.19.9" - } - }, - "StreamJsonRpc": { - "type": "Transitive", - "resolved": "2.11.35", - "contentHash": "r2taKfcI3dmAChn0nqTLmwr3d/BXnUrIlDGF6het3NxL3sg6TntCGz60wBE4DmdlyeerMXkI5ZCC/Y4XCfetfA==", - "dependencies": { - "MessagePack": "2.3.85", - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.VisualStudio.Threading": "17.1.46", - "Nerdbank.Streams": "2.8.57", - "Newtonsoft.Json": "13.0.1", - "System.Collections.Immutable": "5.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0", - "System.IO.Pipelines": "6.0.1", - "System.Threading.Tasks.Dataflow": "6.0.0" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", - "dependencies": { - "System.Memory": "4.5.4" - } - }, - "System.ComponentModel.Composition": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "60Qv+F7oxomOjJeTDA5Z4iCyFbQ0B/2Mi5HT+13pxxq0lVnu2ipbWMzFB+RWKr3wWKA8BSncXr9PH/fECwMX5Q==" - }, - "System.Composition": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", - "dependencies": { - "System.Composition.AttributedModel": "6.0.0", - "System.Composition.Convention": "6.0.0", - "System.Composition.Hosting": "6.0.0", - "System.Composition.Runtime": "6.0.0", - "System.Composition.TypedParts": "6.0.0" - } - }, - "System.Composition.AttributedModel": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" - }, - "System.Composition.Convention": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", - "dependencies": { - "System.Composition.AttributedModel": "6.0.0" - } - }, - "System.Composition.Hosting": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", - "dependencies": { - "System.Composition.Runtime": "6.0.0" - } - }, - "System.Composition.Runtime": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" - }, - "System.Composition.TypedParts": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", - "dependencies": { - "System.Composition.AttributedModel": "6.0.0", - "System.Composition.Hosting": "6.0.0", - "System.Composition.Runtime": "6.0.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.IO": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==" - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "jRn6JYnNPW6xgQazROBLSfpdoczRw694vO5kKvMcNnpXuolEixUyw6IBuBs2Y2mlSX/LdLvyyWmfXhaI3ND1Yg==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "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.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Reflection": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==" - }, - "System.Reflection.Emit": { - "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "qAo4jyXtC9i71iElngX7P2r+zLaiHzxKwf66sc3X91tL5Ks6fnQ1vxL04o7ZSm3sYfLExySL7GN8aTpNYpU1qw==" - }, - "System.Reflection.Emit.Lightweight": { - "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "j/V5HVvxvBQ7uubYD0PptQW2KGsi1Pc2kZ9yfwLixv3ADdjL/4M78KyC5e+ymW612DY8ZE4PFoZmWpoNmN2mqg==" - }, - "System.Reflection.Metadata": { - "type": "Transitive", - "resolved": "1.6.0", - "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", - "dependencies": { - "System.Collections.Immutable": "1.5.0" - } - }, - "System.Reflection.TypeExtensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "dependencies": { - "System.Reflection": "4.3.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.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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": "6.0.0", - "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Threading.Channels": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "+tyDCU3/B1lDdOOAJywHQoFwyXIUghIaP2BxG79uvhfTnO+D9qIgjVlL/JV2NTliYbMHpd6eKDmHp2VHpij7MA==" - }, - "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==" - }, - "bicep.vslanguageserverclient": { - "type": "Project", - "dependencies": { - "Microsoft.VisualStudio.LanguageServer.Client": "[17.2.2105, )", - "Microsoft.VisualStudio.LanguageServer.Protocol": "[17.2.8, )", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "[3.9.2164, )", - "Microsoft.VisualStudio.Shell.Interop": "[17.10.40170, )", - "Microsoft.VisualStudio.Utilities": "[17.2.32505.113, )", - "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )", - "Microsoft.Visualstudio.Telemetry": "[16.5.6, )", - "OmniSharp.Extensions.LanguageServer": "[0.19.9, )" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-arm64": { - "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" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-musl-x64": { - "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" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-x64": { - "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" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/osx-arm64": { - "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" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/osx-x64": { - "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" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/win-arm64": { - "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" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/win-x64": { - "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" - } - }, - "System.Net.Http": { - "type": "Transitive", - "resolved": "4.3.4", - "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", - "dependencies": { - "System.Security.Cryptography.X509Certificates": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "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": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - } - } -} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.Vsix/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.Vsix/packages.lock.json deleted file mode 100644 index b005867c2c5..00000000000 --- a/src/vs-bicep/Bicep.VSLanguageServerClient.Vsix/packages.lock.json +++ /dev/null @@ -1,2190 +0,0 @@ -{ - "version": 1, - "dependencies": { - ".NETFramework,Version=v4.7.2": { - "Azure.Deployments.Internal.GenerateNotice": { - "type": "Direct", - "requested": "[0.1.38, )", - "resolved": "0.1.38", - "contentHash": "BqTIqpSk+JoK4QYpkt5htsccgBM4IrMINlo4d/Z4Ii3qV91V20VUhDqON+0Zax4hpGTsz710iDk0V7ypteLM/g==" - }, - "Microsoft.CodeAnalysis.BannedApiAnalyzers": { - "type": "Direct", - "requested": "[3.3.4, )", - "resolved": "3.3.4", - "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" - }, - "Microsoft.CodeAnalysis.CSharp.CodeStyle": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "Microsoft.VisualStudio.SDK": { - "type": "Direct", - "requested": "[17.9.37000, )", - "resolved": "17.9.37000", - "contentHash": "XSkWGJiuCKTaONOIHOHqFGPTEF2j9ae2sE2wbDJafHZJe9sUqy83az75yP4j/jzsEsmoJsWLUuhNW2vE3sv8/w==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.Build.Framework": "17.9.5", - "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.CommandBars": "17.9.37000", - "Microsoft.VisualStudio.ComponentModelHost": "17.9.187", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.CoreUtility": "17.9.187", - "Microsoft.VisualStudio.Debugger.Interop.10.0": "17.9.37000", - "Microsoft.VisualStudio.Debugger.Interop.12.0": "17.9.37000", - "Microsoft.VisualStudio.Debugger.Interop.14.0": "17.9.37000", - "Microsoft.VisualStudio.Debugger.Interop.15.0": "17.9.37000", - "Microsoft.VisualStudio.Debugger.Interop.16.0": "17.9.37000", - "Microsoft.VisualStudio.Debugger.InteropA": "17.9.37000", - "Microsoft.VisualStudio.Designer.Interfaces": "17.9.37000", - "Microsoft.VisualStudio.Editor": "17.9.187", - "Microsoft.VisualStudio.GraphModel": "17.9.37000", - "Microsoft.VisualStudio.ImageCatalog": "17.9.37000", - "Microsoft.VisualStudio.Imaging": "17.9.37000", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", - "Microsoft.VisualStudio.Interop": "17.9.37000", - "Microsoft.VisualStudio.Language": "17.9.187", - "Microsoft.VisualStudio.Language.Intellisense": "17.9.187", - "Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "17.9.187", - "Microsoft.VisualStudio.Language.StandardClassification": "17.9.187", - "Microsoft.VisualStudio.LanguageServer.Client": "17.9.46", - "Microsoft.VisualStudio.Linux.ConnectionManager.Store": "17.9.37000", - "Microsoft.VisualStudio.OLE.Interop": "17.9.37000", - "Microsoft.VisualStudio.Package.LanguageService.15.0": "17.9.37000", - "Microsoft.VisualStudio.ProjectAggregator": "17.9.37000", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.9.2164", - "Microsoft.VisualStudio.Shell.15.0": "17.9.37000", - "Microsoft.VisualStudio.Shell.Design": "17.9.37000", - "Microsoft.VisualStudio.Shell.Framework": "17.9.37000", - "Microsoft.VisualStudio.Shell.Interop": "17.9.37000", - "Microsoft.VisualStudio.Shell.Interop.10.0": "17.9.37000", - "Microsoft.VisualStudio.Shell.Interop.11.0": "17.9.37000", - "Microsoft.VisualStudio.Shell.Interop.12.0": "17.9.37000", - "Microsoft.VisualStudio.Shell.Interop.8.0": "17.9.37000", - "Microsoft.VisualStudio.Shell.Interop.9.0": "17.9.37000", - "Microsoft.VisualStudio.TaskRunnerExplorer.14.0": "14.0.0", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Text.Data": "17.9.187", - "Microsoft.VisualStudio.Text.Logic": "17.9.187", - "Microsoft.VisualStudio.Text.UI": "17.9.187", - "Microsoft.VisualStudio.Text.UI.Wpf": "17.9.187", - "Microsoft.VisualStudio.TextManager.Interop": "17.9.37000", - "Microsoft.VisualStudio.TextManager.Interop.10.0": "17.9.37000", - "Microsoft.VisualStudio.TextManager.Interop.11.0": "17.9.37000", - "Microsoft.VisualStudio.TextManager.Interop.12.0": "17.9.37000", - "Microsoft.VisualStudio.TextManager.Interop.8.0": "17.9.37000", - "Microsoft.VisualStudio.TextManager.Interop.9.0": "17.9.37000", - "Microsoft.VisualStudio.TextTemplating.VSHost": "17.9.37000", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities": "17.9.37000", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.VCProjectEngine": "17.9.37000", - "Microsoft.VisualStudio.VSHelp": "17.9.37000", - "Microsoft.VisualStudio.VSHelp80": "17.9.37000", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.VisualStudio.WCFReference.Interop": "17.9.37000", - "Microsoft.VisualStudio.Web.BrowserLink.12.0": "12.0.0", - "Microsoft.Win32.Primitives": "4.3.0", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0", - "VSLangProj": "17.9.37000", - "VSLangProj100": "17.9.37000", - "VSLangProj110": "17.9.37000", - "VSLangProj140": "17.9.37000", - "VSLangProj150": "17.9.37000", - "VSLangProj157": "17.9.37000", - "VSLangProj158": "17.9.37000", - "VSLangProj165": "17.9.37000", - "VSLangProj2": "17.9.37000", - "VSLangProj80": "17.9.37000", - "VSLangProj90": "17.9.37000", - "envdte": "17.9.37000", - "envdte100": "17.9.37000", - "envdte80": "17.9.37000", - "envdte90": "17.9.37000", - "envdte90a": "17.9.37000", - "stdole": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Threading.Analyzers": { - "type": "Direct", - "requested": "[17.10.48, )", - "resolved": "17.10.48", - "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" - }, - "Microsoft.VSSDK.BuildTools": { - "type": "Direct", - "requested": "[17.9.3184, )", - "resolved": "17.9.3184", - "contentHash": "THV8u9Qk0HohqSI5QCI/aurKhrDzoUrQfqVgkAAKK+WrKOPNh+pBl+Kv1YXhCyieICKo02yDGFEgvFqjm/KBuQ==", - "dependencies": { - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VsSDK.CompatibilityAnalyzer": "17.9.3184" - } - }, - "Nerdbank.GitVersioning": { - "type": "Direct", - "requested": "[3.6.133, )", - "resolved": "3.6.133", - "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" - }, - "envdte": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "rh4sIUpL+rRiXzgjEJ642rtXslE5nABYDV7CTs6thTSND8m549I8rIVEtuoaQf4sRRZ8kfjmZ64QruqYDM810w==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "envdte100": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "4CnUkuy7SzhpdZBqQZDXMQu3DQvQsRFKgEx/19IfNqRBLkRlEGnNN+U3TVXofSRDMqcq7dcyMXQZaq9e+lFNNw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "envdte80": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "YzSZuT4yw1qLaafWfWZSuQFiDXDfzlmj947Pk/bEIZTuS+C0UA9mn1LYMZi4y+nU8g0bufNFm6MCZq/jiCw9sw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "envdte90": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "O6GwlG9BC07UlLBLFkVJ5DNNtXsTDnGuFgFDXHHC9BB7oirrNZcGBBVG7gt1vPBn4QKNXVdxgYXlj5mEPbQOaQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "envdte90a": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "JhD350Mw6sqhRY6VImid5K8tcfqaIYg28ChsHeHD6epr7dyLCBUhCprJfzA2iqYp+FF9rLRxPmDp3E9kjSVQ9w==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "MediatR": { - "type": "Transitive", - "resolved": "8.1.0", - "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" - }, - "MessagePack": { - "type": "Transitive", - "resolved": "2.5.108", - "contentHash": "kcVRbdWP3xNWLZmmpm4DFO+kuXf6mUR2mHZ27WoZIEFIv9hazuUd80injXhNrZnlq/FklAdCsLOil5M76I4Ndg==", - "dependencies": { - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.NET.StringTools": "17.4.0", - "System.Collections.Immutable": "6.0.0", - "System.Reflection.Emit": "4.7.0", - "System.Reflection.Emit.Lightweight": "4.7.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "MessagePack.Annotations": { - "type": "Transitive", - "resolved": "2.5.108", - "contentHash": "28aNCvfJClgwaKr26gf2S6LT+C1PNyPxiG+ihYpy8uCJsRLJEDoCt2I0Uk5hqOPQ8P8hI0ESy520oMkZkPmsOQ==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build": { - "type": "Transitive", - "resolved": "16.8.0", - "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", - "dependencies": { - "Microsoft.Build.Framework": "16.8.0", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", - "System.Collections.Immutable": "1.5.0", - "System.Memory": "4.5.3", - "System.Text.Json": "4.7.0", - "System.Threading.Tasks.Dataflow": "4.9.0" - } - }, - "Microsoft.Build.Framework": { - "type": "Transitive", - "resolved": "17.9.5", - "contentHash": "CjRmqu9Wv2fyC1d7NKOuBDXcNMI8+GiXGM6izygB+skGGu4Vf0cBcoPq7AFqZCcMpn5DtZ+y7RpaLpB2qrzanQ==", - "dependencies": { - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.Logging": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Options.ConfigurationExtensions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.IO.Redist": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "uxXZ8pAcYtIJm8iqu/0e+CkM/VSwfgbHpnCDu7s8+gn/VUD5R6PxH3RGZFPaHgTisrlwD+BIyL5TqG6qwuZtOQ==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.NET.StringTools": { - "type": "Transitive", - "resolved": "17.9.5", - "contentHash": "C/oPRnjcIZBRzcpl1V06R1eEMCxOGt6mIm+8ioyblELgJEXLM8XjUPuCwljMO52VetsHw54xMcYwU8UEeHEIEg==", - "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": "4.4.22", - "contentHash": "j1tTGfD977w7eorHfgUS7mARtNufQtig9YqDrLi8CbS4HJU22pBm8Qu+F/9EsnA0XsQWFJo2BcqGWRlWdjXbCw==" - }, - "Microsoft.ServiceHub.Framework": { - "type": "Transitive", - "resolved": "4.4.22", - "contentHash": "fGRLbxg+J2xyoyNxI8x4gcrbc1ouMyob63kFG7xrteOUboyMIfAgIye8d7SnliTMwbcYStVYsELSE0GrHX8Pjw==", - "dependencies": { - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.VisualStudio.Composition": "17.6.17", - "Microsoft.VisualStudio.Threading": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "Nerdbank.Streams": "2.10.69", - "StreamJsonRpc": "2.16.41", - "System.Collections.Immutable": "7.0.0", - "System.Text.Json": "7.0.3" - } - }, - "Microsoft.ServiceHub.Resources": { - "type": "Transitive", - "resolved": "4.4.4171", - "contentHash": "0+hr177wzlS6m9IXjG9EW8BzyqfT+mGFL49NHlRKQHRVzSl2NUBI3yrftlFyz6oNgbsyitTkkWcHe2VYN/vpfQ==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Microsoft.VisualStudio.CommandBars": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "pec1aD/B8D9v347QCMKTSNf0CCTa0Gej7FL2N1G0scodFN6NtmhTIF2pftAv5Tcba/VoOSU3lZUKTRKxMyL8GA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.ComponentModelHost": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "QhM8dpfRn71MBTpo+2La7YQKjJMlFuzl5HyUERYOxQjeLI9JOS357UHyp1i1zj1uCCHKK0MyExGKxjixtMgJig==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", - "Microsoft.VisualStudio.Interop": "17.9.36524", - "Microsoft.VisualStudio.Validation": "17.8.8", - "System.ComponentModel.Composition": "7.0.0" - } - }, - "Microsoft.VisualStudio.Composition": { - "type": "Transitive", - "resolved": "17.7.40", - "contentHash": "BjQMHw97eZFaP+5Ng0iJaHOFGmRowZHfHRHWZGlz3h9eC1bEwNSaBXZT+tha9NhR+jPRnK1xNwCeoPtN8U0yMQ==", - "dependencies": { - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Composition": "7.0.0", - "System.Composition.AttributedModel": "7.0.0", - "System.Reflection.Metadata": "7.0.0", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "Microsoft.VisualStudio.Composition.Analyzers": { - "type": "Transitive", - "resolved": "17.7.40", - "contentHash": "rgFie5cK34I310RrLjjBnfH+bmOM7gUtcx8+PH65f1TeVQkWZzxr1b2/QsH/tHt3bsipvKghhp2VkUtLO5x8wA==" - }, - "Microsoft.VisualStudio.CoreUtility": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "J70GXhSyfP4gFdfrYg0Xf79gkSEbk2rvvRpFq9fAQ/AwXIvR2AlmwJgdPSqh9d1X4mWVAIrDjE26JVf/AnS1Sg==", - "dependencies": { - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.VisualStudio.Debugger.Interop.10.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "ggD/S0364Y1pUbU83hC2qZGl57WvL/0t9aiHMFnP+uVO9J0GYdOuGByCDztwpgkVq7aKaP138TvJrzKkjJzkCg==" - }, - "Microsoft.VisualStudio.Debugger.Interop.12.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "KfjM7g+6e1WHyPFivw/inhLYYEKsOWSdt26au+gRMCL9BKZpk0quy7fLJwzHIkeDQTtNhcqzeGldd4ZiLowMjA==" - }, - "Microsoft.VisualStudio.Debugger.Interop.14.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "fdRTWlEhGCQi4Dziz+aQHYhGrYXjUB77N47otApwtlpbI2SMBJirBZuha+awZD81EDuWH4/81nMPnKwLpgyh6Q==" - }, - "Microsoft.VisualStudio.Debugger.Interop.15.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "+vbBLOWIprvoufg/Fcy0N4nY1wRaPQ5qkJ8yrr5aqwzPG0A2HHFk0CPaCwCgzAzZxe7Lwcve3Gwg0NeY+o58ZA==" - }, - "Microsoft.VisualStudio.Debugger.Interop.16.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "8puRQSTqQooKJdfGZzSEtT9ZALTViFXDtJg77L7p8OwQMlvAXMgUhiX8K+c6VVBnd+5DS2XYpJDzmovz30AsVA==" - }, - "Microsoft.VisualStudio.Debugger.InteropA": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "eZNzPvDyMI6AXMYKoP/Ecwdru0BAELLUkYDzBA1y2V3hrIBfQr2nuB6IJSKq06QoG3WOtCKPLTGZ68c89T1xGw==" - }, - "Microsoft.VisualStudio.Designer.Interfaces": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "ha+hywkSXMC+5hTi1oUt7UVgH9it6L0G9k/teOqpHTVn3JDYJKMBHwoQhqtl0tMxuieqImrMe9ayWOLqMtVtCA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Editor": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "6qrrfeetHtrfZy/Qn26pu/JDlgVON9GzM4yQdh6QajgrjsPR+3lH2hzwvW2gwTgRWbpFJiuHXIC8J+yAjAjyTg==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.VisualStudio.ComponentModelHost": "17.9.145", - "Microsoft.VisualStudio.Composition": "17.7.38", - "Microsoft.VisualStudio.CoreUtility": "17.9.187", - "Microsoft.VisualStudio.GraphModel": "17.9.36524", - "Microsoft.VisualStudio.ImageCatalog": "17.9.36524", - "Microsoft.VisualStudio.Imaging": "17.9.36524", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", - "Microsoft.VisualStudio.Interop": "17.9.36524", - "Microsoft.VisualStudio.Language": "17.9.187", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Shell.15.0": "17.9.36524", - "Microsoft.VisualStudio.Shell.Framework": "17.9.36524", - "Microsoft.VisualStudio.Telemetry": "17.9.13", - "Microsoft.VisualStudio.Text.Data": "17.9.187", - "Microsoft.VisualStudio.Text.Logic": "17.9.187", - "Microsoft.VisualStudio.Text.UI": "17.9.187", - "Microsoft.VisualStudio.Text.UI.Wpf": "17.9.187", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Utilities": "17.9.36524", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Private.Uri": "4.3.2", - "System.Reflection.Metadata": "7.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.GraphModel": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "8JLGacPJ57RtKXXPr21jBE54mIwFi7hvWgM/PNGTOSwKMccCrcoayfv7gRb+hbtbhVwqEfTMi+xfMs32uF60SA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000", - "System.ComponentModel.Composition": "8.0.0" - } - }, - "Microsoft.VisualStudio.ImageCatalog": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "tO1gj9wEZrsUgAeU08y6ALa8BNTdgkZZJk845WD3XLUR358RBtjfxySGHuZBlkfmInRs48N9fZbFKCZxzimUAA==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Imaging": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "u8bSqF0HnfLCWNFa5tqeacYpIwiSbwrXRWAfcmWCNdUvOkIwHf+66WnEmriDB4PErHzfr1xn841TzkVHr4ng8A==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities": "17.9.37000", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "k0OtC0xLjVelFL9HVUNfOWA6qL+F+MDRyWCN1sJ/QzizTNUXWfOVVAv7Vpbz4Bf+0tmOhjS/KL3iS6brg+a8hg==" - }, - "Microsoft.VisualStudio.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" - }, - "Microsoft.VisualStudio.Language": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "4VDeRwY0BB+Kqj/Us/1ITKLYHm5eOdbQQqcktkSt2JF700tNzLfjb5uzt47YSAcDDPp0k+LJrQSb2VK1daFKhg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.9.187", - "Microsoft.VisualStudio.Text.Data": "17.9.187", - "Microsoft.VisualStudio.Text.Logic": "17.9.187", - "Microsoft.VisualStudio.Text.UI": "17.9.187", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Private.Uri": "4.3.2", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Language.Intellisense": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "QL0JNPJp2IhAfdGhHAhyXXhcg09LtiJP/Ue5BVa6jFMRMoAvvhb68NGjjHs8EyLAxHaaULXmiVtqisL+NVqf1w==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.9.187", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", - "Microsoft.VisualStudio.Language": "17.9.187", - "Microsoft.VisualStudio.Text.Data": "17.9.187", - "Microsoft.VisualStudio.Text.Logic": "17.9.187", - "Microsoft.VisualStudio.Text.UI": "17.9.187", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Private.Uri": "4.3.2", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Language.NavigateTo.Interfaces": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "Y5J+/qUEo78+W+7SyER7Axb3VQsKzNCX9FOosOvYcF68XHUMsSygsQ/hl/gNtd1zLh0qT7HdkwZJACg/qBFPYA==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.VisualStudio.Composition": "17.7.38", - "Microsoft.VisualStudio.CoreUtility": "17.9.145", - "Microsoft.VisualStudio.Imaging": "17.9.36524", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", - "Microsoft.VisualStudio.Interop": "17.9.36524", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.Telemetry": "17.9.13", - "Microsoft.VisualStudio.Text.Data": "17.9.145", - "Microsoft.VisualStudio.Text.Logic": "17.9.145", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Utilities": "17.9.36524", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Reflection.Metadata": "7.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Language.StandardClassification": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "W29WbwgluniFCnPwwYPcyXXMf2vsCtUCUjUoY7r6+InZM0R48UfVGUB2Vq6ZBor+Wi3gmqiytDlGrv4PeqnMqg==", - "dependencies": { - "Microsoft.VisualStudio.Text.Logic": "17.9.187", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.VisualStudio.LanguageServer.Client": { - "type": "Transitive", - "resolved": "17.9.46", - "contentHash": "zLsZaRchQs1X+Fk/hfjYg7f1PXMK5G5mGfApM8FoRCWECJPbeSbJtjvTip068ie4BBxsFhRy3vziq0wmg2077A==", - "dependencies": { - "Microsoft.VisualStudio.ComponentModelHost": "17.9.171", - "Microsoft.VisualStudio.CoreUtility": "17.9.171", - "Microsoft.VisualStudio.ImageCatalog": "17.9.36524", - "Microsoft.VisualStudio.Interop": "17.9.36524", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.Telemetry": "17.9.13", - "Microsoft.VisualStudio.Text.Logic": "17.9.171", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Utilities": "17.9.36524", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Collections.Immutable": "7.0.0" - } - }, - "Microsoft.VisualStudio.LanguageServer.Protocol": { - "type": "Transitive", - "resolved": "17.2.8", - "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", - "dependencies": { - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.VisualStudio.Linux.ConnectionManager.Store": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "sM2JEcLzyAakDg/j+mbEdLef2TokW6V4gFJnonReP57sYhbqTyHyEKmfcoXVk2Wav3KvG5Wy1411kp1FnXjIjg==" - }, - "Microsoft.VisualStudio.OLE.Interop": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "OJaeSuDGZvqJaZHiuB12kiJj6aFdJVp1s+OsMcq3kCJ6DBTcUw8tDHXS2MGPH3nYS/k7qMM/1OatlJL9N3uWJQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Package.LanguageService.15.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "sTQEH8gPxX4v8cOB4qkbdKQSm4xEax2a2PI5kRMh8nDbYprrUaqleuGs55o29a5eWcFQ1DJHwfba9Q2VHTPzXQ==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.Build.Framework": "17.9.5", - "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.ComponentModelHost": "17.9.187", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.Interop": "17.9.37000", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.Sdk.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Shell.15.0": "17.9.37000", - "Microsoft.VisualStudio.Shell.Framework": "17.9.37000", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities": "17.9.37000", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.ProjectAggregator": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "9OlWeWMGvX0aE2VH4u0nqkDQ6IVEOPJc4OCC5af72QwJe646vs7k0d01xxWPjy6VbSxgzia+ItM91kv31dWB5Q==" - }, - "Microsoft.VisualStudio.RemoteControl": { - "type": "Transitive", - "resolved": "16.3.52", - "contentHash": "+MgP1+Rtt1uJZyqhf7+H6KAQ57wc7v00ixuLhEgFggIbmW2/29YXfPK7gLvXw+vU7vimuM47cqAHrnB7RWYqtg==", - "dependencies": { - "Microsoft.VisualStudio.Utilities.Internal": "16.3.42" - } - }, - "Microsoft.VisualStudio.RpcContracts": { - "type": "Transitive", - "resolved": "17.9.7", - "contentHash": "Vzu2tCqKQxaBc1i5VF6hF6Wg+EhNRA27voQ8XPgQ2MxrzQRheivH92xvkynpE5hWYg+qeH29axH/wOMDZ9MnmQ==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "4.2.100", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "Microsoft.VisualStudio.SDK.Analyzers": { - "type": "Transitive", - "resolved": "16.10.10", - "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", - "dependencies": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", - "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" - } - }, - "Microsoft.VisualStudio.Setup.Configuration.Interop": { - "type": "Transitive", - "resolved": "3.9.2164", - "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" - }, - "Microsoft.VisualStudio.Shell.15.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "7ZB6x3UOFkOqdlPTlP5Q5KNL3EDdXNmCIwAJF3XOHVw7luc5gs9y8qBGV0BrKc3OhoGXg8ecj/aGEHRPn3wJVw==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.Build.Framework": "17.9.5", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.ComponentModelHost": "17.9.187", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.GraphModel": "17.9.37000", - "Microsoft.VisualStudio.ImageCatalog": "17.9.37000", - "Microsoft.VisualStudio.Imaging": "17.9.37000", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", - "Microsoft.VisualStudio.Interop": "17.9.37000", - "Microsoft.VisualStudio.ProjectAggregator": "17.9.37000", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Shell.Framework": "17.9.37000", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities": "17.9.37000", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Shell.Design": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "TpfmizIlCvmbjNdDNG+fhJngAdGI3mWx2HXmZjzVPIFQy1EJaRDUlm8K6TJZ/reqgqCiXJgNpBdx65q3mWOwcQ==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.Build.Framework": "17.9.5", - "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.ComponentModelHost": "17.9.187", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.ImageCatalog": "17.9.37000", - "Microsoft.VisualStudio.Interop": "17.9.37000", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.Sdk.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Shell.15.0": "17.9.37000", - "Microsoft.VisualStudio.Shell.Framework": "17.9.37000", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Shell.Framework": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "Inem6IWh7sCSkn2Up6w8hCJziHkwnlIwxHbIihDOFLNj70eMmxtYbrK/YK5Wj/3/hlWXyQM0m5GxPZiLVKjOfA==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.Build.Framework": "17.9.5", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Analyzers": "4.4.22", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.GraphModel": "17.9.37000", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", - "Microsoft.VisualStudio.Interop": "17.9.37000", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities": "17.9.37000", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Shell.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.10.40170" - } - }, - "Microsoft.VisualStudio.Shell.Interop.10.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "onDfw2IMubXGB+wuI0AeTkHAgszzoF62LsOltCYyUvbiwLYAjJknaqNRI28R1fu/TSqwSB8SXaSHWSUx+gi10w==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Shell.Interop.11.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "l/+WiYlmkdF9UvHeg8zlXcMRtmNzYuuQ6s1HRZa4j2qQ98jfKpFdki5HHDKB0QdJG+hIHuLJGSH3YFMTT8t4TQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Shell.Interop.12.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "2uMajweo4LggamYDTMyg44UkPi/VBweKi8Yv/PHmMivzxHx5unlo+K2a1rQvbp2JjAEwTd0YSOtmxCTrDMIqcg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Shell.Interop.8.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "n90dAFqYPq0SHxZfcn9b7+sjRYK7J6b5drakIHJ+AGWEGtON8bznpKZW8NWFWjo9odI5xTOEZAZP4It4ghuWQg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Shell.Interop.9.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "g4TsZCWjPC4ufqAosMyUP6I6Dp3F54ru9jzFEvWgYofrwV+OIA7iUK4Bt4g0YCE/mn1VF6qCV0BGpuL7l9lChQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.TaskRunnerExplorer.14.0": { - "type": "Transitive", - "resolved": "14.0.0", - "contentHash": "iZpAv8bEWjkyxFF1GIcSOfldqP/umopJKnJGKHa0vg8KR7ZY3u3dWtJmwO4w3abIx+176SIkQe78y5A+/Md7FA==" - }, - "Microsoft.VisualStudio.Telemetry": { - "type": "Transitive", - "resolved": "17.9.305", - "contentHash": "dWQlTc3o1zvnr0dFD+ZpC04gZtP3pzAMEQBK2oqPZoMRm4n3cj5sSNSlSugDjWHAnVAKzses/ZTvR2SHTyCQNA==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.VisualStudio.Text.Data": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "8orDTYO5LCuweuMf8HWdeNRh/Cw7UNC//2l25bxAtbzW8r8nhXfMw2KRYq4Op3RKwjTPFZj0vkBFpoVZjg+slg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.9.187", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.VisualStudio.Text.Logic": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "wU6t9SNyooa5VEKUYkEPo1YyfyRRkWnu7Zdwxzl9lroZLBz4sdHiq5RD2bo9Uq3yLJgnmmfR3o05lVBScFzkpg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.9.187", - "Microsoft.VisualStudio.Text.Data": "17.9.187", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.VisualStudio.Text.UI": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "jepyybFierTz+HDx9Z9j0STlt5RA/XSA1aXdlrs+vfHVgdVE6chDyLEjPMDwEyb+bWhKe6Sv1ED/xF/wUPeZxQ==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.9.187", - "Microsoft.VisualStudio.Text.Data": "17.9.187", - "Microsoft.VisualStudio.Text.Logic": "17.9.187", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.VisualStudio.Text.UI.Wpf": { - "type": "Transitive", - "resolved": "17.9.187", - "contentHash": "fnpS1bxmq6ZwwdWtfi9/Dqw/hnEc873LROqhtFPVvq3AsNYtuvXmNqKWDwdKHSVSIfUHSFGWHf9SEycpcYnNeg==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.9.187", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", - "Microsoft.VisualStudio.Text.Data": "17.9.187", - "Microsoft.VisualStudio.Text.Logic": "17.9.187", - "Microsoft.VisualStudio.Text.UI": "17.9.187", - "Microsoft.VisualStudio.Threading": "17.9.27", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Collections.Immutable": "7.0.0", - "System.ComponentModel.Composition": "7.0.0", - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.VisualStudio.TextManager.Interop": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "81JWgO2og33CN/SaaubY+2D//fU0v7wcsa88UoQpLi7QM1FLdRtz1TK0VbeHWgLfnvKyxNMShdcsM5SQMtRsrQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.10.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "Qypt+Hm2SY1dYxLgfdWQvFIEvhvBHTFxv0bxfbY2VLyKmE7Oox5svoD+MRJkQIbVV1kd3J78rNlBQzmt1pdliw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.11.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "DO2R1JpSLNit9BV8/up8o3wZrHZAoDL1yA3GiQywvhVq2HCzVLLN5lQJkSXbW1qbqMCujz6Y7xBnBDW5Gk9gtw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.12.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "EW+AFokDrexrevkYrsbPkKypjnt2Ssq9QmTZJXJxzzOs3XidfIdvZckxVuHSvnSn7cnUsOm30pT0F0bXXffPJg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.8.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "q1xJmnvx/Akty9jF/gWb8F6l+5Hpo9J/W5EQGMAO2KceT2717tYvjCqewOZ7Ae9dAIom/e9oIpW5rjrLH+k7fg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.TextManager.Interop.9.0": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "y4c5DEyGpFO/HRJsC4wjRS5+bATLdsBw36sAprg8SNrRa9W5bJeJC7nj1s0IXX1H/5mzYH12/q5R8N6enCIplA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.TextTemplating.VSHost": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "ItDcrt/mk0oAYrLfHpRV0fd09sNSmHEOcbJJSReOVkpLioqf47b9hPIqJZnfu50eP6C9v/3+bo7jsWV5Abw1bw==", - "dependencies": { - "Microsoft.VisualStudio.Validation": "17.8.8", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.VisualStudio.Threading": { - "type": "Transitive", - "resolved": "17.9.28", - "contentHash": "n1bG965yT/7QHChX4x8zJ28LDaNdlJ6AgzthU3XzCsV9fVAMXYJEFi6BbWt8EM+7t0Wz9Oy021VMH2Z/iyz/Qw==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Utilities": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "tiNenrZYKSxC/i0LDcXbENeuJDzxKgYFd+LA4iwI18LMN85ThffoFbvGij5CQ6IBa6FWL8VQGlPuE65iMXWfNQ==", - "dependencies": { - "MessagePack": "2.5.108", - "MessagePack.Annotations": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "8.0.0", - "Microsoft.IO.Redist": "6.0.0", - "Microsoft.NET.StringTools": "17.9.5", - "Microsoft.ServiceHub.Framework": "4.4.22", - "Microsoft.ServiceHub.Resources": "4.4.4171", - "Microsoft.VisualStudio.Composition": "17.7.40", - "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", - "Microsoft.VisualStudio.RemoteControl": "16.3.52", - "Microsoft.VisualStudio.RpcContracts": "17.9.7", - "Microsoft.VisualStudio.Telemetry": "17.9.305", - "Microsoft.VisualStudio.Threading": "17.9.28", - "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", - "Microsoft.VisualStudio.Validation": "17.8.8", - "Microsoft.Win32.Registry": "5.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "StreamJsonRpc": "2.17.11", - "System.Buffers": "4.5.1", - "System.Collections.Immutable": "8.0.0", - "System.ComponentModel.Composition": "8.0.0", - "System.Composition": "8.0.0", - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0", - "System.Diagnostics.DiagnosticSource": "8.0.0", - "System.IO.Pipelines": "8.0.0", - "System.Memory": "4.5.5", - "System.Numerics.Vectors": "4.5.0", - "System.Reflection.Metadata": "8.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0", - "System.Text.Encodings.Web": "8.0.0", - "System.Text.Json": "8.0.0", - "System.Threading.AccessControl": "8.0.0", - "System.Threading.Tasks.Dataflow": "8.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.VisualStudio.Utilities.Internal": { - "type": "Transitive", - "resolved": "16.3.56", - "contentHash": "QX5UVVk4+/rPu3Xy3QRAntNBy/3VMl2whwSlt73Ksp6MRf5ersUopgmHbkEnWSTX6e/SZf+mfqTmvdk67URH2Q==" - }, - "Microsoft.VisualStudio.Validation": { - "type": "Transitive", - "resolved": "17.8.8", - "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g==" - }, - "Microsoft.VisualStudio.VCProjectEngine": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "xvnBf3JOY55wM6Gs4jEkRzAy3fySTbXQN+kO4l1QOatjnfz87+CWVH/yemjy7lR9WM6zULMoA6yZBe4fZ7Ydgg==" - }, - "Microsoft.VisualStudio.VSHelp": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "nxoXdklX17Ud+rJv4xRcCwmmwF5PBCsq4XjrZ2fYKVNJSMV5kvuM+tiZvl8giThZ9jmN6arhKl/k1158xxP/iA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.VSHelp80": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "IlH4iEAmQ79ZwBSXr6be1WG+6X9Ga3oDpiBw7IQifztx4ehenJ15+YumPRbeSMt3Jbx0DjvsyIqU3lDifmCfXA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.WCFReference.Interop": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "YEFmkGNqnNTiLG2JqKyXMbOOrn1cwoPH/q54DanhDdqSmSDq/2ah/MAs8tA0BkqsrQnbexOtnfZPvtZQzwuggg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "Microsoft.VisualStudio.Web.BrowserLink.12.0": { - "type": "Transitive", - "resolved": "12.0.0", - "contentHash": "HeuaZh8+wNVdwx7VF8guFGH2Z2zH+FYxWBsRNp+FjjlmrhCfM7GUQV5azaTv/bN5TPaK8ALJoP9UX5o1FB5k1A==" - }, - "Microsoft.VisualStudio.Workspace": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", - "dependencies": { - "Microsoft.IO.Redist": "4.7.1", - "Microsoft.VisualStudio.Composition": "16.4.11", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Workspace.Extensions": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", - "dependencies": { - "Microsoft.Build": "16.8.0", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" - } - }, - "Microsoft.VisualStudio.Workspace.VSIntegration": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", - "dependencies": { - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", - "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" - } - }, - "Microsoft.VsSDK.CompatibilityAnalyzer": { - "type": "Transitive", - "resolved": "17.9.3184", - "contentHash": "vlv1hJYP30UUvG1fpqGv56istFJu9TNrei04WoHXGCQGz5lqREDSwaF2Th1v7VPOj+xdSGp2PtAdGvp+/ExVFA==" - }, - "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.10.69", - "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "System.IO.Pipelines": "7.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.3", - "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" - }, - "OmniSharp.Extensions.JsonRpc": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", - "dependencies": { - "MediatR": "8.1.0", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.Extensions.Logging": "6.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", - "System.Collections.Immutable": "5.0.0", - "System.Reactive": "6.0.0", - "System.Threading.Channels": "6.0.0" - } - }, - "OmniSharp.Extensions.JsonRpc.Generators": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" - }, - "OmniSharp.Extensions.LanguageProtocol": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.LanguageProtocol": "0.19.9", - "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer.Shared": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", - "dependencies": { - "OmniSharp.Extensions.LanguageProtocol": "0.19.9" - } - }, - "stdole": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "Fbut94Js30JtoKQlcNF1+JZJW6UTrWzWa8y3GpPCBUJqGrzkvW6kSJBkyaeY4F3Jdk0rYZrFc6UjF6fjvQ3DJQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "StreamJsonRpc": { - "type": "Transitive", - "resolved": "2.17.11", - "contentHash": "fygZJqYer5WPBwDqT0TOsVRTlsCZV3Q8HQMkoja+jhC2KkCbUW038njK29pf8Hqv5/IfxWb72LCR49wq4nz3ow==", - "dependencies": { - "MessagePack": "2.5.108", - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading": "17.7.35", - "Microsoft.VisualStudio.Threading.Analyzers": "17.7.35", - "Microsoft.VisualStudio.Validation": "17.6.11", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.1", - "System.Collections.Immutable": "7.0.0", - "System.Diagnostics.DiagnosticSource": "7.0.2", - "System.IO.Pipelines": "7.0.0", - "System.Text.Encodings.Web": "7.0.0", - "System.Text.Json": "7.0.3", - "System.Threading.Tasks.Dataflow": "7.0.0" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.ComponentModel.Composition": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bGhUX5BTivJ9Wax0qnJy7uGq7dn/TQkEpJ2Fpu1etg8dbPwyDkUzNPc1d3I2/jUr9y4wDI3a1dkSmi8X21Pzbw==" - }, - "System.Composition": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Convention": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0", - "System.Composition.TypedParts": "8.0.0" - } - }, - "System.Composition.AttributedModel": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" - }, - "System.Composition.Convention": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0" - } - }, - "System.Composition.Hosting": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", - "dependencies": { - "System.Composition.Runtime": "8.0.0" - } - }, - "System.Composition.Runtime": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" - }, - "System.Composition.TypedParts": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", - "dependencies": { - "System.Composition.AttributedModel": "8.0.0", - "System.Composition.Hosting": "8.0.0", - "System.Composition.Runtime": "8.0.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==", - "dependencies": { - "System.Memory": "4.5.5", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "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.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.Reactive": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "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": "8.0.0", - "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", - "dependencies": { - "System.Collections.Immutable": "8.0.0", - "System.Memory": "4.5.5" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.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.0", - "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", - "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": "8.0.0", - "contentHash": "cIed5+HuYz+eV9yu9TH95zPkqmm1J9Qps9wxjB335sU8tsqc2kGdlTEH9FZzZeCS8a7mNSEsN8ZkyhQp1gfdEw==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Threading.Channels": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "7V0I8tPa9V7UxMx/+7DIwkhls5ouaEMQx6l/GwGm1Y8kJQ61On9B/PxCXFLbgu5/C47g0BP2CUYs+nMv1+Oaqw==" - }, - "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==" - }, - "VSLangProj": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "6YNkHtXDmAEBdbajfB6kgve1VKAepxxyrROyJb6P/xSQiIFg4NNnubniEOka8lEQHwom/ZjhiCwDew5sKOK5Fg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj100": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "kKZ08vauju/TFSS4ODMPj7h64HWbPvYPD2mDdmcAdp4U2DhU857+oZac4c3XXFQ5ebYnoB4QiD6TZVueJXsKVQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj110": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "81OnibbGrVx3mAmo+ZSt8If5xR3csFyjpUo17HnzqDyHQTJ18dNQD/7mtqfLRYXtTan6TdG+I0Hbw7oY1hyOyA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj140": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "wtxv09OfpLFF7lKF1Nr9fEZugH7Co9J8VgvH/tzQdDANZzmLr4zFEzBFYGxPw95bAICt3FePtnNQ9CWKP5MwVQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj150": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "rSUieNtE8+mzGgIMw8VnYaPo047zv6i+A2nVwMIHAxFszuuYhEzXjqSZLE9KRYFgSf1xtGpbeNX+ebDRk+uUAQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj157": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "c2RB7W9jAjsu/BqCR4yHKvSJ42u98RcRQ6Fqjq0ktGxXZaojhNje2wEIr38yYHGH7cN2AE+Ra8fg1vGOmhxSDQ==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj158": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "AsADOKFAjkf7EamP/6/FZfs8jpsn4C0ChEsd0y/c3e7PBjJoCVa9Nh4WqRVSVjbWM1Oy3T7d+50bGxgQZAZ4KA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj165": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "jkueE+WT5BEiurPCLXUDslmbjuUOpVIVBDNmliDXWY/V3aHxq5tVG4u4VeaPp1LMS4x+O1vjQDU3K+V5ztYDwA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj2": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "zuFpJzVFZxVS9l4ALohA4Z+VRR2TxA46z1hgmns8tRVJxTFz6NnwqRMHbsD29VbpjvRsh62CZOVcUOXrcBBipw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj80": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "Q+I1RRsSZH4rLVm9PO7CLiI4Sx8xPznnBDgJ5Cv+L79Y99rIcyd7TZi3PYawQbSt0HEI2IgWZJ9JztiS3ksQpg==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "VSLangProj90": { - "type": "Transitive", - "resolved": "17.9.37000", - "contentHash": "Zq6YLqN1cVNfdpFlrrFmI7Rr2blikVHyyPxmZ6vdO2H+ldjgTjNxMwddnBvwTt3AJazNrvaC/ZXGk+bvn+OPOA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.9.37000" - } - }, - "bicep.vslanguageserverclient": { - "type": "Project", - "dependencies": { - "Microsoft.VisualStudio.LanguageServer.Client": "[17.2.2105, )", - "Microsoft.VisualStudio.LanguageServer.Protocol": "[17.2.8, )", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "[3.9.2164, )", - "Microsoft.VisualStudio.Shell.Interop": "[17.10.40170, )", - "Microsoft.VisualStudio.Utilities": "[17.2.32505.113, )", - "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )", - "Microsoft.Visualstudio.Telemetry": "[16.5.6, )", - "OmniSharp.Extensions.LanguageServer": "[0.19.9, )" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-arm64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/linux-musl-x64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/linux-x64": { - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "dependencies": { - "runtime.unix.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.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==" - }, - "runtime.any.System.Runtime.InteropServices": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw==" - }, - "runtime.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "2mI2Mfq+CVatgr4RWGvAWBjoCfUafy6VNFU7G9OA52DjO8x/okfIbsEq2UPgeGfdpO7X5gmPXKT8slx0tn0Mhw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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", - "runtime.unix.System.Private.Uri": "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": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "dependencies": { - "System.Runtime": "4.3.0", - "runtime.any.System.Runtime.InteropServices": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/osx-arm64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/osx-x64": { - "Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", - "dependencies": { - "runtime.unix.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.Runtime": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==" - }, - "runtime.any.System.Runtime.InteropServices": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw==" - }, - "runtime.native.System": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "1.1.0", - "Microsoft.NETCore.Targets": "1.1.0" - } - }, - "runtime.unix.Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "2mI2Mfq+CVatgr4RWGvAWBjoCfUafy6VNFU7G9OA52DjO8x/okfIbsEq2UPgeGfdpO7X5gmPXKT8slx0tn0Mhw==", - "dependencies": { - "System.Runtime": "4.3.0", - "System.Runtime.InteropServices": "4.3.0", - "runtime.native.System": "4.3.0" - } - }, - "runtime.unix.System.Private.Uri": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", - "dependencies": { - "runtime.native.System": "4.3.0" - } - }, - "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", - "runtime.unix.System.Private.Uri": "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": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", - "dependencies": { - "System.Runtime": "4.3.0", - "runtime.any.System.Runtime.InteropServices": "4.3.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/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.win.Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/win-arm64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - }, - ".NETFramework,Version=v4.7.2/win-x64": { - "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.win.Microsoft.Win32.Primitives": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - } - } - } -} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient/packages.lock.json deleted file mode 100644 index 8b9c74d0f1a..00000000000 --- a/src/vs-bicep/Bicep.VSLanguageServerClient/packages.lock.json +++ /dev/null @@ -1,1074 +0,0 @@ -{ - "version": 1, - "dependencies": { - ".NETFramework,Version=v4.7.2": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": { - "type": "Direct", - "requested": "[3.3.4, )", - "resolved": "3.3.4", - "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" - }, - "Microsoft.CodeAnalysis.CSharp.CodeStyle": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" - }, - "Microsoft.Net.Compilers.Toolset": { - "type": "Direct", - "requested": "[4.9.2, )", - "resolved": "4.9.2", - "contentHash": "2j3UDVESH3nVyOr3EF3Om0nSfbZ70dRfiSxmFEoCMar9fApOsns+Odv6g3bMH8rZriY6G4x3LCsnsDl+CEt5KQ==" - }, - "Microsoft.SourceLink.GitHub": { - "type": "Direct", - "requested": "[8.0.0, )", - "resolved": "8.0.0", - "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", - "dependencies": { - "Microsoft.Build.Tasks.Git": "8.0.0", - "Microsoft.SourceLink.Common": "8.0.0" - } - }, - "Microsoft.VisualStudio.LanguageServer.Client": { - "type": "Direct", - "requested": "[17.2.2105, )", - "resolved": "17.2.2105", - "contentHash": "nIECUBSgRnpz5Dhfy+SlCJB5eMy7UIO7ZzP07bhecNVivOnAPQdh+uJj7EpYKlOgB95CHuSAB/L58vLLxXN/BA==", - "dependencies": { - "Microsoft.VisualStudio.CoreUtility": "17.2.3192", - "Microsoft.VisualStudio.Shell.15.0": "17.2.32406.100", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "Microsoft.VisualStudio.Validation": "17.0.53", - "StreamJsonRpc": "2.11.35" - } - }, - "Microsoft.VisualStudio.LanguageServer.Protocol": { - "type": "Direct", - "requested": "[17.2.8, )", - "resolved": "17.2.8", - "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", - "dependencies": { - "Newtonsoft.Json": "13.0.1" - } - }, - "Microsoft.VisualStudio.Setup.Configuration.Interop": { - "type": "Direct", - "requested": "[3.9.2164, )", - "resolved": "3.9.2164", - "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" - }, - "Microsoft.VisualStudio.Shell.Interop": { - "type": "Direct", - "requested": "[17.10.40170, )", - "resolved": "17.10.40170", - "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.10.40170" - } - }, - "Microsoft.VisualStudio.Telemetry": { - "type": "Direct", - "requested": "[16.5.6, )", - "resolved": "16.5.6", - "contentHash": "afyxTJBcntD92T9Ce8gZxOgEZBLZXFA7kxQLW1gnbnF5yGBkeF8vdwIlvJ/aw6+Of0cgfjgY9J/bLGZ976puAQ==", - "dependencies": { - "Microsoft.CSharp": "4.7.0", - "Microsoft.VisualStudio.RemoteControl": "16.3.44", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", - "Newtonsoft.Json": "13.0.1", - "System.Runtime.CompilerServices.Unsafe": "5.0.0" - } - }, - "Microsoft.VisualStudio.Threading.Analyzers": { - "type": "Direct", - "requested": "[17.10.48, )", - "resolved": "17.10.48", - "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" - }, - "Microsoft.VisualStudio.Utilities": { - "type": "Direct", - "requested": "[17.2.32505.113, )", - "resolved": "17.2.32505.113", - "contentHash": "4Pyq/vfl4yKtXL/OojK1ekQ7eo164KK4ud5AC4NFxBbSKjvHuLvt/MHzAOcV1s8MwR2/Eqj9rSmptTth7vsSEA==", - "dependencies": { - "Microsoft.ServiceHub.Client": "3.1.4097", - "Microsoft.VisualStudio.RpcContracts": "17.2.31", - "Microsoft.VisualStudio.Telemetry": "16.4.56", - "StreamJsonRpc": "2.11.35", - "System.ComponentModel.Composition": "6.0.0", - "System.Composition": "6.0.0", - "System.Threading.AccessControl": "6.0.0", - "System.Threading.Tasks.Dataflow": "6.0.0" - } - }, - "Microsoft.VisualStudio.Workspace.VSIntegration": { - "type": "Direct", - "requested": "[17.1.11-preview-0002, )", - "resolved": "17.1.11-preview-0002", - "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", - "dependencies": { - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", - "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" - } - }, - "Nerdbank.GitVersioning": { - "type": "Direct", - "requested": "[3.6.133, )", - "resolved": "3.6.133", - "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" - }, - "OmniSharp.Extensions.LanguageServer": { - "type": "Direct", - "requested": "[0.19.9, )", - "resolved": "0.19.9", - "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.LanguageProtocol": "0.19.9", - "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" - } - }, - "MediatR": { - "type": "Transitive", - "resolved": "8.1.0", - "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" - }, - "MessagePack": { - "type": "Transitive", - "resolved": "2.3.85", - "contentHash": "wOabnqkrXp7oeEYLY4Kd0m0eT4falJQukqvErfz5Y4FKKo9mSQQ1+rMxx9mapF2el+P0XQxiZOBKFm+oCvu0aw==", - "dependencies": { - "MessagePack.Annotations": "2.3.85", - "Microsoft.Bcl.AsyncInterfaces": "1.0.0", - "System.Collections.Immutable": "1.5.0", - "System.Memory": "4.5.3", - "System.Reflection.Emit": "4.6.0", - "System.Reflection.Emit.Lightweight": "4.6.0", - "System.Runtime.CompilerServices.Unsafe": "4.5.2", - "System.Threading.Tasks.Extensions": "4.5.3" - } - }, - "MessagePack.Annotations": { - "type": "Transitive", - "resolved": "2.3.85", - "contentHash": "2GCYZ9qgNS5Og0tiqfhWRhcfDZI/iRi8t07R0fNic1HthMMRfWxWOKDIBhtMA1RwZM4BuRsmJXUgk3evyisb1w==" - }, - "Microsoft.Bcl.AsyncInterfaces": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "3aeMZ1N0lJoSyzqiP03hqemtb1BijhsJADdobn/4nsMJ8V1H+CrpuduUe4hlRdx+ikBQju1VGjMD1GJ3Sk05Eg==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Build": { - "type": "Transitive", - "resolved": "16.8.0", - "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", - "dependencies": { - "Microsoft.Build.Framework": "16.8.0", - "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", - "System.Collections.Immutable": "1.5.0", - "System.Memory": "4.5.3", - "System.Text.Json": "4.7.0", - "System.Threading.Tasks.Dataflow": "4.9.0" - } - }, - "Microsoft.Build.Framework": { - "type": "Transitive", - "resolved": "17.1.0", - "contentHash": "7PPEbjuL/lKQ8ftblxwBZKf5alZCA4GDvBTiO3UAVxtRe52a2jL3mc8TpKNiJZzytGz7fKdR5ClDCs7+Uw4hMg==", - "dependencies": { - "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.0.4492", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.Build.Tasks.Git": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" - }, - "Microsoft.CSharp": { - "type": "Transitive", - "resolved": "4.7.0", - "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" - }, - "Microsoft.Extensions.Configuration": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Configuration.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", - "dependencies": { - "Microsoft.Extensions.Primitives": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Configuration.Binder": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" - } - }, - "Microsoft.Extensions.DependencyInjection": { - "type": "Transitive", - "resolved": "6.0.1", - "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.Extensions.Logging": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.Extensions.DependencyInjection": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Logging.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0", - "System.ValueTuple": "4.5.0" - } - }, - "Microsoft.Extensions.Logging.Abstractions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.Extensions.Options": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", - "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Options.ConfigurationExtensions": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", - "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", - "Microsoft.Extensions.Options": "6.0.0", - "Microsoft.Extensions.Primitives": "6.0.0" - } - }, - "Microsoft.Extensions.Primitives": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Microsoft.IO.Redist": { - "type": "Transitive", - "resolved": "4.7.1", - "contentHash": "WaA56Jq9Hk0Bz/c3eIWIepnCj+AXJajTZ3RQUk7PRT8DEXk9RY0vfoNrZmNC2JTrnKXGigz3js3PReGHxGpdhw==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4" - } - }, - "Microsoft.ServiceHub.Analyzers": { - "type": "Transitive", - "resolved": "3.1.4097", - "contentHash": "ZOTK44YxmQ/YV+PAv7XSN2rj7UTfR2NSy8UHOaPZU8kE1giTDHvMY9QtcvnaKurD6eNtLCbCfHWhrt6Inev43Q==" - }, - "Microsoft.ServiceHub.Client": { - "type": "Transitive", - "resolved": "3.1.4097", - "contentHash": "+cKDvtcgOCzqJeqzXk657QHwSiPB9Iv1vFgeb4uERwW5F8me/20XlHVpuYgRSdBOCMRFV7M1nlrbD2a56cG7qg==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "3.1.4097", - "Microsoft.ServiceHub.Resources": "3.1.4097", - "Microsoft.VisualStudio.Telemetry": "16.4.37", - "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", - "StreamJsonRpc": "2.7.70", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.ServiceHub.Framework": { - "type": "Transitive", - "resolved": "3.1.4097", - "contentHash": "DTZcqBSYWqvb15XLPyFepT3j4L9kCiVz91ByAwjRGEQ8Raka0aFzTd53rp1lSVnEfZ9gsJpX5ha6TzW13ptvNw==", - "dependencies": { - "Microsoft.ServiceHub.Analyzers": "3.1.4097", - "StreamJsonRpc": "2.7.70", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.ServiceHub.Resources": { - "type": "Transitive", - "resolved": "3.1.4097", - "contentHash": "/iQi5lZ9FhlaDZ6V2bfPH69c0ESLL6pQRCCKbXe99aFGcdOk+dsRGygwmi7mjvc7qlEFY0x7dlXQ+ctsxMdDVw==" - }, - "Microsoft.SourceLink.Common": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" - }, - "Microsoft.VisualStudio.ComponentModelHost": { - "type": "Transitive", - "resolved": "17.2.3190", - "contentHash": "Ny42WwcnrvrsbpMDYuuIhG1h2WOKj/Ix6SxNc/PBxPIbnlI3K4h75L00rrWtqiXdnZIQ/dwT3YmQHWEDj3sulg==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", - "Microsoft.VisualStudio.Interop": "17.2.32330.158", - "Microsoft.VisualStudio.Validation": "17.0.53", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.Composition": { - "type": "Transitive", - "resolved": "16.4.11", - "contentHash": "JinutaulyPMTEWpdyegz3LLTtChZC+YYMjaQosCwIrapfTncOnatY85j8DpmuqHYADiJ6kkHYEPT71yS5eEqSA==", - "dependencies": { - "Microsoft.VisualStudio.Composition.NetFxAttributes": "16.4.11", - "Microsoft.VisualStudio.Validation": "15.0.82", - "System.ComponentModel.Composition": "4.5.0", - "System.Composition": "1.0.31", - "System.Reflection.Emit": "4.3.0", - "System.Reflection.Metadata": "1.3.0", - "System.Reflection.TypeExtensions": "4.3.0", - "System.Threading.Tasks.Dataflow": "4.6.0" - } - }, - "Microsoft.VisualStudio.Composition.NetFxAttributes": { - "type": "Transitive", - "resolved": "16.4.11", - "contentHash": "KufBhjVwhq+Sgt9Vl5XNOsZykU5aXpU8hO0UXlM98Giw5iRDJAxHBLSRYDzcadVtVrf++QSB95bVydxem0jegQ==", - "dependencies": { - "System.ComponentModel.Composition": "4.5.0" - } - }, - "Microsoft.VisualStudio.CoreUtility": { - "type": "Transitive", - "resolved": "17.2.3192", - "contentHash": "KomP1sdum+yYSe5TMOS7cMkOOv4SmnP05zZ8AjKWH/ugKLHqXiXC2zkMplx5ZRw3sDi8ddKk6ZOB0TeHOLhaFw==", - "dependencies": { - "Microsoft.VisualStudio.Threading": "17.2.32", - "System.Collections.Immutable": "5.0.0", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.GraphModel": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "wqjsqpWnTs3fMthNW795oySYZ65jfkHV7qw5xBJ8G0Zi+pDjNf0hoizC1ma2bVB+d8TPrJIvRJzGUjhaviOKwA==", - "dependencies": { - "Microsoft.VisualStudio.Interop": "17.2.32406.100", - "System.ComponentModel.Composition": "6.0.0" - } - }, - "Microsoft.VisualStudio.ImageCatalog": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "cKfl2RJ/7SevIlBeOAQNVGTDtpK7IOedOltdOk9W3nDmW8Uj3dmGg5bsRLv9bwSAhTxeh9Al0c9K01jgcRU29A==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100" - } - }, - "Microsoft.VisualStudio.Imaging": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "vKp3F+ORaRKd9Z2A28yTM7H6/QvmzSJE6ceVlimRSmNRFz/ANysYDwTMpCxCKbzwb5tVhlQxNIKqAFuwgYVPEQ==", - "dependencies": { - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Threading": "17.2.32", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "Microsoft.VisualStudio.Validation": "17.0.53", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "fkbGSOiS06liWHFngdU9BTM0f7+AIA3MQWk63dPUAVB7jz79oM3REAwm5eNQbkrjSe+C98Nxjhui7TV+8zh4KA==" - }, - "Microsoft.VisualStudio.Interop": { - "type": "Transitive", - "resolved": "17.10.40170", - "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" - }, - "Microsoft.VisualStudio.ProjectAggregator": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "1TuECpI8kKRAkc2kPI5Z5XHBcsJbyeG5vtAAfbYpFkNOXOkyoS8oOAX39b9Vp1jDb8jdSARfTUsdIM3BmlYE+g==" - }, - "Microsoft.VisualStudio.RemoteControl": { - "type": "Transitive", - "resolved": "16.3.44", - "contentHash": "hbc2FxReEyotRXM1dtQSZxt2ccNMBgPbcX6MylKp9UDbHsTPJ0dk5CEuZAqoqOFKUzFtorZL6A7BcRAjP9HU1g==", - "dependencies": { - "Microsoft.VisualStudio.Utilities.Internal": "16.3.36" - } - }, - "Microsoft.VisualStudio.RpcContracts": { - "type": "Transitive", - "resolved": "17.2.31", - "contentHash": "MSOsNBJv7/IFaP8aaEJtugp5OSzQgIlemTtROBBDhwQMLZGe+T2A+TofKl4PEydiX+Fwfuyged4tDmpazdUI5Q==", - "dependencies": { - "Microsoft.ServiceHub.Framework": "3.0.2061", - "StreamJsonRpc": "2.11.35" - } - }, - "Microsoft.VisualStudio.SDK.Analyzers": { - "type": "Transitive", - "resolved": "16.10.10", - "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", - "dependencies": { - "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", - "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" - } - }, - "Microsoft.VisualStudio.Shell.15.0": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "8jzfqOOZfMwtIwWkut+7MC/S8Ds0zLHmS1Ljdph2tWwIApgGPsy8Bi+0uVwb9uPhEDgEsAROOOtE8DdG5VpErg==", - "dependencies": { - "Microsoft.Build.Framework": "17.1.0", - "Microsoft.VisualStudio.ComponentModelHost": "17.2.3190", - "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", - "Microsoft.VisualStudio.ImageCatalog": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100", - "Microsoft.VisualStudio.ProjectAggregator": "17.2.32406.100", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Shell.Framework": "17.2.32406.100", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100" - } - }, - "Microsoft.VisualStudio.Shell.Framework": { - "type": "Transitive", - "resolved": "17.2.32406.100", - "contentHash": "7WD50dmv9qI2FeNE+yjJq7ewf9J9mYWimZIPnET53YBtwcqf5nA4aH0TedwdhJUWa1Blnidc9ZZvDM3YiUx84Q==", - "dependencies": { - "Microsoft.Build.Framework": "17.1.0", - "Microsoft.ServiceHub.Framework": "3.1.4097", - "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", - "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", - "Microsoft.VisualStudio.Interop": "17.2.32406.100", - "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", - "Microsoft.VisualStudio.Telemetry": "16.4.56", - "Microsoft.VisualStudio.Threading": "17.2.32", - "Microsoft.VisualStudio.Utilities": "17.2.32406.100", - "System.Text.Json": "6.0.0", - "System.Threading.Tasks.Dataflow": "6.0.0" - } - }, - "Microsoft.VisualStudio.Threading": { - "type": "Transitive", - "resolved": "17.6.40", - "contentHash": "hLa/0xargG7p3bF7aeq2/lRYn/bVnfZXurUWVHx+MNqxxAUjIDMKi4OIOWbYQ/DTkbn9gv8TLvgso+6EtHVQQg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading.Analyzers": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.0.71", - "Microsoft.Win32.Registry": "5.0.0", - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "Microsoft.VisualStudio.Utilities.Internal": { - "type": "Transitive", - "resolved": "16.3.36", - "contentHash": "tVOE9DJbd4PETSgBW+9448jvRdhm/hNHJFaGyCq6Gtlg+ElELBmfMFxgp2rsrqzUkLjehwnrw6uX4Yj9krOfJQ==" - }, - "Microsoft.VisualStudio.Validation": { - "type": "Transitive", - "resolved": "17.6.11", - "contentHash": "J+9L/iac6c8cwcgVSCMuoIYOlD1Jw4mbZ8XMe1IZVj8p8+3dJ46LnnkIkTRMjK7xs9UtU9MoUp1JGhWoN6fAEw==" - }, - "Microsoft.VisualStudio.Workspace": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", - "dependencies": { - "Microsoft.IO.Redist": "4.7.1", - "Microsoft.VisualStudio.Composition": "16.4.11", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "System.Collections.Immutable": "5.0.0" - } - }, - "Microsoft.VisualStudio.Workspace.Extensions": { - "type": "Transitive", - "resolved": "17.1.11-preview-0002", - "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", - "dependencies": { - "Microsoft.Build": "16.8.0", - "Microsoft.VisualStudio.Threading": "17.1.42-alpha", - "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", - "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" - } - }, - "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.10.69", - "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "7.0.0", - "Microsoft.VisualStudio.Threading": "17.6.40", - "Microsoft.VisualStudio.Validation": "17.6.11", - "System.IO.Pipelines": "7.0.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "Newtonsoft.Json": { - "type": "Transitive", - "resolved": "13.0.3", - "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" - }, - "OmniSharp.Extensions.JsonRpc": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", - "dependencies": { - "MediatR": "8.1.0", - "Microsoft.Extensions.DependencyInjection": "6.0.1", - "Microsoft.Extensions.Logging": "6.0.0", - "Nerdbank.Streams": "2.10.69", - "Newtonsoft.Json": "13.0.3", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", - "System.Collections.Immutable": "5.0.0", - "System.Reactive": "6.0.0", - "System.Threading.Channels": "6.0.0" - } - }, - "OmniSharp.Extensions.JsonRpc.Generators": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" - }, - "OmniSharp.Extensions.LanguageProtocol": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", - "dependencies": { - "Microsoft.Extensions.Configuration": "6.0.1", - "Microsoft.Extensions.Configuration.Binder": "6.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", - "OmniSharp.Extensions.JsonRpc": "0.19.9", - "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" - } - }, - "OmniSharp.Extensions.LanguageServer.Shared": { - "type": "Transitive", - "resolved": "0.19.9", - "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", - "dependencies": { - "OmniSharp.Extensions.LanguageProtocol": "0.19.9" - } - }, - "StreamJsonRpc": { - "type": "Transitive", - "resolved": "2.11.35", - "contentHash": "r2taKfcI3dmAChn0nqTLmwr3d/BXnUrIlDGF6het3NxL3sg6TntCGz60wBE4DmdlyeerMXkI5ZCC/Y4XCfetfA==", - "dependencies": { - "MessagePack": "2.3.85", - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "Microsoft.VisualStudio.Threading": "17.1.46", - "Nerdbank.Streams": "2.8.57", - "Newtonsoft.Json": "13.0.1", - "System.Collections.Immutable": "5.0.0", - "System.Diagnostics.DiagnosticSource": "6.0.0", - "System.IO.Pipelines": "6.0.1", - "System.Threading.Tasks.Dataflow": "6.0.0" - } - }, - "System.Buffers": { - "type": "Transitive", - "resolved": "4.5.1", - "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" - }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", - "dependencies": { - "System.Memory": "4.5.4" - } - }, - "System.ComponentModel.Composition": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "60Qv+F7oxomOjJeTDA5Z4iCyFbQ0B/2Mi5HT+13pxxq0lVnu2ipbWMzFB+RWKr3wWKA8BSncXr9PH/fECwMX5Q==" - }, - "System.Composition": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", - "dependencies": { - "System.Composition.AttributedModel": "6.0.0", - "System.Composition.Convention": "6.0.0", - "System.Composition.Hosting": "6.0.0", - "System.Composition.Runtime": "6.0.0", - "System.Composition.TypedParts": "6.0.0" - } - }, - "System.Composition.AttributedModel": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" - }, - "System.Composition.Convention": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", - "dependencies": { - "System.Composition.AttributedModel": "6.0.0" - } - }, - "System.Composition.Hosting": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", - "dependencies": { - "System.Composition.Runtime": "6.0.0" - } - }, - "System.Composition.Runtime": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" - }, - "System.Composition.TypedParts": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", - "dependencies": { - "System.Composition.AttributedModel": "6.0.0", - "System.Composition.Hosting": "6.0.0", - "System.Composition.Runtime": "6.0.0" - } - }, - "System.Diagnostics.DiagnosticSource": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", - "dependencies": { - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.IO.Pipelines": { - "type": "Transitive", - "resolved": "7.0.0", - "contentHash": "jRn6JYnNPW6xgQazROBLSfpdoczRw694vO5kKvMcNnpXuolEixUyw6IBuBs2Y2mlSX/LdLvyyWmfXhaI3ND1Yg==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.5", - "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.Numerics.Vectors": { - "type": "Transitive", - "resolved": "4.5.0", - "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" - }, - "System.Reactive": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Reflection": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==" - }, - "System.Reflection.Emit": { - "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "qAo4jyXtC9i71iElngX7P2r+zLaiHzxKwf66sc3X91tL5Ks6fnQ1vxL04o7ZSm3sYfLExySL7GN8aTpNYpU1qw==" - }, - "System.Reflection.Emit.Lightweight": { - "type": "Transitive", - "resolved": "4.6.0", - "contentHash": "j/V5HVvxvBQ7uubYD0PptQW2KGsi1Pc2kZ9yfwLixv3ADdjL/4M78KyC5e+ymW612DY8ZE4PFoZmWpoNmN2mqg==" - }, - "System.Reflection.Metadata": { - "type": "Transitive", - "resolved": "1.3.0", - "contentHash": "jMSCxA4LSyKBGRDm/WtfkO03FkcgRzHxwvQRib1bm2GZ8ifKM1MX1al6breGCEQK280mdl9uQS7JNPXRYk90jw==", - "dependencies": { - "System.Collections.Immutable": "1.2.0" - } - }, - "System.Reflection.TypeExtensions": { - "type": "Transitive", - "resolved": "4.3.0", - "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", - "dependencies": { - "System.Reflection": "4.3.0" - } - }, - "System.Runtime.CompilerServices.Unsafe": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Text.Encodings.Web": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", - "dependencies": { - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Runtime.CompilerServices.Unsafe": "6.0.0" - } - }, - "System.Text.Json": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", - "dependencies": { - "Microsoft.Bcl.AsyncInterfaces": "6.0.0", - "System.Buffers": "4.5.1", - "System.Memory": "4.5.4", - "System.Numerics.Vectors": "4.5.0", - "System.Runtime.CompilerServices.Unsafe": "6.0.0", - "System.Text.Encodings.Web": "6.0.0", - "System.Threading.Tasks.Extensions": "4.5.4", - "System.ValueTuple": "4.5.0" - } - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Threading.Channels": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", - "dependencies": { - "System.Threading.Tasks.Extensions": "4.5.4" - } - }, - "System.Threading.Tasks.Dataflow": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "+tyDCU3/B1lDdOOAJywHQoFwyXIUghIaP2BxG79uvhfTnO+D9qIgjVlL/JV2NTliYbMHpd6eKDmHp2VHpij7MA==" - }, - "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==" - } - }, - ".NETFramework,Version=v4.7.2/linux-arm64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-musl-x64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/linux-x64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/osx-arm64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/osx-x64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/win-arm64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - }, - ".NETFramework,Version=v4.7.2/win-x64": { - "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" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", - "dependencies": { - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, - "System.Threading.AccessControl": { - "type": "Transitive", - "resolved": "6.0.0", - "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", - "dependencies": { - "System.Security.AccessControl": "6.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - } - } - } -} \ No newline at end of file From aa8e07bcc00a7ad0e335b2bf62b253d9d715279d Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Thu, 4 Jul 2024 12:01:51 -0700 Subject: [PATCH 11/15] use extensibility pkg models. --- .../packages.lock.json | 20 ++ src/Bicep.Cli.UnitTests/packages.lock.json | 20 ++ src/Bicep.Cli/Commands/LocalDeployCommand.cs | 2 +- src/Bicep.Cli/packages.lock.json | 20 ++ .../packages.lock.json | 20 ++ src/Bicep.Core.Samples/packages.lock.json | 20 ++ src/Bicep.Core.UnitTests/packages.lock.json | 20 ++ src/Bicep.Core/Emit/EmitterSettings.cs | 6 - src/Bicep.Core/Emit/TemplateWriter.cs | 4 +- .../packages.lock.json | 20 ++ .../packages.lock.json | 20 ++ .../packages.lock.json | 20 ++ .../packages.lock.json | 20 ++ .../Handlers/LocalDeployHandler.cs | 2 +- src/Bicep.LangServer/packages.lock.json | 20 ++ .../EndToEndDeploymentTests.cs | 121 ++++++++++- .../ProviderExtensionTests.cs | 27 ++- .../packages.lock.json | 20 ++ .../Bicep.Local.Deploy.csproj | 1 + .../Extensibility/AzExtensibilityExtension.cs | 83 -------- .../Extensibility/ExtensionInfo.cs | 13 -- ...ension.cs => GrpcBuiltInLocalExtension.cs} | 62 +++--- .../LocalExtensibilityExtension.cs | 24 --- .../LocalExtensibilityHandler.cs | 113 ---------- .../Extensibility/LocalExtensibilityHost.cs | 45 ++++ .../LocalExtensibilityHostManager.cs | 199 ++++++++++++++++++ .../NestedDeploymentBuiltInLocalExtension.cs | 92 ++++++++ .../IServiceCollectionExtensions.cs | 2 +- src/Bicep.Local.Deploy/LocalDeployment.cs | 2 +- .../LocalDeploymentEngineHost.cs | 45 +--- src/Bicep.Local.Deploy/packages.lock.json | 20 ++ .../Handlers/EchoResourceHandler.cs | 17 +- .../Protocol/IResourceHandler.cs | 50 +++-- .../Rpc/BicepExtensionImpl.cs | 134 +++++++++--- src/Bicep.Local.Extension/extension.proto | 33 +-- .../packages.lock.json | 12 ++ .../packages.lock.json | 12 ++ .../packages.lock.json | 12 ++ src/Bicep.Tools.Benchmark/packages.lock.json | 20 ++ 39 files changed, 987 insertions(+), 406 deletions(-) delete mode 100644 src/Bicep.Local.Deploy/Extensibility/AzExtensibilityExtension.cs delete mode 100644 src/Bicep.Local.Deploy/Extensibility/ExtensionInfo.cs rename src/Bicep.Local.Deploy/Extensibility/{GrpcExtensibilityExtension.cs => GrpcBuiltInLocalExtension.cs} (55%) delete mode 100644 src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityExtension.cs delete mode 100644 src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs create mode 100644 src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHost.cs create mode 100644 src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHostManager.cs create mode 100644 src/Bicep.Local.Deploy/Extensibility/NestedDeploymentBuiltInLocalExtension.cs diff --git a/src/Bicep.Cli.IntegrationTests/packages.lock.json b/src/Bicep.Cli.IntegrationTests/packages.lock.json index ee0df791f46..88d8e8aa605 100644 --- a/src/Bicep.Cli.IntegrationTests/packages.lock.json +++ b/src/Bicep.Cli.IntegrationTests/packages.lock.json @@ -182,6 +182,17 @@ "Newtonsoft.Json": "13.0.2" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Transitive", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.JsonPath": { "type": "Transitive", "resolved": "1.0.1265", @@ -359,6 +370,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "MediatR": { "type": "Transitive", "resolved": "8.1.0", @@ -1636,6 +1655,7 @@ "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", "Azure.Deployments.Engine": "[1.54.0, )", + "Azure.Deployments.Extensibility.Core": "[0.1.55, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Cli.UnitTests/packages.lock.json b/src/Bicep.Cli.UnitTests/packages.lock.json index b3198b49aae..b3b8688d8f7 100644 --- a/src/Bicep.Cli.UnitTests/packages.lock.json +++ b/src/Bicep.Cli.UnitTests/packages.lock.json @@ -172,6 +172,17 @@ "Newtonsoft.Json": "13.0.2" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Transitive", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.JsonPath": { "type": "Transitive", "resolved": "1.0.1265", @@ -326,6 +337,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "MessagePack": { "type": "Transitive", "resolved": "2.5.108", @@ -1507,6 +1526,7 @@ "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", "Azure.Deployments.Engine": "[1.54.0, )", + "Azure.Deployments.Extensibility.Core": "[0.1.55, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Cli/Commands/LocalDeployCommand.cs b/src/Bicep.Cli/Commands/LocalDeployCommand.cs index e0b123196c6..c6c2fd21c9c 100644 --- a/src/Bicep.Cli/Commands/LocalDeployCommand.cs +++ b/src/Bicep.Cli/Commands/LocalDeployCommand.cs @@ -65,7 +65,7 @@ parameters.Parameters is not { } parametersString || return 1; } - await using LocalExtensibilityHandler extensibilityHandler = new(moduleDispatcher, GrpcExtensibilityExtension.Start); + await using LocalExtensibilityHostManager extensibilityHandler = new(moduleDispatcher, GrpcBuiltInLocalExtension.Start); await extensibilityHandler.InitializeExtensions(compilation); var result = await LocalDeployment.Deploy(extensibilityHandler, templateString, parametersString, cancellationToken); diff --git a/src/Bicep.Cli/packages.lock.json b/src/Bicep.Cli/packages.lock.json index 1cb321867b9..cb4b1933554 100644 --- a/src/Bicep.Cli/packages.lock.json +++ b/src/Bicep.Cli/packages.lock.json @@ -190,6 +190,17 @@ "Newtonsoft.Json": "13.0.2" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Transitive", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.JsonPath": { "type": "Transitive", "resolved": "1.0.1265", @@ -344,6 +355,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "MessagePack": { "type": "Transitive", "resolved": "2.5.108", @@ -1405,6 +1424,7 @@ "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", "Azure.Deployments.Engine": "[1.54.0, )", + "Azure.Deployments.Extensibility.Core": "[0.1.55, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Core.IntegrationTests/packages.lock.json b/src/Bicep.Core.IntegrationTests/packages.lock.json index ed2b70009a9..50c87c3acca 100644 --- a/src/Bicep.Core.IntegrationTests/packages.lock.json +++ b/src/Bicep.Core.IntegrationTests/packages.lock.json @@ -172,6 +172,17 @@ "Newtonsoft.Json": "13.0.2" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Transitive", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.JsonPath": { "type": "Transitive", "resolved": "1.0.1265", @@ -349,6 +360,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "MediatR": { "type": "Transitive", "resolved": "8.1.0", @@ -1539,6 +1558,7 @@ "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", "Azure.Deployments.Engine": "[1.54.0, )", + "Azure.Deployments.Extensibility.Core": "[0.1.55, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Core.Samples/packages.lock.json b/src/Bicep.Core.Samples/packages.lock.json index 6748282a7eb..8f697d60247 100644 --- a/src/Bicep.Core.Samples/packages.lock.json +++ b/src/Bicep.Core.Samples/packages.lock.json @@ -167,6 +167,17 @@ "Newtonsoft.Json": "13.0.2" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Transitive", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.JsonPath": { "type": "Transitive", "resolved": "1.0.1265", @@ -344,6 +355,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "MediatR": { "type": "Transitive", "resolved": "8.1.0", @@ -1486,6 +1505,7 @@ "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", "Azure.Deployments.Engine": "[1.54.0, )", + "Azure.Deployments.Extensibility.Core": "[0.1.55, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Core.UnitTests/packages.lock.json b/src/Bicep.Core.UnitTests/packages.lock.json index 44aff9bb265..ed2071ed28e 100644 --- a/src/Bicep.Core.UnitTests/packages.lock.json +++ b/src/Bicep.Core.UnitTests/packages.lock.json @@ -215,6 +215,17 @@ "Newtonsoft.Json": "13.0.2" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Transitive", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.JsonPath": { "type": "Transitive", "resolved": "1.0.1265", @@ -379,6 +390,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "MediatR": { "type": "Transitive", "resolved": "8.1.0", @@ -1492,6 +1511,7 @@ "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", "Azure.Deployments.Engine": "[1.54.0, )", + "Azure.Deployments.Extensibility.Core": "[0.1.55, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Core/Emit/EmitterSettings.cs b/src/Bicep.Core/Emit/EmitterSettings.cs index 12f24dbbd60..cb5319f9bf2 100644 --- a/src/Bicep.Core/Emit/EmitterSettings.cs +++ b/src/Bicep.Core/Emit/EmitterSettings.cs @@ -13,7 +13,6 @@ public EmitterSettings(SemanticModel model) { FileKind = model.SourceFileKind; UseExperimentalTemplateLanguageVersion = model.Features.EnabledFeatureMetadata.Any(feature => feature.usesExperimentalArmEngineFeature); - LocalDeployEnabled = model.Features.LocalDeployEnabled; // Symbolic names are used if (evaluated in increasing order of computational cost): EnableSymbolicNames = @@ -52,11 +51,6 @@ syntax is UnionTypeSyntax || /// public bool UseExperimentalTemplateLanguageVersion { get; } - /// - /// Enables bicep local deploy - /// - public bool LocalDeployEnabled { get; } - public BicepSourceFileKind FileKind { get; } } } diff --git a/src/Bicep.Core/Emit/TemplateWriter.cs b/src/Bicep.Core/Emit/TemplateWriter.cs index 8625f0aa676..3690ff88202 100644 --- a/src/Bicep.Core/Emit/TemplateWriter.cs +++ b/src/Bicep.Core/Emit/TemplateWriter.cs @@ -109,7 +109,7 @@ public void Write(SourceAwareJsonTextWriter writer) if (Context.Settings.UseExperimentalTemplateLanguageVersion) { - if (Context.Settings.LocalDeployEnabled) + if (Context.SemanticModel.Features.LocalDeployEnabled) { emitter.EmitProperty(LanguageVersionPropertyName, "2.2-experimental"); } @@ -1002,7 +1002,7 @@ private void EmitExtensionsIfPresent(ExpressionEmitter emitter, ImmutableArray Handle(LocalDeployRequest request, Cancel throw new InvalidOperationException("Bicep file had errors."); } - await using LocalExtensibilityHandler extensibilityHandler = new(moduleDispatcher, GrpcExtensibilityExtension.Start); + await using LocalExtensibilityHostManager extensibilityHandler = new(moduleDispatcher, GrpcBuiltInLocalExtension.Start); await extensibilityHandler.InitializeExtensions(context.Compilation); var result = await LocalDeployment.Deploy(extensibilityHandler, templateString, parametersString, cancellationToken); diff --git a/src/Bicep.LangServer/packages.lock.json b/src/Bicep.LangServer/packages.lock.json index 5c9b6a42b4d..a9b763fd5ed 100644 --- a/src/Bicep.LangServer/packages.lock.json +++ b/src/Bicep.LangServer/packages.lock.json @@ -185,6 +185,17 @@ "Newtonsoft.Json": "13.0.2" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Transitive", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.JsonPath": { "type": "Transitive", "resolved": "1.0.1265", @@ -334,6 +345,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "MediatR": { "type": "Transitive", "resolved": "8.1.0", @@ -1382,6 +1401,7 @@ "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", "Azure.Deployments.Engine": "[1.54.0, )", + "Azure.Deployments.Extensibility.Core": "[0.1.55, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs index 2b0569f9a12..241ef10f0ee 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs @@ -3,8 +3,10 @@ using System.IO.Abstractions; using System.Text; +using System.Text.Json.Nodes; using Azure.Deployments.Core.Definitions; using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; +using Azure.Deployments.Extensibility.Core.V2.Models; using Azure.Deployments.Extensibility.Messages; using Bicep.Core.Configuration; using Bicep.Core.Features; @@ -93,15 +95,15 @@ param coords { var parametersFile = result.Compilation.Emitter.Parameters().Parameters!; var templateFile = result.Compilation.Emitter.Parameters().Template!.Template!; - JToken identifiers = new JObject + JsonObject identifiers = new() { { "name", "someName" }, { "namespace", "someNamespace" } }; - var providerMock = StrictMock.Of(); - providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) - .Returns((req, _) => + var providerMock = StrictMock.Of(); + providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) + .Returns((req, _) => { req.Properties["body"] = """ { @@ -112,11 +114,11 @@ param coords { } } """; - return Task.FromResult(new(null, identifiers, req.Type, "Succeeded", req.Properties)); + return Task.FromResult(new LocalExtensibilityOperationResponse(new Resource(req.Type, req.ApiVersion, identifiers, req.Properties, "Succeeded"), null)); }); - providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/gridpoints/SEW/131,68/forecast"), It.IsAny())) - .Returns((req, _) => + providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/gridpoints/SEW/131,68/forecast"), It.IsAny())) + .Returns((req, _) => { req.Properties["body"] = """ { @@ -136,11 +138,11 @@ param coords { } } """; - return Task.FromResult(new(null, identifiers, req.Type, "Succeeded", req.Properties)); + return Task.FromResult(new LocalExtensibilityOperationResponse(new Resource(req.Type, req.ApiVersion, identifiers, req.Properties, "Succeeded"), null)); }); var dispatcher = BicepTestConstants.CreateModuleDispatcher(services.Build().Construct()); - await using LocalExtensibilityHandler extensibilityHandler = new(dispatcher, uri => Task.FromResult(providerMock.Object)); + await using LocalExtensibilityHostManager extensibilityHandler = new(dispatcher, uri => Task.FromResult(providerMock.Object)); await extensibilityHandler.InitializeExtensions(result.Compilation); var localDeployResult = await LocalDeployment.Deploy(extensibilityHandler, templateFile, parametersFile, TestContext.CancellationTokenSource.Token); @@ -159,4 +161,105 @@ param coords { ] """)); } + + [TestMethod] + public async Task Provider_returning_resource_and_error_data_should_fail() + { + var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetHttpProviderTypesTgz(), new(ExtensibilityEnabled: true, ProviderRegistry: true, LocalDeployEnabled: true)); + + var result = await CompilationHelper.RestoreAndCompileParams(services, + ("bicepconfig.json", """ +{ + "providers": { + "http": "br:example.azurecr.io/providers/foo:1.2.3" + }, + "experimentalFeaturesEnabled": { + "extensibility": true, + "providerRegistry": true, + "localDeploy": true + } +} +"""), + ("main.bicep", """ +extension http + +param coords { + lattitude: string + longitude: string +} + +resource gridpointsReq 'request@v1' = { + uri: 'https://api.weather.gov/points/${coords.lattitude},${coords.longitude}' + format: 'raw' +} + +var gridpoints = json(gridpointsReq.body).properties + +resource forecastReq 'request@v1' = { + uri: 'https://api.weather.gov/gridpoints/${gridpoints.gridId}/${gridpoints.gridX},${gridpoints.gridY}/forecast' + format: 'raw' +} + +var forecast = json(forecastReq.body).properties + +type forecastType = { + name: string + temperature: int +} + +output forecast forecastType[] = map(forecast.periods, p => { + name: p.name + temperature: p.temperature +}) +"""), + ("parameters.bicepparam", """ +using 'main.bicep' + +param coords = { + lattitude: '47.6363726' + longitude: '-122.1357068' +} +""")); + + result.Should().NotHaveAnyDiagnostics(); + + var parametersFile = result.Compilation.Emitter.Parameters().Parameters!; + var templateFile = result.Compilation.Emitter.Parameters().Template!.Template!; + + JsonObject identifiers = new() + { + { "name", "someName" }, + { "namespace", "someNamespace" } + }; + + var providerMock = StrictMock.Of(); + providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) + .Returns((req, _) => + { + req.Properties["body"] = """ +{ + "properties": { + "gridId": "SEW", + "gridX": "131", + "gridY": "68" + } +} +"""; + return Task.FromResult(new LocalExtensibilityOperationResponse(new Resource(req.Type, req.ApiVersion, identifiers, req.Properties, "Succeeded"), new ErrorData(new Error() { Code = "SomeCode", Target = Json.Pointer.JsonPointer.Empty, Message = "Some error message", Details = null, InnerError = null}))); + }); + + var dispatcher = BicepTestConstants.CreateModuleDispatcher(services.Build().Construct()); + await using LocalExtensibilityHostManager extensibilityHandler = new(dispatcher, uri => Task.FromResult(providerMock.Object)); + await extensibilityHandler.InitializeExtensions(result.Compilation); + + var localDeployResult = await LocalDeployment.Deploy(extensibilityHandler, templateFile, parametersFile, TestContext.CancellationTokenSource.Token); + + localDeployResult.Deployment.Properties.ProvisioningState.Should().Be(ProvisioningState.Failed, because: $"Provider returned '{nameof(Resource)}' and '{nameof(ErrorData)}' as part of its response and it is not allowed. Providers should return one or the other to indicate success or failure respectively."); + localDeployResult.Deployment.Properties.Error.Should().NotBeNull(); + + localDeployResult.Deployment.Properties.Error.Code.Should().Be("DeploymentFailed"); + localDeployResult.Deployment.Properties.Error.Details.Should().NotBeNullOrEmpty(); + localDeployResult.Deployment.Properties.Error.Details[0].Code.Should().Be("ResourceDeploymentFailure"); + localDeployResult.Deployment.Properties.Error.Details[0].Target.Should().Be("/resources/gridpointsReq", because: $"Expect a failure when mocking a response for \"/resources/gridpointsReq\" since it is returning '{nameof(Resource)}' and '{nameof(ErrorData)}' when only one type should be returned to indicate success or failure."); + } } diff --git a/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs index e3b7f766220..0bf4e4c5d39 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs @@ -75,18 +75,32 @@ public async Task Save_request_works_as_expected() var handlerMock = StrictMock.Of(); handlerMock.SetupGet(x => x.ResourceType).Returns("apps/Deployment"); - handlerMock.Setup(x => x.CreateOrUpdate(It.IsAny(), It.IsAny())) - .Returns((req, _) => - Task.FromResult(new Protocol.ResourceResponseBody(null, identifiers, req.Type, "Succeeded", req.Properties))); + handlerMock.Setup(x => x.CreateOrUpdate(It.IsAny(), It.IsAny())) + .Returns((req, _) => + Task.FromResult(new Protocol.LocalExtensibilityOperationResponse( + new Protocol.Resource(req.Type, req.ApiVersion, "Succeeded", identifiers, req.Config, req.Properties), + null))); await RunExtensionTest( builder => builder.AddHandler(handlerMock.Object), async (client, token) => { - var request = new Extension.Rpc.ResourceRequestBody + var request = new Extension.Rpc.ResourceSpecification { ApiVersion = "v1", Type = "apps/Deployment", + Config = """ + { + "kubeConfig": { + "type": "string", + "defaultValue": "redacted" + }, + "namespace": { + "type": "string", + "defaultValue": "default" + } + } + """, Properties = """ { "metadata": { @@ -129,8 +143,9 @@ await RunExtensionTest( var response = await client.CreateOrUpdateAsync(request, cancellationToken: token); response.Should().NotBeNull(); - response.Type.Should().Be("apps/Deployment"); - response.Identifiers.Should().Be(identifiers.ToJson()); + response.Resource.Should().NotBeNull(); + response.Resource.Type.Should().Be("apps/Deployment"); + response.Resource.Identifiers.Should().Be(identifiers.ToJson()); }); } } diff --git a/src/Bicep.Local.Deploy.IntegrationTests/packages.lock.json b/src/Bicep.Local.Deploy.IntegrationTests/packages.lock.json index ad4a021046e..e456e1e65a4 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/packages.lock.json +++ b/src/Bicep.Local.Deploy.IntegrationTests/packages.lock.json @@ -190,6 +190,17 @@ "Newtonsoft.Json": "13.0.2" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Transitive", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.JsonPath": { "type": "Transitive", "resolved": "1.0.1265", @@ -367,6 +378,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "MediatR": { "type": "Transitive", "resolved": "8.1.0", @@ -1549,6 +1568,7 @@ "Azure.Bicep.Core": "[1.0.0, )", "Azure.Bicep.Local.Extension": "[1.0.0, )", "Azure.Deployments.Engine": "[1.54.0, )", + "Azure.Deployments.Extensibility.Core": "[0.1.55, )", "Microsoft.AspNet.WebApi.Client": "[6.0.0, )" } }, diff --git a/src/Bicep.Local.Deploy/Bicep.Local.Deploy.csproj b/src/Bicep.Local.Deploy/Bicep.Local.Deploy.csproj index 84608d13557..dcf896c29a7 100644 --- a/src/Bicep.Local.Deploy/Bicep.Local.Deploy.csproj +++ b/src/Bicep.Local.Deploy/Bicep.Local.Deploy.csproj @@ -20,6 +20,7 @@ + diff --git a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityExtension.cs b/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityExtension.cs deleted file mode 100644 index 2382e4f9ab8..00000000000 --- a/src/Bicep.Local.Deploy/Extensibility/AzExtensibilityExtension.cs +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Threading; -using System.Threading.Tasks; -using Azure.Deployments.Core.Definitions; -using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; -using Azure.Deployments.Extensibility.Contract; -using Azure.Deployments.Extensibility.Data; -using Azure.Deployments.Extensibility.Messages; -using Microsoft.WindowsAzure.ResourceStack.Common.Extensions; -using Microsoft.WindowsAzure.ResourceStack.Common.Json; -using Newtonsoft.Json.Linq; - -namespace Bicep.Local.Deploy.Extensibility; - -public class AzExtensibilityExtension : LocalExtensibilityExtension -{ - private readonly LocalExtensibilityHandler extensibilityHandler; - - public AzExtensibilityExtension(LocalExtensibilityHandler extensibilityHandler) - { - this.extensibilityHandler = extensibilityHandler; - } - - public override async Task CreateOrUpdate(ResourceRequestBody request, CancellationToken cancellationToken) - { - switch (request.Type) - { - case "Microsoft.Resources/deployments": - { - var template = request.Properties["template"]!.ToString(); - var parameters = new JObject - { - ["$schema"] = "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", - ["contentVersion"] = "1.0.0.0", - ["parameters"] = request.Properties["parameters"], - }; - - var result = await LocalDeployment.Deploy(extensibilityHandler, template, parameters.ToJson(), cancellationToken); - - if (result.Deployment.Properties.ProvisioningState != ProvisioningState.Succeeded) - { - return new ResourceResponseBody( - error: new ErrorPayload( - result.Deployment.Properties.Error.Code, - result.Deployment.Properties.Error.Target, - result.Deployment.Properties.Error.Message, - result.Deployment.Properties.Error.Details.SelectArray(x => new ErrorDetail(x.Code, x.Target, x.Message))), - identifiers: null, - type: null, - status: null, - properties: null); - } - - return new ResourceResponseBody( - error: null, - identifiers: result.Deployment.ToJToken(), - type: request.Type, - status: result.Deployment.Properties.ProvisioningState.ToString(), - properties: result.Deployment.Properties.ToJToken()); - } - } - - throw new NotImplementedException(); - } - - public override Task Delete(ResourceReferenceRequestBody request, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public override Task Get(ResourceReferenceRequestBody request, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } - - public override Task Preview(ResourceRequestBody request, CancellationToken cancellationToken) - { - throw new NotImplementedException(); - } -} diff --git a/src/Bicep.Local.Deploy/Extensibility/ExtensionInfo.cs b/src/Bicep.Local.Deploy/Extensibility/ExtensionInfo.cs deleted file mode 100644 index 74bea9da660..00000000000 --- a/src/Bicep.Local.Deploy/Extensibility/ExtensionInfo.cs +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Bicep.Local.Deploy.Extensibility -{ - public readonly record struct ExtensionInfo(string ExtensionName, string ExtensionVersion, string Method); -} diff --git a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityExtension.cs b/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs similarity index 55% rename from src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityExtension.cs rename to src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs index 26385e6b240..d6a9c5126f6 100644 --- a/src/Bicep.Local.Deploy/Extensibility/GrpcExtensibilityExtension.cs +++ b/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs @@ -1,43 +1,30 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using System; -using System.Collections.Concurrent; -using System.Configuration; using System.Diagnostics; -using System.IO; -using System.IO.Pipes; -using System.Net; -using System.Net.Sockets; -using System.Text.Json; -using System.Threading; -using System.Threading.Tasks; -using Azure.Deployments.Extensibility.Contract; -using Azure.Deployments.Extensibility.Messages; +using System.Text.Json.Nodes; using Bicep.Local.Extension.Rpc; -using Grpc.Net.Client; +using Google.Protobuf.Collections; +using Json.Pointer; using Microsoft.WindowsAzure.ResourceStack.Common.Json; using Newtonsoft.Json.Linq; -using Data = Azure.Deployments.Extensibility.Data; -using Messages = Azure.Deployments.Extensibility.Messages; -using ExtensibilityV2 = Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract; +using ExtensibilityV2 = Azure.Deployments.Extensibility.Core.V2.Models; using Rpc = Bicep.Local.Extension.Rpc; -using Google.Protobuf.Collections; namespace Bicep.Local.Deploy.Extensibility; -public class GrpcExtensibilityExtension : LocalExtensibilityExtension +public class GrpcBuiltInLocalExtension : LocalExtensibilityHost { private readonly BicepExtension.BicepExtensionClient client; private readonly Process process; - private GrpcExtensibilityExtension(BicepExtension.BicepExtensionClient client, Process process) + private GrpcBuiltInLocalExtension(BicepExtension.BicepExtensionClient client, Process process) { this.client = client; this.process = process; } - public static async Task Start(Uri pathToBinary) + public static async Task Start(Uri pathToBinary) { var socketName = $"{Guid.NewGuid()}.tmp"; var socketPath = Path.Combine(Path.GetTempPath(), socketName); @@ -79,7 +66,7 @@ public static async Task Start(Uri pathToBinary) await GrpcChannelHelper.WaitForConnectionAsync(client, cts.Token); - return new GrpcExtensibilityExtension(client, process); + return new GrpcBuiltInLocalExtension(client, process); } catch (Exception ex) { @@ -88,19 +75,19 @@ public static async Task Start(Uri pathToBinary) } } - public override async Task CreateOrUpdate(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) + public override async Task CreateOrUpdate(ExtensibilityV2.ResourceSpecification request, CancellationToken cancellationToken) => Convert(await client.CreateOrUpdateAsync(Convert(request), cancellationToken: cancellationToken)); - public override async Task Delete(ExtensibilityV2.Models.ResourceReferenceRequestBody request, CancellationToken cancellationToken) + public override async Task Delete(ExtensibilityV2.ResourceReference request, CancellationToken cancellationToken) => Convert(await client.DeleteAsync(Convert(request), cancellationToken: cancellationToken)); - public override async Task Get(ExtensibilityV2.Models.ResourceReferenceRequestBody request, CancellationToken cancellationToken) + public override async Task Get(ExtensibilityV2.ResourceReference request, CancellationToken cancellationToken) => Convert(await client.GetAsync(Convert(request), cancellationToken: cancellationToken)); - public override async Task Preview(ExtensibilityV2.Models.ResourceRequestBody request, CancellationToken cancellationToken) + public override async Task Preview(ExtensibilityV2.ResourceSpecification request, CancellationToken cancellationToken) => Convert(await client.PreviewAsync(Convert(request), cancellationToken: cancellationToken)); - private static Rpc.ResourceReferenceRequestBody Convert(ExtensibilityV2.Models.ResourceReferenceRequestBody request) + private static Rpc.ResourceReference Convert(ExtensibilityV2.ResourceReference request) => new() { ApiVersion = request.ApiVersion, @@ -109,7 +96,7 @@ private static Rpc.ResourceReferenceRequestBody Convert(ExtensibilityV2.Models.R Type = request.Type }; - private static Rpc.ResourceRequestBody Convert(ExtensibilityV2.Models.ResourceRequestBody request) + private static Rpc.ResourceSpecification Convert(ExtensibilityV2.ResourceSpecification request) => new() { ApiVersion = request.ApiVersion, @@ -118,17 +105,22 @@ private static Rpc.ResourceRequestBody Convert(ExtensibilityV2.Models.ResourceRe Type = request.Type }; - private static ExtensibilityV2.Models.ErrorPayload Convert(Rpc.ErrorPayload error) - => new(error.Code, error.Target, error.Message, error.Details is null ? null : Convert(error.Details), error.InnerError is null ? null : JObject.Parse(error.InnerError)); + private static ExtensibilityV2.ErrorData Convert(Rpc.ErrorData errorData) + => new(new ExtensibilityV2.Error(errorData.Error.Code, errorData.Error.Message, JsonPointer.Empty, Convert(errorData.Error.Details), errorData.Error.InnerError is null ? null : JsonObject.Parse(errorData.Error.InnerError)?.AsObject() ?? throw new UnreachableException())); + + private static ExtensibilityV2.ErrorDetail[]? Convert(RepeatedField? details) + => details is not null ? details.Select(Convert).ToArray() : null; - private static ExtensibilityV2.Models.ErrorDetail[] Convert(RepeatedField details) - => details.Select(Convert).ToArray(); + private static ExtensibilityV2.ErrorDetail Convert(Rpc.ErrorDetail detail) + => new(detail.Code, detail.Message, JsonPointer.Empty); - private static ExtensibilityV2.Models.ErrorDetail Convert(Rpc.ErrorDetail detail) - => new(detail.Code, detail.Message, detail.Target); + private static LocalExtensibilityOperationResponse Convert(Rpc.LocalExtensibilityOperationResponse response) + => new( + new ExtensibilityV2.Resource(response.Resource.Type, response.Resource.ApiVersion, ToJsonObject(response.Resource.Identifiers, "Parsing response identifiers failed. Please ensure is non-null or empty and is a valid JSON object."), ToJsonObject(response.Resource.Properties, "Parsing response properties failed. Please ensure is non-null or empty and is ensure is a valid JSON object."), response.Resource.Status), + Convert(response.ErrorData)); - private static ExtensibilityV2.Models.ResourceResponseBody Convert(Rpc.ResourceResponseBody response) - => new(Convert(response.Error), response.Identifiers, response.Type, response.Status, response.Properties.ToJToken()); + private static JsonObject ToJsonObject(string json, string errorMessage) + => JsonNode.Parse(json)?.AsObject() ?? throw new ArgumentNullException(errorMessage); public override async ValueTask DisposeAsync() { diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityExtension.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityExtension.cs deleted file mode 100644 index 550ff297d91..00000000000 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityExtension.cs +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; -using Azure.Deployments.Extensibility.Contract; -using Azure.Deployments.Extensibility.Messages; - -namespace Bicep.Local.Deploy.Extensibility; - -public abstract class LocalExtensibilityExtension : IAsyncDisposable -{ - public abstract Task Delete(ResourceReferenceRequestBody request, CancellationToken cancellationToken); - - public abstract Task Get(ResourceReferenceRequestBody request, CancellationToken cancellationToken); - - public abstract Task Preview(ResourceRequestBody request, CancellationToken cancellationToken); - - public abstract Task CreateOrUpdate(ResourceRequestBody request, CancellationToken cancellationToken); - - public virtual ValueTask DisposeAsync() - { - return ValueTask.CompletedTask; - } -} diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs deleted file mode 100644 index c48a1d37aa9..00000000000 --- a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHandler.cs +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Concurrent; -using System.Collections.Immutable; -using System.Diagnostics; -using System.Net.Http.Formatting; -using System.Net.Http; -using System.Threading; -using System.Threading.Tasks; -using System.Web; -using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; -using Azure.Deployments.Extensibility.Contract; -using Azure.Deployments.Extensibility.Messages; -using Bicep.Core.Extensions; -using Bicep.Core.Registry; -using Bicep.Core.Semantics; -using Bicep.Core.Semantics.Namespaces; -using Bicep.Core.TypeSystem.Types; -using Microsoft.WindowsAzure.ResourceStack.Common.Json; -using Microsoft.WindowsAzure.ResourceStack.Common.Utilities; -using IAsyncDisposable = System.IAsyncDisposable; - -namespace Bicep.Local.Deploy.Extensibility; - -public class LocalExtensibilityHandler : IAsyncDisposable -{ - private record ExtensionKey( - string Name, - string Version); - - private Dictionary RegisteredExtensions = new(); - private readonly IModuleDispatcher moduleDispatcher; - private readonly Func> extensionFactory; - - public LocalExtensibilityHandler(IModuleDispatcher moduleDispatcher, Func> extensionFactory) - { - this.moduleDispatcher = moduleDispatcher; - this.extensionFactory = extensionFactory; - // Built in provider for handling nested deployments - RegisteredExtensions[new("LocalNested", "0.0.0")] = new AzExtensibilityExtension(this); - } - - public async Task CallExtensibilityHost( - ExtensionInfo extensionInfo, - HttpContent content, - CancellationToken cancellationToken) - { - var extension = RegisteredExtensions[new(extensionInfo.ExtensionName, extensionInfo.ExtensionVersion)]; - - return await CallExtension(extensionInfo.Method, extension, content, cancellationToken); - } - - private async Task CallExtension( - string method, - LocalExtensibilityExtension provider, - HttpContent content, - CancellationToken cancellationToken) - { - return method switch - { - "get" => await provider.Get(await content.ReadAsAsync(cancellationToken), cancellationToken), - "delete" => await provider.Delete(await content.ReadAsAsync(cancellationToken), cancellationToken), - "createOrUpdate" => await provider.CreateOrUpdate(await content.ReadAsAsync(cancellationToken), cancellationToken), - "preview" => await provider.Preview(await content.ReadAsAsync(cancellationToken), cancellationToken), - _ => throw new NotImplementedException($"Unsupported method {method}"), - }; - } - - private IEnumerable<(NamespaceType namespaceType, Uri binaryUri)> GetBinaryExtensions(Compilation compilation) - { - var namespaceTypes = compilation.GetAllBicepModels() - .Select(x => x.Root.NamespaceResolver) - .SelectMany(x => x.GetNamespaceNames().Select(x.TryGetNamespace)) - .WhereNotNull(); - - foreach (var namespaceType in namespaceTypes) - { - if (namespaceType.Artifact is { } artifact && - moduleDispatcher.TryGetProviderBinary(artifact) is { } binaryUri) - { - yield return (namespaceType, binaryUri); - } - } - } - - public async Task InitializeExtensions(Compilation compilation) - { - var binaryExtensions = GetBinaryExtensions(compilation).DistinctBy(x => x.binaryUri); - - foreach (var (namespaceType, binaryUri) in binaryExtensions) - { - ExtensionKey providerKey = new(namespaceType.Settings.ArmTemplateProviderName, namespaceType.Settings.ArmTemplateProviderVersion); - RegisteredExtensions[providerKey] = await extensionFactory(binaryUri); - } - } - - public async ValueTask DisposeAsync() - { - await Task.WhenAll(RegisteredExtensions.Values.Select(async provider => - { - try - { - await provider.DisposeAsync(); - } - catch - { - // TODO: handle errors shutting down processes gracefully - } - })); - } -} diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHost.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHost.cs new file mode 100644 index 00000000000..269fd5d6446 --- /dev/null +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHost.cs @@ -0,0 +1,45 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +using System.Text.Encodings.Web; +using System.Text.Json; +using System.Text.Json.Serialization; +using Azure.Deployments.Extensibility.Contract; +using Azure.Deployments.Extensibility.Core.V2.Models; +using Azure.Deployments.Extensibility.Messages; + +namespace Bicep.Local.Deploy.Extensibility; + +public record LocalExtensibilityOperationResponse(Resource? Resource, ErrorData? ErrorData); + +[JsonSerializable(typeof(LocalExtensibilityOperationResponse))] +public partial class LocalExtensibilityOperationResponseContext : JsonSerializerContext { } + +public static class LocalExtensibilityOperationResponseJsonDefaults +{ + public readonly static JsonSerializerOptions SerializerOptions = new() + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + DictionaryKeyPolicy = JsonNamingPolicy.CamelCase, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, + Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping, + }; + + public readonly static LocalExtensibilityOperationResponseContext SerializerContext = new(SerializerOptions); +} + +public abstract class LocalExtensibilityHost : IAsyncDisposable +{ + public abstract Task Delete(ResourceReference request, CancellationToken cancellationToken); + + public abstract Task Get(ResourceReference request, CancellationToken cancellationToken); + + public abstract Task Preview(ResourceSpecification request, CancellationToken cancellationToken); + + public abstract Task CreateOrUpdate(ResourceSpecification request, CancellationToken cancellationToken); + + public virtual ValueTask DisposeAsync() + { + return ValueTask.CompletedTask; + } +} diff --git a/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHostManager.cs b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHostManager.cs new file mode 100644 index 00000000000..cc760712407 --- /dev/null +++ b/src/Bicep.Local.Deploy/Extensibility/LocalExtensibilityHostManager.cs @@ -0,0 +1,199 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +using Bicep.Core.Extensions; +using Bicep.Core.Registry; +using Bicep.Core.Semantics; +using Bicep.Core.TypeSystem.Types; +using Microsoft.WindowsAzure.ResourceStack.Common.Json; +using IAsyncDisposable = System.IAsyncDisposable; +using Azure.Deployments.Extensibility.Core.V2.Models; +using System.Text.Json.Nodes; +using System.Text.Json; +using Azure.Deployments.Extensibility.Core.V2.Json; +using System.IO; +using Azure.Deployments.Engine.Host.Azure.ExtensibilityV2.Contract.Models; +using System.Diagnostics; +using System.Net.Http.Headers; +using System.Threading; +using System.Text.Json.Serialization.Metadata; + + +namespace Bicep.Local.Deploy.Extensibility; + +public class LocalExtensibilityHostManager : IAsyncDisposable +{ + private record ExtensionKey( + string Name, + string Version); + + private Dictionary RegisteredExtensions = new(); + private readonly IModuleDispatcher moduleDispatcher; + private readonly Func> extensionFactory; + + public LocalExtensibilityHostManager(IModuleDispatcher moduleDispatcher, Func> extensionFactory) + { + this.moduleDispatcher = moduleDispatcher; + this.extensionFactory = extensionFactory; + // Built in provider for handling nested deployments + RegisteredExtensions[new("LocalNested", "0.0.0")] = new NestedDeploymentBuiltInLocalExtension(this); + } + + public async Task CallExtensibilityHost( + LocalDeploymentEngineHost.ExtensionInfo extensionInfo, + HttpContent content, + CancellationToken cancellationToken) + { + var extension = RegisteredExtensions[new(extensionInfo.ExtensionName, extensionInfo.ExtensionVersion)]; + + var response = await CallExtension(extensionInfo.Method, extension, content, cancellationToken); + + // DeploymentEngine performs header validation and expects these two to always be set. + response.Headers.Add("Location", "local"); + response.Headers.Add("Version", extensionInfo.ExtensionVersion); + + return response; + } + + private async Task CallExtension( + string method, + LocalExtensibilityHost provider, + HttpContent content, + CancellationToken cancellationToken) + { + switch (method) + { + case "createOrUpdate": + { + var resourceSpecification = await GetResourceSpecificationAsync(await content.ReadAsStreamAsync(cancellationToken), cancellationToken); + var extensionResponse = await provider.CreateOrUpdate(resourceSpecification, cancellationToken); + + return await GetHttpResponseMessageAsync(extensionResponse, cancellationToken); + } + case "delete": + { + var resourceReference = await GetResourceReferenceAsync(await content.ReadAsStreamAsync(cancellationToken), cancellationToken); + var extensionResponse = await provider.Delete(resourceReference, cancellationToken); + + return await GetHttpResponseMessageAsync(extensionResponse, cancellationToken); + } + case "get": + { + var resourceReference = await GetResourceReferenceAsync(await content.ReadAsStreamAsync(cancellationToken), cancellationToken); + var extensionResponse = await provider.Delete(resourceReference, cancellationToken); + + return await GetHttpResponseMessageAsync(extensionResponse, cancellationToken); + } + case "preview": + { + var resourceSpecification = await GetResourceSpecificationAsync(await content.ReadAsStreamAsync(cancellationToken), cancellationToken); + var extensionResponse = await provider.CreateOrUpdate(resourceSpecification, cancellationToken); + + return await GetHttpResponseMessageAsync(extensionResponse, cancellationToken); + } + default: + throw new NotImplementedException($"Unsupported method {method}"); + } + } + + private async Task GetResourceSpecificationAsync(Stream stream, CancellationToken cancellationToken) + => await DeserializeAsync( + stream, + JsonDefaults.SerializerContext.ResourceSpecification, + $"Deserializing '{nameof(ResourceSpecification)}' failed. Please ensure the request body contains a valid JSON object.", + cancellationToken); + + private async Task GetResourceReferenceAsync(Stream stream, CancellationToken cancellationToken) + => await DeserializeAsync( + stream, + JsonDefaults.SerializerContext.ResourceReference, + $"Deserializing '{nameof(ResourceReference)}' failed. Please ensure the request body contains a valid JSON object.", + cancellationToken); + + private async Task DeserializeAsync(Stream stream, JsonTypeInfo typeInfo, string errorMessage, CancellationToken cancellationToken) + => await JsonSerializer.DeserializeAsync(stream, typeInfo, cancellationToken) ?? throw new ArgumentNullException(errorMessage); + + private async Task GetHttpResponseMessageAsync(LocalExtensibilityOperationResponse extensionResponse, CancellationToken cancellationToken) + { + if (extensionResponse.Resource is { } && extensionResponse.ErrorData is { }) + { + throw new ArgumentException($"Setting '{nameof(LocalExtensibilityOperationResponse.ErrorData)}' and '{nameof(LocalExtensibilityOperationResponse.Resource)}' is not valid. Please make sure to set one of these properties."); + } + + if (extensionResponse.Resource is not { } && extensionResponse.ErrorData is not { }) + { + throw new ArgumentException($"'{nameof(LocalExtensibilityOperationResponse.ErrorData)}' and '{nameof(LocalExtensibilityOperationResponse.Resource)}' cannot be both empty. Please make sure to set one of these properties."); + } + + var memoryStream = new MemoryStream(); + if (extensionResponse.ErrorData is { }) + { + await JsonSerializer.SerializeAsync(memoryStream, extensionResponse.ErrorData, JsonDefaults.SerializerContext.ErrorData, cancellationToken); + memoryStream.Position = 0; + var streamContent = new StreamContent(memoryStream); + streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + + return new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest) + { + Content = streamContent + }; + } + else if (extensionResponse.Resource is { }) + { + await JsonSerializer.SerializeAsync(memoryStream, extensionResponse.Resource, JsonDefaults.SerializerContext.Resource, cancellationToken); + memoryStream.Position = 0; + var streamContent = new StreamContent(memoryStream); + streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + + return new HttpResponseMessage(System.Net.HttpStatusCode.OK) + { + Content = streamContent + }; + } + + throw new UnreachableException($"Should not reach here, either '{nameof(LocalExtensibilityOperationResponse.ErrorData)}' or '{nameof(LocalExtensibilityOperationResponse.Resource)}' should have been set."); + } + + private IEnumerable<(NamespaceType namespaceType, Uri binaryUri)> GetBinaryExtensions(Compilation compilation) + { + var namespaceTypes = compilation.GetAllBicepModels() + .Select(x => x.Root.NamespaceResolver) + .SelectMany(x => x.GetNamespaceNames().Select(x.TryGetNamespace)) + .WhereNotNull(); + + foreach (var namespaceType in namespaceTypes) + { + if (namespaceType.Artifact is { } artifact && + moduleDispatcher.TryGetProviderBinary(artifact) is { } binaryUri) + { + yield return (namespaceType, binaryUri); + } + } + } + + public async Task InitializeExtensions(Compilation compilation) + { + var binaryExtensions = GetBinaryExtensions(compilation).DistinctBy(x => x.binaryUri); + + foreach (var (namespaceType, binaryUri) in binaryExtensions) + { + ExtensionKey providerKey = new(namespaceType.Settings.ArmTemplateProviderName, namespaceType.Settings.ArmTemplateProviderVersion); + RegisteredExtensions[providerKey] = await extensionFactory(binaryUri); + } + } + + public async ValueTask DisposeAsync() + { + await Task.WhenAll(RegisteredExtensions.Values.Select(async provider => + { + try + { + await provider.DisposeAsync(); + } + catch + { + // TODO: handle errors shutting down processes gracefully + } + })); + } +} diff --git a/src/Bicep.Local.Deploy/Extensibility/NestedDeploymentBuiltInLocalExtension.cs b/src/Bicep.Local.Deploy/Extensibility/NestedDeploymentBuiltInLocalExtension.cs new file mode 100644 index 00000000000..e3f8f36b158 --- /dev/null +++ b/src/Bicep.Local.Deploy/Extensibility/NestedDeploymentBuiltInLocalExtension.cs @@ -0,0 +1,92 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +using System; +using System.Diagnostics; +using System.Text.Json.Nodes; +using System.Threading; +using System.Threading.Tasks; +using Azure.Deployments.Core.Definitions; +using Azure.Deployments.Extensibility.Contract; +using Azure.Deployments.Extensibility.Core.V2.Models; +using Azure.Deployments.Extensibility.Data; +using Azure.Deployments.Extensibility.Messages; +using Json.More; +using Json.Pointer; +using Microsoft.WindowsAzure.ResourceStack.Common.Extensions; +using Microsoft.WindowsAzure.ResourceStack.Common.Json; +using Newtonsoft.Json.Linq; + +namespace Bicep.Local.Deploy.Extensibility; + +public class NestedDeploymentBuiltInLocalExtension : LocalExtensibilityHost +{ + private readonly LocalExtensibilityHostManager extensibilityHostManager; + + public NestedDeploymentBuiltInLocalExtension(LocalExtensibilityHostManager extensibilityHandler) + { + this.extensibilityHostManager = extensibilityHandler; + } + + private record DeploymentIdentifiers (string DeploymentName); + + private JsonObject CreateDeploymentIdentifiers(DeploymentContent deployment) + => JsonObject.Parse(new DeploymentIdentifiers(deployment.Name).ToJsonStream())?.AsObject() ?? throw new UnreachableException("Serialization is not expected to fail."); + + public override async Task CreateOrUpdate(ResourceSpecification request, CancellationToken cancellationToken) + { + switch (request.Type) + { + case "Microsoft.Resources/deployments": + { + var template = request.Properties["template"]!.ToString(); + var parameters = new JsonObject + { + ["$schema"] = "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + ["contentVersion"] = "1.0.0.0", + ["parameters"] = request.Properties["parameters"], + }; + + var result = await LocalDeployment.Deploy(extensibilityHostManager, template, parameters.ToJson(), cancellationToken); + + if (result.Deployment.Properties.ProvisioningState != ProvisioningState.Succeeded) + { + return new LocalExtensibilityOperationResponse( + Resource: null, + ErrorData: new ErrorData( + error: new Error( + result.Deployment.Properties.Error.Code, + result.Deployment.Properties.Error.Message, + JsonPointer.Empty, + result.Deployment.Properties.Error.Details.SelectArray(x => new ErrorDetail(x.Code, x.Message, JsonPointer.Empty))))); + } + + return new LocalExtensibilityOperationResponse( + Resource: new Resource( + identifiers: CreateDeploymentIdentifiers(result.Deployment), + type: request.Type, + apiVersion: request.ApiVersion, + status: result.Deployment.Properties.ProvisioningState.ToString(), + properties: JsonObject.Parse(result.Deployment.Properties.ToJsonStream())?.AsObject() ?? throw new UnreachableException("Serialization is not expected to fail.")), + ErrorData: null); + } + } + + throw new NotImplementedException(); + } + + public override Task Delete(ResourceReference request, CancellationToken cancellationToken) + { + throw new NotImplementedException(); + } + + public override Task Get(ResourceReference request, CancellationToken cancellationToken) + { + throw new NotImplementedException(); + } + + public override Task Preview(ResourceSpecification request, CancellationToken cancellationToken) + { + throw new NotImplementedException(); + } +} diff --git a/src/Bicep.Local.Deploy/IServiceCollectionExtensions.cs b/src/Bicep.Local.Deploy/IServiceCollectionExtensions.cs index 8f61d94f660..e631f9ef7f4 100644 --- a/src/Bicep.Local.Deploy/IServiceCollectionExtensions.cs +++ b/src/Bicep.Local.Deploy/IServiceCollectionExtensions.cs @@ -32,7 +32,7 @@ namespace Bicep.Local.Deploy; public static class IServiceCollectionExtensions { - public static IServiceCollection RegisterLocalDeployServices(this IServiceCollection services, LocalExtensibilityHandler extensibilityHandler) + public static IServiceCollection RegisterLocalDeployServices(this IServiceCollection services, LocalExtensibilityHostManager extensibilityHandler) { var eventSource = new TraceEventSource(); services.AddSingleton(eventSource); diff --git a/src/Bicep.Local.Deploy/LocalDeployment.cs b/src/Bicep.Local.Deploy/LocalDeployment.cs index 75f4b17cc14..254278ffff2 100644 --- a/src/Bicep.Local.Deploy/LocalDeployment.cs +++ b/src/Bicep.Local.Deploy/LocalDeployment.cs @@ -17,7 +17,7 @@ public record Result( DeploymentContent Deployment, ImmutableArray Operations); - public static async Task Deploy(LocalExtensibilityHandler extensibilityHandler, string templateString, string parametersString, CancellationToken cancellationToken) + public static async Task Deploy(LocalExtensibilityHostManager extensibilityHandler, string templateString, string parametersString, CancellationToken cancellationToken) { var services = new ServiceCollection() .RegisterLocalDeployServices(extensibilityHandler) diff --git a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs index d5707a22f81..5e1cc3e1a03 100644 --- a/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs +++ b/src/Bicep.Local.Deploy/LocalDeploymentEngineHost.cs @@ -1,43 +1,23 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Linq; using System.Net; -using System.Net.Http; using System.Net.Http.Headers; using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Azure.Core; +using System.Text.Json.Nodes; using Azure.Deployments.Core.Definitions; using Azure.Deployments.Core.Definitions.Identifiers; -using Azure.Deployments.Core.Definitions.Resources; using Azure.Deployments.Core.Entities; -using Azure.Deployments.Core.ErrorResponses; using Azure.Deployments.Core.EventSources; using Azure.Deployments.Core.Exceptions; -using Azure.Deployments.Core.Extensions; using Azure.Deployments.Core.FeatureEnablement; -using Azure.Deployments.Core.Helpers; -using Azure.Deployments.Core.PerformanceCounters; -using Azure.Deployments.Core.Uri; -using Azure.Deployments.Engine.Extensions; -using Azure.Deployments.Engine.Helpers; -using Azure.Deployments.Engine.Host.Azure.Constants; -using Azure.Deployments.Engine.Host.Azure.Definitions; -using Azure.Deployments.Engine.Host.Azure.Exceptions; using Azure.Deployments.Engine.Host.Azure.Interfaces; using Azure.Deployments.Engine.Host.Azure.Workers.Metadata; using Azure.Deployments.Engine.Host.External; using Azure.Deployments.Engine.Interfaces; -using Azure.Deployments.Extensibility.Messages; using Azure.Deployments.ResourceMetadata.Contracts; using Bicep.Local.Deploy.Extensibility; using Microsoft.WindowsAzure.ResourceStack.Common.BackgroundJobs; -using Microsoft.WindowsAzure.ResourceStack.Common.Extensions; -using Microsoft.WindowsAzure.ResourceStack.Common.Instrumentation; using Microsoft.WindowsAzure.ResourceStack.Common.Json; using Microsoft.WindowsAzure.ResourceStack.Common.Services.ADAuthentication; using Newtonsoft.Json.Linq; @@ -48,16 +28,12 @@ namespace Bicep.Local.Deploy; public class LocalDeploymentEngineHost : DeploymentEngineHostBase { - private readonly LocalExtensibilityHandler extensibilityHandler; - - /*var extensionName = requestUri.Segments[^4].TrimEnd('/'); - var extensionVersion = requestUri.Segments[^3].TrimEnd('/'); - var method = requestUri.Segments[^1].TrimEnd('/');*/ - - private record ExtensibilityV2ExtensionInfo(string ExtensionName, string ExtensionVersion, string Method); + private readonly LocalExtensibilityHostManager extensibilityHandler; + public readonly record struct ExtensionInfo(string ExtensionName, string ExtensionVersion, string Method); + public LocalDeploymentEngineHost( - LocalExtensibilityHandler extensibilityHandler, + LocalExtensibilityHostManager extensibilityHandler, IDeploymentsRequestContext requestContext, IDeploymentEventSource deploymentEventSource, IKeyVaultDataProvider keyVaultDataProvider, @@ -160,17 +136,8 @@ public override async Task CallExtensibilityHostV2( var method = requestUri.Segments[^1].TrimEnd('/'); var extensionInfo = new ExtensionInfo(extensionName, extensionVersion, method); - var extensibilityResponse = await extensibilityHandler.CallExtensibilityHost(extensionInfo, content, cancellationToken); - - var response = new HttpResponseMessage(HttpStatusCode.OK) - { - Content = new StringContent(extensibilityResponse.ToJson(), encoding: Encoding.UTF8, mediaType: "application/json") - }; - - response.Headers.Add("Location", "local"); - response.Headers.Add("Version", extensionVersion); - return response; + return await extensibilityHandler.CallExtensibilityHost(extensionInfo, content, cancellationToken); } protected override Task GetEnvironmentKey() diff --git a/src/Bicep.Local.Deploy/packages.lock.json b/src/Bicep.Local.Deploy/packages.lock.json index 95568216662..d29f8a8d951 100644 --- a/src/Bicep.Local.Deploy/packages.lock.json +++ b/src/Bicep.Local.Deploy/packages.lock.json @@ -20,6 +20,18 @@ "System.Diagnostics.DiagnosticSource": "5.0.1" } }, + "Azure.Deployments.Extensibility.Core": { + "type": "Direct", + "requested": "[0.1.55, )", + "resolved": "0.1.55", + "contentHash": "iMZhx89YLqHaPGA20LXlzDBty7ov/UgOdxLudJtYwBXkalfSRHLPNKRnJVeGM3EZc9897LeoPyfJ8NvyLeZcgQ==", + "dependencies": { + "JsonPatch.Net": "3.1.0", + "JsonPath.Net": "1.1.0", + "JsonPointer.Net": "5.0.0", + "JsonSchema.Net": "7.0.4" + } + }, "Azure.Deployments.Internal.GenerateNotice": { "type": "Direct", "requested": "[0.1.38, )", @@ -309,6 +321,14 @@ "Json.More.Net": "2.0.1.2" } }, + "JsonSchema.Net": { + "type": "Transitive", + "resolved": "7.0.4", + "contentHash": "R0Hk2Tr/np4Q1NO8CBjyQsoiD1iFJyEQP20Sw7JnZCNGJoaSBe+g4b+nZqnBXPQhiqY5LGZ8JZwZkRh/eKZhEQ==", + "dependencies": { + "JsonPointer.Net": "5.0.0" + } + }, "Microsoft.Automata.SRM": { "type": "Transitive", "resolved": "1.2.2", diff --git a/src/Bicep.Local.Extension.Mock/Handlers/EchoResourceHandler.cs b/src/Bicep.Local.Extension.Mock/Handlers/EchoResourceHandler.cs index bcbbc99613a..dd468d192b3 100644 --- a/src/Bicep.Local.Extension.Mock/Handlers/EchoResourceHandler.cs +++ b/src/Bicep.Local.Extension.Mock/Handlers/EchoResourceHandler.cs @@ -19,16 +19,16 @@ public class EchoResourceHandler : IResourceHandler { public string ResourceType => "echo"; - public Task Delete(ResourceReferenceRequestBody request, CancellationToken cancellationToken) + public Task Delete(ResourceReference request, CancellationToken cancellationToken) => throw new NotImplementedException(); - public Task Get(ResourceReferenceRequestBody request, CancellationToken cancellationToken) + public Task Get(ResourceReference request, CancellationToken cancellationToken) => throw new NotImplementedException(); - public Task Preview(ResourceRequestBody request, CancellationToken cancellationToken) + public Task Preview(ResourceSpecification request, CancellationToken cancellationToken) => throw new NotImplementedException(); - public async Task CreateOrUpdate(ResourceRequestBody request, CancellationToken cancellationToken) + public async Task CreateOrUpdate(ResourceSpecification request, CancellationToken cancellationToken) { await Task.Yield(); var requestBody = JsonSerializer.Deserialize(request.Properties, SerializationContext.Default.EchoRequest) @@ -41,11 +41,8 @@ public async Task CreateOrUpdate(ResourceRequestBody reque }; var responseBody = new EchoResponse(requestBody.Payload); - return new ResourceResponseBody( - null, - identifiers, - request.Type, - "Succeeded", - JsonNode.Parse(JsonSerializer.Serialize(responseBody, SerializationContext.Default.EchoResponse))!.AsObject()); + return new LocalExtensibilityOperationResponse( + Resource: new Resource(request.Type, request.ApiVersion, "Succeeded", identifiers, null, JsonNode.Parse(JsonSerializer.Serialize(responseBody, SerializationContext.Default.EchoResponse))!.AsObject()), + ErrorData: null); } } diff --git a/src/Bicep.Local.Extension/Protocol/IResourceHandler.cs b/src/Bicep.Local.Extension/Protocol/IResourceHandler.cs index 847cea387cb..fe9d3b7fcd1 100644 --- a/src/Bicep.Local.Extension/Protocol/IResourceHandler.cs +++ b/src/Bicep.Local.Extension/Protocol/IResourceHandler.cs @@ -8,26 +8,30 @@ namespace Bicep.Local.Extension.Protocol; -public record ResourceRequestBody( - JsonObject? Config, +public record Resource( string Type, - JsonObject Properties, - string? ApiVersion); - -public record ResourceReferenceRequestBody( + string? ApiVersion, + string? Status, JsonObject Identifiers, JsonObject? Config, + JsonObject Properties); + +public record ResourceSpecification( string Type, - string? ApiVersion); + string? ApiVersion, + JsonObject Properties, + JsonObject? Config); -public record ResourceResponseBody( - ErrorPayload? Error, - JsonObject Identifiers, +public record ResourceReference( string Type, - string Status, - JsonObject Properties); + string? ApiVersion, + JsonObject Identifiers, + JsonObject? Config); -public record ErrorPayload( +public record ErrorData( + Error Error); + +public record Error( string Code, string Target, string Message, @@ -39,22 +43,26 @@ public record ErrorDetail( string Target, string Message); +public record LocalExtensibilityOperationResponse( + Resource? Resource, + ErrorData? ErrorData); + public interface IGenericResourceHandler { - Task CreateOrUpdate( - ResourceRequestBody request, + Task CreateOrUpdate( + ResourceSpecification request, CancellationToken cancellationToken); - Task Preview( - ResourceRequestBody request, + Task Preview( + ResourceSpecification request, CancellationToken cancellationToken); - Task Get( - ResourceReferenceRequestBody request, + Task Get( + ResourceReference request, CancellationToken cancellationToken); - Task Delete( - ResourceReferenceRequestBody request, + Task Delete( + ResourceReference request, CancellationToken cancellationToken); } diff --git a/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs b/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs index 972230c976d..4f8c97b03ab 100644 --- a/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs +++ b/src/Bicep.Local.Extension/Rpc/BicepExtensionImpl.cs @@ -1,11 +1,10 @@ // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. -using System.Linq; using System.Text.Json.Nodes; using Bicep.Local.Extension.Protocol; +using Google.Protobuf.Collections; using Grpc.Core; -using Grpc.Net.Client; using Microsoft.Extensions.Logging; namespace Bicep.Local.Extension.Rpc; @@ -21,45 +20,118 @@ public BicepExtensionImpl(ILogger logger, ResourceDispatcher this.dispatcher = dispatcher; } - public override Task CreateOrUpdate(ResourceRequestBody request, ServerCallContext context) + public override Task CreateOrUpdate(ResourceSpecification request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).CreateOrUpdate(Convert(request), context.CancellationToken))); - public override Task Preview(ResourceRequestBody request, ServerCallContext context) + public override Task Preview(ResourceSpecification request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).Preview(Convert(request), context.CancellationToken))); - public override Task Get(ResourceReferenceRequestBody request, ServerCallContext context) + public override Task Get(ResourceReference request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).Get(Convert(request), context.CancellationToken))); - public override Task Delete(ResourceReferenceRequestBody request, ServerCallContext context) + public override Task Delete(ResourceReference request, ServerCallContext context) => WrapExceptions(async () => Convert(await dispatcher.GetHandler(request.Type).Delete(Convert(request), context.CancellationToken))); public override Task Ping(Empty request, ServerCallContext context) => Task.FromResult(new Empty()); - private Protocol.ResourceRequestBody Convert(ResourceRequestBody request) - => new(!string.IsNullOrEmpty(request.Config) ? JsonNode.Parse(request.Config) as JsonObject : null, - request.Type, - JsonNode.Parse(request.Properties)!.AsObject(), // TODO: Is there a better way to parse to ensure result might not be null? - request.ApiVersion); + private Protocol.ResourceSpecification Convert(ResourceSpecification request) + { + JsonObject? config = GetExtensionConfig(request.Config); + var properties = ToJsonObject(request.Properties, "Parsing resource properties failed. Please ensure is non-null or empty and is a valid JSON object."); + + return new(request.Type, request.ApiVersion, properties, config); + } + + private Protocol.ResourceReference Convert(ResourceReference request) + { + JsonObject identifiers = ToJsonObject(request.Identifiers, "Parsing resource identifiers failed. Please ensure is non-null or empty and is a valid JSON object."); + JsonObject? config = GetExtensionConfig(request.Config); - private Protocol.ResourceReferenceRequestBody Convert(ResourceReferenceRequestBody request) - => new(JsonNode.Parse(request.Identifiers)!.AsObject(), - !string.IsNullOrEmpty(request.Config) ? JsonNode.Parse(request.Config) as JsonObject : null, - request.Type, - request.ApiVersion); + return new(request.Type, request.ApiVersion, identifiers, config); + } - private ResourceResponseBody Convert(Protocol.ResourceResponseBody response) + private JsonObject? GetExtensionConfig(string extensionConfig) { - return new ResourceResponseBody + JsonObject? config = null; + if (!string.IsNullOrEmpty(extensionConfig)) { - Identifiers = response.Identifiers.ToJsonString(), - Properties = response.Properties.ToJsonString(), - Status = response.Status, - Type = response.Type, - }; + config = ToJsonObject(extensionConfig, "Parsing extension config failed. Please ensure is a valid JSON object."); + } + return config; } - private static async Task WrapExceptions(Func> func) + private JsonObject ToJsonObject(string json, string errorMessage) + => JsonNode.Parse(json)?.AsObject() ?? throw new ArgumentNullException(errorMessage); + + private Resource? Convert(Protocol.Resource? response) + => response is null ? null : + new() + { + Identifiers = response.Identifiers.ToJsonString(), + Properties = response.Properties.ToJsonString(), + Status = response.Status, + Type = response.Type, + ApiVersion = response.ApiVersion, + }; + + private ErrorData? Convert(Protocol.ErrorData? response) + { + if (response is null) + { + return null; + } + + var errorData = new ErrorData() + { + Error = new Error() + { + Code = response.Error.Code, + Message = response.Error.Message, + InnerError = response.Error.InnerError?.ToJsonString(), + Target = response.Error.Target, + } + }; + + var errorDetails = Convert(response.Error.Details); + if (errorDetails is not null) + { + errorData.Error.Details.AddRange(errorDetails); + } + return errorData; + } + + private RepeatedField? Convert(Protocol.ErrorDetail[]? response) + { + if (response is null) + { + return null; + } + + var list = new RepeatedField(); + foreach (var item in response) + { + list.Add(Convert(item)); + } + return list; + } + + private ErrorDetail Convert(Protocol.ErrorDetail response) + => new() + { + Code = response.Code, + Message = response.Message, + Target = response.Target, + }; + + private LocalExtensibilityOperationResponse Convert(Protocol.LocalExtensibilityOperationResponse response) + => new() + { + ErrorData = Convert(response.ErrorData), + Resource = Convert(response.Resource) + }; + + private static async Task WrapExceptions(Func> func) { try { @@ -67,13 +139,17 @@ private static async Task WrapExceptions(Func Date: Thu, 4 Jul 2024 12:12:55 -0700 Subject: [PATCH 12/15] Revert "merge from master" This reverts commit 765d5207c98fac64e57db40e81c5e2cade7750ea. --- .../BicepTestProject/packages.lock.json | 46 + .../packages.lock.json | 1900 ++++++++++++++ .../packages.lock.json | 354 +++ .../packages.lock.json | 1348 ++++++++++ .../packages.lock.json | 1465 +++++++++++ .../packages.lock.json | 2190 +++++++++++++++++ .../packages.lock.json | 1074 ++++++++ 7 files changed, 8377 insertions(+) create mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/TestSolution/BicepTestProject/packages.lock.json create mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/packages.lock.json create mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.ItemTemplate/packages.lock.json create mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.TestServices/packages.lock.json create mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.UnitTests/packages.lock.json create mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient.Vsix/packages.lock.json create mode 100644 src/vs-bicep/Bicep.VSLanguageServerClient/packages.lock.json diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/TestSolution/BicepTestProject/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/TestSolution/BicepTestProject/packages.lock.json new file mode 100644 index 00000000000..0a14f3bdf01 --- /dev/null +++ b/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/TestSolution/BicepTestProject/packages.lock.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "dependencies": { + "net6.0": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "type": "Direct", + "requested": "[3.3.3, )", + "resolved": "3.3.3", + "contentHash": "vvz3XCHVrd/Ks4xPoutLmL/T2+8JcOk/OMs3ngwQqnzokQCGEDsY+WjK/txCsDWU29sX3fGzH/FnYwNV93O1mA==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[1.1.1, )", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Nerdbank.GitVersioning": { + "type": "Direct", + "requested": "[3.5.113, )", + "resolved": "3.5.113", + "contentHash": "4fBSMkqhi410qlkjPm+Mxfk8iO3C7dmgdVS7ljsfVO21WEzZCHP1VCOqB6rlOPfPidR/oxX+/Do/I7meCAz+Jg==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + } + }, + "net6.0/linux-arm64": {}, + "net6.0/linux-musl-x64": {}, + "net6.0/linux-x64": {}, + "net6.0/osx-arm64": {}, + "net6.0/osx-x64": {}, + "net6.0/win-arm64": {}, + "net6.0/win-x64": {} + } +} diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/packages.lock.json new file mode 100644 index 00000000000..eadb5960c85 --- /dev/null +++ b/src/vs-bicep/Bicep.VSLanguageServerClient.IntegrationTests/packages.lock.json @@ -0,0 +1,1900 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.7.2": { + "FluentAssertions": { + "type": "Direct", + "requested": "[6.9.0, )", + "resolved": "6.9.0", + "contentHash": "Z+alhbX6FreF+buZlOpP4jt93wofAdAzyUngcDNHYcuVsDUh/rjIB9WcqXctxffh4XZ3xUG/Ew4UgULSP/kUZg==", + "dependencies": { + "System.Net.Http": "4.3.4", + "System.Threading.Tasks.Extensions": "4.5.0" + } + }, + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "type": "Direct", + "requested": "[3.3.4, )", + "resolved": "3.3.4", + "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" + }, + "Microsoft.CodeAnalysis.CSharp.CodeStyle": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" + }, + "Microsoft.Net.Compilers.Toolset": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "2j3UDVESH3nVyOr3EF3Om0nSfbZ70dRfiSxmFEoCMar9fApOsns+Odv6g3bMH8rZriY6G4x3LCsnsDl+CEt5KQ==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.9.0, )", + "resolved": "17.9.0", + "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==", + "dependencies": { + "Microsoft.CodeCoverage": "17.9.0" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Microsoft.Test.Apex.VisualStudio": { + "type": "Direct", + "requested": "[17.9.34701.34, )", + "resolved": "17.9.34701.34", + "contentHash": "jUpqt3cjbXlcmyDUH4cuS+ZR6p3AHV5Uvoo5YQ27wmkjOmH827gfUVV+hJaaNOt6Kgo13asTzKfFHPwfefQoLQ==", + "dependencies": { + "MSTest.TestAdapter": "3.0.3", + "MSTest.TestFramework": "3.0.3" + } + }, + "Microsoft.VisualStudio.Composition": { + "type": "Direct", + "requested": "[17.7.40, )", + "resolved": "17.7.40", + "contentHash": "BjQMHw97eZFaP+5Ng0iJaHOFGmRowZHfHRHWZGlz3h9eC1bEwNSaBXZT+tha9NhR+jPRnK1xNwCeoPtN8U0yMQ==", + "dependencies": { + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Composition": "7.0.0", + "System.Composition.AttributedModel": "7.0.0", + "System.Reflection.Metadata": "7.0.0", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "Microsoft.VisualStudio.Editor": { + "type": "Direct", + "requested": "[17.2.3194, )", + "resolved": "17.2.3194", + "contentHash": "24RGth15SXCwIiZB9n7juG0SxiUyirD9dAzLrqTulkVZZlqQjv6iJWy4QC6KmaVISFbjHjTGUCn2mP38D1vi1A==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.GraphModel": "17.2.32330.158", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", + "Microsoft.VisualStudio.Language": "17.2.3194", + "Microsoft.VisualStudio.RpcContracts": "17.2.31", + "Microsoft.VisualStudio.Shell.15.0": "17.2.32330.158", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "Microsoft.VisualStudio.Text.Logic": "17.2.3194", + "Microsoft.VisualStudio.Text.UI": "17.2.3194", + "Microsoft.VisualStudio.Text.UI.Wpf": "17.2.3194", + "Microsoft.VisualStudio.Threading": "17.2.32", + "Microsoft.VisualStudio.Validation": "17.0.53" + } + }, + "Microsoft.VisualStudio.Shell.Framework": { + "type": "Direct", + "requested": "[17.9.37000, )", + "resolved": "17.9.37000", + "contentHash": "Inem6IWh7sCSkn2Up6w8hCJziHkwnlIwxHbIihDOFLNj70eMmxtYbrK/YK5Wj/3/hlWXyQM0m5GxPZiLVKjOfA==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.Build.Framework": "17.9.5", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.GraphModel": "17.9.37000", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", + "Microsoft.VisualStudio.Interop": "17.9.37000", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities": "17.9.37000", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" + }, + "MSTest.TestAdapter": { + "type": "Direct", + "requested": "[3.4.0, )", + "resolved": "3.4.0", + "contentHash": "s8SNJ09FY8slmrPHIyNtAZbPbL1KP/5r/25DFYhQ6o1e/ETYZgcUx00eib8a3n2nCsPWrql79QXRI58PNbquAQ==", + "dependencies": { + "Microsoft.Testing.Extensions.VSTestBridge": "1.2.1", + "Microsoft.Testing.Platform.MSBuild": "1.2.1" + } + }, + "MSTest.TestFramework": { + "type": "Direct", + "requested": "[3.3.1, )", + "resolved": "3.3.1", + "contentHash": "020SuA2p8N7o+/AHC0SLgzGpyS1hNjR8m5tWxnuGqJ3HeJhArUbuPAU8RZr8Ll38ij8oiutGCkQ/G+ymyO51Ow==" + }, + "Nerdbank.GitVersioning": { + "type": "Direct", + "requested": "[3.6.133, )", + "resolved": "3.6.133", + "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" + }, + "MediatR": { + "type": "Transitive", + "resolved": "8.1.0", + "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" + }, + "MessagePack": { + "type": "Transitive", + "resolved": "2.5.108", + "contentHash": "kcVRbdWP3xNWLZmmpm4DFO+kuXf6mUR2mHZ27WoZIEFIv9hazuUd80injXhNrZnlq/FklAdCsLOil5M76I4Ndg==", + "dependencies": { + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.NET.StringTools": "17.4.0", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Emit": "4.7.0", + "System.Reflection.Emit.Lightweight": "4.7.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "MessagePack.Annotations": { + "type": "Transitive", + "resolved": "2.5.108", + "contentHash": "28aNCvfJClgwaKr26gf2S6LT+C1PNyPxiG+ihYpy8uCJsRLJEDoCt2I0Uk5hqOPQ8P8hI0ESy520oMkZkPmsOQ==" + }, + "Microsoft.ApplicationInsights": { + "type": "Transitive", + "resolved": "2.22.0", + "contentHash": "3AOM9bZtku7RQwHyMEY3tQMrHIgjcfRDa6YQpd/QG2LDGvMydSlL9Di+8LLMt7J2RDdfJ7/2jdYv6yHcMJAnNw==", + "dependencies": { + "System.Diagnostics.DiagnosticSource": "5.0.0" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Build": { + "type": "Transitive", + "resolved": "16.8.0", + "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", + "dependencies": { + "Microsoft.Build.Framework": "16.8.0", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", + "System.Collections.Immutable": "1.5.0", + "System.Memory": "4.5.3", + "System.Text.Json": "4.7.0", + "System.Threading.Tasks.Dataflow": "4.9.0" + } + }, + "Microsoft.Build.Framework": { + "type": "Transitive", + "resolved": "17.9.5", + "contentHash": "CjRmqu9Wv2fyC1d7NKOuBDXcNMI8+GiXGM6izygB+skGGu4Vf0cBcoPq7AFqZCcMpn5DtZ+y7RpaLpB2qrzanQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.9.0", + "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.IO.Redist": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "uxXZ8pAcYtIJm8iqu/0e+CkM/VSwfgbHpnCDu7s8+gn/VUD5R6PxH3RGZFPaHgTisrlwD+BIyL5TqG6qwuZtOQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.NET.StringTools": { + "type": "Transitive", + "resolved": "17.9.5", + "contentHash": "C/oPRnjcIZBRzcpl1V06R1eEMCxOGt6mIm+8ioyblELgJEXLM8XjUPuCwljMO52VetsHw54xMcYwU8UEeHEIEg==", + "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": "4.4.22", + "contentHash": "j1tTGfD977w7eorHfgUS7mARtNufQtig9YqDrLi8CbS4HJU22pBm8Qu+F/9EsnA0XsQWFJo2BcqGWRlWdjXbCw==" + }, + "Microsoft.ServiceHub.Framework": { + "type": "Transitive", + "resolved": "4.4.22", + "contentHash": "fGRLbxg+J2xyoyNxI8x4gcrbc1ouMyob63kFG7xrteOUboyMIfAgIye8d7SnliTMwbcYStVYsELSE0GrHX8Pjw==", + "dependencies": { + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.VisualStudio.Composition": "17.6.17", + "Microsoft.VisualStudio.Threading": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "Nerdbank.Streams": "2.10.69", + "StreamJsonRpc": "2.16.41", + "System.Collections.Immutable": "7.0.0", + "System.Text.Json": "7.0.3" + } + }, + "Microsoft.ServiceHub.Resources": { + "type": "Transitive", + "resolved": "4.4.4171", + "contentHash": "0+hr177wzlS6m9IXjG9EW8BzyqfT+mGFL49NHlRKQHRVzSl2NUBI3yrftlFyz6oNgbsyitTkkWcHe2VYN/vpfQ==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.Testing.Extensions.Telemetry": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "MKGxwQhDDEoTS/ntFb21Z6Bxh9VvknmSLgEWH+NFD86fbcIqE2Al8lrXkQPeH+AqCvlhx2WnPLKd81T2PXc2dw==", + "dependencies": { + "Microsoft.ApplicationInsights": "2.22.0", + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Extensions.TrxReport.Abstractions": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "46SnzaLR+SDaTtBWy49xdFm/rI40I8nZtziqnt2d4lgILKovWPnkM8Pehnga/uwl+OznVIh0XuRsN3NokkX1TQ==", + "dependencies": { + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Extensions.VSTestBridge": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "Tu8CWHEwV/92WM2DRr/qeIdH243diV5s43ODPLl13XeRqGbZlu9lk7X0a7kcxhp0BLRlA3fqMW3F6RynrnDrPw==", + "dependencies": { + "Microsoft.ApplicationInsights": "2.22.0", + "Microsoft.TestPlatform.ObjectModel": "17.5.0", + "Microsoft.Testing.Extensions.Telemetry": "1.2.1", + "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.2.1", + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Platform": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "mb7irPwqjgusJ05BxuQ5KP6uofWaoDr/dfjFNItX1Q1Ntv3EDMr3CeLInrlU2PNcPwwObw4X6bZG7wJvvFjKZQ==" + }, + "Microsoft.Testing.Platform.MSBuild": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "leUhW4iQNy7vmPk5uRHd4OROqfRtugWDQkWL/4AD17gxZwAAwGCaTcrqG0YVPi7uuZ+lj2Loa6kU7hBLA/v5+w==", + "dependencies": { + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.5.0", + "contentHash": "QwiBJcC/oEA1kojOaB0uPWOIo4i6BYuTBBYJVhUvmXkyYqZ2Ut/VZfgi+enf8LF8J4sjO98oRRFt39MiRorcIw==", + "dependencies": { + "NuGet.Frameworks": "5.11.0", + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.VisualStudio.ComponentModelHost": { + "type": "Transitive", + "resolved": "17.2.3190", + "contentHash": "Ny42WwcnrvrsbpMDYuuIhG1h2WOKj/Ix6SxNc/PBxPIbnlI3K4h75L00rrWtqiXdnZIQ/dwT3YmQHWEDj3sulg==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", + "Microsoft.VisualStudio.Interop": "17.2.32330.158", + "Microsoft.VisualStudio.Validation": "17.0.53", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.Composition.Analyzers": { + "type": "Transitive", + "resolved": "17.7.40", + "contentHash": "rgFie5cK34I310RrLjjBnfH+bmOM7gUtcx8+PH65f1TeVQkWZzxr1b2/QsH/tHt3bsipvKghhp2VkUtLO5x8wA==" + }, + "Microsoft.VisualStudio.CoreUtility": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "bcPvoEHxv6EYWgNsFnwg8vlEB90MB44LWvuJtCRf3cOCCAGjMcDysLtq5IThaIIVsL5uvb3bv4i+f1L7NNGwjQ==", + "dependencies": { + "Microsoft.VisualStudio.Threading": "17.2.32", + "System.Collections.Immutable": "5.0.0", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.GraphModel": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "8JLGacPJ57RtKXXPr21jBE54mIwFi7hvWgM/PNGTOSwKMccCrcoayfv7gRb+hbtbhVwqEfTMi+xfMs32uF60SA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000", + "System.ComponentModel.Composition": "8.0.0" + } + }, + "Microsoft.VisualStudio.ImageCatalog": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "cKfl2RJ/7SevIlBeOAQNVGTDtpK7IOedOltdOk9W3nDmW8Uj3dmGg5bsRLv9bwSAhTxeh9Al0c9K01jgcRU29A==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100" + } + }, + "Microsoft.VisualStudio.Imaging": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "vKp3F+ORaRKd9Z2A28yTM7H6/QvmzSJE6ceVlimRSmNRFz/ANysYDwTMpCxCKbzwb5tVhlQxNIKqAFuwgYVPEQ==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Threading": "17.2.32", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "Microsoft.VisualStudio.Validation": "17.0.53", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "k0OtC0xLjVelFL9HVUNfOWA6qL+F+MDRyWCN1sJ/QzizTNUXWfOVVAv7Vpbz4Bf+0tmOhjS/KL3iS6brg+a8hg==" + }, + "Microsoft.VisualStudio.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" + }, + "Microsoft.VisualStudio.Language": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "1tepx+XpLYhbn0DcoNOQz2FbPhk6HOZnTHzX18OydArP0/GnCcLbb50drT0/S4iZ26mSANzw0NfrMJnegEGTpg==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "Microsoft.VisualStudio.Text.Logic": "17.2.3194", + "Microsoft.VisualStudio.Text.UI": "17.2.3194", + "StreamJsonRpc": "2.11.35", + "System.ComponentModel.Composition": "6.0.0", + "System.Private.Uri": "4.3.2" + } + }, + "Microsoft.VisualStudio.LanguageServer.Client": { + "type": "Transitive", + "resolved": "17.2.2105", + "contentHash": "nIECUBSgRnpz5Dhfy+SlCJB5eMy7UIO7ZzP07bhecNVivOnAPQdh+uJj7EpYKlOgB95CHuSAB/L58vLLxXN/BA==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3192", + "Microsoft.VisualStudio.Shell.15.0": "17.2.32406.100", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "Microsoft.VisualStudio.Validation": "17.0.53", + "StreamJsonRpc": "2.11.35" + } + }, + "Microsoft.VisualStudio.LanguageServer.Protocol": { + "type": "Transitive", + "resolved": "17.2.8", + "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", + "dependencies": { + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.VisualStudio.ProjectAggregator": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "1TuECpI8kKRAkc2kPI5Z5XHBcsJbyeG5vtAAfbYpFkNOXOkyoS8oOAX39b9Vp1jDb8jdSARfTUsdIM3BmlYE+g==" + }, + "Microsoft.VisualStudio.RemoteControl": { + "type": "Transitive", + "resolved": "16.3.52", + "contentHash": "+MgP1+Rtt1uJZyqhf7+H6KAQ57wc7v00ixuLhEgFggIbmW2/29YXfPK7gLvXw+vU7vimuM47cqAHrnB7RWYqtg==", + "dependencies": { + "Microsoft.VisualStudio.Utilities.Internal": "16.3.42" + } + }, + "Microsoft.VisualStudio.RpcContracts": { + "type": "Transitive", + "resolved": "17.9.7", + "contentHash": "Vzu2tCqKQxaBc1i5VF6hF6Wg+EhNRA27voQ8XPgQ2MxrzQRheivH92xvkynpE5hWYg+qeH29axH/wOMDZ9MnmQ==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "4.2.100", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "Microsoft.VisualStudio.SDK.Analyzers": { + "type": "Transitive", + "resolved": "16.10.10", + "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", + "dependencies": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" + } + }, + "Microsoft.VisualStudio.Setup.Configuration.Interop": { + "type": "Transitive", + "resolved": "3.9.2164", + "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" + }, + "Microsoft.VisualStudio.Shell.15.0": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "8jzfqOOZfMwtIwWkut+7MC/S8Ds0zLHmS1Ljdph2tWwIApgGPsy8Bi+0uVwb9uPhEDgEsAROOOtE8DdG5VpErg==", + "dependencies": { + "Microsoft.Build.Framework": "17.1.0", + "Microsoft.VisualStudio.ComponentModelHost": "17.2.3190", + "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", + "Microsoft.VisualStudio.ImageCatalog": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100", + "Microsoft.VisualStudio.ProjectAggregator": "17.2.32406.100", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Shell.Framework": "17.2.32406.100", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100" + } + }, + "Microsoft.VisualStudio.Shell.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.10.40170" + } + }, + "Microsoft.VisualStudio.Telemetry": { + "type": "Transitive", + "resolved": "17.9.305", + "contentHash": "dWQlTc3o1zvnr0dFD+ZpC04gZtP3pzAMEQBK2oqPZoMRm4n3cj5sSNSlSugDjWHAnVAKzses/ZTvR2SHTyCQNA==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.VisualStudio.Text.Data": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "ZyUCnWT+Dr5TdcvaArPN8ijXu76jM7de7NLvaaaQyZXoUzHYzNQz0fzoRlxRYET9cvDu6tsCZT431JxKPn5p9w==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Threading": "17.2.32" + } + }, + "Microsoft.VisualStudio.Text.Logic": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "R3n80K1+OwW1lRCKifzfAnXbgb7PJvKELzxtaDGxo8SoNnUTXkO0P2qSK5Y0jFoJK+7yfLOxpQNhfIFKTE4igg==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "System.Collections.Immutable": "5.0.0", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.Text.UI": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "UGegXrUnqhhXhlZsbklBZIp4wd0vHZQitkWMTR13SdwVQPUdpQYRNgsom9FBxM+3t9f8Dreg4ALt0SXFnCL3Yw==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "Microsoft.VisualStudio.Text.Logic": "17.2.3194", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.Text.UI.Wpf": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "cIqcmdw5wrgDK5BohuOOjXJbn3dkoRDsN6mohWV8Y4faA3oZMxuLB3ljKQNPq5B8rG6Z7ZS2z6u9W/vFpPwAmA==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "Microsoft.VisualStudio.Text.Logic": "17.2.3194", + "Microsoft.VisualStudio.Text.UI": "17.2.3194" + } + }, + "Microsoft.VisualStudio.Threading": { + "type": "Transitive", + "resolved": "17.9.28", + "contentHash": "n1bG965yT/7QHChX4x8zJ28LDaNdlJ6AgzthU3XzCsV9fVAMXYJEFi6BbWt8EM+7t0Wz9Oy021VMH2Z/iyz/Qw==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.VisualStudio.Utilities": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "tiNenrZYKSxC/i0LDcXbENeuJDzxKgYFd+LA4iwI18LMN85ThffoFbvGij5CQ6IBa6FWL8VQGlPuE65iMXWfNQ==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Utilities.Internal": { + "type": "Transitive", + "resolved": "16.3.56", + "contentHash": "QX5UVVk4+/rPu3Xy3QRAntNBy/3VMl2whwSlt73Ksp6MRf5ersUopgmHbkEnWSTX6e/SZf+mfqTmvdk67URH2Q==" + }, + "Microsoft.VisualStudio.Validation": { + "type": "Transitive", + "resolved": "17.8.8", + "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g==" + }, + "Microsoft.VisualStudio.Workspace": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", + "dependencies": { + "Microsoft.IO.Redist": "4.7.1", + "Microsoft.VisualStudio.Composition": "16.4.11", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Workspace.Extensions": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", + "dependencies": { + "Microsoft.Build": "16.8.0", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" + } + }, + "Microsoft.VisualStudio.Workspace.VSIntegration": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", + "dependencies": { + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", + "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" + } + }, + "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.10.69", + "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "System.IO.Pipelines": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "NuGet.Frameworks": { + "type": "Transitive", + "resolved": "5.11.0", + "contentHash": "eaiXkUjC4NPcquGWzAGMXjuxvLwc6XGKMptSyOGQeT0X70BUZObuybJFZLA0OfTdueLd3US23NBPTBb6iF3V1Q==" + }, + "OmniSharp.Extensions.JsonRpc": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", + "dependencies": { + "MediatR": "8.1.0", + "Microsoft.Extensions.DependencyInjection": "6.0.1", + "Microsoft.Extensions.Logging": "6.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", + "System.Collections.Immutable": "5.0.0", + "System.Reactive": "6.0.0", + "System.Threading.Channels": "6.0.0" + } + }, + "OmniSharp.Extensions.JsonRpc.Generators": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" + }, + "OmniSharp.Extensions.LanguageProtocol": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.LanguageProtocol": "0.19.9", + "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer.Shared": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", + "dependencies": { + "OmniSharp.Extensions.LanguageProtocol": "0.19.9" + } + }, + "StreamJsonRpc": { + "type": "Transitive", + "resolved": "2.17.11", + "contentHash": "fygZJqYer5WPBwDqT0TOsVRTlsCZV3Q8HQMkoja+jhC2KkCbUW038njK29pf8Hqv5/IfxWb72LCR49wq4nz3ow==", + "dependencies": { + "MessagePack": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading": "17.7.35", + "Microsoft.VisualStudio.Threading.Analyzers": "17.7.35", + "Microsoft.VisualStudio.Validation": "17.6.11", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.1", + "System.Collections.Immutable": "7.0.0", + "System.Diagnostics.DiagnosticSource": "7.0.2", + "System.IO.Pipelines": "7.0.0", + "System.Text.Encodings.Web": "7.0.0", + "System.Text.Json": "7.0.3", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.ComponentModel.Composition": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bGhUX5BTivJ9Wax0qnJy7uGq7dn/TQkEpJ2Fpu1etg8dbPwyDkUzNPc1d3I2/jUr9y4wDI3a1dkSmi8X21Pzbw==" + }, + "System.Composition": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0" + } + }, + "System.Composition.AttributedModel": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" + }, + "System.Composition.Convention": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0" + } + }, + "System.Composition.Hosting": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", + "dependencies": { + "System.Composition.Runtime": "8.0.0" + } + }, + "System.Composition.Runtime": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" + }, + "System.Composition.TypedParts": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0" + } + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.IO": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.5", + "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.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.Reactive": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "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": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0", + "System.Memory": "4.5.5" + } + }, + "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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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.0", + "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", + "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": "8.0.0", + "contentHash": "cIed5+HuYz+eV9yu9TH95zPkqmm1J9Qps9wxjB335sU8tsqc2kGdlTEH9FZzZeCS8a7mNSEsN8ZkyhQp1gfdEw==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Threading.Channels": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Threading.Tasks.Dataflow": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "7V0I8tPa9V7UxMx/+7DIwkhls5ouaEMQx6l/GwGm1Y8kJQ61On9B/PxCXFLbgu5/C47g0BP2CUYs+nMv1+Oaqw==" + }, + "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==" + }, + "bicep.vslanguageserverclient": { + "type": "Project", + "dependencies": { + "Microsoft.VisualStudio.LanguageServer.Client": "[17.2.2105, )", + "Microsoft.VisualStudio.LanguageServer.Protocol": "[17.2.8, )", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "[3.9.2164, )", + "Microsoft.VisualStudio.Shell.Interop": "[17.10.40170, )", + "Microsoft.VisualStudio.Utilities": "[17.2.32505.113, )", + "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )", + "Microsoft.Visualstudio.Telemetry": "[16.5.6, )", + "OmniSharp.Extensions.LanguageServer": "[0.19.9, )" + } + }, + "bicep.vslanguageserverclient.testservices": { + "type": "Project", + "dependencies": { + "Bicep.VSLanguageServerClient": "[1.0.0, )", + "Microsoft.NET.Test.Sdk": "[17.9.0, )", + "Microsoft.Test.Apex.VisualStudio": "[17.9.34701.34, )", + "Microsoft.VisualStudio.Composition": "[17.7.40, )", + "Microsoft.VisualStudio.Editor": "[17.2.3194, )", + "Microsoft.VisualStudio.Shell.Framework": "[17.9.37000, )", + "Microsoft.VisualStudio.Workspace": "[17.1.11-preview-0002, )", + "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-arm64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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==" + } + }, + ".NETFramework,Version=v4.7.2/linux-musl-x64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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==" + } + }, + ".NETFramework,Version=v4.7.2/linux-x64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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==" + } + }, + ".NETFramework,Version=v4.7.2/osx-arm64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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==" + } + }, + ".NETFramework,Version=v4.7.2/osx-x64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.2", + "contentHash": "o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "runtime.unix.System.Private.Uri": "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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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==" + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "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==" + }, + "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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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==" + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "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==" + }, + "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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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==" + } + } + } +} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.ItemTemplate/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.ItemTemplate/packages.lock.json new file mode 100644 index 00000000000..28198ac2a6e --- /dev/null +++ b/src/vs-bicep/Bicep.VSLanguageServerClient.ItemTemplate/packages.lock.json @@ -0,0 +1,354 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.7.2": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "type": "Direct", + "requested": "[3.3.4, )", + "resolved": "3.3.4", + "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" + }, + "Microsoft.CodeAnalysis.CSharp.CodeStyle": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Microsoft.VisualStudio.CoreUtility": { + "type": "Direct", + "requested": "[17.9.187, )", + "resolved": "17.9.187", + "contentHash": "J70GXhSyfP4gFdfrYg0Xf79gkSEbk2rvvRpFq9fAQ/AwXIvR2AlmwJgdPSqh9d1X4mWVAIrDjE26JVf/AnS1Sg==", + "dependencies": { + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" + }, + "Nerdbank.GitVersioning": { + "type": "Direct", + "requested": "[3.6.133, )", + "resolved": "3.6.133", + "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "3aeMZ1N0lJoSyzqiP03hqemtb1BijhsJADdobn/4nsMJ8V1H+CrpuduUe4hlRdx+ikBQju1VGjMD1GJ3Sk05Eg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.VisualStudio.Threading": { + "type": "Transitive", + "resolved": "17.9.28", + "contentHash": "n1bG965yT/7QHChX4x8zJ28LDaNdlJ6AgzthU3XzCsV9fVAMXYJEFi6BbWt8EM+7t0Wz9Oy021VMH2Z/iyz/Qw==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.VisualStudio.Validation": { + "type": "Transitive", + "resolved": "17.8.8", + "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g==" + }, + "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" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.ComponentModel.Composition": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "orv0h38ZVPCPo/FW0LGv8/TigXwX8cIwXeQcaNYhikkqELDm8sUFLMcof/Sjcq5EvYCm5NA7MV3hG4u75H44UQ==" + }, + "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.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "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" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-arm64": { + "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" + } + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/linux-musl-x64": { + "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" + } + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/linux-x64": { + "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" + } + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/osx-arm64": { + "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" + } + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/osx-x64": { + "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" + } + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win": { + "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" + } + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "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" + } + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "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" + } + }, + "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.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + } + } +} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.TestServices/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.TestServices/packages.lock.json new file mode 100644 index 00000000000..c86e0969f81 --- /dev/null +++ b/src/vs-bicep/Bicep.VSLanguageServerClient.TestServices/packages.lock.json @@ -0,0 +1,1348 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.7.2": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "type": "Direct", + "requested": "[3.3.4, )", + "resolved": "3.3.4", + "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" + }, + "Microsoft.CodeAnalysis.CSharp.CodeStyle": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" + }, + "Microsoft.Net.Compilers.Toolset": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "2j3UDVESH3nVyOr3EF3Om0nSfbZ70dRfiSxmFEoCMar9fApOsns+Odv6g3bMH8rZriY6G4x3LCsnsDl+CEt5KQ==" + }, + "Microsoft.NET.Test.Sdk": { + "type": "Direct", + "requested": "[17.9.0, )", + "resolved": "17.9.0", + "contentHash": "7GUNAUbJYn644jzwLm5BD3a2p9C1dmP8Hr6fDPDxgItQk9hBs1Svdxzz07KQ/UphMSmgza9AbijBJGmw5D658A==", + "dependencies": { + "Microsoft.CodeCoverage": "17.9.0" + } + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Microsoft.Test.Apex.VisualStudio": { + "type": "Direct", + "requested": "[17.9.34701.34, )", + "resolved": "17.9.34701.34", + "contentHash": "jUpqt3cjbXlcmyDUH4cuS+ZR6p3AHV5Uvoo5YQ27wmkjOmH827gfUVV+hJaaNOt6Kgo13asTzKfFHPwfefQoLQ==", + "dependencies": { + "MSTest.TestAdapter": "3.0.3", + "MSTest.TestFramework": "3.0.3" + } + }, + "Microsoft.VisualStudio.Composition": { + "type": "Direct", + "requested": "[17.7.40, )", + "resolved": "17.7.40", + "contentHash": "BjQMHw97eZFaP+5Ng0iJaHOFGmRowZHfHRHWZGlz3h9eC1bEwNSaBXZT+tha9NhR+jPRnK1xNwCeoPtN8U0yMQ==", + "dependencies": { + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Composition": "7.0.0", + "System.Composition.AttributedModel": "7.0.0", + "System.Reflection.Metadata": "7.0.0", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "Microsoft.VisualStudio.Editor": { + "type": "Direct", + "requested": "[17.2.3194, )", + "resolved": "17.2.3194", + "contentHash": "24RGth15SXCwIiZB9n7juG0SxiUyirD9dAzLrqTulkVZZlqQjv6iJWy4QC6KmaVISFbjHjTGUCn2mP38D1vi1A==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.GraphModel": "17.2.32330.158", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", + "Microsoft.VisualStudio.Language": "17.2.3194", + "Microsoft.VisualStudio.RpcContracts": "17.2.31", + "Microsoft.VisualStudio.Shell.15.0": "17.2.32330.158", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "Microsoft.VisualStudio.Text.Logic": "17.2.3194", + "Microsoft.VisualStudio.Text.UI": "17.2.3194", + "Microsoft.VisualStudio.Text.UI.Wpf": "17.2.3194", + "Microsoft.VisualStudio.Threading": "17.2.32", + "Microsoft.VisualStudio.Validation": "17.0.53" + } + }, + "Microsoft.VisualStudio.Shell.Framework": { + "type": "Direct", + "requested": "[17.9.37000, )", + "resolved": "17.9.37000", + "contentHash": "Inem6IWh7sCSkn2Up6w8hCJziHkwnlIwxHbIihDOFLNj70eMmxtYbrK/YK5Wj/3/hlWXyQM0m5GxPZiLVKjOfA==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.Build.Framework": "17.9.5", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.GraphModel": "17.9.37000", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", + "Microsoft.VisualStudio.Interop": "17.9.37000", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities": "17.9.37000", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" + }, + "Microsoft.VisualStudio.Workspace": { + "type": "Direct", + "requested": "[17.1.11-preview-0002, )", + "resolved": "17.1.11-preview-0002", + "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", + "dependencies": { + "Microsoft.IO.Redist": "4.7.1", + "Microsoft.VisualStudio.Composition": "16.4.11", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Workspace.VSIntegration": { + "type": "Direct", + "requested": "[17.1.11-preview-0002, )", + "resolved": "17.1.11-preview-0002", + "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", + "dependencies": { + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", + "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" + } + }, + "Nerdbank.GitVersioning": { + "type": "Direct", + "requested": "[3.6.133, )", + "resolved": "3.6.133", + "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" + }, + "MediatR": { + "type": "Transitive", + "resolved": "8.1.0", + "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" + }, + "MessagePack": { + "type": "Transitive", + "resolved": "2.5.108", + "contentHash": "kcVRbdWP3xNWLZmmpm4DFO+kuXf6mUR2mHZ27WoZIEFIv9hazuUd80injXhNrZnlq/FklAdCsLOil5M76I4Ndg==", + "dependencies": { + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.NET.StringTools": "17.4.0", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Emit": "4.7.0", + "System.Reflection.Emit.Lightweight": "4.7.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "MessagePack.Annotations": { + "type": "Transitive", + "resolved": "2.5.108", + "contentHash": "28aNCvfJClgwaKr26gf2S6LT+C1PNyPxiG+ihYpy8uCJsRLJEDoCt2I0Uk5hqOPQ8P8hI0ESy520oMkZkPmsOQ==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Build": { + "type": "Transitive", + "resolved": "16.8.0", + "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", + "dependencies": { + "Microsoft.Build.Framework": "16.8.0", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", + "System.Collections.Immutable": "1.5.0", + "System.Memory": "4.5.3", + "System.Text.Json": "4.7.0", + "System.Threading.Tasks.Dataflow": "4.9.0" + } + }, + "Microsoft.Build.Framework": { + "type": "Transitive", + "resolved": "17.9.5", + "contentHash": "CjRmqu9Wv2fyC1d7NKOuBDXcNMI8+GiXGM6izygB+skGGu4Vf0cBcoPq7AFqZCcMpn5DtZ+y7RpaLpB2qrzanQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CodeCoverage": { + "type": "Transitive", + "resolved": "17.9.0", + "contentHash": "RGD37ZSrratfScYXm7M0HjvxMxZyWZL4jm+XgMZbkIY1UPgjUpbNA/t+WTGj/rC/0Hm9A3IrH3ywbKZkOCnoZA==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.IO.Redist": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "uxXZ8pAcYtIJm8iqu/0e+CkM/VSwfgbHpnCDu7s8+gn/VUD5R6PxH3RGZFPaHgTisrlwD+BIyL5TqG6qwuZtOQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.NET.StringTools": { + "type": "Transitive", + "resolved": "17.9.5", + "contentHash": "C/oPRnjcIZBRzcpl1V06R1eEMCxOGt6mIm+8ioyblELgJEXLM8XjUPuCwljMO52VetsHw54xMcYwU8UEeHEIEg==", + "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": "4.4.22", + "contentHash": "j1tTGfD977w7eorHfgUS7mARtNufQtig9YqDrLi8CbS4HJU22pBm8Qu+F/9EsnA0XsQWFJo2BcqGWRlWdjXbCw==" + }, + "Microsoft.ServiceHub.Framework": { + "type": "Transitive", + "resolved": "4.4.22", + "contentHash": "fGRLbxg+J2xyoyNxI8x4gcrbc1ouMyob63kFG7xrteOUboyMIfAgIye8d7SnliTMwbcYStVYsELSE0GrHX8Pjw==", + "dependencies": { + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.VisualStudio.Composition": "17.6.17", + "Microsoft.VisualStudio.Threading": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "Nerdbank.Streams": "2.10.69", + "StreamJsonRpc": "2.16.41", + "System.Collections.Immutable": "7.0.0", + "System.Text.Json": "7.0.3" + } + }, + "Microsoft.ServiceHub.Resources": { + "type": "Transitive", + "resolved": "4.4.4171", + "contentHash": "0+hr177wzlS6m9IXjG9EW8BzyqfT+mGFL49NHlRKQHRVzSl2NUBI3yrftlFyz6oNgbsyitTkkWcHe2VYN/vpfQ==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.VisualStudio.ComponentModelHost": { + "type": "Transitive", + "resolved": "17.2.3190", + "contentHash": "Ny42WwcnrvrsbpMDYuuIhG1h2WOKj/Ix6SxNc/PBxPIbnlI3K4h75L00rrWtqiXdnZIQ/dwT3YmQHWEDj3sulg==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", + "Microsoft.VisualStudio.Interop": "17.2.32330.158", + "Microsoft.VisualStudio.Validation": "17.0.53", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.Composition.Analyzers": { + "type": "Transitive", + "resolved": "17.7.40", + "contentHash": "rgFie5cK34I310RrLjjBnfH+bmOM7gUtcx8+PH65f1TeVQkWZzxr1b2/QsH/tHt3bsipvKghhp2VkUtLO5x8wA==" + }, + "Microsoft.VisualStudio.CoreUtility": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "bcPvoEHxv6EYWgNsFnwg8vlEB90MB44LWvuJtCRf3cOCCAGjMcDysLtq5IThaIIVsL5uvb3bv4i+f1L7NNGwjQ==", + "dependencies": { + "Microsoft.VisualStudio.Threading": "17.2.32", + "System.Collections.Immutable": "5.0.0", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.GraphModel": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "8JLGacPJ57RtKXXPr21jBE54mIwFi7hvWgM/PNGTOSwKMccCrcoayfv7gRb+hbtbhVwqEfTMi+xfMs32uF60SA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000", + "System.ComponentModel.Composition": "8.0.0" + } + }, + "Microsoft.VisualStudio.ImageCatalog": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "cKfl2RJ/7SevIlBeOAQNVGTDtpK7IOedOltdOk9W3nDmW8Uj3dmGg5bsRLv9bwSAhTxeh9Al0c9K01jgcRU29A==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100" + } + }, + "Microsoft.VisualStudio.Imaging": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "vKp3F+ORaRKd9Z2A28yTM7H6/QvmzSJE6ceVlimRSmNRFz/ANysYDwTMpCxCKbzwb5tVhlQxNIKqAFuwgYVPEQ==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Threading": "17.2.32", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "Microsoft.VisualStudio.Validation": "17.0.53", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "k0OtC0xLjVelFL9HVUNfOWA6qL+F+MDRyWCN1sJ/QzizTNUXWfOVVAv7Vpbz4Bf+0tmOhjS/KL3iS6brg+a8hg==" + }, + "Microsoft.VisualStudio.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" + }, + "Microsoft.VisualStudio.Language": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "1tepx+XpLYhbn0DcoNOQz2FbPhk6HOZnTHzX18OydArP0/GnCcLbb50drT0/S4iZ26mSANzw0NfrMJnegEGTpg==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "Microsoft.VisualStudio.Text.Logic": "17.2.3194", + "Microsoft.VisualStudio.Text.UI": "17.2.3194", + "StreamJsonRpc": "2.11.35", + "System.ComponentModel.Composition": "6.0.0", + "System.Private.Uri": "4.3.2" + } + }, + "Microsoft.VisualStudio.LanguageServer.Client": { + "type": "Transitive", + "resolved": "17.2.2105", + "contentHash": "nIECUBSgRnpz5Dhfy+SlCJB5eMy7UIO7ZzP07bhecNVivOnAPQdh+uJj7EpYKlOgB95CHuSAB/L58vLLxXN/BA==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3192", + "Microsoft.VisualStudio.Shell.15.0": "17.2.32406.100", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "Microsoft.VisualStudio.Validation": "17.0.53", + "StreamJsonRpc": "2.11.35" + } + }, + "Microsoft.VisualStudio.LanguageServer.Protocol": { + "type": "Transitive", + "resolved": "17.2.8", + "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", + "dependencies": { + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.VisualStudio.ProjectAggregator": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "1TuECpI8kKRAkc2kPI5Z5XHBcsJbyeG5vtAAfbYpFkNOXOkyoS8oOAX39b9Vp1jDb8jdSARfTUsdIM3BmlYE+g==" + }, + "Microsoft.VisualStudio.RemoteControl": { + "type": "Transitive", + "resolved": "16.3.52", + "contentHash": "+MgP1+Rtt1uJZyqhf7+H6KAQ57wc7v00ixuLhEgFggIbmW2/29YXfPK7gLvXw+vU7vimuM47cqAHrnB7RWYqtg==", + "dependencies": { + "Microsoft.VisualStudio.Utilities.Internal": "16.3.42" + } + }, + "Microsoft.VisualStudio.RpcContracts": { + "type": "Transitive", + "resolved": "17.9.7", + "contentHash": "Vzu2tCqKQxaBc1i5VF6hF6Wg+EhNRA27voQ8XPgQ2MxrzQRheivH92xvkynpE5hWYg+qeH29axH/wOMDZ9MnmQ==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "4.2.100", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "Microsoft.VisualStudio.SDK.Analyzers": { + "type": "Transitive", + "resolved": "16.10.10", + "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", + "dependencies": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" + } + }, + "Microsoft.VisualStudio.Setup.Configuration.Interop": { + "type": "Transitive", + "resolved": "3.9.2164", + "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" + }, + "Microsoft.VisualStudio.Shell.15.0": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "8jzfqOOZfMwtIwWkut+7MC/S8Ds0zLHmS1Ljdph2tWwIApgGPsy8Bi+0uVwb9uPhEDgEsAROOOtE8DdG5VpErg==", + "dependencies": { + "Microsoft.Build.Framework": "17.1.0", + "Microsoft.VisualStudio.ComponentModelHost": "17.2.3190", + "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", + "Microsoft.VisualStudio.ImageCatalog": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100", + "Microsoft.VisualStudio.ProjectAggregator": "17.2.32406.100", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Shell.Framework": "17.2.32406.100", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100" + } + }, + "Microsoft.VisualStudio.Shell.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.10.40170" + } + }, + "Microsoft.VisualStudio.Telemetry": { + "type": "Transitive", + "resolved": "17.9.305", + "contentHash": "dWQlTc3o1zvnr0dFD+ZpC04gZtP3pzAMEQBK2oqPZoMRm4n3cj5sSNSlSugDjWHAnVAKzses/ZTvR2SHTyCQNA==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.VisualStudio.Text.Data": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "ZyUCnWT+Dr5TdcvaArPN8ijXu76jM7de7NLvaaaQyZXoUzHYzNQz0fzoRlxRYET9cvDu6tsCZT431JxKPn5p9w==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Threading": "17.2.32" + } + }, + "Microsoft.VisualStudio.Text.Logic": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "R3n80K1+OwW1lRCKifzfAnXbgb7PJvKELzxtaDGxo8SoNnUTXkO0P2qSK5Y0jFoJK+7yfLOxpQNhfIFKTE4igg==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "System.Collections.Immutable": "5.0.0", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.Text.UI": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "UGegXrUnqhhXhlZsbklBZIp4wd0vHZQitkWMTR13SdwVQPUdpQYRNgsom9FBxM+3t9f8Dreg4ALt0SXFnCL3Yw==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "Microsoft.VisualStudio.Text.Logic": "17.2.3194", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.Text.UI.Wpf": { + "type": "Transitive", + "resolved": "17.2.3194", + "contentHash": "cIqcmdw5wrgDK5BohuOOjXJbn3dkoRDsN6mohWV8Y4faA3oZMxuLB3ljKQNPq5B8rG6Z7ZS2z6u9W/vFpPwAmA==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3194", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", + "Microsoft.VisualStudio.Text.Data": "17.2.3194", + "Microsoft.VisualStudio.Text.Logic": "17.2.3194", + "Microsoft.VisualStudio.Text.UI": "17.2.3194" + } + }, + "Microsoft.VisualStudio.Threading": { + "type": "Transitive", + "resolved": "17.9.28", + "contentHash": "n1bG965yT/7QHChX4x8zJ28LDaNdlJ6AgzthU3XzCsV9fVAMXYJEFi6BbWt8EM+7t0Wz9Oy021VMH2Z/iyz/Qw==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.VisualStudio.Utilities": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "tiNenrZYKSxC/i0LDcXbENeuJDzxKgYFd+LA4iwI18LMN85ThffoFbvGij5CQ6IBa6FWL8VQGlPuE65iMXWfNQ==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Utilities.Internal": { + "type": "Transitive", + "resolved": "16.3.56", + "contentHash": "QX5UVVk4+/rPu3Xy3QRAntNBy/3VMl2whwSlt73Ksp6MRf5ersUopgmHbkEnWSTX6e/SZf+mfqTmvdk67URH2Q==" + }, + "Microsoft.VisualStudio.Validation": { + "type": "Transitive", + "resolved": "17.8.8", + "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g==" + }, + "Microsoft.VisualStudio.Workspace.Extensions": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", + "dependencies": { + "Microsoft.Build": "16.8.0", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" + } + }, + "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" + } + }, + "MSTest.TestAdapter": { + "type": "Transitive", + "resolved": "3.0.3", + "contentHash": "k2LRhIKbgc0HQQvTYZVsBby3I1V9q4h+xbXP3A0yQuB1jEeMze/JnJb3UCyUUElSx1CAfmyMazuTfbYaZwqZGw==" + }, + "MSTest.TestFramework": { + "type": "Transitive", + "resolved": "3.0.3", + "contentHash": "7EN6HmpSuNBnk3UP/FHvg3VeL13Gwc/D5vtZ+SFIkzDO99avVm8oYqbe19JCht4wy9cY13dpNA4gssCE8hp08Q==" + }, + "Nerdbank.Streams": { + "type": "Transitive", + "resolved": "2.10.69", + "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "System.IO.Pipelines": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "OmniSharp.Extensions.JsonRpc": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", + "dependencies": { + "MediatR": "8.1.0", + "Microsoft.Extensions.DependencyInjection": "6.0.1", + "Microsoft.Extensions.Logging": "6.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", + "System.Collections.Immutable": "5.0.0", + "System.Reactive": "6.0.0", + "System.Threading.Channels": "6.0.0" + } + }, + "OmniSharp.Extensions.JsonRpc.Generators": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" + }, + "OmniSharp.Extensions.LanguageProtocol": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.LanguageProtocol": "0.19.9", + "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer.Shared": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", + "dependencies": { + "OmniSharp.Extensions.LanguageProtocol": "0.19.9" + } + }, + "StreamJsonRpc": { + "type": "Transitive", + "resolved": "2.17.11", + "contentHash": "fygZJqYer5WPBwDqT0TOsVRTlsCZV3Q8HQMkoja+jhC2KkCbUW038njK29pf8Hqv5/IfxWb72LCR49wq4nz3ow==", + "dependencies": { + "MessagePack": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading": "17.7.35", + "Microsoft.VisualStudio.Threading.Analyzers": "17.7.35", + "Microsoft.VisualStudio.Validation": "17.6.11", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.1", + "System.Collections.Immutable": "7.0.0", + "System.Diagnostics.DiagnosticSource": "7.0.2", + "System.IO.Pipelines": "7.0.0", + "System.Text.Encodings.Web": "7.0.0", + "System.Text.Json": "7.0.3", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.ComponentModel.Composition": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bGhUX5BTivJ9Wax0qnJy7uGq7dn/TQkEpJ2Fpu1etg8dbPwyDkUzNPc1d3I2/jUr9y4wDI3a1dkSmi8X21Pzbw==" + }, + "System.Composition": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0" + } + }, + "System.Composition.AttributedModel": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" + }, + "System.Composition.Convention": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0" + } + }, + "System.Composition.Hosting": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", + "dependencies": { + "System.Composition.Runtime": "8.0.0" + } + }, + "System.Composition.Runtime": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" + }, + "System.Composition.TypedParts": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0" + } + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.5", + "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.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.Reactive": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "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": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0", + "System.Memory": "4.5.5" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.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.0", + "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", + "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": "8.0.0", + "contentHash": "cIed5+HuYz+eV9yu9TH95zPkqmm1J9Qps9wxjB335sU8tsqc2kGdlTEH9FZzZeCS8a7mNSEsN8ZkyhQp1gfdEw==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Threading.Channels": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Threading.Tasks.Dataflow": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "7V0I8tPa9V7UxMx/+7DIwkhls5ouaEMQx6l/GwGm1Y8kJQ61On9B/PxCXFLbgu5/C47g0BP2CUYs+nMv1+Oaqw==" + }, + "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==" + }, + "bicep.vslanguageserverclient": { + "type": "Project", + "dependencies": { + "Microsoft.VisualStudio.LanguageServer.Client": "[17.2.2105, )", + "Microsoft.VisualStudio.LanguageServer.Protocol": "[17.2.8, )", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "[3.9.2164, )", + "Microsoft.VisualStudio.Shell.Interop": "[17.10.40170, )", + "Microsoft.VisualStudio.Utilities": "[17.2.32505.113, )", + "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )", + "Microsoft.Visualstudio.Telemetry": "[16.5.6, )", + "OmniSharp.Extensions.LanguageServer": "[0.19.9, )" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-arm64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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", + "runtime.unix.System.Private.Uri": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/linux-musl-x64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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", + "runtime.unix.System.Private.Uri": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/linux-x64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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", + "runtime.unix.System.Private.Uri": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/osx-arm64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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", + "runtime.unix.System.Private.Uri": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/osx-x64": { + "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.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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", + "runtime.unix.System.Private.Uri": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + } + } +} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.UnitTests/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.UnitTests/packages.lock.json new file mode 100644 index 00000000000..13a59a3c28d --- /dev/null +++ b/src/vs-bicep/Bicep.VSLanguageServerClient.UnitTests/packages.lock.json @@ -0,0 +1,1465 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.7.2": { + "FluentAssertions": { + "type": "Direct", + "requested": "[6.9.0, )", + "resolved": "6.9.0", + "contentHash": "Z+alhbX6FreF+buZlOpP4jt93wofAdAzyUngcDNHYcuVsDUh/rjIB9WcqXctxffh4XZ3xUG/Ew4UgULSP/kUZg==", + "dependencies": { + "System.Net.Http": "4.3.4", + "System.Threading.Tasks.Extensions": "4.5.0" + } + }, + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "type": "Direct", + "requested": "[3.3.4, )", + "resolved": "3.3.4", + "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" + }, + "Microsoft.CodeAnalysis.CSharp.CodeStyle": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" + }, + "Microsoft.Net.Compilers.Toolset": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "2j3UDVESH3nVyOr3EF3Om0nSfbZ70dRfiSxmFEoCMar9fApOsns+Odv6g3bMH8rZriY6G4x3LCsnsDl+CEt5KQ==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Microsoft.VisualStudio.LanguageServer.Protocol": { + "type": "Direct", + "requested": "[17.2.8, )", + "resolved": "17.2.8", + "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", + "dependencies": { + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" + }, + "Microsoft.VisualStudio.Utilities": { + "type": "Direct", + "requested": "[17.2.32505.113, )", + "resolved": "17.2.32505.113", + "contentHash": "4Pyq/vfl4yKtXL/OojK1ekQ7eo164KK4ud5AC4NFxBbSKjvHuLvt/MHzAOcV1s8MwR2/Eqj9rSmptTth7vsSEA==", + "dependencies": { + "Microsoft.ServiceHub.Client": "3.1.4097", + "Microsoft.VisualStudio.RpcContracts": "17.2.31", + "Microsoft.VisualStudio.Telemetry": "16.4.56", + "StreamJsonRpc": "2.11.35", + "System.ComponentModel.Composition": "6.0.0", + "System.Composition": "6.0.0", + "System.Threading.AccessControl": "6.0.0", + "System.Threading.Tasks.Dataflow": "6.0.0" + } + }, + "Moq": { + "type": "Direct", + "requested": "[4.18.4, )", + "resolved": "4.18.4", + "contentHash": "IOo+W51+7Afnb0noltJrKxPBSfsgMzTKCw+Re5AMx8l/vBbAbMDOynLik4+lBYIWDJSO0uV7Zdqt7cNb6RZZ+A==", + "dependencies": { + "Castle.Core": "5.1.1", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "MSTest.TestAdapter": { + "type": "Direct", + "requested": "[3.4.0, )", + "resolved": "3.4.0", + "contentHash": "s8SNJ09FY8slmrPHIyNtAZbPbL1KP/5r/25DFYhQ6o1e/ETYZgcUx00eib8a3n2nCsPWrql79QXRI58PNbquAQ==", + "dependencies": { + "Microsoft.Testing.Extensions.VSTestBridge": "1.2.1", + "Microsoft.Testing.Platform.MSBuild": "1.2.1" + } + }, + "MSTest.TestFramework": { + "type": "Direct", + "requested": "[3.3.1, )", + "resolved": "3.3.1", + "contentHash": "020SuA2p8N7o+/AHC0SLgzGpyS1hNjR8m5tWxnuGqJ3HeJhArUbuPAU8RZr8Ll38ij8oiutGCkQ/G+ymyO51Ow==" + }, + "Nerdbank.GitVersioning": { + "type": "Direct", + "requested": "[3.6.133, )", + "resolved": "3.6.133", + "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" + }, + "Castle.Core": { + "type": "Transitive", + "resolved": "5.1.1", + "contentHash": "rpYtIczkzGpf+EkZgDr9CClTdemhsrwA/W5hMoPjLkRFnXzH44zDLoovXeKtmxb1ykXK9aJVODSpiJml8CTw2g==" + }, + "MediatR": { + "type": "Transitive", + "resolved": "8.1.0", + "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" + }, + "MessagePack": { + "type": "Transitive", + "resolved": "2.3.85", + "contentHash": "wOabnqkrXp7oeEYLY4Kd0m0eT4falJQukqvErfz5Y4FKKo9mSQQ1+rMxx9mapF2el+P0XQxiZOBKFm+oCvu0aw==", + "dependencies": { + "MessagePack.Annotations": "2.3.85", + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Collections.Immutable": "1.5.0", + "System.Memory": "4.5.3", + "System.Reflection.Emit": "4.6.0", + "System.Reflection.Emit.Lightweight": "4.6.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.2", + "System.Threading.Tasks.Extensions": "4.5.3" + } + }, + "MessagePack.Annotations": { + "type": "Transitive", + "resolved": "2.3.85", + "contentHash": "2GCYZ9qgNS5Og0tiqfhWRhcfDZI/iRi8t07R0fNic1HthMMRfWxWOKDIBhtMA1RwZM4BuRsmJXUgk3evyisb1w==" + }, + "Microsoft.ApplicationInsights": { + "type": "Transitive", + "resolved": "2.22.0", + "contentHash": "3AOM9bZtku7RQwHyMEY3tQMrHIgjcfRDa6YQpd/QG2LDGvMydSlL9Di+8LLMt7J2RDdfJ7/2jdYv6yHcMJAnNw==", + "dependencies": { + "System.Diagnostics.DiagnosticSource": "5.0.0" + } + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "3aeMZ1N0lJoSyzqiP03hqemtb1BijhsJADdobn/4nsMJ8V1H+CrpuduUe4hlRdx+ikBQju1VGjMD1GJ3Sk05Eg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Build": { + "type": "Transitive", + "resolved": "16.8.0", + "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", + "dependencies": { + "Microsoft.Build.Framework": "16.8.0", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", + "System.Collections.Immutable": "1.5.0", + "System.Memory": "4.5.3", + "System.Text.Json": "4.7.0", + "System.Threading.Tasks.Dataflow": "4.9.0" + } + }, + "Microsoft.Build.Framework": { + "type": "Transitive", + "resolved": "17.1.0", + "contentHash": "7PPEbjuL/lKQ8ftblxwBZKf5alZCA4GDvBTiO3UAVxtRe52a2jL3mc8TpKNiJZzytGz7fKdR5ClDCs7+Uw4hMg==", + "dependencies": { + "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.0.4492", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.IO.Redist": { + "type": "Transitive", + "resolved": "4.7.1", + "contentHash": "WaA56Jq9Hk0Bz/c3eIWIepnCj+AXJajTZ3RQUk7PRT8DEXk9RY0vfoNrZmNC2JTrnKXGigz3js3PReGHxGpdhw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.ServiceHub.Analyzers": { + "type": "Transitive", + "resolved": "3.1.4097", + "contentHash": "ZOTK44YxmQ/YV+PAv7XSN2rj7UTfR2NSy8UHOaPZU8kE1giTDHvMY9QtcvnaKurD6eNtLCbCfHWhrt6Inev43Q==" + }, + "Microsoft.ServiceHub.Client": { + "type": "Transitive", + "resolved": "3.1.4097", + "contentHash": "+cKDvtcgOCzqJeqzXk657QHwSiPB9Iv1vFgeb4uERwW5F8me/20XlHVpuYgRSdBOCMRFV7M1nlrbD2a56cG7qg==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "3.1.4097", + "Microsoft.ServiceHub.Resources": "3.1.4097", + "Microsoft.VisualStudio.Telemetry": "16.4.37", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", + "StreamJsonRpc": "2.7.70", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.ServiceHub.Framework": { + "type": "Transitive", + "resolved": "3.1.4097", + "contentHash": "DTZcqBSYWqvb15XLPyFepT3j4L9kCiVz91ByAwjRGEQ8Raka0aFzTd53rp1lSVnEfZ9gsJpX5ha6TzW13ptvNw==", + "dependencies": { + "Microsoft.ServiceHub.Analyzers": "3.1.4097", + "StreamJsonRpc": "2.7.70", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.ServiceHub.Resources": { + "type": "Transitive", + "resolved": "3.1.4097", + "contentHash": "/iQi5lZ9FhlaDZ6V2bfPH69c0ESLL6pQRCCKbXe99aFGcdOk+dsRGygwmi7mjvc7qlEFY0x7dlXQ+ctsxMdDVw==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.Testing.Extensions.Telemetry": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "MKGxwQhDDEoTS/ntFb21Z6Bxh9VvknmSLgEWH+NFD86fbcIqE2Al8lrXkQPeH+AqCvlhx2WnPLKd81T2PXc2dw==", + "dependencies": { + "Microsoft.ApplicationInsights": "2.22.0", + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Extensions.TrxReport.Abstractions": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "46SnzaLR+SDaTtBWy49xdFm/rI40I8nZtziqnt2d4lgILKovWPnkM8Pehnga/uwl+OznVIh0XuRsN3NokkX1TQ==", + "dependencies": { + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Extensions.VSTestBridge": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "Tu8CWHEwV/92WM2DRr/qeIdH243diV5s43ODPLl13XeRqGbZlu9lk7X0a7kcxhp0BLRlA3fqMW3F6RynrnDrPw==", + "dependencies": { + "Microsoft.ApplicationInsights": "2.22.0", + "Microsoft.TestPlatform.ObjectModel": "17.5.0", + "Microsoft.Testing.Extensions.Telemetry": "1.2.1", + "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.2.1", + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.Testing.Platform": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "mb7irPwqjgusJ05BxuQ5KP6uofWaoDr/dfjFNItX1Q1Ntv3EDMr3CeLInrlU2PNcPwwObw4X6bZG7wJvvFjKZQ==" + }, + "Microsoft.Testing.Platform.MSBuild": { + "type": "Transitive", + "resolved": "1.2.1", + "contentHash": "leUhW4iQNy7vmPk5uRHd4OROqfRtugWDQkWL/4AD17gxZwAAwGCaTcrqG0YVPi7uuZ+lj2Loa6kU7hBLA/v5+w==", + "dependencies": { + "Microsoft.Testing.Platform": "1.2.1" + } + }, + "Microsoft.TestPlatform.ObjectModel": { + "type": "Transitive", + "resolved": "17.5.0", + "contentHash": "QwiBJcC/oEA1kojOaB0uPWOIo4i6BYuTBBYJVhUvmXkyYqZ2Ut/VZfgi+enf8LF8J4sjO98oRRFt39MiRorcIw==", + "dependencies": { + "NuGet.Frameworks": "5.11.0", + "System.Reflection.Metadata": "1.6.0" + } + }, + "Microsoft.VisualStudio.ComponentModelHost": { + "type": "Transitive", + "resolved": "17.2.3190", + "contentHash": "Ny42WwcnrvrsbpMDYuuIhG1h2WOKj/Ix6SxNc/PBxPIbnlI3K4h75L00rrWtqiXdnZIQ/dwT3YmQHWEDj3sulg==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", + "Microsoft.VisualStudio.Interop": "17.2.32330.158", + "Microsoft.VisualStudio.Validation": "17.0.53", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.Composition": { + "type": "Transitive", + "resolved": "16.4.11", + "contentHash": "JinutaulyPMTEWpdyegz3LLTtChZC+YYMjaQosCwIrapfTncOnatY85j8DpmuqHYADiJ6kkHYEPT71yS5eEqSA==", + "dependencies": { + "Microsoft.VisualStudio.Composition.NetFxAttributes": "16.4.11", + "Microsoft.VisualStudio.Validation": "15.0.82", + "System.ComponentModel.Composition": "4.5.0", + "System.Composition": "1.0.31", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Metadata": "1.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Threading.Tasks.Dataflow": "4.6.0" + } + }, + "Microsoft.VisualStudio.Composition.NetFxAttributes": { + "type": "Transitive", + "resolved": "16.4.11", + "contentHash": "KufBhjVwhq+Sgt9Vl5XNOsZykU5aXpU8hO0UXlM98Giw5iRDJAxHBLSRYDzcadVtVrf++QSB95bVydxem0jegQ==", + "dependencies": { + "System.ComponentModel.Composition": "4.5.0" + } + }, + "Microsoft.VisualStudio.CoreUtility": { + "type": "Transitive", + "resolved": "17.2.3192", + "contentHash": "KomP1sdum+yYSe5TMOS7cMkOOv4SmnP05zZ8AjKWH/ugKLHqXiXC2zkMplx5ZRw3sDi8ddKk6ZOB0TeHOLhaFw==", + "dependencies": { + "Microsoft.VisualStudio.Threading": "17.2.32", + "System.Collections.Immutable": "5.0.0", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.GraphModel": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "wqjsqpWnTs3fMthNW795oySYZ65jfkHV7qw5xBJ8G0Zi+pDjNf0hoizC1ma2bVB+d8TPrJIvRJzGUjhaviOKwA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.2.32406.100", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.ImageCatalog": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "cKfl2RJ/7SevIlBeOAQNVGTDtpK7IOedOltdOk9W3nDmW8Uj3dmGg5bsRLv9bwSAhTxeh9Al0c9K01jgcRU29A==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100" + } + }, + "Microsoft.VisualStudio.Imaging": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "vKp3F+ORaRKd9Z2A28yTM7H6/QvmzSJE6ceVlimRSmNRFz/ANysYDwTMpCxCKbzwb5tVhlQxNIKqAFuwgYVPEQ==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Threading": "17.2.32", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "Microsoft.VisualStudio.Validation": "17.0.53", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "fkbGSOiS06liWHFngdU9BTM0f7+AIA3MQWk63dPUAVB7jz79oM3REAwm5eNQbkrjSe+C98Nxjhui7TV+8zh4KA==" + }, + "Microsoft.VisualStudio.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" + }, + "Microsoft.VisualStudio.LanguageServer.Client": { + "type": "Transitive", + "resolved": "17.2.2105", + "contentHash": "nIECUBSgRnpz5Dhfy+SlCJB5eMy7UIO7ZzP07bhecNVivOnAPQdh+uJj7EpYKlOgB95CHuSAB/L58vLLxXN/BA==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3192", + "Microsoft.VisualStudio.Shell.15.0": "17.2.32406.100", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "Microsoft.VisualStudio.Validation": "17.0.53", + "StreamJsonRpc": "2.11.35" + } + }, + "Microsoft.VisualStudio.ProjectAggregator": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "1TuECpI8kKRAkc2kPI5Z5XHBcsJbyeG5vtAAfbYpFkNOXOkyoS8oOAX39b9Vp1jDb8jdSARfTUsdIM3BmlYE+g==" + }, + "Microsoft.VisualStudio.RemoteControl": { + "type": "Transitive", + "resolved": "16.3.44", + "contentHash": "hbc2FxReEyotRXM1dtQSZxt2ccNMBgPbcX6MylKp9UDbHsTPJ0dk5CEuZAqoqOFKUzFtorZL6A7BcRAjP9HU1g==", + "dependencies": { + "Microsoft.VisualStudio.Utilities.Internal": "16.3.36" + } + }, + "Microsoft.VisualStudio.RpcContracts": { + "type": "Transitive", + "resolved": "17.2.31", + "contentHash": "MSOsNBJv7/IFaP8aaEJtugp5OSzQgIlemTtROBBDhwQMLZGe+T2A+TofKl4PEydiX+Fwfuyged4tDmpazdUI5Q==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "3.0.2061", + "StreamJsonRpc": "2.11.35" + } + }, + "Microsoft.VisualStudio.SDK.Analyzers": { + "type": "Transitive", + "resolved": "16.10.10", + "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", + "dependencies": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" + } + }, + "Microsoft.VisualStudio.Setup.Configuration.Interop": { + "type": "Transitive", + "resolved": "3.9.2164", + "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" + }, + "Microsoft.VisualStudio.Shell.15.0": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "8jzfqOOZfMwtIwWkut+7MC/S8Ds0zLHmS1Ljdph2tWwIApgGPsy8Bi+0uVwb9uPhEDgEsAROOOtE8DdG5VpErg==", + "dependencies": { + "Microsoft.Build.Framework": "17.1.0", + "Microsoft.VisualStudio.ComponentModelHost": "17.2.3190", + "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", + "Microsoft.VisualStudio.ImageCatalog": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100", + "Microsoft.VisualStudio.ProjectAggregator": "17.2.32406.100", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Shell.Framework": "17.2.32406.100", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100" + } + }, + "Microsoft.VisualStudio.Shell.Framework": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "7WD50dmv9qI2FeNE+yjJq7ewf9J9mYWimZIPnET53YBtwcqf5nA4aH0TedwdhJUWa1Blnidc9ZZvDM3YiUx84Q==", + "dependencies": { + "Microsoft.Build.Framework": "17.1.0", + "Microsoft.ServiceHub.Framework": "3.1.4097", + "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Telemetry": "16.4.56", + "Microsoft.VisualStudio.Threading": "17.2.32", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "System.Text.Json": "6.0.0", + "System.Threading.Tasks.Dataflow": "6.0.0" + } + }, + "Microsoft.VisualStudio.Shell.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.10.40170" + } + }, + "Microsoft.VisualStudio.Telemetry": { + "type": "Transitive", + "resolved": "16.5.6", + "contentHash": "afyxTJBcntD92T9Ce8gZxOgEZBLZXFA7kxQLW1gnbnF5yGBkeF8vdwIlvJ/aw6+Of0cgfjgY9J/bLGZ976puAQ==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.VisualStudio.RemoteControl": "16.3.44", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", + "Newtonsoft.Json": "13.0.1", + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.VisualStudio.Threading": { + "type": "Transitive", + "resolved": "17.6.40", + "contentHash": "hLa/0xargG7p3bF7aeq2/lRYn/bVnfZXurUWVHx+MNqxxAUjIDMKi4OIOWbYQ/DTkbn9gv8TLvgso+6EtHVQQg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading.Analyzers": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.0.71", + "Microsoft.Win32.Registry": "5.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.VisualStudio.Utilities.Internal": { + "type": "Transitive", + "resolved": "16.3.36", + "contentHash": "tVOE9DJbd4PETSgBW+9448jvRdhm/hNHJFaGyCq6Gtlg+ElELBmfMFxgp2rsrqzUkLjehwnrw6uX4Yj9krOfJQ==" + }, + "Microsoft.VisualStudio.Validation": { + "type": "Transitive", + "resolved": "17.6.11", + "contentHash": "J+9L/iac6c8cwcgVSCMuoIYOlD1Jw4mbZ8XMe1IZVj8p8+3dJ46LnnkIkTRMjK7xs9UtU9MoUp1JGhWoN6fAEw==" + }, + "Microsoft.VisualStudio.Workspace": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", + "dependencies": { + "Microsoft.IO.Redist": "4.7.1", + "Microsoft.VisualStudio.Composition": "16.4.11", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Workspace.Extensions": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", + "dependencies": { + "Microsoft.Build": "16.8.0", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" + } + }, + "Microsoft.VisualStudio.Workspace.VSIntegration": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", + "dependencies": { + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", + "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" + } + }, + "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.10.69", + "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "System.IO.Pipelines": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "NuGet.Frameworks": { + "type": "Transitive", + "resolved": "5.11.0", + "contentHash": "eaiXkUjC4NPcquGWzAGMXjuxvLwc6XGKMptSyOGQeT0X70BUZObuybJFZLA0OfTdueLd3US23NBPTBb6iF3V1Q==" + }, + "OmniSharp.Extensions.JsonRpc": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", + "dependencies": { + "MediatR": "8.1.0", + "Microsoft.Extensions.DependencyInjection": "6.0.1", + "Microsoft.Extensions.Logging": "6.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", + "System.Collections.Immutable": "5.0.0", + "System.Reactive": "6.0.0", + "System.Threading.Channels": "6.0.0" + } + }, + "OmniSharp.Extensions.JsonRpc.Generators": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" + }, + "OmniSharp.Extensions.LanguageProtocol": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.LanguageProtocol": "0.19.9", + "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer.Shared": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", + "dependencies": { + "OmniSharp.Extensions.LanguageProtocol": "0.19.9" + } + }, + "StreamJsonRpc": { + "type": "Transitive", + "resolved": "2.11.35", + "contentHash": "r2taKfcI3dmAChn0nqTLmwr3d/BXnUrIlDGF6het3NxL3sg6TntCGz60wBE4DmdlyeerMXkI5ZCC/Y4XCfetfA==", + "dependencies": { + "MessagePack": "2.3.85", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.VisualStudio.Threading": "17.1.46", + "Nerdbank.Streams": "2.8.57", + "Newtonsoft.Json": "13.0.1", + "System.Collections.Immutable": "5.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0", + "System.IO.Pipelines": "6.0.1", + "System.Threading.Tasks.Dataflow": "6.0.0" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", + "dependencies": { + "System.Memory": "4.5.4" + } + }, + "System.ComponentModel.Composition": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "60Qv+F7oxomOjJeTDA5Z4iCyFbQ0B/2Mi5HT+13pxxq0lVnu2ipbWMzFB+RWKr3wWKA8BSncXr9PH/fECwMX5Q==" + }, + "System.Composition": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Convention": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0", + "System.Composition.TypedParts": "6.0.0" + } + }, + "System.Composition.AttributedModel": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" + }, + "System.Composition.Convention": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0" + } + }, + "System.Composition.Hosting": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", + "dependencies": { + "System.Composition.Runtime": "6.0.0" + } + }, + "System.Composition.Runtime": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" + }, + "System.Composition.TypedParts": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0" + } + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.IO": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==" + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "jRn6JYnNPW6xgQazROBLSfpdoczRw694vO5kKvMcNnpXuolEixUyw6IBuBs2Y2mlSX/LdLvyyWmfXhaI3ND1Yg==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.5", + "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.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Reflection": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==" + }, + "System.Reflection.Emit": { + "type": "Transitive", + "resolved": "4.6.0", + "contentHash": "qAo4jyXtC9i71iElngX7P2r+zLaiHzxKwf66sc3X91tL5Ks6fnQ1vxL04o7ZSm3sYfLExySL7GN8aTpNYpU1qw==" + }, + "System.Reflection.Emit.Lightweight": { + "type": "Transitive", + "resolved": "4.6.0", + "contentHash": "j/V5HVvxvBQ7uubYD0PptQW2KGsi1Pc2kZ9yfwLixv3ADdjL/4M78KyC5e+ymW612DY8ZE4PFoZmWpoNmN2mqg==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.6.0", + "contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==", + "dependencies": { + "System.Collections.Immutable": "1.5.0" + } + }, + "System.Reflection.TypeExtensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "dependencies": { + "System.Reflection": "4.3.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.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Threading.Channels": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Threading.Tasks.Dataflow": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "+tyDCU3/B1lDdOOAJywHQoFwyXIUghIaP2BxG79uvhfTnO+D9qIgjVlL/JV2NTliYbMHpd6eKDmHp2VHpij7MA==" + }, + "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==" + }, + "bicep.vslanguageserverclient": { + "type": "Project", + "dependencies": { + "Microsoft.VisualStudio.LanguageServer.Client": "[17.2.2105, )", + "Microsoft.VisualStudio.LanguageServer.Protocol": "[17.2.8, )", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "[3.9.2164, )", + "Microsoft.VisualStudio.Shell.Interop": "[17.10.40170, )", + "Microsoft.VisualStudio.Utilities": "[17.2.32505.113, )", + "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )", + "Microsoft.Visualstudio.Telemetry": "[16.5.6, )", + "OmniSharp.Extensions.LanguageServer": "[0.19.9, )" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-arm64": { + "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" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-musl-x64": { + "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" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-x64": { + "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" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/osx-arm64": { + "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" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/osx-x64": { + "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" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "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" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "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" + } + }, + "System.Net.Http": { + "type": "Transitive", + "resolved": "4.3.4", + "contentHash": "aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==", + "dependencies": { + "System.Security.Cryptography.X509Certificates": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "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": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + } + } +} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient.Vsix/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient.Vsix/packages.lock.json new file mode 100644 index 00000000000..b005867c2c5 --- /dev/null +++ b/src/vs-bicep/Bicep.VSLanguageServerClient.Vsix/packages.lock.json @@ -0,0 +1,2190 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.7.2": { + "Azure.Deployments.Internal.GenerateNotice": { + "type": "Direct", + "requested": "[0.1.38, )", + "resolved": "0.1.38", + "contentHash": "BqTIqpSk+JoK4QYpkt5htsccgBM4IrMINlo4d/Z4Ii3qV91V20VUhDqON+0Zax4hpGTsz710iDk0V7ypteLM/g==" + }, + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "type": "Direct", + "requested": "[3.3.4, )", + "resolved": "3.3.4", + "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" + }, + "Microsoft.CodeAnalysis.CSharp.CodeStyle": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Microsoft.VisualStudio.SDK": { + "type": "Direct", + "requested": "[17.9.37000, )", + "resolved": "17.9.37000", + "contentHash": "XSkWGJiuCKTaONOIHOHqFGPTEF2j9ae2sE2wbDJafHZJe9sUqy83az75yP4j/jzsEsmoJsWLUuhNW2vE3sv8/w==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.Build.Framework": "17.9.5", + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.CommandBars": "17.9.37000", + "Microsoft.VisualStudio.ComponentModelHost": "17.9.187", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.CoreUtility": "17.9.187", + "Microsoft.VisualStudio.Debugger.Interop.10.0": "17.9.37000", + "Microsoft.VisualStudio.Debugger.Interop.12.0": "17.9.37000", + "Microsoft.VisualStudio.Debugger.Interop.14.0": "17.9.37000", + "Microsoft.VisualStudio.Debugger.Interop.15.0": "17.9.37000", + "Microsoft.VisualStudio.Debugger.Interop.16.0": "17.9.37000", + "Microsoft.VisualStudio.Debugger.InteropA": "17.9.37000", + "Microsoft.VisualStudio.Designer.Interfaces": "17.9.37000", + "Microsoft.VisualStudio.Editor": "17.9.187", + "Microsoft.VisualStudio.GraphModel": "17.9.37000", + "Microsoft.VisualStudio.ImageCatalog": "17.9.37000", + "Microsoft.VisualStudio.Imaging": "17.9.37000", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", + "Microsoft.VisualStudio.Interop": "17.9.37000", + "Microsoft.VisualStudio.Language": "17.9.187", + "Microsoft.VisualStudio.Language.Intellisense": "17.9.187", + "Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "17.9.187", + "Microsoft.VisualStudio.Language.StandardClassification": "17.9.187", + "Microsoft.VisualStudio.LanguageServer.Client": "17.9.46", + "Microsoft.VisualStudio.Linux.ConnectionManager.Store": "17.9.37000", + "Microsoft.VisualStudio.OLE.Interop": "17.9.37000", + "Microsoft.VisualStudio.Package.LanguageService.15.0": "17.9.37000", + "Microsoft.VisualStudio.ProjectAggregator": "17.9.37000", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.9.2164", + "Microsoft.VisualStudio.Shell.15.0": "17.9.37000", + "Microsoft.VisualStudio.Shell.Design": "17.9.37000", + "Microsoft.VisualStudio.Shell.Framework": "17.9.37000", + "Microsoft.VisualStudio.Shell.Interop": "17.9.37000", + "Microsoft.VisualStudio.Shell.Interop.10.0": "17.9.37000", + "Microsoft.VisualStudio.Shell.Interop.11.0": "17.9.37000", + "Microsoft.VisualStudio.Shell.Interop.12.0": "17.9.37000", + "Microsoft.VisualStudio.Shell.Interop.8.0": "17.9.37000", + "Microsoft.VisualStudio.Shell.Interop.9.0": "17.9.37000", + "Microsoft.VisualStudio.TaskRunnerExplorer.14.0": "14.0.0", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Text.Data": "17.9.187", + "Microsoft.VisualStudio.Text.Logic": "17.9.187", + "Microsoft.VisualStudio.Text.UI": "17.9.187", + "Microsoft.VisualStudio.Text.UI.Wpf": "17.9.187", + "Microsoft.VisualStudio.TextManager.Interop": "17.9.37000", + "Microsoft.VisualStudio.TextManager.Interop.10.0": "17.9.37000", + "Microsoft.VisualStudio.TextManager.Interop.11.0": "17.9.37000", + "Microsoft.VisualStudio.TextManager.Interop.12.0": "17.9.37000", + "Microsoft.VisualStudio.TextManager.Interop.8.0": "17.9.37000", + "Microsoft.VisualStudio.TextManager.Interop.9.0": "17.9.37000", + "Microsoft.VisualStudio.TextTemplating.VSHost": "17.9.37000", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities": "17.9.37000", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.VCProjectEngine": "17.9.37000", + "Microsoft.VisualStudio.VSHelp": "17.9.37000", + "Microsoft.VisualStudio.VSHelp80": "17.9.37000", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.VisualStudio.WCFReference.Interop": "17.9.37000", + "Microsoft.VisualStudio.Web.BrowserLink.12.0": "12.0.0", + "Microsoft.Win32.Primitives": "4.3.0", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0", + "VSLangProj": "17.9.37000", + "VSLangProj100": "17.9.37000", + "VSLangProj110": "17.9.37000", + "VSLangProj140": "17.9.37000", + "VSLangProj150": "17.9.37000", + "VSLangProj157": "17.9.37000", + "VSLangProj158": "17.9.37000", + "VSLangProj165": "17.9.37000", + "VSLangProj2": "17.9.37000", + "VSLangProj80": "17.9.37000", + "VSLangProj90": "17.9.37000", + "envdte": "17.9.37000", + "envdte100": "17.9.37000", + "envdte80": "17.9.37000", + "envdte90": "17.9.37000", + "envdte90a": "17.9.37000", + "stdole": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" + }, + "Microsoft.VSSDK.BuildTools": { + "type": "Direct", + "requested": "[17.9.3184, )", + "resolved": "17.9.3184", + "contentHash": "THV8u9Qk0HohqSI5QCI/aurKhrDzoUrQfqVgkAAKK+WrKOPNh+pBl+Kv1YXhCyieICKo02yDGFEgvFqjm/KBuQ==", + "dependencies": { + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VsSDK.CompatibilityAnalyzer": "17.9.3184" + } + }, + "Nerdbank.GitVersioning": { + "type": "Direct", + "requested": "[3.6.133, )", + "resolved": "3.6.133", + "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" + }, + "envdte": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "rh4sIUpL+rRiXzgjEJ642rtXslE5nABYDV7CTs6thTSND8m549I8rIVEtuoaQf4sRRZ8kfjmZ64QruqYDM810w==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "envdte100": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "4CnUkuy7SzhpdZBqQZDXMQu3DQvQsRFKgEx/19IfNqRBLkRlEGnNN+U3TVXofSRDMqcq7dcyMXQZaq9e+lFNNw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "envdte80": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "YzSZuT4yw1qLaafWfWZSuQFiDXDfzlmj947Pk/bEIZTuS+C0UA9mn1LYMZi4y+nU8g0bufNFm6MCZq/jiCw9sw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "envdte90": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "O6GwlG9BC07UlLBLFkVJ5DNNtXsTDnGuFgFDXHHC9BB7oirrNZcGBBVG7gt1vPBn4QKNXVdxgYXlj5mEPbQOaQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "envdte90a": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "JhD350Mw6sqhRY6VImid5K8tcfqaIYg28ChsHeHD6epr7dyLCBUhCprJfzA2iqYp+FF9rLRxPmDp3E9kjSVQ9w==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "MediatR": { + "type": "Transitive", + "resolved": "8.1.0", + "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" + }, + "MessagePack": { + "type": "Transitive", + "resolved": "2.5.108", + "contentHash": "kcVRbdWP3xNWLZmmpm4DFO+kuXf6mUR2mHZ27WoZIEFIv9hazuUd80injXhNrZnlq/FklAdCsLOil5M76I4Ndg==", + "dependencies": { + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.NET.StringTools": "17.4.0", + "System.Collections.Immutable": "6.0.0", + "System.Reflection.Emit": "4.7.0", + "System.Reflection.Emit.Lightweight": "4.7.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "MessagePack.Annotations": { + "type": "Transitive", + "resolved": "2.5.108", + "contentHash": "28aNCvfJClgwaKr26gf2S6LT+C1PNyPxiG+ihYpy8uCJsRLJEDoCt2I0Uk5hqOPQ8P8hI0ESy520oMkZkPmsOQ==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Build": { + "type": "Transitive", + "resolved": "16.8.0", + "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", + "dependencies": { + "Microsoft.Build.Framework": "16.8.0", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", + "System.Collections.Immutable": "1.5.0", + "System.Memory": "4.5.3", + "System.Text.Json": "4.7.0", + "System.Threading.Tasks.Dataflow": "4.9.0" + } + }, + "Microsoft.Build.Framework": { + "type": "Transitive", + "resolved": "17.9.5", + "contentHash": "CjRmqu9Wv2fyC1d7NKOuBDXcNMI8+GiXGM6izygB+skGGu4Vf0cBcoPq7AFqZCcMpn5DtZ+y7RpaLpB2qrzanQ==", + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.IO.Redist": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "uxXZ8pAcYtIJm8iqu/0e+CkM/VSwfgbHpnCDu7s8+gn/VUD5R6PxH3RGZFPaHgTisrlwD+BIyL5TqG6qwuZtOQ==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.NET.StringTools": { + "type": "Transitive", + "resolved": "17.9.5", + "contentHash": "C/oPRnjcIZBRzcpl1V06R1eEMCxOGt6mIm+8ioyblELgJEXLM8XjUPuCwljMO52VetsHw54xMcYwU8UEeHEIEg==", + "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": "4.4.22", + "contentHash": "j1tTGfD977w7eorHfgUS7mARtNufQtig9YqDrLi8CbS4HJU22pBm8Qu+F/9EsnA0XsQWFJo2BcqGWRlWdjXbCw==" + }, + "Microsoft.ServiceHub.Framework": { + "type": "Transitive", + "resolved": "4.4.22", + "contentHash": "fGRLbxg+J2xyoyNxI8x4gcrbc1ouMyob63kFG7xrteOUboyMIfAgIye8d7SnliTMwbcYStVYsELSE0GrHX8Pjw==", + "dependencies": { + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.VisualStudio.Composition": "17.6.17", + "Microsoft.VisualStudio.Threading": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "Nerdbank.Streams": "2.10.69", + "StreamJsonRpc": "2.16.41", + "System.Collections.Immutable": "7.0.0", + "System.Text.Json": "7.0.3" + } + }, + "Microsoft.ServiceHub.Resources": { + "type": "Transitive", + "resolved": "4.4.4171", + "contentHash": "0+hr177wzlS6m9IXjG9EW8BzyqfT+mGFL49NHlRKQHRVzSl2NUBI3yrftlFyz6oNgbsyitTkkWcHe2VYN/vpfQ==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.VisualStudio.CommandBars": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "pec1aD/B8D9v347QCMKTSNf0CCTa0Gej7FL2N1G0scodFN6NtmhTIF2pftAv5Tcba/VoOSU3lZUKTRKxMyL8GA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.ComponentModelHost": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "QhM8dpfRn71MBTpo+2La7YQKjJMlFuzl5HyUERYOxQjeLI9JOS357UHyp1i1zj1uCCHKK0MyExGKxjixtMgJig==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", + "Microsoft.VisualStudio.Interop": "17.9.36524", + "Microsoft.VisualStudio.Validation": "17.8.8", + "System.ComponentModel.Composition": "7.0.0" + } + }, + "Microsoft.VisualStudio.Composition": { + "type": "Transitive", + "resolved": "17.7.40", + "contentHash": "BjQMHw97eZFaP+5Ng0iJaHOFGmRowZHfHRHWZGlz3h9eC1bEwNSaBXZT+tha9NhR+jPRnK1xNwCeoPtN8U0yMQ==", + "dependencies": { + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Composition": "7.0.0", + "System.Composition.AttributedModel": "7.0.0", + "System.Reflection.Metadata": "7.0.0", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "Microsoft.VisualStudio.Composition.Analyzers": { + "type": "Transitive", + "resolved": "17.7.40", + "contentHash": "rgFie5cK34I310RrLjjBnfH+bmOM7gUtcx8+PH65f1TeVQkWZzxr1b2/QsH/tHt3bsipvKghhp2VkUtLO5x8wA==" + }, + "Microsoft.VisualStudio.CoreUtility": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "J70GXhSyfP4gFdfrYg0Xf79gkSEbk2rvvRpFq9fAQ/AwXIvR2AlmwJgdPSqh9d1X4mWVAIrDjE26JVf/AnS1Sg==", + "dependencies": { + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.VisualStudio.Debugger.Interop.10.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "ggD/S0364Y1pUbU83hC2qZGl57WvL/0t9aiHMFnP+uVO9J0GYdOuGByCDztwpgkVq7aKaP138TvJrzKkjJzkCg==" + }, + "Microsoft.VisualStudio.Debugger.Interop.12.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "KfjM7g+6e1WHyPFivw/inhLYYEKsOWSdt26au+gRMCL9BKZpk0quy7fLJwzHIkeDQTtNhcqzeGldd4ZiLowMjA==" + }, + "Microsoft.VisualStudio.Debugger.Interop.14.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "fdRTWlEhGCQi4Dziz+aQHYhGrYXjUB77N47otApwtlpbI2SMBJirBZuha+awZD81EDuWH4/81nMPnKwLpgyh6Q==" + }, + "Microsoft.VisualStudio.Debugger.Interop.15.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "+vbBLOWIprvoufg/Fcy0N4nY1wRaPQ5qkJ8yrr5aqwzPG0A2HHFk0CPaCwCgzAzZxe7Lwcve3Gwg0NeY+o58ZA==" + }, + "Microsoft.VisualStudio.Debugger.Interop.16.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "8puRQSTqQooKJdfGZzSEtT9ZALTViFXDtJg77L7p8OwQMlvAXMgUhiX8K+c6VVBnd+5DS2XYpJDzmovz30AsVA==" + }, + "Microsoft.VisualStudio.Debugger.InteropA": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "eZNzPvDyMI6AXMYKoP/Ecwdru0BAELLUkYDzBA1y2V3hrIBfQr2nuB6IJSKq06QoG3WOtCKPLTGZ68c89T1xGw==" + }, + "Microsoft.VisualStudio.Designer.Interfaces": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "ha+hywkSXMC+5hTi1oUt7UVgH9it6L0G9k/teOqpHTVn3JDYJKMBHwoQhqtl0tMxuieqImrMe9ayWOLqMtVtCA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Editor": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "6qrrfeetHtrfZy/Qn26pu/JDlgVON9GzM4yQdh6QajgrjsPR+3lH2hzwvW2gwTgRWbpFJiuHXIC8J+yAjAjyTg==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.VisualStudio.ComponentModelHost": "17.9.145", + "Microsoft.VisualStudio.Composition": "17.7.38", + "Microsoft.VisualStudio.CoreUtility": "17.9.187", + "Microsoft.VisualStudio.GraphModel": "17.9.36524", + "Microsoft.VisualStudio.ImageCatalog": "17.9.36524", + "Microsoft.VisualStudio.Imaging": "17.9.36524", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", + "Microsoft.VisualStudio.Interop": "17.9.36524", + "Microsoft.VisualStudio.Language": "17.9.187", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Shell.15.0": "17.9.36524", + "Microsoft.VisualStudio.Shell.Framework": "17.9.36524", + "Microsoft.VisualStudio.Telemetry": "17.9.13", + "Microsoft.VisualStudio.Text.Data": "17.9.187", + "Microsoft.VisualStudio.Text.Logic": "17.9.187", + "Microsoft.VisualStudio.Text.UI": "17.9.187", + "Microsoft.VisualStudio.Text.UI.Wpf": "17.9.187", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Utilities": "17.9.36524", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Private.Uri": "4.3.2", + "System.Reflection.Metadata": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.GraphModel": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "8JLGacPJ57RtKXXPr21jBE54mIwFi7hvWgM/PNGTOSwKMccCrcoayfv7gRb+hbtbhVwqEfTMi+xfMs32uF60SA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000", + "System.ComponentModel.Composition": "8.0.0" + } + }, + "Microsoft.VisualStudio.ImageCatalog": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "tO1gj9wEZrsUgAeU08y6ALa8BNTdgkZZJk845WD3XLUR358RBtjfxySGHuZBlkfmInRs48N9fZbFKCZxzimUAA==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Imaging": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "u8bSqF0HnfLCWNFa5tqeacYpIwiSbwrXRWAfcmWCNdUvOkIwHf+66WnEmriDB4PErHzfr1xn841TzkVHr4ng8A==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities": "17.9.37000", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "k0OtC0xLjVelFL9HVUNfOWA6qL+F+MDRyWCN1sJ/QzizTNUXWfOVVAv7Vpbz4Bf+0tmOhjS/KL3iS6brg+a8hg==" + }, + "Microsoft.VisualStudio.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" + }, + "Microsoft.VisualStudio.Language": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "4VDeRwY0BB+Kqj/Us/1ITKLYHm5eOdbQQqcktkSt2JF700tNzLfjb5uzt47YSAcDDPp0k+LJrQSb2VK1daFKhg==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.9.187", + "Microsoft.VisualStudio.Text.Data": "17.9.187", + "Microsoft.VisualStudio.Text.Logic": "17.9.187", + "Microsoft.VisualStudio.Text.UI": "17.9.187", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Private.Uri": "4.3.2", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Language.Intellisense": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "QL0JNPJp2IhAfdGhHAhyXXhcg09LtiJP/Ue5BVa6jFMRMoAvvhb68NGjjHs8EyLAxHaaULXmiVtqisL+NVqf1w==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.9.187", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", + "Microsoft.VisualStudio.Language": "17.9.187", + "Microsoft.VisualStudio.Text.Data": "17.9.187", + "Microsoft.VisualStudio.Text.Logic": "17.9.187", + "Microsoft.VisualStudio.Text.UI": "17.9.187", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Private.Uri": "4.3.2", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Language.NavigateTo.Interfaces": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "Y5J+/qUEo78+W+7SyER7Axb3VQsKzNCX9FOosOvYcF68XHUMsSygsQ/hl/gNtd1zLh0qT7HdkwZJACg/qBFPYA==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.VisualStudio.Composition": "17.7.38", + "Microsoft.VisualStudio.CoreUtility": "17.9.145", + "Microsoft.VisualStudio.Imaging": "17.9.36524", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", + "Microsoft.VisualStudio.Interop": "17.9.36524", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.Telemetry": "17.9.13", + "Microsoft.VisualStudio.Text.Data": "17.9.145", + "Microsoft.VisualStudio.Text.Logic": "17.9.145", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Utilities": "17.9.36524", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Reflection.Metadata": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Language.StandardClassification": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "W29WbwgluniFCnPwwYPcyXXMf2vsCtUCUjUoY7r6+InZM0R48UfVGUB2Vq6ZBor+Wi3gmqiytDlGrv4PeqnMqg==", + "dependencies": { + "Microsoft.VisualStudio.Text.Logic": "17.9.187", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.VisualStudio.LanguageServer.Client": { + "type": "Transitive", + "resolved": "17.9.46", + "contentHash": "zLsZaRchQs1X+Fk/hfjYg7f1PXMK5G5mGfApM8FoRCWECJPbeSbJtjvTip068ie4BBxsFhRy3vziq0wmg2077A==", + "dependencies": { + "Microsoft.VisualStudio.ComponentModelHost": "17.9.171", + "Microsoft.VisualStudio.CoreUtility": "17.9.171", + "Microsoft.VisualStudio.ImageCatalog": "17.9.36524", + "Microsoft.VisualStudio.Interop": "17.9.36524", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.Telemetry": "17.9.13", + "Microsoft.VisualStudio.Text.Logic": "17.9.171", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Utilities": "17.9.36524", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Collections.Immutable": "7.0.0" + } + }, + "Microsoft.VisualStudio.LanguageServer.Protocol": { + "type": "Transitive", + "resolved": "17.2.8", + "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", + "dependencies": { + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.VisualStudio.Linux.ConnectionManager.Store": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "sM2JEcLzyAakDg/j+mbEdLef2TokW6V4gFJnonReP57sYhbqTyHyEKmfcoXVk2Wav3KvG5Wy1411kp1FnXjIjg==" + }, + "Microsoft.VisualStudio.OLE.Interop": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "OJaeSuDGZvqJaZHiuB12kiJj6aFdJVp1s+OsMcq3kCJ6DBTcUw8tDHXS2MGPH3nYS/k7qMM/1OatlJL9N3uWJQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Package.LanguageService.15.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "sTQEH8gPxX4v8cOB4qkbdKQSm4xEax2a2PI5kRMh8nDbYprrUaqleuGs55o29a5eWcFQ1DJHwfba9Q2VHTPzXQ==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.Build.Framework": "17.9.5", + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.ComponentModelHost": "17.9.187", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.Interop": "17.9.37000", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.Sdk.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Shell.15.0": "17.9.37000", + "Microsoft.VisualStudio.Shell.Framework": "17.9.37000", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities": "17.9.37000", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.ProjectAggregator": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "9OlWeWMGvX0aE2VH4u0nqkDQ6IVEOPJc4OCC5af72QwJe646vs7k0d01xxWPjy6VbSxgzia+ItM91kv31dWB5Q==" + }, + "Microsoft.VisualStudio.RemoteControl": { + "type": "Transitive", + "resolved": "16.3.52", + "contentHash": "+MgP1+Rtt1uJZyqhf7+H6KAQ57wc7v00ixuLhEgFggIbmW2/29YXfPK7gLvXw+vU7vimuM47cqAHrnB7RWYqtg==", + "dependencies": { + "Microsoft.VisualStudio.Utilities.Internal": "16.3.42" + } + }, + "Microsoft.VisualStudio.RpcContracts": { + "type": "Transitive", + "resolved": "17.9.7", + "contentHash": "Vzu2tCqKQxaBc1i5VF6hF6Wg+EhNRA27voQ8XPgQ2MxrzQRheivH92xvkynpE5hWYg+qeH29axH/wOMDZ9MnmQ==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "4.2.100", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "Microsoft.VisualStudio.SDK.Analyzers": { + "type": "Transitive", + "resolved": "16.10.10", + "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", + "dependencies": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" + } + }, + "Microsoft.VisualStudio.Setup.Configuration.Interop": { + "type": "Transitive", + "resolved": "3.9.2164", + "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" + }, + "Microsoft.VisualStudio.Shell.15.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "7ZB6x3UOFkOqdlPTlP5Q5KNL3EDdXNmCIwAJF3XOHVw7luc5gs9y8qBGV0BrKc3OhoGXg8ecj/aGEHRPn3wJVw==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.Build.Framework": "17.9.5", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.ComponentModelHost": "17.9.187", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.GraphModel": "17.9.37000", + "Microsoft.VisualStudio.ImageCatalog": "17.9.37000", + "Microsoft.VisualStudio.Imaging": "17.9.37000", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", + "Microsoft.VisualStudio.Interop": "17.9.37000", + "Microsoft.VisualStudio.ProjectAggregator": "17.9.37000", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Shell.Framework": "17.9.37000", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities": "17.9.37000", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Shell.Design": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "TpfmizIlCvmbjNdDNG+fhJngAdGI3mWx2HXmZjzVPIFQy1EJaRDUlm8K6TJZ/reqgqCiXJgNpBdx65q3mWOwcQ==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.Build.Framework": "17.9.5", + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.ComponentModelHost": "17.9.187", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.ImageCatalog": "17.9.37000", + "Microsoft.VisualStudio.Interop": "17.9.37000", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.Sdk.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Shell.15.0": "17.9.37000", + "Microsoft.VisualStudio.Shell.Framework": "17.9.37000", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Shell.Framework": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "Inem6IWh7sCSkn2Up6w8hCJziHkwnlIwxHbIihDOFLNj70eMmxtYbrK/YK5Wj/3/hlWXyQM0m5GxPZiLVKjOfA==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.Build.Framework": "17.9.5", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Analyzers": "4.4.22", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.GraphModel": "17.9.37000", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.37000", + "Microsoft.VisualStudio.Interop": "17.9.37000", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities": "17.9.37000", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Shell.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.10.40170" + } + }, + "Microsoft.VisualStudio.Shell.Interop.10.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "onDfw2IMubXGB+wuI0AeTkHAgszzoF62LsOltCYyUvbiwLYAjJknaqNRI28R1fu/TSqwSB8SXaSHWSUx+gi10w==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Shell.Interop.11.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "l/+WiYlmkdF9UvHeg8zlXcMRtmNzYuuQ6s1HRZa4j2qQ98jfKpFdki5HHDKB0QdJG+hIHuLJGSH3YFMTT8t4TQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Shell.Interop.12.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "2uMajweo4LggamYDTMyg44UkPi/VBweKi8Yv/PHmMivzxHx5unlo+K2a1rQvbp2JjAEwTd0YSOtmxCTrDMIqcg==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Shell.Interop.8.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "n90dAFqYPq0SHxZfcn9b7+sjRYK7J6b5drakIHJ+AGWEGtON8bznpKZW8NWFWjo9odI5xTOEZAZP4It4ghuWQg==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Shell.Interop.9.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "g4TsZCWjPC4ufqAosMyUP6I6Dp3F54ru9jzFEvWgYofrwV+OIA7iUK4Bt4g0YCE/mn1VF6qCV0BGpuL7l9lChQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.TaskRunnerExplorer.14.0": { + "type": "Transitive", + "resolved": "14.0.0", + "contentHash": "iZpAv8bEWjkyxFF1GIcSOfldqP/umopJKnJGKHa0vg8KR7ZY3u3dWtJmwO4w3abIx+176SIkQe78y5A+/Md7FA==" + }, + "Microsoft.VisualStudio.Telemetry": { + "type": "Transitive", + "resolved": "17.9.305", + "contentHash": "dWQlTc3o1zvnr0dFD+ZpC04gZtP3pzAMEQBK2oqPZoMRm4n3cj5sSNSlSugDjWHAnVAKzses/ZTvR2SHTyCQNA==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.VisualStudio.Text.Data": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "8orDTYO5LCuweuMf8HWdeNRh/Cw7UNC//2l25bxAtbzW8r8nhXfMw2KRYq4Op3RKwjTPFZj0vkBFpoVZjg+slg==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.9.187", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.VisualStudio.Text.Logic": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "wU6t9SNyooa5VEKUYkEPo1YyfyRRkWnu7Zdwxzl9lroZLBz4sdHiq5RD2bo9Uq3yLJgnmmfR3o05lVBScFzkpg==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.9.187", + "Microsoft.VisualStudio.Text.Data": "17.9.187", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.VisualStudio.Text.UI": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "jepyybFierTz+HDx9Z9j0STlt5RA/XSA1aXdlrs+vfHVgdVE6chDyLEjPMDwEyb+bWhKe6Sv1ED/xF/wUPeZxQ==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.9.187", + "Microsoft.VisualStudio.Text.Data": "17.9.187", + "Microsoft.VisualStudio.Text.Logic": "17.9.187", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.VisualStudio.Text.UI.Wpf": { + "type": "Transitive", + "resolved": "17.9.187", + "contentHash": "fnpS1bxmq6ZwwdWtfi9/Dqw/hnEc873LROqhtFPVvq3AsNYtuvXmNqKWDwdKHSVSIfUHSFGWHf9SEycpcYnNeg==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.9.187", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.9.36507", + "Microsoft.VisualStudio.Text.Data": "17.9.187", + "Microsoft.VisualStudio.Text.Logic": "17.9.187", + "Microsoft.VisualStudio.Text.UI": "17.9.187", + "Microsoft.VisualStudio.Threading": "17.9.27", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.27", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Collections.Immutable": "7.0.0", + "System.ComponentModel.Composition": "7.0.0", + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.VisualStudio.TextManager.Interop": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "81JWgO2og33CN/SaaubY+2D//fU0v7wcsa88UoQpLi7QM1FLdRtz1TK0VbeHWgLfnvKyxNMShdcsM5SQMtRsrQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.TextManager.Interop.10.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "Qypt+Hm2SY1dYxLgfdWQvFIEvhvBHTFxv0bxfbY2VLyKmE7Oox5svoD+MRJkQIbVV1kd3J78rNlBQzmt1pdliw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.TextManager.Interop.11.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "DO2R1JpSLNit9BV8/up8o3wZrHZAoDL1yA3GiQywvhVq2HCzVLLN5lQJkSXbW1qbqMCujz6Y7xBnBDW5Gk9gtw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.TextManager.Interop.12.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "EW+AFokDrexrevkYrsbPkKypjnt2Ssq9QmTZJXJxzzOs3XidfIdvZckxVuHSvnSn7cnUsOm30pT0F0bXXffPJg==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.TextManager.Interop.8.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "q1xJmnvx/Akty9jF/gWb8F6l+5Hpo9J/W5EQGMAO2KceT2717tYvjCqewOZ7Ae9dAIom/e9oIpW5rjrLH+k7fg==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.TextManager.Interop.9.0": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "y4c5DEyGpFO/HRJsC4wjRS5+bATLdsBw36sAprg8SNrRa9W5bJeJC7nj1s0IXX1H/5mzYH12/q5R8N6enCIplA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.TextTemplating.VSHost": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "ItDcrt/mk0oAYrLfHpRV0fd09sNSmHEOcbJJSReOVkpLioqf47b9hPIqJZnfu50eP6C9v/3+bo7jsWV5Abw1bw==", + "dependencies": { + "Microsoft.VisualStudio.Validation": "17.8.8", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.VisualStudio.Threading": { + "type": "Transitive", + "resolved": "17.9.28", + "contentHash": "n1bG965yT/7QHChX4x8zJ28LDaNdlJ6AgzthU3XzCsV9fVAMXYJEFi6BbWt8EM+7t0Wz9Oy021VMH2Z/iyz/Qw==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.VisualStudio.Utilities": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "tiNenrZYKSxC/i0LDcXbENeuJDzxKgYFd+LA4iwI18LMN85ThffoFbvGij5CQ6IBa6FWL8VQGlPuE65iMXWfNQ==", + "dependencies": { + "MessagePack": "2.5.108", + "MessagePack.Annotations": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "8.0.0", + "Microsoft.IO.Redist": "6.0.0", + "Microsoft.NET.StringTools": "17.9.5", + "Microsoft.ServiceHub.Framework": "4.4.22", + "Microsoft.ServiceHub.Resources": "4.4.4171", + "Microsoft.VisualStudio.Composition": "17.7.40", + "Microsoft.VisualStudio.Composition.Analyzers": "17.7.40", + "Microsoft.VisualStudio.RemoteControl": "16.3.52", + "Microsoft.VisualStudio.RpcContracts": "17.9.7", + "Microsoft.VisualStudio.Telemetry": "17.9.305", + "Microsoft.VisualStudio.Threading": "17.9.28", + "Microsoft.VisualStudio.Threading.Analyzers": "17.9.28", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.56", + "Microsoft.VisualStudio.Validation": "17.8.8", + "Microsoft.Win32.Registry": "5.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "StreamJsonRpc": "2.17.11", + "System.Buffers": "4.5.1", + "System.Collections.Immutable": "8.0.0", + "System.ComponentModel.Composition": "8.0.0", + "System.Composition": "8.0.0", + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0", + "System.Diagnostics.DiagnosticSource": "8.0.0", + "System.IO.Pipelines": "8.0.0", + "System.Memory": "4.5.5", + "System.Numerics.Vectors": "4.5.0", + "System.Reflection.Metadata": "8.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0", + "System.Text.Encodings.Web": "8.0.0", + "System.Text.Json": "8.0.0", + "System.Threading.AccessControl": "8.0.0", + "System.Threading.Tasks.Dataflow": "8.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.VisualStudio.Utilities.Internal": { + "type": "Transitive", + "resolved": "16.3.56", + "contentHash": "QX5UVVk4+/rPu3Xy3QRAntNBy/3VMl2whwSlt73Ksp6MRf5ersUopgmHbkEnWSTX6e/SZf+mfqTmvdk67URH2Q==" + }, + "Microsoft.VisualStudio.Validation": { + "type": "Transitive", + "resolved": "17.8.8", + "contentHash": "rWXThIpyQd4YIXghNkiv2+VLvzS+MCMKVRDR0GAMlflsdo+YcAN2g2r5U1Ah98OFjQMRexTFtXQQ2LkajxZi3g==" + }, + "Microsoft.VisualStudio.VCProjectEngine": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "xvnBf3JOY55wM6Gs4jEkRzAy3fySTbXQN+kO4l1QOatjnfz87+CWVH/yemjy7lR9WM6zULMoA6yZBe4fZ7Ydgg==" + }, + "Microsoft.VisualStudio.VSHelp": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "nxoXdklX17Ud+rJv4xRcCwmmwF5PBCsq4XjrZ2fYKVNJSMV5kvuM+tiZvl8giThZ9jmN6arhKl/k1158xxP/iA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.VSHelp80": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "IlH4iEAmQ79ZwBSXr6be1WG+6X9Ga3oDpiBw7IQifztx4ehenJ15+YumPRbeSMt3Jbx0DjvsyIqU3lDifmCfXA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.WCFReference.Interop": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "YEFmkGNqnNTiLG2JqKyXMbOOrn1cwoPH/q54DanhDdqSmSDq/2ah/MAs8tA0BkqsrQnbexOtnfZPvtZQzwuggg==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "Microsoft.VisualStudio.Web.BrowserLink.12.0": { + "type": "Transitive", + "resolved": "12.0.0", + "contentHash": "HeuaZh8+wNVdwx7VF8guFGH2Z2zH+FYxWBsRNp+FjjlmrhCfM7GUQV5azaTv/bN5TPaK8ALJoP9UX5o1FB5k1A==" + }, + "Microsoft.VisualStudio.Workspace": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", + "dependencies": { + "Microsoft.IO.Redist": "4.7.1", + "Microsoft.VisualStudio.Composition": "16.4.11", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Workspace.Extensions": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", + "dependencies": { + "Microsoft.Build": "16.8.0", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" + } + }, + "Microsoft.VisualStudio.Workspace.VSIntegration": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", + "dependencies": { + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", + "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" + } + }, + "Microsoft.VsSDK.CompatibilityAnalyzer": { + "type": "Transitive", + "resolved": "17.9.3184", + "contentHash": "vlv1hJYP30UUvG1fpqGv56istFJu9TNrei04WoHXGCQGz5lqREDSwaF2Th1v7VPOj+xdSGp2PtAdGvp+/ExVFA==" + }, + "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.10.69", + "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "System.IO.Pipelines": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "OmniSharp.Extensions.JsonRpc": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", + "dependencies": { + "MediatR": "8.1.0", + "Microsoft.Extensions.DependencyInjection": "6.0.1", + "Microsoft.Extensions.Logging": "6.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", + "System.Collections.Immutable": "5.0.0", + "System.Reactive": "6.0.0", + "System.Threading.Channels": "6.0.0" + } + }, + "OmniSharp.Extensions.JsonRpc.Generators": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" + }, + "OmniSharp.Extensions.LanguageProtocol": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.LanguageProtocol": "0.19.9", + "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer.Shared": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", + "dependencies": { + "OmniSharp.Extensions.LanguageProtocol": "0.19.9" + } + }, + "stdole": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "Fbut94Js30JtoKQlcNF1+JZJW6UTrWzWa8y3GpPCBUJqGrzkvW6kSJBkyaeY4F3Jdk0rYZrFc6UjF6fjvQ3DJQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "StreamJsonRpc": { + "type": "Transitive", + "resolved": "2.17.11", + "contentHash": "fygZJqYer5WPBwDqT0TOsVRTlsCZV3Q8HQMkoja+jhC2KkCbUW038njK29pf8Hqv5/IfxWb72LCR49wq4nz3ow==", + "dependencies": { + "MessagePack": "2.5.108", + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading": "17.7.35", + "Microsoft.VisualStudio.Threading.Analyzers": "17.7.35", + "Microsoft.VisualStudio.Validation": "17.6.11", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.1", + "System.Collections.Immutable": "7.0.0", + "System.Diagnostics.DiagnosticSource": "7.0.2", + "System.IO.Pipelines": "7.0.0", + "System.Text.Encodings.Web": "7.0.0", + "System.Text.Json": "7.0.3", + "System.Threading.Tasks.Dataflow": "7.0.0" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.ComponentModel.Composition": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bGhUX5BTivJ9Wax0qnJy7uGq7dn/TQkEpJ2Fpu1etg8dbPwyDkUzNPc1d3I2/jUr9y4wDI3a1dkSmi8X21Pzbw==" + }, + "System.Composition": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "E9oO9olNNxA39J8CxQwf7ceIPm+j/B/PhYpyK9M4LhN/OLLRw6u5fNInkhVqaWueMB9iXxYqnwqwgz+W91loIA==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Convention": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0", + "System.Composition.TypedParts": "8.0.0" + } + }, + "System.Composition.AttributedModel": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "NyElSuvmBMYdn2iPG0n29i7Igu0bq99izOP3MAtEwskY3OP9jqsavvVmPn9lesVaj/KT/o/QkNjA43dOJTsDQw==" + }, + "System.Composition.Convention": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "UuVkc1B3vQU/LzEbWLMZ1aYVssv4rpShzf8wPEyrUqoGNqdYKREmB8bXR73heOMKkwS6ZnPz3PjGODT2MenukQ==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0" + } + }, + "System.Composition.Hosting": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "qwbONqoxlazxcbiohvb3t1JWZgKIKcRdXS5uEeLbo5wtuBupIbAvdC3PYTAeBCZrZeERvrtAbhYHuuS43Zr1bQ==", + "dependencies": { + "System.Composition.Runtime": "8.0.0" + } + }, + "System.Composition.Runtime": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "G+kRyB5/6+3ucRRQz+DF4uSHGqpkK8Q4ilVdbt4zvxpmvLVZNmSkyFAQpJLcbOyVF85aomJx0m+TGMDVlwx7ZQ==" + }, + "System.Composition.TypedParts": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "DsSklhuA+Dsgo3ZZrar8hjBFvq1wa1grrkNCTt+6SoX3vq0Vy+HXJnVXrU/nNH1BjlGH684A7h4hJQHZd/u5mA==", + "dependencies": { + "System.Composition.AttributedModel": "8.0.0", + "System.Composition.Hosting": "8.0.0", + "System.Composition.Runtime": "8.0.0" + } + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ==", + "dependencies": { + "System.Memory": "4.5.5", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.5", + "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.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.Reactive": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "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": "8.0.0", + "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "dependencies": { + "System.Collections.Immutable": "8.0.0", + "System.Memory": "4.5.5" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.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.0", + "contentHash": "OdrZO2WjkiEG6ajEFRABTRCi/wuXQPxeV6g8xvUJqdxMvvuCCEk86zPla8UiIQJz3durtUEbNyY/3lIhS0yZvQ==", + "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": "8.0.0", + "contentHash": "cIed5+HuYz+eV9yu9TH95zPkqmm1J9Qps9wxjB335sU8tsqc2kGdlTEH9FZzZeCS8a7mNSEsN8ZkyhQp1gfdEw==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Threading.Channels": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Threading.Tasks.Dataflow": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "7V0I8tPa9V7UxMx/+7DIwkhls5ouaEMQx6l/GwGm1Y8kJQ61On9B/PxCXFLbgu5/C47g0BP2CUYs+nMv1+Oaqw==" + }, + "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==" + }, + "VSLangProj": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "6YNkHtXDmAEBdbajfB6kgve1VKAepxxyrROyJb6P/xSQiIFg4NNnubniEOka8lEQHwom/ZjhiCwDew5sKOK5Fg==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj100": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "kKZ08vauju/TFSS4ODMPj7h64HWbPvYPD2mDdmcAdp4U2DhU857+oZac4c3XXFQ5ebYnoB4QiD6TZVueJXsKVQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj110": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "81OnibbGrVx3mAmo+ZSt8If5xR3csFyjpUo17HnzqDyHQTJ18dNQD/7mtqfLRYXtTan6TdG+I0Hbw7oY1hyOyA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj140": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "wtxv09OfpLFF7lKF1Nr9fEZugH7Co9J8VgvH/tzQdDANZzmLr4zFEzBFYGxPw95bAICt3FePtnNQ9CWKP5MwVQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj150": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "rSUieNtE8+mzGgIMw8VnYaPo047zv6i+A2nVwMIHAxFszuuYhEzXjqSZLE9KRYFgSf1xtGpbeNX+ebDRk+uUAQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj157": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "c2RB7W9jAjsu/BqCR4yHKvSJ42u98RcRQ6Fqjq0ktGxXZaojhNje2wEIr38yYHGH7cN2AE+Ra8fg1vGOmhxSDQ==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj158": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "AsADOKFAjkf7EamP/6/FZfs8jpsn4C0ChEsd0y/c3e7PBjJoCVa9Nh4WqRVSVjbWM1Oy3T7d+50bGxgQZAZ4KA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj165": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "jkueE+WT5BEiurPCLXUDslmbjuUOpVIVBDNmliDXWY/V3aHxq5tVG4u4VeaPp1LMS4x+O1vjQDU3K+V5ztYDwA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj2": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "zuFpJzVFZxVS9l4ALohA4Z+VRR2TxA46z1hgmns8tRVJxTFz6NnwqRMHbsD29VbpjvRsh62CZOVcUOXrcBBipw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj80": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "Q+I1RRsSZH4rLVm9PO7CLiI4Sx8xPznnBDgJ5Cv+L79Y99rIcyd7TZi3PYawQbSt0HEI2IgWZJ9JztiS3ksQpg==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "VSLangProj90": { + "type": "Transitive", + "resolved": "17.9.37000", + "contentHash": "Zq6YLqN1cVNfdpFlrrFmI7Rr2blikVHyyPxmZ6vdO2H+ldjgTjNxMwddnBvwTt3AJazNrvaC/ZXGk+bvn+OPOA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.9.37000" + } + }, + "bicep.vslanguageserverclient": { + "type": "Project", + "dependencies": { + "Microsoft.VisualStudio.LanguageServer.Client": "[17.2.2105, )", + "Microsoft.VisualStudio.LanguageServer.Protocol": "[17.2.8, )", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "[3.9.2164, )", + "Microsoft.VisualStudio.Shell.Interop": "[17.10.40170, )", + "Microsoft.VisualStudio.Utilities": "[17.2.32505.113, )", + "Microsoft.VisualStudio.Workspace.VSIntegration": "[17.1.11-preview-0002, )", + "Microsoft.Visualstudio.Telemetry": "[16.5.6, )", + "OmniSharp.Extensions.LanguageServer": "[0.19.9, )" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-arm64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/linux-musl-x64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/linux-x64": { + "Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "dependencies": { + "runtime.unix.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.Runtime": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==" + }, + "runtime.any.System.Runtime.InteropServices": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw==" + }, + "runtime.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "2mI2Mfq+CVatgr4RWGvAWBjoCfUafy6VNFU7G9OA52DjO8x/okfIbsEq2UPgeGfdpO7X5gmPXKT8slx0tn0Mhw==", + "dependencies": { + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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", + "runtime.unix.System.Private.Uri": "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": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "dependencies": { + "System.Runtime": "4.3.0", + "runtime.any.System.Runtime.InteropServices": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/osx-arm64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/osx-x64": { + "Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "dependencies": { + "runtime.unix.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.Runtime": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "fRS7zJgaG9NkifaAxGGclDDoRn9HC7hXACl52Or06a/fxdzDajWb5wov3c6a+gVSlekRoexfjwQSK9sh5um5LQ==" + }, + "runtime.any.System.Runtime.InteropServices": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "lBoFeQfxe/4eqjPi46E0LU/YaCMdNkQ8B4MZu/mkzdIAZh8RQ1NYZSj0egrQKdgdvlPFtP4STtob40r4o2DBAw==" + }, + "runtime.native.System": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0", + "Microsoft.NETCore.Targets": "1.1.0" + } + }, + "runtime.unix.Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "2mI2Mfq+CVatgr4RWGvAWBjoCfUafy6VNFU7G9OA52DjO8x/okfIbsEq2UPgeGfdpO7X5gmPXKT8slx0tn0Mhw==", + "dependencies": { + "System.Runtime": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "runtime.unix.System.Private.Uri": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "ooWzobr5RAq34r9uan1r/WPXJYG1XWy9KanrxNvEnBzbFdQbMG7Y3bVi4QxR7xZMNLOxLLTAyXvnSkfj5boZSg==", + "dependencies": { + "runtime.native.System": "4.3.0" + } + }, + "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", + "runtime.unix.System.Private.Uri": "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": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "dependencies": { + "System.Runtime": "4.3.0", + "runtime.any.System.Runtime.InteropServices": "4.3.0" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/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.win.Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "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.win.Microsoft.Win32.Primitives": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "NU51SEt/ZaD2MF48sJ17BIqx7rjeNNLXUevfMOjqQIetdndXwYjZfZsT6jD+rSWp/FYxjesdK4xUSl4OTEI0jw==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + } + } + } +} \ No newline at end of file diff --git a/src/vs-bicep/Bicep.VSLanguageServerClient/packages.lock.json b/src/vs-bicep/Bicep.VSLanguageServerClient/packages.lock.json new file mode 100644 index 00000000000..8b9c74d0f1a --- /dev/null +++ b/src/vs-bicep/Bicep.VSLanguageServerClient/packages.lock.json @@ -0,0 +1,1074 @@ +{ + "version": 1, + "dependencies": { + ".NETFramework,Version=v4.7.2": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": { + "type": "Direct", + "requested": "[3.3.4, )", + "resolved": "3.3.4", + "contentHash": "0k2Jwpc8eq0hjOtX6TxRkHm9clkJ2PAQ3heEHgqIJZcsfdFosC/iyz18nsgTVDDWpID80rC7aiYK7ripx+Qndg==" + }, + "Microsoft.CodeAnalysis.CSharp.CodeStyle": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "qHpTHDod/KBt6tkSlWh/RVfkVcwpGkabQpi5g8YsjLK5qhEoAkv70mckbmntzo9HA4vMPkIKd7ZtNGn2CCbQVg==" + }, + "Microsoft.Net.Compilers.Toolset": { + "type": "Direct", + "requested": "[4.9.2, )", + "resolved": "4.9.2", + "contentHash": "2j3UDVESH3nVyOr3EF3Om0nSfbZ70dRfiSxmFEoCMar9fApOsns+Odv6g3bMH8rZriY6G4x3LCsnsDl+CEt5KQ==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Direct", + "requested": "[8.0.0, )", + "resolved": "8.0.0", + "contentHash": "G5q7OqtwIyGTkeIOAc3u2ZuV/kicQaec5EaRnc0pIeSnh9LUjj+PYQrJYBURvDt7twGl2PKA7nSN0kz1Zw5bnQ==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "8.0.0", + "Microsoft.SourceLink.Common": "8.0.0" + } + }, + "Microsoft.VisualStudio.LanguageServer.Client": { + "type": "Direct", + "requested": "[17.2.2105, )", + "resolved": "17.2.2105", + "contentHash": "nIECUBSgRnpz5Dhfy+SlCJB5eMy7UIO7ZzP07bhecNVivOnAPQdh+uJj7EpYKlOgB95CHuSAB/L58vLLxXN/BA==", + "dependencies": { + "Microsoft.VisualStudio.CoreUtility": "17.2.3192", + "Microsoft.VisualStudio.Shell.15.0": "17.2.32406.100", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "Microsoft.VisualStudio.Validation": "17.0.53", + "StreamJsonRpc": "2.11.35" + } + }, + "Microsoft.VisualStudio.LanguageServer.Protocol": { + "type": "Direct", + "requested": "[17.2.8, )", + "resolved": "17.2.8", + "contentHash": "60JcfitC8pve5pHAaRDlO1H8IBXR/tXGqYoK8fgNWZEG8MQl3EEND+IRVv6sjJmMhyYLYzXZrU7U8/KXsPQe0Q==", + "dependencies": { + "Newtonsoft.Json": "13.0.1" + } + }, + "Microsoft.VisualStudio.Setup.Configuration.Interop": { + "type": "Direct", + "requested": "[3.9.2164, )", + "resolved": "3.9.2164", + "contentHash": "KV9Ip+xFw57PKj6YlIC4ZSAj+gCkUqsr67IlNQTRLbYsEvd5gZiqgDb6AjTvPypc5yfI1aiLXTBIs/56r8P0rA==" + }, + "Microsoft.VisualStudio.Shell.Interop": { + "type": "Direct", + "requested": "[17.10.40170, )", + "resolved": "17.10.40170", + "contentHash": "Paqp12+psmGEdYifPdNiE057DbzVYl2DXjSCrgwrjJ2kGzWlURP9N6sFbbmWyLc7A0x3luJHRGM6n/24+hZvMw==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.10.40170" + } + }, + "Microsoft.VisualStudio.Telemetry": { + "type": "Direct", + "requested": "[16.5.6, )", + "resolved": "16.5.6", + "contentHash": "afyxTJBcntD92T9Ce8gZxOgEZBLZXFA7kxQLW1gnbnF5yGBkeF8vdwIlvJ/aw6+Of0cgfjgY9J/bLGZ976puAQ==", + "dependencies": { + "Microsoft.CSharp": "4.7.0", + "Microsoft.VisualStudio.RemoteControl": "16.3.44", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", + "Newtonsoft.Json": "13.0.1", + "System.Runtime.CompilerServices.Unsafe": "5.0.0" + } + }, + "Microsoft.VisualStudio.Threading.Analyzers": { + "type": "Direct", + "requested": "[17.10.48, )", + "resolved": "17.10.48", + "contentHash": "xwvwT91oqFjLgQykUp6y/JPYxz8LchbfJKrLVatfczWddXKng8DAo8RiiIodt+pRdsVXP9Ud02GtJoY7ifdXPQ==" + }, + "Microsoft.VisualStudio.Utilities": { + "type": "Direct", + "requested": "[17.2.32505.113, )", + "resolved": "17.2.32505.113", + "contentHash": "4Pyq/vfl4yKtXL/OojK1ekQ7eo164KK4ud5AC4NFxBbSKjvHuLvt/MHzAOcV1s8MwR2/Eqj9rSmptTth7vsSEA==", + "dependencies": { + "Microsoft.ServiceHub.Client": "3.1.4097", + "Microsoft.VisualStudio.RpcContracts": "17.2.31", + "Microsoft.VisualStudio.Telemetry": "16.4.56", + "StreamJsonRpc": "2.11.35", + "System.ComponentModel.Composition": "6.0.0", + "System.Composition": "6.0.0", + "System.Threading.AccessControl": "6.0.0", + "System.Threading.Tasks.Dataflow": "6.0.0" + } + }, + "Microsoft.VisualStudio.Workspace.VSIntegration": { + "type": "Direct", + "requested": "[17.1.11-preview-0002, )", + "resolved": "17.1.11-preview-0002", + "contentHash": "gZ74u5Qi06HfstKxq+wCGlssvMUdgVIzNq2ZXa5uzmswN2mibee5wIyB3VYs0JNXQizMJmZuhU+aiUFkV+kb5A==", + "dependencies": { + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002", + "Microsoft.VisualStudio.Workspace.Extensions": "17.1.11-preview-0002" + } + }, + "Nerdbank.GitVersioning": { + "type": "Direct", + "requested": "[3.6.133, )", + "resolved": "3.6.133", + "contentHash": "VZWMd5YAeDxpjWjAP/X6bAxnRMiEf6tES/ITN0X5CHJgkWLLeHGmEALivmTAfYM6P+P/3Szy6VCITUAkqjcHVw==" + }, + "OmniSharp.Extensions.LanguageServer": { + "type": "Direct", + "requested": "[0.19.9, )", + "resolved": "0.19.9", + "contentHash": "g09wOOCQ/oFqtZ47Q5R9E78tz2a5ODEB+V+S65wAiiRskR7xwL78Tse4/8ToBc8G/ZgQgqLtAOPo/BSPmHNlbw==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.LanguageProtocol": "0.19.9", + "OmniSharp.Extensions.LanguageServer.Shared": "0.19.9" + } + }, + "MediatR": { + "type": "Transitive", + "resolved": "8.1.0", + "contentHash": "KJFnA0MV83bNOhvYbjIX1iDykhwFXoQu0KV7E1SVbNA/CmO2I7SAm2Baly0eS7VJ2GwlmStLajBfeiNgTpvYzQ==" + }, + "MessagePack": { + "type": "Transitive", + "resolved": "2.3.85", + "contentHash": "wOabnqkrXp7oeEYLY4Kd0m0eT4falJQukqvErfz5Y4FKKo9mSQQ1+rMxx9mapF2el+P0XQxiZOBKFm+oCvu0aw==", + "dependencies": { + "MessagePack.Annotations": "2.3.85", + "Microsoft.Bcl.AsyncInterfaces": "1.0.0", + "System.Collections.Immutable": "1.5.0", + "System.Memory": "4.5.3", + "System.Reflection.Emit": "4.6.0", + "System.Reflection.Emit.Lightweight": "4.6.0", + "System.Runtime.CompilerServices.Unsafe": "4.5.2", + "System.Threading.Tasks.Extensions": "4.5.3" + } + }, + "MessagePack.Annotations": { + "type": "Transitive", + "resolved": "2.3.85", + "contentHash": "2GCYZ9qgNS5Og0tiqfhWRhcfDZI/iRi8t07R0fNic1HthMMRfWxWOKDIBhtMA1RwZM4BuRsmJXUgk3evyisb1w==" + }, + "Microsoft.Bcl.AsyncInterfaces": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "3aeMZ1N0lJoSyzqiP03hqemtb1BijhsJADdobn/4nsMJ8V1H+CrpuduUe4hlRdx+ikBQju1VGjMD1GJ3Sk05Eg==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Build": { + "type": "Transitive", + "resolved": "16.8.0", + "contentHash": "AevS/k1Txc3p+XUc98a8UBiOhxoyds2IGXiTeRAJR8cwHNbafDp4J09y2OtzNiBsT+1q2+dtkDf/H8OkAjvBDw==", + "dependencies": { + "Microsoft.Build.Framework": "16.8.0", + "Microsoft.VisualStudio.Setup.Configuration.Interop": "1.16.30", + "System.Collections.Immutable": "1.5.0", + "System.Memory": "4.5.3", + "System.Text.Json": "4.7.0", + "System.Threading.Tasks.Dataflow": "4.9.0" + } + }, + "Microsoft.Build.Framework": { + "type": "Transitive", + "resolved": "17.1.0", + "contentHash": "7PPEbjuL/lKQ8ftblxwBZKf5alZCA4GDvBTiO3UAVxtRe52a2jL3mc8TpKNiJZzytGz7fKdR5ClDCs7+Uw4hMg==", + "dependencies": { + "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.0.4492", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ==" + }, + "Microsoft.CSharp": { + "type": "Transitive", + "resolved": "4.7.0", + "contentHash": "pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==" + }, + "Microsoft.Extensions.Configuration": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "BUyFU9t+HzlSE7ri4B+AQN2BgTgHv/uM82s5ZkgU1BApyzWzIl48nDsG5wR1t0pniNuuyTBzG3qCW8152/NtSw==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Configuration.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qWzV9o+ZRWq+pGm+1dF+R7qTgTYoXvbyowRoBxQJGfqTpqDun2eteerjRQhq5PQ/14S+lqto3Ft4gYaRyl4rdQ==", + "dependencies": { + "Microsoft.Extensions.Primitives": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Configuration.Binder": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "b3ErKzND8LIC7o08QAVlKfaEIYEvLJbtmVbFZVBRXeu9YkKfSSzLZfR1SUfQPBIy9mKLhEtJgGYImkcMNaKE0A==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0" + } + }, + "Microsoft.Extensions.DependencyInjection": { + "type": "Transitive", + "resolved": "6.0.1", + "contentHash": "vWXPg3HJQIpZkENn1KWq8SfbqVujVD7S7vIAyFXXqK5xkf1Vho+vG0bLBCHxU36lD1cLLtmGpfYf0B3MYFi9tQ==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "xlzi2IYREJH3/m6+lUrQlujzX8wDitm4QGnUu6kUXTQAWPuZY8i+ticFJbzfqaetLA6KR/rO6Ew/HuYD+bxifg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.Extensions.Logging": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "eIbyj40QDg1NDz0HBW0S5f3wrLVnKWnDJ/JtZ+yJDFnDj90VoPuoPmFkeaXrtu+0cKm5GRAwoDf+dBWXK0TUdg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.Extensions.DependencyInjection": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Logging.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0", + "System.ValueTuple": "4.5.0" + } + }, + "Microsoft.Extensions.Logging.Abstractions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/HggWBbTwy8TgebGSX5DBZ24ndhzi93sHUBDvP1IxbZD7FDokYzdAr6+vbWGjw2XAfR2EJ1sfKUotpjHnFWPxA==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.Extensions.Options": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "dzXN0+V1AyjOe2xcJ86Qbo233KHuLEY0njf/P2Kw8SfJU+d45HNS2ctJdnEnrWbM9Ye2eFgaC5Mj9otRMU6IsQ==", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Options.ConfigurationExtensions": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "bXWINbTn0vC0FYc9GaQTISbxhQLAMrvtbuvD9N6JelEaIS/Pr62wUCinrq5bf1WRBGczt1v4wDhxFtVFNcMdUQ==", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "6.0.0", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", + "Microsoft.Extensions.Options": "6.0.0", + "Microsoft.Extensions.Primitives": "6.0.0" + } + }, + "Microsoft.Extensions.Primitives": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "9+PnzmQFfEFNR9J2aDTfJGGupShHjOuGw4VUv+JB044biSHrnmCIMD+mJHmb2H7YryrfBEXDurxQ47gJZdCKNQ==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Microsoft.IO.Redist": { + "type": "Transitive", + "resolved": "4.7.1", + "contentHash": "WaA56Jq9Hk0Bz/c3eIWIepnCj+AXJajTZ3RQUk7PRT8DEXk9RY0vfoNrZmNC2JTrnKXGigz3js3PReGHxGpdhw==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + } + }, + "Microsoft.ServiceHub.Analyzers": { + "type": "Transitive", + "resolved": "3.1.4097", + "contentHash": "ZOTK44YxmQ/YV+PAv7XSN2rj7UTfR2NSy8UHOaPZU8kE1giTDHvMY9QtcvnaKurD6eNtLCbCfHWhrt6Inev43Q==" + }, + "Microsoft.ServiceHub.Client": { + "type": "Transitive", + "resolved": "3.1.4097", + "contentHash": "+cKDvtcgOCzqJeqzXk657QHwSiPB9Iv1vFgeb4uERwW5F8me/20XlHVpuYgRSdBOCMRFV7M1nlrbD2a56cG7qg==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "3.1.4097", + "Microsoft.ServiceHub.Resources": "3.1.4097", + "Microsoft.VisualStudio.Telemetry": "16.4.37", + "Microsoft.VisualStudio.Utilities.Internal": "16.3.36", + "StreamJsonRpc": "2.7.70", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.ServiceHub.Framework": { + "type": "Transitive", + "resolved": "3.1.4097", + "contentHash": "DTZcqBSYWqvb15XLPyFepT3j4L9kCiVz91ByAwjRGEQ8Raka0aFzTd53rp1lSVnEfZ9gsJpX5ha6TzW13ptvNw==", + "dependencies": { + "Microsoft.ServiceHub.Analyzers": "3.1.4097", + "StreamJsonRpc": "2.7.70", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.ServiceHub.Resources": { + "type": "Transitive", + "resolved": "3.1.4097", + "contentHash": "/iQi5lZ9FhlaDZ6V2bfPH69c0ESLL6pQRCCKbXe99aFGcdOk+dsRGygwmi7mjvc7qlEFY0x7dlXQ+ctsxMdDVw==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "8.0.0", + "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw==" + }, + "Microsoft.VisualStudio.ComponentModelHost": { + "type": "Transitive", + "resolved": "17.2.3190", + "contentHash": "Ny42WwcnrvrsbpMDYuuIhG1h2WOKj/Ix6SxNc/PBxPIbnlI3K4h75L00rrWtqiXdnZIQ/dwT3YmQHWEDj3sulg==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32330.158", + "Microsoft.VisualStudio.Interop": "17.2.32330.158", + "Microsoft.VisualStudio.Validation": "17.0.53", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.Composition": { + "type": "Transitive", + "resolved": "16.4.11", + "contentHash": "JinutaulyPMTEWpdyegz3LLTtChZC+YYMjaQosCwIrapfTncOnatY85j8DpmuqHYADiJ6kkHYEPT71yS5eEqSA==", + "dependencies": { + "Microsoft.VisualStudio.Composition.NetFxAttributes": "16.4.11", + "Microsoft.VisualStudio.Validation": "15.0.82", + "System.ComponentModel.Composition": "4.5.0", + "System.Composition": "1.0.31", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Metadata": "1.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Threading.Tasks.Dataflow": "4.6.0" + } + }, + "Microsoft.VisualStudio.Composition.NetFxAttributes": { + "type": "Transitive", + "resolved": "16.4.11", + "contentHash": "KufBhjVwhq+Sgt9Vl5XNOsZykU5aXpU8hO0UXlM98Giw5iRDJAxHBLSRYDzcadVtVrf++QSB95bVydxem0jegQ==", + "dependencies": { + "System.ComponentModel.Composition": "4.5.0" + } + }, + "Microsoft.VisualStudio.CoreUtility": { + "type": "Transitive", + "resolved": "17.2.3192", + "contentHash": "KomP1sdum+yYSe5TMOS7cMkOOv4SmnP05zZ8AjKWH/ugKLHqXiXC2zkMplx5ZRw3sDi8ddKk6ZOB0TeHOLhaFw==", + "dependencies": { + "Microsoft.VisualStudio.Threading": "17.2.32", + "System.Collections.Immutable": "5.0.0", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.GraphModel": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "wqjsqpWnTs3fMthNW795oySYZ65jfkHV7qw5xBJ8G0Zi+pDjNf0hoizC1ma2bVB+d8TPrJIvRJzGUjhaviOKwA==", + "dependencies": { + "Microsoft.VisualStudio.Interop": "17.2.32406.100", + "System.ComponentModel.Composition": "6.0.0" + } + }, + "Microsoft.VisualStudio.ImageCatalog": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "cKfl2RJ/7SevIlBeOAQNVGTDtpK7IOedOltdOk9W3nDmW8Uj3dmGg5bsRLv9bwSAhTxeh9Al0c9K01jgcRU29A==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100" + } + }, + "Microsoft.VisualStudio.Imaging": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "vKp3F+ORaRKd9Z2A28yTM7H6/QvmzSJE6ceVlimRSmNRFz/ANysYDwTMpCxCKbzwb5tVhlQxNIKqAFuwgYVPEQ==", + "dependencies": { + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Threading": "17.2.32", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "Microsoft.VisualStudio.Validation": "17.0.53", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "fkbGSOiS06liWHFngdU9BTM0f7+AIA3MQWk63dPUAVB7jz79oM3REAwm5eNQbkrjSe+C98Nxjhui7TV+8zh4KA==" + }, + "Microsoft.VisualStudio.Interop": { + "type": "Transitive", + "resolved": "17.10.40170", + "contentHash": "sHqM5VIAbBn5I7soTAjvNFL1c36Dsp9sKN2x2tj9Y7gxVami/o5Z+0uTMUOzHmcIOrSGeU9ldQ+OUKLUCZic8Q==" + }, + "Microsoft.VisualStudio.ProjectAggregator": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "1TuECpI8kKRAkc2kPI5Z5XHBcsJbyeG5vtAAfbYpFkNOXOkyoS8oOAX39b9Vp1jDb8jdSARfTUsdIM3BmlYE+g==" + }, + "Microsoft.VisualStudio.RemoteControl": { + "type": "Transitive", + "resolved": "16.3.44", + "contentHash": "hbc2FxReEyotRXM1dtQSZxt2ccNMBgPbcX6MylKp9UDbHsTPJ0dk5CEuZAqoqOFKUzFtorZL6A7BcRAjP9HU1g==", + "dependencies": { + "Microsoft.VisualStudio.Utilities.Internal": "16.3.36" + } + }, + "Microsoft.VisualStudio.RpcContracts": { + "type": "Transitive", + "resolved": "17.2.31", + "contentHash": "MSOsNBJv7/IFaP8aaEJtugp5OSzQgIlemTtROBBDhwQMLZGe+T2A+TofKl4PEydiX+Fwfuyged4tDmpazdUI5Q==", + "dependencies": { + "Microsoft.ServiceHub.Framework": "3.0.2061", + "StreamJsonRpc": "2.11.35" + } + }, + "Microsoft.VisualStudio.SDK.Analyzers": { + "type": "Transitive", + "resolved": "16.10.10", + "contentHash": "LuhBHy7MJJ5SjpS7J2GuHqPyL1VeqXUwYc+mTagaUCzXbNwJmLcSUAioCyQyAzPIn6qtnzuM5Lz6ULOQS3ifUA==", + "dependencies": { + "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.3.2", + "Microsoft.VisualStudio.Threading.Analyzers": "16.10.56" + } + }, + "Microsoft.VisualStudio.Shell.15.0": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "8jzfqOOZfMwtIwWkut+7MC/S8Ds0zLHmS1Ljdph2tWwIApgGPsy8Bi+0uVwb9uPhEDgEsAROOOtE8DdG5VpErg==", + "dependencies": { + "Microsoft.Build.Framework": "17.1.0", + "Microsoft.VisualStudio.ComponentModelHost": "17.2.3190", + "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", + "Microsoft.VisualStudio.ImageCatalog": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100", + "Microsoft.VisualStudio.ProjectAggregator": "17.2.32406.100", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Shell.Framework": "17.2.32406.100", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100" + } + }, + "Microsoft.VisualStudio.Shell.Framework": { + "type": "Transitive", + "resolved": "17.2.32406.100", + "contentHash": "7WD50dmv9qI2FeNE+yjJq7ewf9J9mYWimZIPnET53YBtwcqf5nA4aH0TedwdhJUWa1Blnidc9ZZvDM3YiUx84Q==", + "dependencies": { + "Microsoft.Build.Framework": "17.1.0", + "Microsoft.ServiceHub.Framework": "3.1.4097", + "Microsoft.VisualStudio.GraphModel": "17.2.32406.100", + "Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": "17.2.32406.100", + "Microsoft.VisualStudio.Interop": "17.2.32406.100", + "Microsoft.VisualStudio.SDK.Analyzers": "16.10.10", + "Microsoft.VisualStudio.Telemetry": "16.4.56", + "Microsoft.VisualStudio.Threading": "17.2.32", + "Microsoft.VisualStudio.Utilities": "17.2.32406.100", + "System.Text.Json": "6.0.0", + "System.Threading.Tasks.Dataflow": "6.0.0" + } + }, + "Microsoft.VisualStudio.Threading": { + "type": "Transitive", + "resolved": "17.6.40", + "contentHash": "hLa/0xargG7p3bF7aeq2/lRYn/bVnfZXurUWVHx+MNqxxAUjIDMKi4OIOWbYQ/DTkbn9gv8TLvgso+6EtHVQQg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading.Analyzers": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.0.71", + "Microsoft.Win32.Registry": "5.0.0", + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "Microsoft.VisualStudio.Utilities.Internal": { + "type": "Transitive", + "resolved": "16.3.36", + "contentHash": "tVOE9DJbd4PETSgBW+9448jvRdhm/hNHJFaGyCq6Gtlg+ElELBmfMFxgp2rsrqzUkLjehwnrw6uX4Yj9krOfJQ==" + }, + "Microsoft.VisualStudio.Validation": { + "type": "Transitive", + "resolved": "17.6.11", + "contentHash": "J+9L/iac6c8cwcgVSCMuoIYOlD1Jw4mbZ8XMe1IZVj8p8+3dJ46LnnkIkTRMjK7xs9UtU9MoUp1JGhWoN6fAEw==" + }, + "Microsoft.VisualStudio.Workspace": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "a1Ig/wC8eT5lF7+naSAyvO3vdeuvwHf+1wZwfViIA0iqxkBe7h1NoiX7fonuTB89TuUoPlClSB6SFYK8Hu89cQ==", + "dependencies": { + "Microsoft.IO.Redist": "4.7.1", + "Microsoft.VisualStudio.Composition": "16.4.11", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "System.Collections.Immutable": "5.0.0" + } + }, + "Microsoft.VisualStudio.Workspace.Extensions": { + "type": "Transitive", + "resolved": "17.1.11-preview-0002", + "contentHash": "8n9yl/wmaqWeX6V1MNWtPKEU9hYb2pP+Dw98sVAcGYYxc+QUAx442+7KHBsYIYPYf4Jz5pfV0242dUWCuVTNiw==", + "dependencies": { + "Microsoft.Build": "16.8.0", + "Microsoft.VisualStudio.Threading": "17.1.42-alpha", + "Microsoft.VisualStudio.Threading.Analyzers": "17.1.42-alpha", + "Microsoft.VisualStudio.Workspace": "17.1.11-preview-0002" + } + }, + "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.10.69", + "contentHash": "YIudzeVyQRJAqytjpo1jdHkh2t+vqQqyusBqb2sFSOAOGEnyOXhcHx/rQqSuCIXUDr50a3XuZnamGRfQVBOf4g==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "7.0.0", + "Microsoft.VisualStudio.Threading": "17.6.40", + "Microsoft.VisualStudio.Validation": "17.6.11", + "System.IO.Pipelines": "7.0.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.3", + "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" + }, + "OmniSharp.Extensions.JsonRpc": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "utFvrx9OYXhCS5rnfWAVeedJCrucuDLAOrKXjohf/NOjG9FFVbcp+hLqj9Ng+AxoADRD+rSJYHfBOeqGl5zW0A==", + "dependencies": { + "MediatR": "8.1.0", + "Microsoft.Extensions.DependencyInjection": "6.0.1", + "Microsoft.Extensions.Logging": "6.0.0", + "Nerdbank.Streams": "2.10.69", + "Newtonsoft.Json": "13.0.3", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9", + "System.Collections.Immutable": "5.0.0", + "System.Reactive": "6.0.0", + "System.Threading.Channels": "6.0.0" + } + }, + "OmniSharp.Extensions.JsonRpc.Generators": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "hiWC0yGcKM+K00fgiL7KBmlvULmkKNhm40ZSzxqT+jNV21r+YZgKzEREhQe40ufb4tjcIxdYkif++IzGl/3H/Q==" + }, + "OmniSharp.Extensions.LanguageProtocol": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "d0crY6w5SyunGlERP27YeUeJnJfUjvJoALFlPMU4CHu3jovG1Y8RxLpihCPX8fKdjzgy7Ii+VjFYtIpDEEQqYQ==", + "dependencies": { + "Microsoft.Extensions.Configuration": "6.0.1", + "Microsoft.Extensions.Configuration.Binder": "6.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "6.0.0", + "OmniSharp.Extensions.JsonRpc": "0.19.9", + "OmniSharp.Extensions.JsonRpc.Generators": "0.19.9" + } + }, + "OmniSharp.Extensions.LanguageServer.Shared": { + "type": "Transitive", + "resolved": "0.19.9", + "contentHash": "+p+py79MrNG3QnqRrBp5J7Wc810HFFczMH8/WLIiUqih1bqmKPFY9l/uzBvq1Ko8+YO/8tzI7BDffHvaguISEw==", + "dependencies": { + "OmniSharp.Extensions.LanguageProtocol": "0.19.9" + } + }, + "StreamJsonRpc": { + "type": "Transitive", + "resolved": "2.11.35", + "contentHash": "r2taKfcI3dmAChn0nqTLmwr3d/BXnUrIlDGF6het3NxL3sg6TntCGz60wBE4DmdlyeerMXkI5ZCC/Y4XCfetfA==", + "dependencies": { + "MessagePack": "2.3.85", + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "Microsoft.VisualStudio.Threading": "17.1.46", + "Nerdbank.Streams": "2.8.57", + "Newtonsoft.Json": "13.0.1", + "System.Collections.Immutable": "5.0.0", + "System.Diagnostics.DiagnosticSource": "6.0.0", + "System.IO.Pipelines": "6.0.1", + "System.Threading.Tasks.Dataflow": "6.0.0" + } + }, + "System.Buffers": { + "type": "Transitive", + "resolved": "4.5.1", + "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==" + }, + "System.Collections.Immutable": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", + "dependencies": { + "System.Memory": "4.5.4" + } + }, + "System.ComponentModel.Composition": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "60Qv+F7oxomOjJeTDA5Z4iCyFbQ0B/2Mi5HT+13pxxq0lVnu2ipbWMzFB+RWKr3wWKA8BSncXr9PH/fECwMX5Q==" + }, + "System.Composition": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "d7wMuKQtfsxUa7S13tITC8n1cQzewuhD5iDjZtK2prwFfKVzdYtgrTHgjaV03Zq7feGQ5gkP85tJJntXwInsJA==", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Convention": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0", + "System.Composition.TypedParts": "6.0.0" + } + }, + "System.Composition.AttributedModel": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "WK1nSDLByK/4VoC7fkNiFuTVEiperuCN/Hyn+VN30R+W2ijO1d0Z2Qm0ScEl9xkSn1G2MyapJi8xpf4R8WRa/w==" + }, + "System.Composition.Convention": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "XYi4lPRdu5bM4JVJ3/UIHAiG6V6lWWUlkhB9ab4IOq0FrRsp0F4wTyV4Dj+Ds+efoXJ3qbLqlvaUozDO7OLeXA==", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0" + } + }, + "System.Composition.Hosting": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "w/wXjj7kvxuHPLdzZ0PAUt++qJl03t7lENmb2Oev0n3zbxyNULbWBlnd5J5WUMMv15kg5o+/TCZFb6lSwfaUUQ==", + "dependencies": { + "System.Composition.Runtime": "6.0.0" + } + }, + "System.Composition.Runtime": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "qkRH/YBaMPTnzxrS5RDk1juvqed4A6HOD/CwRcDGyPpYps1J27waBddiiq1y93jk2ZZ9wuA/kynM+NO0kb3PKg==" + }, + "System.Composition.TypedParts": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "iUR1eHrL8Cwd82neQCJ00MpwNIBs4NZgXzrPqx8NJf/k4+mwBO0XCRmHYJT4OLSwDDqh5nBLJWkz5cROnrGhRA==", + "dependencies": { + "System.Composition.AttributedModel": "6.0.0", + "System.Composition.Hosting": "6.0.0", + "System.Composition.Runtime": "6.0.0" + } + }, + "System.Diagnostics.DiagnosticSource": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "frQDfv0rl209cKm1lnwTgFPzNigy2EKk1BS3uAvHvlBVKe5cymGyHO+Sj+NLv5VF/AhHsqPIUUwya5oV4CHMUw==", + "dependencies": { + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.IO.Pipelines": { + "type": "Transitive", + "resolved": "7.0.0", + "contentHash": "jRn6JYnNPW6xgQazROBLSfpdoczRw694vO5kKvMcNnpXuolEixUyw6IBuBs2Y2mlSX/LdLvyyWmfXhaI3ND1Yg==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.5", + "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.Numerics.Vectors": { + "type": "Transitive", + "resolved": "4.5.0", + "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==" + }, + "System.Reactive": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "31kfaW4ZupZzPsI5PVe77VhnvFF55qgma7KZr/E0iFTs6fmdhhG8j0mgEx620iLTey1EynOkEfnyTjtNEpJzGw==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Reflection": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==" + }, + "System.Reflection.Emit": { + "type": "Transitive", + "resolved": "4.6.0", + "contentHash": "qAo4jyXtC9i71iElngX7P2r+zLaiHzxKwf66sc3X91tL5Ks6fnQ1vxL04o7ZSm3sYfLExySL7GN8aTpNYpU1qw==" + }, + "System.Reflection.Emit.Lightweight": { + "type": "Transitive", + "resolved": "4.6.0", + "contentHash": "j/V5HVvxvBQ7uubYD0PptQW2KGsi1Pc2kZ9yfwLixv3ADdjL/4M78KyC5e+ymW612DY8ZE4PFoZmWpoNmN2mqg==" + }, + "System.Reflection.Metadata": { + "type": "Transitive", + "resolved": "1.3.0", + "contentHash": "jMSCxA4LSyKBGRDm/WtfkO03FkcgRzHxwvQRib1bm2GZ8ifKM1MX1al6breGCEQK280mdl9uQS7JNPXRYk90jw==", + "dependencies": { + "System.Collections.Immutable": "1.2.0" + } + }, + "System.Reflection.TypeExtensions": { + "type": "Transitive", + "resolved": "4.3.0", + "contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "dependencies": { + "System.Reflection": "4.3.0" + } + }, + "System.Runtime.CompilerServices.Unsafe": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==" + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Text.Encodings.Web": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "Vg8eB5Tawm1IFqj4TVK1czJX89rhFxJo9ELqc/Eiq0eXy13RK00eubyU6TJE6y+GQXjyV5gSfiewDUZjQgSE0w==", + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Runtime.CompilerServices.Unsafe": "6.0.0" + } + }, + "System.Text.Json": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "zaJsHfESQvJ11vbXnNlkrR46IaMULk/gHxYsJphzSF+07kTjPHv+Oc14w6QEOfo3Q4hqLJgStUaYB9DBl0TmWg==", + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "6.0.0", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "6.0.0", + "System.Text.Encodings.Web": "6.0.0", + "System.Threading.Tasks.Extensions": "4.5.4", + "System.ValueTuple": "4.5.0" + } + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Threading.Channels": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "TY8/9+tI0mNaUMgntOxxaq2ndTkdXqLSxvPmas7XEqOlv9lQtB7wLjYGd756lOaO7Dvb5r/WXhluM+0Xe87v5Q==", + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + } + }, + "System.Threading.Tasks.Dataflow": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "+tyDCU3/B1lDdOOAJywHQoFwyXIUghIaP2BxG79uvhfTnO+D9qIgjVlL/JV2NTliYbMHpd6eKDmHp2VHpij7MA==" + }, + "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==" + } + }, + ".NETFramework,Version=v4.7.2/linux-arm64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-musl-x64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/linux-x64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/osx-arm64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/osx-x64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/win-arm64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + }, + ".NETFramework,Version=v4.7.2/win-x64": { + "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" + } + }, + "System.Security.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==", + "dependencies": { + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows": { + "type": "Transitive", + "resolved": "5.0.0", + "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" + }, + "System.Threading.AccessControl": { + "type": "Transitive", + "resolved": "6.0.0", + "contentHash": "2258mqWesMch/xCpcnjJBgJP33yhpZLGLbEOm01qwq0efG4b+NG8c9sxYOWNxmDQ82swXrnQRl1Yp2wC1NrfZA==", + "dependencies": { + "System.Security.AccessControl": "6.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + } + } + } +} \ No newline at end of file From d0dc4b44564ae611d9820838dde5ca65efa06b58 Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Thu, 4 Jul 2024 12:17:51 -0700 Subject: [PATCH 13/15] added missing feature override --- src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs b/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs index e28ab6dc252..24aae48a262 100644 --- a/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs +++ b/src/Bicep.Core.IntegrationTests/RegistryProviderTests.cs @@ -20,6 +20,7 @@ namespace Bicep.Core.IntegrationTests; public class RegistryProviderTests : TestBase { private static readonly FeatureProviderOverrides AllFeaturesEnabled = new(ExtensibilityEnabled: true, ExtensionRegistry: true, DynamicTypeLoadingEnabled: true); + private static readonly FeatureProviderOverrides AllFeaturesEnabledForLocalDeploy = new(ExtensibilityEnabled: true, LocalDeployEnabled: true, ExtensionRegistry: true, DynamicTypeLoadingEnabled: true); [TestMethod] [TestCategory(BaselineHelper.BaselineTestCategory)] From 4b1ecf2561a9b4b716597e1f8007418e636ff834 Mon Sep 17 00:00:00 2001 From: Jorge Cotillo Date: Thu, 4 Jul 2024 13:58:26 -0700 Subject: [PATCH 14/15] minor updates and fixed tests --- src/Bicep.Core/Emit/TemplateWriter.cs | 30 ++- .../EndToEndDeploymentTests.cs | 210 +++++++++++++++++- .../ProviderExtensionTests.cs | 10 +- .../GrpcBuiltInLocalExtension.cs | 5 +- 4 files changed, 243 insertions(+), 12 deletions(-) diff --git a/src/Bicep.Core/Emit/TemplateWriter.cs b/src/Bicep.Core/Emit/TemplateWriter.cs index 3690ff88202..e1439ffb535 100644 --- a/src/Bicep.Core/Emit/TemplateWriter.cs +++ b/src/Bicep.Core/Emit/TemplateWriter.cs @@ -1080,10 +1080,36 @@ private void EmitExtensionConfig(DeclaredProviderExpression provider, Expression switch (extensionConfigType) { case StringType: - emitter.EmitProperty("type", "string"); + if (extensionConfigType.ValidationFlags.HasFlag(TypeSymbolValidationFlags.IsSecure)) + { + emitter.EmitProperty("type", "secureString"); + } + else + { + emitter.EmitProperty("type", "string"); + } + break; + case IntegerType: + emitter.EmitProperty("type", "int"); + break; + case BooleanType: + emitter.EmitProperty("type", "bool"); + break; + case ArrayType: + emitter.EmitProperty("type", "array"); + break; + case ObjectType: + if (extensionConfigType.ValidationFlags.HasFlag(TypeSymbolValidationFlags.IsSecure)) + { + emitter.EmitProperty("type", "secureObject"); + } + else + { + emitter.EmitProperty("type", "object"); + } break; default: - throw new ArgumentException($"Config name: '{extensionConfigName}' has an invalid type: '{extensionConfigType}'. Supported types are: 'string, secureString'"); + throw new ArgumentException($"Config name: '{extensionConfigName}' specified an unsupported type: '{extensionConfigType}'. Supported types are: 'string', 'secureString', 'int', 'bool', 'array', 'secureObject', 'object'."); } emitter.EmitProperty("defaultValue", providerConfigProperty.Value); diff --git a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs index 0c297ffa37d..ebd2d079f5c 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/EndToEndDeploymentTests.cs @@ -165,17 +165,17 @@ param coords { [TestMethod] public async Task Provider_returning_resource_and_error_data_should_fail() { - var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetHttpProviderTypesTgz(), new(ExtensibilityEnabled: true, ProviderRegistry: true, LocalDeployEnabled: true)); + var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetHttpProviderTypesTgz(), new(ExtensibilityEnabled: true, ExtensionRegistry: true, LocalDeployEnabled: true)); var result = await CompilationHelper.RestoreAndCompileParams(services, ("bicepconfig.json", """ { - "providers": { + "extensions": { "http": "br:example.azurecr.io/providers/foo:1.2.3" }, "experimentalFeaturesEnabled": { "extensibility": true, - "providerRegistry": true, + "extensionRegistry": true, "localDeploy": true } } @@ -245,7 +245,7 @@ param coords { } } """; - return Task.FromResult(new LocalExtensibilityOperationResponse(new Resource(req.Type, req.ApiVersion, identifiers, req.Properties, "Succeeded"), new ErrorData(new Error() { Code = "SomeCode", Target = Json.Pointer.JsonPointer.Empty, Message = "Some error message", Details = null, InnerError = null}))); + return Task.FromResult(new LocalExtensibilityOperationResponse(new Resource(req.Type, req.ApiVersion, identifiers, req.Properties, "Succeeded"), new ErrorData(new Error() { Code = "Code", Message = "Error message" }))); }); var dispatcher = BicepTestConstants.CreateModuleDispatcher(services.Build().Construct()); @@ -262,4 +262,206 @@ param coords { localDeployResult.Deployment.Properties.Error.Details[0].Code.Should().Be("ResourceDeploymentFailure"); localDeployResult.Deployment.Properties.Error.Details[0].Target.Should().Be("/resources/gridpointsReq", because: $"Expect a failure when mocking a response for \"/resources/gridpointsReq\" since it is returning '{nameof(Resource)}' and '{nameof(ErrorData)}' when only one type should be returned to indicate success or failure."); } + + [TestMethod] + public async Task Provider_not_returning_resource_or_error_data_should_fail() + { + var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetHttpProviderTypesTgz(), new(ExtensibilityEnabled: true, ExtensionRegistry: true, LocalDeployEnabled: true)); + + var result = await CompilationHelper.RestoreAndCompileParams(services, + ("bicepconfig.json", """ +{ + "extensions": { + "http": "br:example.azurecr.io/providers/foo:1.2.3" + }, + "experimentalFeaturesEnabled": { + "extensibility": true, + "extensionRegistry": true, + "localDeploy": true + } +} +"""), + ("main.bicep", """ +extension http + +param coords { + lattitude: string + longitude: string +} + +resource gridpointsReq 'request@v1' = { + uri: 'https://api.weather.gov/points/${coords.lattitude},${coords.longitude}' + format: 'raw' +} + +var gridpoints = json(gridpointsReq.body).properties + +resource forecastReq 'request@v1' = { + uri: 'https://api.weather.gov/gridpoints/${gridpoints.gridId}/${gridpoints.gridX},${gridpoints.gridY}/forecast' + format: 'raw' +} + +var forecast = json(forecastReq.body).properties + +type forecastType = { + name: string + temperature: int +} + +output forecast forecastType[] = map(forecast.periods, p => { + name: p.name + temperature: p.temperature +}) +"""), + ("parameters.bicepparam", """ +using 'main.bicep' + +param coords = { + lattitude: '47.6363726' + longitude: '-122.1357068' +} +""")); + + result.Should().NotHaveAnyDiagnostics(); + + var parametersFile = result.Compilation.Emitter.Parameters().Parameters!; + var templateFile = result.Compilation.Emitter.Parameters().Template!.Template!; + + JsonObject identifiers = new() + { + { "name", "someName" }, + { "namespace", "someNamespace" } + }; + + var providerMock = StrictMock.Of(); + providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) + .Returns((req, _) => + { + req.Properties["body"] = """ +{ + "properties": { + "gridId": "SEW", + "gridX": "131", + "gridY": "68" + } +} +"""; + return Task.FromResult(new LocalExtensibilityOperationResponse(new Resource(req.Type, req.ApiVersion, identifiers, req.Properties, "Succeeded"), new ErrorData(new Error() { Code = "Code", Message = "Error message" }))); + }); + + var dispatcher = BicepTestConstants.CreateModuleDispatcher(services.Build().Construct()); + await using LocalExtensibilityHostManager extensibilityHandler = new(dispatcher, uri => Task.FromResult(providerMock.Object)); + await extensibilityHandler.InitializeExtensions(result.Compilation); + + var localDeployResult = await LocalDeployment.Deploy(extensibilityHandler, templateFile, parametersFile, TestContext.CancellationTokenSource.Token); + + localDeployResult.Deployment.Properties.ProvisioningState.Should().Be(ProvisioningState.Failed, because: $"Provider did not return '{nameof(Resource)}' or '{nameof(ErrorData)}' as part of its response. Providers should return one or the other to indicate success or failure respectively."); + localDeployResult.Deployment.Properties.Error.Should().NotBeNull(); + + localDeployResult.Deployment.Properties.Error.Code.Should().Be("DeploymentFailed"); + localDeployResult.Deployment.Properties.Error.Details.Should().NotBeNullOrEmpty(); + localDeployResult.Deployment.Properties.Error.Details[0].Code.Should().Be("ResourceDeploymentFailure"); + localDeployResult.Deployment.Properties.Error.Details[0].Target.Should().Be("/resources/gridpointsReq", because: $"Expect a failure when mocking a response for \"/resources/gridpointsReq\" because provider it is not returning '{nameof(Resource)}' or '{nameof(ErrorData)}' and one must be returned to indicate success or failure."); + } + + [TestMethod] + public async Task Provider_returning_error_data_should_fail() + { + var services = await ProviderTestHelper.GetServiceBuilderWithPublishedProvider(ThirdPartyTypeHelper.GetHttpProviderTypesTgz(), new(ExtensibilityEnabled: true, ExtensionRegistry: true, LocalDeployEnabled: true)); + + var result = await CompilationHelper.RestoreAndCompileParams(services, + ("bicepconfig.json", """ +{ + "extensions": { + "http": "br:example.azurecr.io/providers/foo:1.2.3" + }, + "experimentalFeaturesEnabled": { + "extensibility": true, + "extensionRegistry": true, + "localDeploy": true + } +} +"""), + ("main.bicep", """ +extension http + +param coords { + lattitude: string + longitude: string +} + +resource gridpointsReq 'request@v1' = { + uri: 'https://api.weather.gov/points/${coords.lattitude},${coords.longitude}' + format: 'raw' +} + +var gridpoints = json(gridpointsReq.body).properties + +resource forecastReq 'request@v1' = { + uri: 'https://api.weather.gov/gridpoints/${gridpoints.gridId}/${gridpoints.gridX},${gridpoints.gridY}/forecast' + format: 'raw' +} + +var forecast = json(forecastReq.body).properties + +type forecastType = { + name: string + temperature: int +} + +output forecast forecastType[] = map(forecast.periods, p => { + name: p.name + temperature: p.temperature +}) +"""), + ("parameters.bicepparam", """ +using 'main.bicep' + +param coords = { + lattitude: '47.6363726' + longitude: '-122.1357068' +} +""")); + + result.Should().NotHaveAnyDiagnostics(); + + var parametersFile = result.Compilation.Emitter.Parameters().Parameters!; + var templateFile = result.Compilation.Emitter.Parameters().Template!.Template!; + + JsonObject identifiers = new() + { + { "name", "someName" }, + { "namespace", "someNamespace" } + }; + + var providerMock = StrictMock.Of(); + providerMock.Setup(x => x.CreateOrUpdate(It.Is(req => req.Properties["uri"]!.ToString() == "https://api.weather.gov/points/47.6363726,-122.1357068"), It.IsAny())) + .Returns((req, _) => + { + req.Properties["body"] = """ +{ + "properties": { + "gridId": "SEW", + "gridX": "131", + "gridY": "68" + } +} +"""; + return Task.FromResult(new LocalExtensibilityOperationResponse(new Resource(req.Type, req.ApiVersion, identifiers, req.Properties, "Succeeded"), new ErrorData(new Error() { Code = "Code", Message = "Error message" }))); + }); + + var dispatcher = BicepTestConstants.CreateModuleDispatcher(services.Build().Construct()); + await using LocalExtensibilityHostManager extensibilityHandler = new(dispatcher, uri => Task.FromResult(providerMock.Object)); + await extensibilityHandler.InitializeExtensions(result.Compilation); + + var localDeployResult = await LocalDeployment.Deploy(extensibilityHandler, templateFile, parametersFile, TestContext.CancellationTokenSource.Token); + + localDeployResult.Deployment.Properties.ProvisioningState.Should().Be(ProvisioningState.Failed, because: "Provider returned a failure when attempting to create a resource."); + localDeployResult.Deployment.Properties.Error.Should().NotBeNull(); + + localDeployResult.Deployment.Properties.Error.Code.Should().Be("DeploymentFailed"); + localDeployResult.Deployment.Properties.Error.Details.Should().NotBeNullOrEmpty(); + localDeployResult.Deployment.Properties.Error.Details[0].Code.Should().Be("ResourceDeploymentFailure"); + localDeployResult.Deployment.Properties.Error.Details[0].Target.Should().Be("/resources/gridpointsReq", because: $"Expect a failure when mocking a response for \"/resources/gridpointsReq\" because provider returned '{nameof(ErrorData)}' to indicate a failure."); + } } diff --git a/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs b/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs index 0bf4e4c5d39..65beae1b0df 100644 --- a/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs +++ b/src/Bicep.Local.Deploy.IntegrationTests/ProviderExtensionTests.cs @@ -52,10 +52,6 @@ await Task.WhenAll( await testFunc(client, cts.Token); } - catch (Exception ex) - { - Trace.TraceError(ex.Message); - } finally { await cts.CancelAsync(); @@ -145,7 +141,11 @@ await RunExtensionTest( response.Should().NotBeNull(); response.Resource.Should().NotBeNull(); response.Resource.Type.Should().Be("apps/Deployment"); - response.Resource.Identifiers.Should().Be(identifiers.ToJson()); + response.Resource.Identifiers.Should().NotBeNullOrEmpty(); + var responseIdentifiers = JsonObject.Parse(response.Resource.Identifiers)!.AsObject(); + responseIdentifiers.Should().NotBeNullOrEmpty(); + responseIdentifiers["name"]!.GetValue().Should().Be(identifiers["name"]!.GetValue()); + responseIdentifiers["namespace"]!.GetValue().Should().Be(identifiers["namespace"]!.GetValue()); }); } } diff --git a/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs b/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs index d6a9c5126f6..0f549b86dfe 100644 --- a/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs +++ b/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs @@ -106,7 +106,7 @@ private static Rpc.ResourceSpecification Convert(ExtensibilityV2.ResourceSpecifi }; private static ExtensibilityV2.ErrorData Convert(Rpc.ErrorData errorData) - => new(new ExtensibilityV2.Error(errorData.Error.Code, errorData.Error.Message, JsonPointer.Empty, Convert(errorData.Error.Details), errorData.Error.InnerError is null ? null : JsonObject.Parse(errorData.Error.InnerError)?.AsObject() ?? throw new UnreachableException())); + => new(new ExtensibilityV2.Error(errorData.Error.Code, errorData.Error.Message, JsonPointer.Empty, Convert(errorData.Error.Details), ConvertInnerError(errorData.Error.InnerError))); private static ExtensibilityV2.ErrorDetail[]? Convert(RepeatedField? details) => details is not null ? details.Select(Convert).ToArray() : null; @@ -119,6 +119,9 @@ private static LocalExtensibilityOperationResponse Convert(Rpc.LocalExtensibilit new ExtensibilityV2.Resource(response.Resource.Type, response.Resource.ApiVersion, ToJsonObject(response.Resource.Identifiers, "Parsing response identifiers failed. Please ensure is non-null or empty and is a valid JSON object."), ToJsonObject(response.Resource.Properties, "Parsing response properties failed. Please ensure is non-null or empty and is ensure is a valid JSON object."), response.Resource.Status), Convert(response.ErrorData)); + private static JsonObject? ConvertInnerError(string innerError) + => innerError is null ? null : ToJsonObject(innerError, "Parsing innerError failed. Please ensure is non-null or empty and is a valid JSON object."); + private static JsonObject ToJsonObject(string json, string errorMessage) => JsonNode.Parse(json)?.AsObject() ?? throw new ArgumentNullException(errorMessage); From 232ef21544cd1a57e1fada7c08f4f703633c4467 Mon Sep 17 00:00:00 2001 From: Anthony Martin <38542602+anthony-c-martin@users.noreply.github.com> Date: Fri, 5 Jul 2024 17:08:24 -0400 Subject: [PATCH 15/15] Fixes for issues noticed integrating with https://github.com/anthony-c-martin/bicep-local-providers --- .../GrpcBuiltInLocalExtension.cs | 47 ++++++++++++++----- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs b/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs index 0f549b86dfe..28979bf1557 100644 --- a/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs +++ b/src/Bicep.Local.Deploy/Extensibility/GrpcBuiltInLocalExtension.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.Text.Json.Nodes; +using Azure.Deployments.Extensibility.Core.V2.Json; using Bicep.Local.Extension.Rpc; using Google.Protobuf.Collections; using Json.Pointer; @@ -88,23 +89,45 @@ public override async Task Preview(Extensib => Convert(await client.PreviewAsync(Convert(request), cancellationToken: cancellationToken)); private static Rpc.ResourceReference Convert(ExtensibilityV2.ResourceReference request) - => new() + { + Rpc.ResourceReference output = new() { - ApiVersion = request.ApiVersion, - Config = request.Config.ToJson(), - Identifiers = request.Identifiers.ToJson(), - Type = request.Type + Type = request.Type, + Identifiers = request.Identifiers.ToJsonString(), }; + if (request.ApiVersion is {}) + { + output.ApiVersion = request.ApiVersion; + } + if (request.Config is {}) + { + output.Config = request.Config.ToJsonString(); + } + + return output; + } + private static Rpc.ResourceSpecification Convert(ExtensibilityV2.ResourceSpecification request) - => new() + { + Rpc.ResourceSpecification output = new() { - ApiVersion = request.ApiVersion, - Config = request.Config.ToJson(), - Properties = request.Properties.ToJson(), - Type = request.Type + Type = request.Type, + Properties = request.Properties.ToJsonString(), }; + if (request.ApiVersion is {}) + { + output.ApiVersion = request.ApiVersion; + } + if (request.Config is {}) + { + output.Config = request.Config.ToJsonString(); + } + + return output; + } + private static ExtensibilityV2.ErrorData Convert(Rpc.ErrorData errorData) => new(new ExtensibilityV2.Error(errorData.Error.Code, errorData.Error.Message, JsonPointer.Empty, Convert(errorData.Error.Details), ConvertInnerError(errorData.Error.InnerError))); @@ -116,8 +139,8 @@ private static ExtensibilityV2.ErrorDetail Convert(Rpc.ErrorDetail detail) private static LocalExtensibilityOperationResponse Convert(Rpc.LocalExtensibilityOperationResponse response) => new( - new ExtensibilityV2.Resource(response.Resource.Type, response.Resource.ApiVersion, ToJsonObject(response.Resource.Identifiers, "Parsing response identifiers failed. Please ensure is non-null or empty and is a valid JSON object."), ToJsonObject(response.Resource.Properties, "Parsing response properties failed. Please ensure is non-null or empty and is ensure is a valid JSON object."), response.Resource.Status), - Convert(response.ErrorData)); + response.Resource is {} ? new(response.Resource.Type, response.Resource.ApiVersion, ToJsonObject(response.Resource.Identifiers, "Parsing response identifiers failed. Please ensure is non-null or empty and is a valid JSON object."), ToJsonObject(response.Resource.Properties, "Parsing response properties failed. Please ensure is non-null or empty and is ensure is a valid JSON object."), response.Resource.Status) : null, + response.ErrorData is {} ? Convert(response.ErrorData) : null); private static JsonObject? ConvertInnerError(string innerError) => innerError is null ? null : ToJsonObject(innerError, "Parsing innerError failed. Please ensure is non-null or empty and is a valid JSON object.");