diff --git a/Directory.Build.targets b/Directory.Build.targets
index 8b4299de..db7cc978 100644
--- a/Directory.Build.targets
+++ b/Directory.Build.targets
@@ -11,4 +11,10 @@
false
+
+
+
+
+
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 3f941964..a52bde2e 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -5,27 +5,20 @@
-
+
+
-
-
-
-
-
-
-
-
diff --git a/Speckle.Sdk.sln b/Speckle.Sdk.sln
index b2d90631..bb0e5bbd 100644
--- a/Speckle.Sdk.sln
+++ b/Speckle.Sdk.sln
@@ -40,12 +40,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{
.github\workflows\ci.yml = .github\workflows\ci.yml
EndProjectSection
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.Sdk.Logging", "src\Speckle.Sdk.Logging\Speckle.Sdk.Logging.csproj", "{156313B4-B588-4363-A0ED-5AB3A55AA4E8}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.Sdk.Tests.Performance", "tests\Speckle.Sdk.Tests.Performance\Speckle.Sdk.Tests.Performance.csproj", "{870E3396-E6F7-43AE-B120-E651FA4F46BD}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Speckle.LongSendProblem", "tests\Speckle.LongSendProblem\Speckle.LongSendProblem.csproj", "{6B8D2DD8-AD20-4021-975C-6FDE71DC425B}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -84,14 +80,6 @@ Global
{4FB41A6D-D139-4111-8115-E3F9F6BEAF24}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FB41A6D-D139-4111-8115-E3F9F6BEAF24}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4FB41A6D-D139-4111-8115-E3F9F6BEAF24}.Release|Any CPU.Build.0 = Release|Any CPU
- {156313B4-B588-4363-A0ED-5AB3A55AA4E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {156313B4-B588-4363-A0ED-5AB3A55AA4E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {156313B4-B588-4363-A0ED-5AB3A55AA4E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {156313B4-B588-4363-A0ED-5AB3A55AA4E8}.Release|Any CPU.Build.0 = Release|Any CPU
- {6B8D2DD8-AD20-4021-975C-6FDE71DC425B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6B8D2DD8-AD20-4021-975C-6FDE71DC425B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6B8D2DD8-AD20-4021-975C-6FDE71DC425B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6B8D2DD8-AD20-4021-975C-6FDE71DC425B}.Release|Any CPU.Build.0 = Release|Any CPU
{870E3396-E6F7-43AE-B120-E651FA4F46BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{870E3396-E6F7-43AE-B120-E651FA4F46BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{870E3396-E6F7-43AE-B120-E651FA4F46BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -106,8 +94,6 @@ Global
{AA1E1E51-49AE-4F71-84B1-938E19695BE0} = {35047EE7-AD1D-4741-80A7-8F0E874718E9}
{4FB41A6D-D139-4111-8115-E3F9F6BEAF24} = {35047EE7-AD1D-4741-80A7-8F0E874718E9}
{B623BD21-5CAA-43F9-A539-1835276C220E} = {DA2AED52-58F9-471E-8AD8-102FD36129E3}
- {156313B4-B588-4363-A0ED-5AB3A55AA4E8} = {5CB96C27-FC5B-4A41-86B6-951AF99B8116}
- {6B8D2DD8-AD20-4021-975C-6FDE71DC425B} = {35047EE7-AD1D-4741-80A7-8F0E874718E9}
{870E3396-E6F7-43AE-B120-E651FA4F46BD} = {35047EE7-AD1D-4741-80A7-8F0E874718E9}
EndGlobalSection
EndGlobal
diff --git a/src/Speckle.Objects/packages.lock.json b/src/Speckle.Objects/packages.lock.json
index 97bb9b1d..6e39cf83 100644
--- a/src/Speckle.Objects/packages.lock.json
+++ b/src/Speckle.Objects/packages.lock.json
@@ -81,6 +81,63 @@
"SQLitePCLRaw.core": "2.1.4"
}
},
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==",
+ "dependencies": {
+ "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0",
+ "Microsoft.Extensions.Primitives": "3.1.0",
+ "System.ComponentModel.Annotations": "4.7.0"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==",
+ "dependencies": {
+ "System.Memory": "4.5.2",
+ "System.Runtime.CompilerServices.Unsafe": "4.7.0"
+ }
+ },
"Microsoft.NETCore.Platforms": {
"type": "Transitive",
"resolved": "1.1.0",
@@ -131,6 +188,11 @@
"resolved": "4.5.1",
"contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg=="
},
+ "System.ComponentModel.Annotations": {
+ "type": "Transitive",
+ "resolved": "4.7.0",
+ "contentHash": "0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ=="
+ },
"System.Memory": {
"type": "Transitive",
"resolved": "4.5.4",
@@ -200,18 +262,16 @@
"GraphQL.Client": "[6.0.0, )",
"Microsoft.CSharp": "[4.7.0, )",
"Microsoft.Data.Sqlite": "[7.0.7, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[3.1.0, )",
+ "Microsoft.Extensions.Logging": "[3.1.0, )",
"Polly": "[7.2.3, )",
"Polly.Contrib.WaitAndRetry": "[1.1.1, )",
"Polly.Extensions.Http": "[3.0.0, )",
"Speckle.DoubleNumerics": "[4.0.1, )",
"Speckle.Newtonsoft.Json": "[13.0.2, )",
- "Speckle.Sdk.Logging": "[1.0.0, )",
"System.Text.Json": "[5.0.2, )"
}
},
- "speckle.sdk.logging": {
- "type": "Project"
- },
"GraphQL.Client": {
"type": "CentralTransitive",
"requested": "[6.0.0, )",
@@ -239,6 +299,24 @@
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.4"
}
},
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.0, )",
+ "resolved": "3.1.0",
+ "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.0, )",
+ "resolved": "3.1.0",
+ "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "3.1.0",
+ "Microsoft.Extensions.DependencyInjection": "3.1.0",
+ "Microsoft.Extensions.Logging.Abstractions": "3.1.0",
+ "Microsoft.Extensions.Options": "3.1.0"
+ }
+ },
"Polly": {
"type": "CentralTransitive",
"requested": "[7.2.3, )",
@@ -351,6 +429,57 @@
"SQLitePCLRaw.core": "2.1.4"
}
},
+ "Microsoft.Extensions.Configuration": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "KVkv3aF2MQpmGFRh4xRx2CNbc2sjDFk+lH4ySrjWSOS+XoY1Xc+sJphw3N0iYOpoeCCq8976ceVYDH8sdx2qIQ==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg=="
+ },
+ "Microsoft.Extensions.Options": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "9b6JHY7TAXrSfZ6EEGf+j8XnqKIiMPErfmaNXhJYSCb+BUW2H4RtzkNJvwLJzwgzqBP0wtTjyA6Uw4BPPdmkMw==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "3.1.0",
+ "Microsoft.Extensions.Primitives": "3.1.0"
+ }
+ },
+ "Microsoft.Extensions.Primitives": {
+ "type": "Transitive",
+ "resolved": "3.1.0",
+ "contentHash": "LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg=="
+ },
"Microsoft.SourceLink.Common": {
"type": "Transitive",
"resolved": "8.0.0",
@@ -402,18 +531,16 @@
"GraphQL.Client": "[6.0.0, )",
"Microsoft.CSharp": "[4.7.0, )",
"Microsoft.Data.Sqlite": "[7.0.7, )",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "[3.1.0, )",
+ "Microsoft.Extensions.Logging": "[3.1.0, )",
"Polly": "[7.2.3, )",
"Polly.Contrib.WaitAndRetry": "[1.1.1, )",
"Polly.Extensions.Http": "[3.0.0, )",
"Speckle.DoubleNumerics": "[4.0.1, )",
"Speckle.Newtonsoft.Json": "[13.0.2, )",
- "Speckle.Sdk.Logging": "[1.0.0, )",
"System.Text.Json": "[5.0.2, )"
}
},
- "speckle.sdk.logging": {
- "type": "Project"
- },
"GraphQL.Client": {
"type": "CentralTransitive",
"requested": "[6.0.0, )",
@@ -441,6 +568,24 @@
"SQLitePCLRaw.bundle_e_sqlite3": "2.1.4"
}
},
+ "Microsoft.Extensions.DependencyInjection.Abstractions": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.0, )",
+ "resolved": "3.1.0",
+ "contentHash": "44rDtOf1JXXAFpNT2EXMExaDm/4OJ2RXOL9i9lE4bK427nzC7Exphv+beB6IgluyE2GIoo8zezTStMXI7MQ8WA=="
+ },
+ "Microsoft.Extensions.Logging": {
+ "type": "CentralTransitive",
+ "requested": "[3.1.0, )",
+ "resolved": "3.1.0",
+ "contentHash": "P+8sKQ8L4ooL79sxxqwFPxGGC3aBrUDLB/dZqhs4J0XjTyrkeeyJQ4D4nzJB6OnAhy78HIIgQ/RbD6upOXLynw==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "3.1.0",
+ "Microsoft.Extensions.DependencyInjection": "3.1.0",
+ "Microsoft.Extensions.Logging.Abstractions": "3.1.0",
+ "Microsoft.Extensions.Options": "3.1.0"
+ }
+ },
"Polly": {
"type": "CentralTransitive",
"requested": "[7.2.3, )",
diff --git a/src/Speckle.Sdk.Logging/Consts.cs b/src/Speckle.Sdk.Logging/Consts.cs
deleted file mode 100644
index 882153b2..00000000
--- a/src/Speckle.Sdk.Logging/Consts.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System.Reflection;
-
-namespace Speckle.Sdk.Logging;
-
-public static class Consts
-{
- public const string SERVICE_NAME = "connector.name";
- public const string SERVICE_SLUG = "connector.slug";
- public const string OS_NAME = "os.name";
- public const string OS_TYPE = "os.type";
- public const string OS_SLUG = "os.slug";
- public const string RUNTIME_NAME = "runtime.name";
-
- public static readonly string Application = "speckle-connectors";
- public static string Version => Assembly.GetExecutingAssembly().GetPackageVersion();
-
- public static string GetPackageVersion(this Assembly assembly)
- {
- // MinVer https://github.com/adamralph/minver?tab=readme-ov-file#version-numbers
- // together with Microsoft.SourceLink.GitHub https://github.com/dotnet/sourcelink
- // fills AssemblyInformationalVersionAttribute by
- // {majorVersion}.{minorVersion}.{patchVersion}.{pre-release label}.{pre-release version}.{gitHeight}+{Git SHA of current commit}
- // Ex: 1.5.0-alpha.1.40+807f703e1b4d9874a92bd86d9f2d4ebe5b5d52e4
- // The following parts are optional: pre-release label, pre-release version, git height, Git SHA of current commit
- // For package version, value of AssemblyInformationalVersionAttribute without commit hash is returned.
-
- var informationalVersion = assembly
- .GetCustomAttribute()
- ?.InformationalVersion;
- if (informationalVersion is null)
- {
- return String.Empty;
- }
-
- var indexOfPlusSign = informationalVersion.IndexOf('+');
- return indexOfPlusSign > 0 ? informationalVersion[..indexOfPlusSign] : informationalVersion;
- }
-}
diff --git a/src/Speckle.Sdk.Logging/ISpeckleLogger.cs b/src/Speckle.Sdk.Logging/ISpeckleLogger.cs
deleted file mode 100644
index 3df1a4af..00000000
--- a/src/Speckle.Sdk.Logging/ISpeckleLogger.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace Speckle.Sdk.Logging;
-
-public interface ISpeckleLogger
-{
- void Write(SpeckleLogLevel speckleLogLevel, string message, params object?[] arguments);
- void Write(SpeckleLogLevel speckleLogLevel, Exception? exception, string message, params object?[] arguments);
-
- void Debug(string message, params object?[] arguments);
- void Debug(Exception? exception, string message, params object?[] arguments);
- void Warning(string message, params object?[] arguments);
- void Warning(Exception? exception, string message, params object?[] arguments);
- void Information(string message, params object?[] arguments);
-
- void Information(Exception? exception, string message, params object?[] arguments);
-
- void Error(string message, params object?[] arguments);
- void Error(Exception? exception, string message, params object?[] arguments);
- void Fatal(Exception? exception, string message, params object?[] arguments);
-}
diff --git a/src/Speckle.Sdk.Logging/LogBuilder.cs b/src/Speckle.Sdk.Logging/LogBuilder.cs
deleted file mode 100644
index 54ed1845..00000000
--- a/src/Speckle.Sdk.Logging/LogBuilder.cs
+++ /dev/null
@@ -1,197 +0,0 @@
-using System.Diagnostics;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using OpenTelemetry.Exporter;
-using OpenTelemetry.Resources;
-using OpenTelemetry.Trace;
-using Serilog;
-using Serilog.Exceptions;
-using Serilog.Sinks.OpenTelemetry;
-
-namespace Speckle.Sdk.Logging;
-
-public static class LogBuilder
-{
- public static IDisposable? Initialize(
- string userId,
- string applicationAndVersion,
- string slug,
- SpeckleLogging? speckleLogging,
- SpeckleTracing? speckleTracing
- )
- {
- var resourceBuilder = ResourceBuilder
- .CreateEmpty()
- .AddService(serviceName: Consts.Application, serviceVersion: Consts.Version)
- .AddAttributes(
- new List>
- {
- new(Consts.SERVICE_NAME, applicationAndVersion),
- new(Consts.SERVICE_SLUG, slug),
- new(Consts.OS_NAME, Environment.OSVersion.ToString()),
- new(Consts.OS_TYPE, RuntimeInformation.ProcessArchitecture.ToString()),
- new(Consts.OS_SLUG, DetermineHostOsSlug()),
- new(Consts.RUNTIME_NAME, RuntimeInformation.FrameworkDescription)
- }
- );
- var fileVersionInfo = GetFileVersionInfo();
- var serilogLogConfiguration = new LoggerConfiguration()
- .MinimumLevel.Is(SpeckleLogger.GetLevel(speckleLogging?.MinimumLevel ?? SpeckleLogLevel.Warning))
- .Enrich.FromLogContext()
- .Enrich.WithProperty("id", userId)
- .Enrich.WithProperty("version", fileVersionInfo.FileVersion)
- .Enrich.WithProperty("productVersion", fileVersionInfo.ProductVersion)
- .Enrich.WithProperty("hostOs", DetermineHostOsSlug())
- .Enrich.WithProperty("hostOsVersion", Environment.OSVersion)
- .Enrich.WithProperty("hostOsArchitecture", RuntimeInformation.ProcessArchitecture.ToString())
- .Enrich.WithProperty("runtime", RuntimeInformation.FrameworkDescription)
- .Enrich.WithExceptionDetails();
-
- if (speckleLogging?.File is not null)
- {
- // TODO: check if we have write permissions to the file.
- var logFilePath = SpecklePathProvider.LogFolderPath(applicationAndVersion);
- logFilePath = Path.Combine(logFilePath, speckleLogging.File.Path ?? "SpeckleCoreLog.txt");
- serilogLogConfiguration = serilogLogConfiguration.WriteTo.File(
- logFilePath,
- rollingInterval: RollingInterval.Day,
- retainedFileCountLimit: 10
- );
- }
-
- if (speckleLogging?.Console ?? false)
- {
- serilogLogConfiguration = serilogLogConfiguration.WriteTo.Console();
- }
-
- if (speckleLogging?.Otel is not null)
- {
- serilogLogConfiguration = InitializeOtelLogging(serilogLogConfiguration, speckleLogging.Otel, resourceBuilder);
- }
- var logger = serilogLogConfiguration.CreateLogger();
- SpeckleLog.SpeckleLogger = logger;
-
- logger
- .ForContext("hostApplication", applicationAndVersion)
- .ForContext("userApplicationDataPath", SpecklePathProvider.UserApplicationDataPath())
- .ForContext("installApplicationDataPath", SpecklePathProvider.InstallApplicationDataPath)
- .Information(
- "Initialized logger inside {hostApplication}/{productVersion}/{version} for user {id}. Path info {userApplicationDataPath} {installApplicationDataPath}."
- );
- return InitializeOtelTracing(speckleTracing, resourceBuilder);
- }
-
- private static FileVersionInfo GetFileVersionInfo()
- {
- var assembly = Assembly.GetExecutingAssembly().Location;
- return FileVersionInfo.GetVersionInfo(assembly);
- }
-
- private static string DetermineHostOsSlug()
- {
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
- {
- return "Windows";
- }
-
- if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
- {
- return "MacOS";
- }
-
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
- {
- return "Linux";
- }
-
- return RuntimeInformation.OSDescription;
- }
-
- private static LoggerConfiguration InitializeOtelLogging(
- LoggerConfiguration serilogLogConfiguration,
- SpeckleOtelLogging speckleOtelLogging,
- ResourceBuilder resourceBuilder
- ) =>
- serilogLogConfiguration.WriteTo.OpenTelemetry(o =>
- {
- o.Protocol = OtlpProtocol.HttpProtobuf;
- o.LogsEndpoint = speckleOtelLogging.Endpoint;
- o.Headers = speckleOtelLogging.Headers ?? o.Headers;
- o.ResourceAttributes = resourceBuilder.Build().Attributes.ToDictionary(x => x.Key, x => x.Value);
- });
-
- private static IDisposable? InitializeOtelTracing(SpeckleTracing? logConfiguration, ResourceBuilder resourceBuilder)
- {
- var consoleEnabled = logConfiguration?.Console ?? false;
- var otelEnabled = logConfiguration?.Otel?.Enabled ?? false;
- if (!consoleEnabled && !otelEnabled)
- {
- return null;
- }
-
- var tracerProviderBuilder = OpenTelemetry.Sdk.CreateTracerProviderBuilder().AddSource(Consts.Application);
- tracerProviderBuilder = tracerProviderBuilder.AddHttpClientInstrumentation(
- (options) =>
- {
- options.FilterHttpWebRequest = (httpWebRequest) =>
- {
- // Example: Only collect telemetry about HTTP GET requests.
- return httpWebRequest.Method.Equals(HttpMethod.Get.Method);
- };
- options.EnrichWithHttpWebRequest = (activity, httpWebRequest) =>
- {
- activity.SetTag("requestVersion", httpWebRequest.ProtocolVersion);
- };
- // Note: Only called on .NET Framework.
- options.EnrichWithHttpWebResponse = (activity, httpWebResponse) =>
- {
- activity.SetTag("responseVersion", httpWebResponse.ProtocolVersion);
- };
- // Note: Only called on .NET & .NET Core runtimes.
- options.EnrichWithHttpRequestMessage = (activity, httpRequestMessage) =>
- {
- activity.SetTag("requestVersion", httpRequestMessage.Version);
- };
- // Note: Only called on .NET & .NET Core runtimes.
- options.EnrichWithHttpResponseMessage = (activity, httpResponseMessage) =>
- {
- activity.SetTag("responseVersion", httpResponseMessage.Version);
- };
- // Note: Called for all runtimes.
- options.EnrichWithException = (activity, exception) =>
- {
- activity.SetTag("stackTrace", exception.StackTrace);
- };
- options.RecordException = true;
- }
- );
- if (otelEnabled)
- {
- tracerProviderBuilder = tracerProviderBuilder.AddOtlpExporter(x => ProcessOptions(logConfiguration!, x));
- }
-
- if (consoleEnabled)
- {
- tracerProviderBuilder = tracerProviderBuilder.AddConsoleExporter();
- }
-
- tracerProviderBuilder = tracerProviderBuilder.SetResourceBuilder(resourceBuilder).SetSampler();
-
- return tracerProviderBuilder.Build();
- }
-
- private static void ProcessOptions(SpeckleTracing logConfiguration, OtlpExporterOptions options)
- {
- options.Protocol = OtlpExportProtocol.HttpProtobuf;
- var headers = string.Join(",", logConfiguration.Otel?.Headers?.Select(x => x.Key + "=" + x.Value) ?? []);
- if (headers.Length != 0)
- {
- options.Headers = headers;
- }
-
- if (logConfiguration.Otel?.Endpoint is not null)
- {
- options.Endpoint = new Uri(logConfiguration.Otel.Endpoint);
- }
- }
-}
diff --git a/src/Speckle.Sdk.Logging/LogExtensions.cs b/src/Speckle.Sdk.Logging/LogExtensions.cs
deleted file mode 100644
index 71ce99e2..00000000
--- a/src/Speckle.Sdk.Logging/LogExtensions.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using Microsoft.Extensions.Logging;
-
-namespace Speckle.Sdk.Logging;
-
-public static class LogExtensions
-{
- public static void Debug(this ILogger logger, string message, params object?[] arguments) =>
- logger.LogDebug(message, arguments);
-
- public static void Debug(this ILogger logger, Exception exception, string message, params object?[] arguments) =>
- logger.LogDebug(exception, message, arguments);
-
- public static void Warning(this ILogger logger, string message, params object?[] arguments) =>
- logger.LogWarning(message, arguments);
-
- public static void Warning(this ILogger logger, Exception exception, string message, params object?[] arguments) =>
- logger.LogWarning(exception, message, arguments);
-
- public static void Information(this ILogger logger, string message, params object?[] arguments) =>
- logger.LogInformation(message, arguments);
-
- public static void Information(
- this ILogger logger,
- Exception exception,
- string message,
- params object?[] arguments
- ) => logger.LogInformation(exception, message, arguments);
-
- public static void Error(this ILogger logger, string message, params object?[] arguments) =>
- logger.LogError(message, arguments);
-
- public static void Error(this ILogger logger, Exception exception, string message, params object?[] arguments) =>
- logger.LogError(exception, message, arguments);
-
- public static void Fatal(this ILogger logger, Exception exception, string message, params object?[] arguments) =>
- logger.LogCritical(exception, message, arguments);
-}
diff --git a/src/Speckle.Sdk.Logging/Speckle.Sdk.Logging.csproj b/src/Speckle.Sdk.Logging/Speckle.Sdk.Logging.csproj
deleted file mode 100644
index 1febf25c..00000000
--- a/src/Speckle.Sdk.Logging/Speckle.Sdk.Logging.csproj
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
- netstandard2.0;net8.0
- Debug;Release;Local
-
-
-
- Debug;Release;Local
- true
-
-
-
- Speckle.Sdk.Logging
- The .NET Logging SDK for Speckle
- $(PackageTags) core sdk
-
-
-
- true
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Speckle.Sdk.Logging/SpeckleActivity.cs b/src/Speckle.Sdk.Logging/SpeckleActivity.cs
deleted file mode 100644
index 0f992583..00000000
--- a/src/Speckle.Sdk.Logging/SpeckleActivity.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.Diagnostics;
-using OpenTelemetry.Trace;
-
-namespace Speckle.Sdk.Logging;
-
-public sealed class SpeckleActivity(Activity activity) : ISpeckleActivity
-{
- public void Dispose() => activity.Dispose();
-
- public void SetTag(string key, object? value) => activity.SetTag(key, value);
-
- public void RecordException(Exception e) => activity.RecordException(e);
-
- public string TraceId => activity.TraceId.ToString();
-
- public void SetStatus(SpeckleActivityStatusCode code) =>
- activity.SetStatus(
- code switch
- {
- SpeckleActivityStatusCode.Error => ActivityStatusCode.Error,
- SpeckleActivityStatusCode.Unset => ActivityStatusCode.Unset,
- SpeckleActivityStatusCode.Ok => ActivityStatusCode.Ok,
- _ => throw new ArgumentOutOfRangeException(nameof(code), code, null)
- }
- );
-}
diff --git a/src/Speckle.Sdk.Logging/SpeckleActivityFactory.cs b/src/Speckle.Sdk.Logging/SpeckleActivityFactory.cs
deleted file mode 100644
index 855fa300..00000000
--- a/src/Speckle.Sdk.Logging/SpeckleActivityFactory.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System.Diagnostics;
-using System.Runtime.CompilerServices;
-
-namespace Speckle.Sdk.Logging;
-
-public static class SpeckleActivityFactory
-{
- private static readonly ActivitySource? s_activitySource = new(Consts.Application, Consts.Version);
-
- public static ISpeckleActivity? Start(string? name = null, [CallerMemberName] string source = "")
- {
- var activity = s_activitySource?.StartActivity(name ?? source, ActivityKind.Client);
- if (activity is null)
- {
- return null;
- }
- return new SpeckleActivity(activity);
- }
-}
diff --git a/src/Speckle.Sdk.Logging/SpeckleLog.cs b/src/Speckle.Sdk.Logging/SpeckleLog.cs
deleted file mode 100644
index c5f02ea1..00000000
--- a/src/Speckle.Sdk.Logging/SpeckleLog.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-using Serilog.Core;
-
-namespace Speckle.Sdk.Logging;
-
-public static class SpeckleLog
-{
- internal static Serilog.ILogger SpeckleLogger { get; set; } = Serilog.Core.Logger.None;
- public static ISpeckleLogger Logger => new SpeckleLogger(SpeckleLogger);
-
- public static ISpeckleLogger Create(string name) =>
- new SpeckleLogger(SpeckleLogger.ForContext(Constants.SourceContextPropertyName, name));
-}
diff --git a/src/Speckle.Sdk.Logging/SpeckleLogConfiguration.cs b/src/Speckle.Sdk.Logging/SpeckleLogConfiguration.cs
deleted file mode 100644
index 9f2d6561..00000000
--- a/src/Speckle.Sdk.Logging/SpeckleLogConfiguration.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-namespace Speckle.Sdk.Logging;
-
-///
-/// Configuration object for the Speckle logging system.
-///
-
-public record SpeckleLogging(
- SpeckleLogLevel MinimumLevel = SpeckleLogLevel.Warning,
- bool Console = true,
- SpeckleFileLogging? File = null,
- SpeckleOtelLogging? Otel = null
-);
-
-public record SpeckleFileLogging(string? Path = null, bool Enabled = true);
-
-public record SpeckleOtelLogging(string Endpoint, bool Enabled = true, Dictionary? Headers = null);
-
-public record SpeckleTracing(bool Console = false, SpeckleOtelTracing? Otel = null);
-
-public record SpeckleOtelTracing(
- string? Endpoint = null,
- bool Enabled = true,
- Dictionary? Headers = null
-);
diff --git a/src/Speckle.Sdk.Logging/SpeckleLogLevel.cs b/src/Speckle.Sdk.Logging/SpeckleLogLevel.cs
deleted file mode 100644
index e84ca64e..00000000
--- a/src/Speckle.Sdk.Logging/SpeckleLogLevel.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-namespace Speckle.Sdk.Logging;
-
-public enum SpeckleLogLevel
-{
- ///
- /// Anything and everything you might want to know about
- /// a running block of code.
- ///
- Verbose,
-
- ///
- /// Internal system events that aren't necessarily
- /// observable from the outside.
- ///
- Debug,
-
- ///
- /// The lifeblood of operational intelligence - things
- /// happen.
- ///
- Information,
-
- ///
- /// Service is degraded or endangered.
- ///
- Warning,
-
- ///
- /// Functionality is unavailable, invariants are broken
- /// or data is lost.
- ///
- Error,
-
- ///
- /// If you have a pager, it goes off when one of these
- /// occurs.
- ///
- Fatal
-}
diff --git a/src/Speckle.Sdk.Logging/SpeckleLogger.cs b/src/Speckle.Sdk.Logging/SpeckleLogger.cs
deleted file mode 100644
index 326fb238..00000000
--- a/src/Speckle.Sdk.Logging/SpeckleLogger.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using Serilog;
-using Serilog.Events;
-
-namespace Speckle.Sdk.Logging;
-
-internal sealed class SpeckleLogger : ISpeckleLogger
-{
- private readonly Serilog.ILogger _logger;
-
- public SpeckleLogger(ILogger logger)
- {
- _logger = logger;
- }
-
- internal static LogEventLevel GetLevel(SpeckleLogLevel speckleLogLevel) =>
- speckleLogLevel switch
- {
- SpeckleLogLevel.Debug => LogEventLevel.Debug,
- SpeckleLogLevel.Verbose => LogEventLevel.Verbose,
- SpeckleLogLevel.Information => LogEventLevel.Information,
- SpeckleLogLevel.Warning => LogEventLevel.Warning,
- SpeckleLogLevel.Error => LogEventLevel.Error,
- SpeckleLogLevel.Fatal => LogEventLevel.Fatal,
- _ => throw new ArgumentOutOfRangeException(nameof(speckleLogLevel), speckleLogLevel, null)
- };
-
- public void Write(SpeckleLogLevel speckleLogLevel, string message, params object?[] arguments) =>
- _logger.Write(GetLevel(speckleLogLevel), message, arguments);
-
- public void Write(
- SpeckleLogLevel speckleLogLevel,
- Exception? exception,
- string message,
- params object?[] arguments
- ) => _logger.Write(GetLevel(speckleLogLevel), exception, message, arguments);
-
- public void Debug(string message, params object?[] arguments) => _logger.Debug(message, arguments);
-
- public void Debug(Exception? exception, string message, params object?[] arguments) =>
- _logger.Debug(exception, message, arguments);
-
- public void Warning(string message, params object?[] arguments) => _logger.Warning(message, arguments);
-
- public void Warning(Exception? exception, string message, params object?[] arguments) =>
- _logger.Warning(exception, message, arguments);
-
- public void Information(string message, params object?[] arguments) => _logger.Information(message, arguments);
-
- public void Information(Exception? exception, string message, params object?[] arguments) =>
- _logger.Information(exception, message, arguments);
-
- public void Error(string message, params object?[] arguments) => _logger.Error(message, arguments);
-
- public void Error(Exception? exception, string message, params object?[] arguments) =>
- _logger.Error(exception, message, arguments);
-
- public void Fatal(Exception? exception, string message, params object?[] arguments) =>
- _logger.Fatal(exception, message, arguments);
-}
diff --git a/src/Speckle.Sdk.Logging/packages.lock.json b/src/Speckle.Sdk.Logging/packages.lock.json
deleted file mode 100644
index 855713a7..00000000
--- a/src/Speckle.Sdk.Logging/packages.lock.json
+++ /dev/null
@@ -1,753 +0,0 @@
-{
- "version": 2,
- "dependencies": {
- ".NETStandard,Version=v2.0": {
- "GitVersion.MsBuild": {
- "type": "Direct",
- "requested": "[5.12.0, )",
- "resolved": "5.12.0",
- "contentHash": "dJuigXycpJNOiLT9or7mkHSkGFHgGW3/p6cNNYEKZBa7Hhp1FdX/cvqYWWYhRLpfoZOedeA7aRbYiOB3vW/dvA=="
- },
- "ILRepack.FullAuto": {
- "type": "Direct",
- "requested": "[1.6.0, )",
- "resolved": "1.6.0",
- "contentHash": "34qp/HQ0XRIWCjtNGUOslJ6p9eNWqHXZQ+xx1iBCvXy3mj8tEiqIwRG+LubFyKCJITqMh5cpFvFl20/6+Dmy+g==",
- "dependencies": {
- "ILRepack": "2.0.33"
- }
- },
- "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"
- }
- },
- "NETStandard.Library": {
- "type": "Direct",
- "requested": "[2.0.3, )",
- "resolved": "2.0.3",
- "contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0"
- }
- },
- "OpenTelemetry.Exporter.Console": {
- "type": "Direct",
- "requested": "[1.9.0, )",
- "resolved": "1.9.0",
- "contentHash": "TbScDLSc6kcji+/wZYIf8/HBV2SnttzN7PNxr3TYczlmGlU4K2ugujp6seSktEO4OaAvKRd7Y3CG3SKNj0C+1Q==",
- "dependencies": {
- "OpenTelemetry": "1.9.0",
- "System.Text.Encodings.Web": "4.7.2",
- "System.Text.Json": "4.7.2"
- }
- },
- "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
- "type": "Direct",
- "requested": "[1.9.0, )",
- "resolved": "1.9.0",
- "contentHash": "qzFOP3V2eYIVbug3U4BJzzidHe9JhAJ42WZ/H8pUp/45Ry3MQQg/+e/ZieClJcxKnpbkXi7dUq1rpvuNp+yBYA==",
- "dependencies": {
- "Google.Protobuf": "[3.22.5, 4.0.0)",
- "Grpc": "[2.44.0, 3.0.0)",
- "Microsoft.Extensions.Configuration.Binder": "8.0.1",
- "OpenTelemetry": "1.9.0"
- }
- },
- "OpenTelemetry.Instrumentation.Http": {
- "type": "Direct",
- "requested": "[1.9.0, )",
- "resolved": "1.9.0",
- "contentHash": "+ZXppf8Qxz3OdC803T8fB6i8iSscc8PsxMnM/JizSOYmkz+8vGiScEiaBBBFNZtMh2KpA0q+qxwnSwQUkbvzog==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.9.0, 2.0.0)"
- }
- },
- "PolySharp": {
- "type": "Direct",
- "requested": "[1.14.1, )",
- "resolved": "1.14.1",
- "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ=="
- },
- "Serilog": {
- "type": "Direct",
- "requested": "[4.0.1, )",
- "resolved": "4.0.1",
- "contentHash": "pzeDRXdpSLSsgBHpZcmpIDxqMy845Ab4s+dfnBg0sN9h8q/4Wo3vAoe0QCGPze1Q06EVtEPupS+UvLm8iXQmTQ==",
- "dependencies": {
- "System.Diagnostics.DiagnosticSource": "8.0.1",
- "System.Threading.Channels": "8.0.0"
- }
- },
- "Serilog.Exceptions": {
- "type": "Direct",
- "requested": "[8.4.0, )",
- "resolved": "8.4.0",
- "contentHash": "nc/+hUw3lsdo0zCj0KMIybAu7perMx79vu72w0za9Nsi6mWyNkGXxYxakAjWB7nEmYL6zdmhEQRB4oJ2ALUeug==",
- "dependencies": {
- "Serilog": "2.8.0",
- "System.Reflection.TypeExtensions": "4.7.0"
- }
- },
- "Serilog.Sinks.Console": {
- "type": "Direct",
- "requested": "[6.0.0, )",
- "resolved": "6.0.0",
- "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
- "dependencies": {
- "Serilog": "4.0.0"
- }
- },
- "Serilog.Sinks.File": {
- "type": "Direct",
- "requested": "[6.0.0, )",
- "resolved": "6.0.0",
- "contentHash": "lxjg89Y8gJMmFxVkbZ+qDgjl+T4yC5F7WSLTvA+5q0R04tfKVLRL/EHpYoJ/MEQd2EeCKDuylBIVnAYMotmh2A==",
- "dependencies": {
- "Serilog": "4.0.0"
- }
- },
- "Serilog.Sinks.OpenTelemetry": {
- "type": "Direct",
- "requested": "[4.0.0, )",
- "resolved": "4.0.0",
- "contentHash": "M4WKDojg8a+msY5qhNGg5PYZ9ZVelcqipkP/CrfDAOvGCZ3MYj+cGXgnTanffYyIoC2onabaOtydqW6lqT/P/w==",
- "dependencies": {
- "Google.Protobuf": "3.26.1",
- "Grpc.Net.Client": "2.62.0",
- "Serilog": "4.0.0"
- }
- },
- "Speckle.InterfaceGenerator": {
- "type": "Direct",
- "requested": "[0.9.6, )",
- "resolved": "0.9.6",
- "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w=="
- },
- "Google.Protobuf": {
- "type": "Transitive",
- "resolved": "3.26.1",
- "contentHash": "CHZX8zXqhF/fdUtd+AYzew8T2HFkAoe5c7lbGxZY/qryAlQXckDvM5BfOJjXlMS7kyICqQTMszj4w1bX5uBJ/w==",
- "dependencies": {
- "System.Memory": "4.5.3",
- "System.Runtime.CompilerServices.Unsafe": "4.5.2"
- }
- },
- "Grpc": {
- "type": "Transitive",
- "resolved": "2.44.0",
- "contentHash": "9a6FybBPcVMAxSXMTbwYxBmAe7dG+hMMSTrar4lccIXZxUNQM9zMEMzMqih1QTypdLv6udf1+oVOTf11T4c/sQ==",
- "dependencies": {
- "Grpc.Core": "2.44.0"
- }
- },
- "Grpc.Core": {
- "type": "Transitive",
- "resolved": "2.44.0",
- "contentHash": "H2rTNePSYeEqUgBBqiE5KZ/yOX7jEtETjWjv4gGtnYxrlpZ79VAHe+4KtZAnt2KJMiGvqTm7eo1SPk+QpiPfaw==",
- "dependencies": {
- "Grpc.Core.Api": "2.44.0",
- "System.Memory": "4.5.3"
- }
- },
- "Grpc.Core.Api": {
- "type": "Transitive",
- "resolved": "2.62.0",
- "contentHash": "q4Jj6bRZHNnE4CMLqgjiBUCKLit+tRr0simZsS2W6U++akd7CzXByeKy2tddqT68hFzP2XzceXA2YtBTfWtixA==",
- "dependencies": {
- "System.Memory": "4.5.3"
- }
- },
- "Grpc.Net.Client": {
- "type": "Transitive",
- "resolved": "2.62.0",
- "contentHash": "C7HxLt+wWPTpPFORRHkxxtDLL+K/jXSmZBaPLhFM8AEkN0bYjklIfCwnzajn1gcbRcEETBb0WnRgHJdVzpwbCg==",
- "dependencies": {
- "Grpc.Net.Common": "2.62.0",
- "Microsoft.Extensions.Logging.Abstractions": "6.0.0",
- "System.Diagnostics.DiagnosticSource": "6.0.1"
- }
- },
- "Grpc.Net.Common": {
- "type": "Transitive",
- "resolved": "2.62.0",
- "contentHash": "eBv5I4RPWfdezGXqooU5hs3+XcfVMLk5XDlA4G/Nd9TMX78ZGrFl/lM1Ad187zgBLmH7WPAgfjKRWLBwaa1Wbw==",
- "dependencies": {
- "Grpc.Core.Api": "2.62.0"
- }
- },
- "ILRepack": {
- "type": "Transitive",
- "resolved": "2.0.33",
- "contentHash": "xb2h1CsOepoYwdXEPui9VcQglwABQwNf9cccZbf+acarEzF5PUp8Xx71nFXIhOgEdm6wrxAoF6xAxK4m/XFRUQ=="
- },
- "Microsoft.Bcl.AsyncInterfaces": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "3WA9q9yVqJp222P3x1wYIGDAkpjAku0TMUaaQV22g6L67AI0LdOIrVS7Ht2vJfLHGSPVuqN94vIr15qn+HEkHw==",
- "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.Extensions.Configuration": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
- "Microsoft.Extensions.Primitives": "8.0.0"
- }
- },
- "Microsoft.Extensions.Configuration.Abstractions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
- "dependencies": {
- "Microsoft.Extensions.Primitives": "8.0.0"
- }
- },
- "Microsoft.Extensions.Configuration.Binder": {
- "type": "Transitive",
- "resolved": "8.0.1",
- "contentHash": "2UKFJnLiBt7Od6nCnTqP9rTIUNhzmn9Hv1l2FchyKbz8xieB9ULwZTbQZMw+M24Qw3F5dzzH1U9PPleN0LNLOQ==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
- }
- },
- "Microsoft.Extensions.DependencyInjection": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==",
- "dependencies": {
- "Microsoft.Bcl.AsyncInterfaces": "8.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "System.Threading.Tasks.Extensions": "4.5.4"
- }
- },
- "Microsoft.Extensions.DependencyInjection.Abstractions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "cjWrLkJXK0rs4zofsK4bSdg+jhDLTaxrkXu4gS6Y7MAlCvRyNNgwY/lJi5RDlQOnSZweHqoyvgvbdvQsRIW+hg==",
- "dependencies": {
- "Microsoft.Bcl.AsyncInterfaces": "8.0.0",
- "System.Threading.Tasks.Extensions": "4.5.4"
- }
- },
- "Microsoft.Extensions.Diagnostics.Abstractions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "System.Buffers": "4.5.1",
- "System.Diagnostics.DiagnosticSource": "8.0.0",
- "System.Memory": "4.5.5"
- }
- },
- "Microsoft.Extensions.Logging": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==",
- "dependencies": {
- "Microsoft.Bcl.AsyncInterfaces": "8.0.0",
- "Microsoft.Extensions.DependencyInjection": "8.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "System.Diagnostics.DiagnosticSource": "8.0.0"
- }
- },
- "Microsoft.Extensions.Logging.Abstractions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "arDBqTgFCyS0EvRV7O3MZturChstm50OJ0y9bDJvAcmEPJm0FFpFyjU/JLYyStNGGey081DvnQYlncNX5SJJGA==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "System.Buffers": "4.5.1",
- "System.Memory": "4.5.5"
- }
- },
- "Microsoft.Extensions.Logging.Configuration": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "ixXXV0G/12g6MXK65TLngYN9V5hQQRuV+fZi882WIoVJT7h5JvoYoxTEwCgdqwLjSneqh1O+66gM8sMr9z/rsQ==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "8.0.0",
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
- "Microsoft.Extensions.Configuration.Binder": "8.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "Microsoft.Extensions.Logging": "8.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0"
- }
- },
- "Microsoft.Extensions.Options": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "Microsoft.Extensions.Primitives": "8.0.0",
- "System.ComponentModel.Annotations": "5.0.0"
- }
- },
- "Microsoft.Extensions.Options.ConfigurationExtensions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
- "Microsoft.Extensions.Configuration.Binder": "8.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "Microsoft.Extensions.Primitives": "8.0.0"
- }
- },
- "Microsoft.Extensions.Primitives": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==",
- "dependencies": {
- "System.Memory": "4.5.5",
- "System.Runtime.CompilerServices.Unsafe": "6.0.0"
- }
- },
- "Microsoft.NETCore.Platforms": {
- "type": "Transitive",
- "resolved": "1.1.0",
- "contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
- },
- "Microsoft.SourceLink.Common": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw=="
- },
- "OpenTelemetry": {
- "type": "Transitive",
- "resolved": "1.9.0",
- "contentHash": "7scS6BUhwYeSXEDGhCxMSezmvyCoDU5kFQbmfyW9iVvVTcWhec+1KIN33/LOCdBXRkzt2y7+g03mkdAB0XZ9Fw==",
- "dependencies": {
- "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0",
- "Microsoft.Extensions.Logging.Configuration": "8.0.0",
- "OpenTelemetry.Api.ProviderBuilderExtensions": "1.9.0"
- }
- },
- "OpenTelemetry.Api": {
- "type": "Transitive",
- "resolved": "1.9.0",
- "contentHash": "Xz8ZvM1Lm0m7BbtGBnw2JlPo++YKyMp08zMK5p0mf+cIi5jeMt2+QsYu9X6YEAbjCxBQYwEak5Z8sY6Ig2WcwQ==",
- "dependencies": {
- "System.Diagnostics.DiagnosticSource": "8.0.0"
- }
- },
- "OpenTelemetry.Api.ProviderBuilderExtensions": {
- "type": "Transitive",
- "resolved": "1.9.0",
- "contentHash": "L0D4LBR5JFmwLun5MCWVGapsJLV0ANZ+XXu9NEI3JE/HRKkRuUO+J2MuHD5DBwiU//QMYYM4B22oev1hVLoHDQ==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "OpenTelemetry.Api": "1.9.0"
- }
- },
- "System.Buffers": {
- "type": "Transitive",
- "resolved": "4.5.1",
- "contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg=="
- },
- "System.ComponentModel.Annotations": {
- "type": "Transitive",
- "resolved": "5.0.0",
- "contentHash": "dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg=="
- },
- "System.Diagnostics.DiagnosticSource": {
- "type": "Transitive",
- "resolved": "8.0.1",
- "contentHash": "vaoWjvkG1aenR2XdjaVivlCV9fADfgyhW5bZtXT23qaEea0lWiUljdQuze4E31vKM7ZWJaSUsbYIKE3rnzfZUg==",
- "dependencies": {
- "System.Memory": "4.5.5",
- "System.Runtime.CompilerServices.Unsafe": "6.0.0"
- }
- },
- "System.Memory": {
- "type": "Transitive",
- "resolved": "4.5.5",
- "contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
- "dependencies": {
- "System.Buffers": "4.5.1",
- "System.Numerics.Vectors": "4.4.0",
- "System.Runtime.CompilerServices.Unsafe": "4.5.3"
- }
- },
- "System.Numerics.Vectors": {
- "type": "Transitive",
- "resolved": "4.5.0",
- "contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ=="
- },
- "System.Reflection.TypeExtensions": {
- "type": "Transitive",
- "resolved": "4.7.0",
- "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
- },
- "System.Runtime.CompilerServices.Unsafe": {
- "type": "Transitive",
- "resolved": "6.0.0",
- "contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg=="
- },
- "System.Text.Encodings.Web": {
- "type": "Transitive",
- "resolved": "4.7.2",
- "contentHash": "iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==",
- "dependencies": {
- "System.Buffers": "4.5.1",
- "System.Memory": "4.5.4"
- }
- },
- "System.Threading.Channels": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "CMaFr7v+57RW7uZfZkPExsPB6ljwzhjACWW1gfU35Y56rk72B/Wu+sTqxVmGSk4SFUlPc3cjeKND0zktziyjBA==",
- "dependencies": {
- "System.Threading.Tasks.Extensions": "4.5.4"
- }
- },
- "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.Text.Json": {
- "type": "CentralTransitive",
- "requested": "[5.0.2, )",
- "resolved": "4.7.2",
- "contentHash": "TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg==",
- "dependencies": {
- "Microsoft.Bcl.AsyncInterfaces": "1.1.0",
- "System.Buffers": "4.5.1",
- "System.Memory": "4.5.4",
- "System.Numerics.Vectors": "4.5.0",
- "System.Runtime.CompilerServices.Unsafe": "4.7.1",
- "System.Text.Encodings.Web": "4.7.1",
- "System.Threading.Tasks.Extensions": "4.5.4"
- }
- }
- },
- "net8.0": {
- "GitVersion.MsBuild": {
- "type": "Direct",
- "requested": "[5.12.0, )",
- "resolved": "5.12.0",
- "contentHash": "dJuigXycpJNOiLT9or7mkHSkGFHgGW3/p6cNNYEKZBa7Hhp1FdX/cvqYWWYhRLpfoZOedeA7aRbYiOB3vW/dvA=="
- },
- "ILRepack.FullAuto": {
- "type": "Direct",
- "requested": "[1.6.0, )",
- "resolved": "1.6.0",
- "contentHash": "34qp/HQ0XRIWCjtNGUOslJ6p9eNWqHXZQ+xx1iBCvXy3mj8tEiqIwRG+LubFyKCJITqMh5cpFvFl20/6+Dmy+g==",
- "dependencies": {
- "ILRepack": "2.0.33"
- }
- },
- "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"
- }
- },
- "OpenTelemetry.Exporter.Console": {
- "type": "Direct",
- "requested": "[1.9.0, )",
- "resolved": "1.9.0",
- "contentHash": "TbScDLSc6kcji+/wZYIf8/HBV2SnttzN7PNxr3TYczlmGlU4K2ugujp6seSktEO4OaAvKRd7Y3CG3SKNj0C+1Q==",
- "dependencies": {
- "OpenTelemetry": "1.9.0"
- }
- },
- "OpenTelemetry.Exporter.OpenTelemetryProtocol": {
- "type": "Direct",
- "requested": "[1.9.0, )",
- "resolved": "1.9.0",
- "contentHash": "qzFOP3V2eYIVbug3U4BJzzidHe9JhAJ42WZ/H8pUp/45Ry3MQQg/+e/ZieClJcxKnpbkXi7dUq1rpvuNp+yBYA==",
- "dependencies": {
- "Google.Protobuf": "[3.22.5, 4.0.0)",
- "Grpc.Net.Client": "[2.52.0, 3.0.0)",
- "Microsoft.Extensions.Configuration.Binder": "8.0.1",
- "OpenTelemetry": "1.9.0"
- }
- },
- "OpenTelemetry.Instrumentation.Http": {
- "type": "Direct",
- "requested": "[1.9.0, )",
- "resolved": "1.9.0",
- "contentHash": "+ZXppf8Qxz3OdC803T8fB6i8iSscc8PsxMnM/JizSOYmkz+8vGiScEiaBBBFNZtMh2KpA0q+qxwnSwQUkbvzog==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "OpenTelemetry.Api.ProviderBuilderExtensions": "[1.9.0, 2.0.0)"
- }
- },
- "PolySharp": {
- "type": "Direct",
- "requested": "[1.14.1, )",
- "resolved": "1.14.1",
- "contentHash": "mOOmFYwad3MIOL14VCjj02LljyF1GNw1wP0YVlxtcPvqdxjGGMNdNJJxHptlry3MOd8b40Flm8RPOM8JOlN2sQ=="
- },
- "Serilog": {
- "type": "Direct",
- "requested": "[4.0.1, )",
- "resolved": "4.0.1",
- "contentHash": "pzeDRXdpSLSsgBHpZcmpIDxqMy845Ab4s+dfnBg0sN9h8q/4Wo3vAoe0QCGPze1Q06EVtEPupS+UvLm8iXQmTQ=="
- },
- "Serilog.Exceptions": {
- "type": "Direct",
- "requested": "[8.4.0, )",
- "resolved": "8.4.0",
- "contentHash": "nc/+hUw3lsdo0zCj0KMIybAu7perMx79vu72w0za9Nsi6mWyNkGXxYxakAjWB7nEmYL6zdmhEQRB4oJ2ALUeug==",
- "dependencies": {
- "Serilog": "2.8.0",
- "System.Reflection.TypeExtensions": "4.7.0"
- }
- },
- "Serilog.Sinks.Console": {
- "type": "Direct",
- "requested": "[6.0.0, )",
- "resolved": "6.0.0",
- "contentHash": "fQGWqVMClCP2yEyTXPIinSr5c+CBGUvBybPxjAGcf7ctDhadFhrQw03Mv8rJ07/wR5PDfFjewf2LimvXCDzpbA==",
- "dependencies": {
- "Serilog": "4.0.0"
- }
- },
- "Serilog.Sinks.File": {
- "type": "Direct",
- "requested": "[6.0.0, )",
- "resolved": "6.0.0",
- "contentHash": "lxjg89Y8gJMmFxVkbZ+qDgjl+T4yC5F7WSLTvA+5q0R04tfKVLRL/EHpYoJ/MEQd2EeCKDuylBIVnAYMotmh2A==",
- "dependencies": {
- "Serilog": "4.0.0"
- }
- },
- "Serilog.Sinks.OpenTelemetry": {
- "type": "Direct",
- "requested": "[4.0.0, )",
- "resolved": "4.0.0",
- "contentHash": "M4WKDojg8a+msY5qhNGg5PYZ9ZVelcqipkP/CrfDAOvGCZ3MYj+cGXgnTanffYyIoC2onabaOtydqW6lqT/P/w==",
- "dependencies": {
- "Google.Protobuf": "3.26.1",
- "Grpc.Net.Client": "2.62.0",
- "Serilog": "4.0.0"
- }
- },
- "Speckle.InterfaceGenerator": {
- "type": "Direct",
- "requested": "[0.9.6, )",
- "resolved": "0.9.6",
- "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w=="
- },
- "Google.Protobuf": {
- "type": "Transitive",
- "resolved": "3.26.1",
- "contentHash": "CHZX8zXqhF/fdUtd+AYzew8T2HFkAoe5c7lbGxZY/qryAlQXckDvM5BfOJjXlMS7kyICqQTMszj4w1bX5uBJ/w=="
- },
- "Grpc.Core.Api": {
- "type": "Transitive",
- "resolved": "2.62.0",
- "contentHash": "q4Jj6bRZHNnE4CMLqgjiBUCKLit+tRr0simZsS2W6U++akd7CzXByeKy2tddqT68hFzP2XzceXA2YtBTfWtixA=="
- },
- "Grpc.Net.Client": {
- "type": "Transitive",
- "resolved": "2.62.0",
- "contentHash": "C7HxLt+wWPTpPFORRHkxxtDLL+K/jXSmZBaPLhFM8AEkN0bYjklIfCwnzajn1gcbRcEETBb0WnRgHJdVzpwbCg==",
- "dependencies": {
- "Grpc.Net.Common": "2.62.0",
- "Microsoft.Extensions.Logging.Abstractions": "6.0.0"
- }
- },
- "Grpc.Net.Common": {
- "type": "Transitive",
- "resolved": "2.62.0",
- "contentHash": "eBv5I4RPWfdezGXqooU5hs3+XcfVMLk5XDlA4G/Nd9TMX78ZGrFl/lM1Ad187zgBLmH7WPAgfjKRWLBwaa1Wbw==",
- "dependencies": {
- "Grpc.Core.Api": "2.62.0"
- }
- },
- "ILRepack": {
- "type": "Transitive",
- "resolved": "2.0.33",
- "contentHash": "xb2h1CsOepoYwdXEPui9VcQglwABQwNf9cccZbf+acarEzF5PUp8Xx71nFXIhOgEdm6wrxAoF6xAxK4m/XFRUQ=="
- },
- "Microsoft.Build.Tasks.Git": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "bZKfSIKJRXLTuSzLudMFte/8CempWjVamNUR5eHJizsy+iuOuO/k2gnh7W0dHJmYY0tBf+gUErfluCv5mySAOQ=="
- },
- "Microsoft.Extensions.Configuration": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
- "Microsoft.Extensions.Primitives": "8.0.0"
- }
- },
- "Microsoft.Extensions.Configuration.Abstractions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
- "dependencies": {
- "Microsoft.Extensions.Primitives": "8.0.0"
- }
- },
- "Microsoft.Extensions.Configuration.Binder": {
- "type": "Transitive",
- "resolved": "8.0.1",
- "contentHash": "2UKFJnLiBt7Od6nCnTqP9rTIUNhzmn9Hv1l2FchyKbz8xieB9ULwZTbQZMw+M24Qw3F5dzzH1U9PPleN0LNLOQ==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
- }
- },
- "Microsoft.Extensions.DependencyInjection": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
- }
- },
- "Microsoft.Extensions.DependencyInjection.Abstractions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "cjWrLkJXK0rs4zofsK4bSdg+jhDLTaxrkXu4gS6Y7MAlCvRyNNgwY/lJi5RDlQOnSZweHqoyvgvbdvQsRIW+hg=="
- },
- "Microsoft.Extensions.Diagnostics.Abstractions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "JHYCQG7HmugNYUhOl368g+NMxYE/N/AiclCYRNlgCY9eVyiBkOHMwK4x60RYMxv9EL3+rmj1mqHvdCiPpC+D4Q==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "System.Diagnostics.DiagnosticSource": "8.0.0"
- }
- },
- "Microsoft.Extensions.Logging": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection": "8.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0"
- }
- },
- "Microsoft.Extensions.Logging.Abstractions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "arDBqTgFCyS0EvRV7O3MZturChstm50OJ0y9bDJvAcmEPJm0FFpFyjU/JLYyStNGGey081DvnQYlncNX5SJJGA==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0"
- }
- },
- "Microsoft.Extensions.Logging.Configuration": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "ixXXV0G/12g6MXK65TLngYN9V5hQQRuV+fZi882WIoVJT7h5JvoYoxTEwCgdqwLjSneqh1O+66gM8sMr9z/rsQ==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "8.0.0",
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
- "Microsoft.Extensions.Configuration.Binder": "8.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "Microsoft.Extensions.Logging": "8.0.0",
- "Microsoft.Extensions.Logging.Abstractions": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0"
- }
- },
- "Microsoft.Extensions.Options": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "Microsoft.Extensions.Primitives": "8.0.0"
- }
- },
- "Microsoft.Extensions.Options.ConfigurationExtensions": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==",
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
- "Microsoft.Extensions.Configuration.Binder": "8.0.0",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "Microsoft.Extensions.Options": "8.0.0",
- "Microsoft.Extensions.Primitives": "8.0.0"
- }
- },
- "Microsoft.Extensions.Primitives": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g=="
- },
- "Microsoft.SourceLink.Common": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "dk9JPxTCIevS75HyEQ0E4OVAFhB2N+V9ShCXf8Q6FkUQZDkgLI12y679Nym1YqsiSysuQskT7Z+6nUf3yab6Vw=="
- },
- "OpenTelemetry": {
- "type": "Transitive",
- "resolved": "1.9.0",
- "contentHash": "7scS6BUhwYeSXEDGhCxMSezmvyCoDU5kFQbmfyW9iVvVTcWhec+1KIN33/LOCdBXRkzt2y7+g03mkdAB0XZ9Fw==",
- "dependencies": {
- "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0",
- "Microsoft.Extensions.Logging.Configuration": "8.0.0",
- "OpenTelemetry.Api.ProviderBuilderExtensions": "1.9.0"
- }
- },
- "OpenTelemetry.Api": {
- "type": "Transitive",
- "resolved": "1.9.0",
- "contentHash": "Xz8ZvM1Lm0m7BbtGBnw2JlPo++YKyMp08zMK5p0mf+cIi5jeMt2+QsYu9X6YEAbjCxBQYwEak5Z8sY6Ig2WcwQ==",
- "dependencies": {
- "System.Diagnostics.DiagnosticSource": "8.0.0"
- }
- },
- "OpenTelemetry.Api.ProviderBuilderExtensions": {
- "type": "Transitive",
- "resolved": "1.9.0",
- "contentHash": "L0D4LBR5JFmwLun5MCWVGapsJLV0ANZ+XXu9NEI3JE/HRKkRuUO+J2MuHD5DBwiU//QMYYM4B22oev1hVLoHDQ==",
- "dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
- "OpenTelemetry.Api": "1.9.0"
- }
- },
- "System.Diagnostics.DiagnosticSource": {
- "type": "Transitive",
- "resolved": "8.0.0",
- "contentHash": "c9xLpVz6PL9lp/djOWtk5KPDZq3cSYpmXoJQY524EOtuFl5z9ZtsotpsyrDW40U1DRnQSYvcPKEUV0X//u6gkQ=="
- },
- "System.Reflection.TypeExtensions": {
- "type": "Transitive",
- "resolved": "4.7.0",
- "contentHash": "VybpaOQQhqE6siHppMktjfGBw1GCwvCqiufqmP8F1nj7fTUNtW35LOEt3UZTEsECfo+ELAl/9o9nJx3U91i7vA=="
- }
- }
- }
-}
\ No newline at end of file
diff --git a/src/Speckle.Sdk/Api/GraphQL/Client.cs b/src/Speckle.Sdk/Api/GraphQL/Client.cs
index bf3300cf..d80618a5 100644
--- a/src/Speckle.Sdk/Api/GraphQL/Client.cs
+++ b/src/Speckle.Sdk/Api/GraphQL/Client.cs
@@ -4,6 +4,7 @@
using System.Reflection;
using GraphQL;
using GraphQL.Client.Http;
+using Microsoft.Extensions.Logging;
using Polly;
using Polly.Contrib.WaitAndRetry;
using Speckle.Newtonsoft.Json;
@@ -17,8 +18,10 @@
namespace Speckle.Sdk.Api;
[SuppressMessage("Maintainability", "CA1506:Avoid excessive class coupling", Justification = "Class needs refactor")]
-public sealed partial class Client : ISpeckleGraphQLClient, IDisposable
+public sealed class Client : ISpeckleGraphQLClient, IDisposable
{
+ private readonly ILogger _logger;
+ private readonly ISdkActivityFactory _activityFactory;
public ProjectResource Project { get; }
public ModelResource Model { get; }
public VersionResource Version { get; }
@@ -39,8 +42,16 @@ public sealed partial class Client : ISpeckleGraphQLClient, IDisposable
///
/// was null
- public Client(Account account)
+ public Client(
+ ILogger logger,
+ ISdkActivityFactory activityFactory,
+ ISpeckleApplication application,
+ ISpeckleHttp speckleHttp,
+ Account account
+ )
{
+ _logger = logger;
+ _activityFactory = activityFactory;
Account = account ?? throw new ArgumentException("Provided account is null.");
Project = new(this);
@@ -52,7 +63,7 @@ public Client(Account account)
Comment = new(this);
Subscription = new(this);
- HttpClient = CreateHttpClient(account);
+ HttpClient = CreateHttpClient(application, speckleHttp, account);
GQLClient = CreateGraphQLClient(account, HttpClient);
}
@@ -76,7 +87,7 @@ internal async Task ExecuteWithResiliencePolicies(Func> func)
delay,
(ex, timeout, _) =>
{
- SpeckleLog.Logger.Debug(
+ _logger.LogDebug(
ex,
"The previous attempt at executing function to get {resultType} failed with {exceptionMessage}. Retrying after {timeout}",
typeof(T).Name,
@@ -92,7 +103,7 @@ internal async Task ExecuteWithResiliencePolicies(Func> func)
///
public async Task ExecuteGraphQLRequest(GraphQLRequest request, CancellationToken cancellationToken = default)
{
- using var activity = SpeckleActivityFactory.Start();
+ using var activity = _activityFactory.Start();
try
{
var ret = await ExecuteWithResiliencePolicies(async () =>
@@ -104,12 +115,12 @@ public async Task ExecuteGraphQLRequest(GraphQLRequest request, Cancellati
return result.Data;
})
.ConfigureAwait(false);
- activity?.SetStatus(SpeckleActivityStatusCode.Ok);
+ activity?.SetStatus(SdkActivityStatusCode.Ok);
return ret;
}
catch (Exception e)
{
- activity?.SetStatus(SpeckleActivityStatusCode.Error);
+ activity?.SetStatus(SdkActivityStatusCode.Error);
activity?.RecordException(e);
throw;
}
@@ -218,7 +229,7 @@ internal IDisposable SubscribeTo(GraphQLRequest request, Action