diff --git a/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/packages.lock.json b/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/packages.lock.json index e0e855e7d..3d43e5fd2 100644 --- a/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/packages.lock.json +++ b/Connectors/ArcGIS/Speckle.Connectors.ArcGIS3/packages.lock.json @@ -244,8 +244,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -253,7 +253,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -278,7 +278,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -310,18 +310,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json index c2fecfc1c..1cd4a4adc 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -308,7 +308,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -346,18 +346,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json index e75ec4fdb..c760a6a8c 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -308,7 +308,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -346,18 +346,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json index 82f90da39..49a789a5b 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -309,7 +309,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -347,18 +347,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json index 80fca9e9d..4a022d9e4 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json @@ -238,8 +238,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -247,7 +247,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -311,18 +311,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json index 239cdee6e..8e875b34f 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json @@ -283,8 +283,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -292,7 +292,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -318,7 +318,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -356,18 +356,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json index 67b0bb882..8e56f9e6b 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json @@ -302,8 +302,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -311,7 +311,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -322,7 +322,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.revit2022": { @@ -361,11 +361,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Revit.API": { @@ -376,9 +376,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json index f6453e352..ccab26bf5 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json @@ -302,8 +302,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -311,7 +311,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -322,7 +322,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.revit2023": { @@ -361,11 +361,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Revit.API": { @@ -376,9 +376,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json index 424a1a3c9..12629c3d1 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json @@ -302,8 +302,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -311,7 +311,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -322,7 +322,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.revit2024": { @@ -361,11 +361,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Revit.API": { @@ -376,9 +376,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json index 6494b9ffa..bef844ca0 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json @@ -260,8 +260,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -269,7 +269,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -287,7 +287,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.revit2025": { @@ -332,11 +332,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Revit.API": { @@ -347,9 +347,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json b/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json index a19080b9c..8964caa3e 100644 --- a/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json +++ b/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json @@ -283,8 +283,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -292,7 +292,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -310,7 +310,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.rhino7": { @@ -355,18 +355,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json b/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json index 1dd7c50a1..e46e36d3e 100644 --- a/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json +++ b/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json @@ -283,8 +283,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -292,7 +292,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -310,7 +310,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.converters.rhino8": { @@ -355,18 +355,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs b/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs index f225e2924..0670789a2 100644 --- a/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs +++ b/Connectors/Rhino/Speckle.Connectors.RhinoShared/Bindings/RhinoSendBinding.cs @@ -19,6 +19,7 @@ using Speckle.Converters.Rhino; using Speckle.Sdk; using Speckle.Sdk.Common; +using Speckle.Sdk.Logging; namespace Speckle.Connectors.Rhino.Bindings; @@ -39,6 +40,7 @@ public sealed class RhinoSendBinding : ISendBinding private readonly ITopLevelExceptionHandler _topLevelExceptionHandler; private readonly IRhinoConversionSettingsFactory _rhinoConversionSettingsFactory; private readonly ISpeckleApplication _speckleApplication; + private readonly ISdkActivityFactory _activityFactory; /// /// Used internally to aggregate the changed objects' id. Note we're using a concurrent dictionary here as the expiry check method is not thread safe, and this was causing problems. See: @@ -59,7 +61,8 @@ public RhinoSendBinding( IOperationProgressManager operationProgressManager, ILogger logger, IRhinoConversionSettingsFactory rhinoConversionSettingsFactory, - ISpeckleApplication speckleApplication + ISpeckleApplication speckleApplication, + ISdkActivityFactory activityFactory ) { _store = store; @@ -75,6 +78,7 @@ ISpeckleApplication speckleApplication _topLevelExceptionHandler = parent.TopLevelExceptionHandler.Parent.TopLevelExceptionHandler; Parent = parent; Commands = new SendBindingUICommands(parent); // POC: Commands are tightly coupled with their bindings, at least for now, saves us injecting a factory. + _activityFactory = activityFactory; SubscribeToRhinoEvents(); } @@ -153,6 +157,7 @@ private void SubscribeToRhinoEvents() public async Task Send(string modelCardId) { + using var activity = _activityFactory.Start(); using var scope = _serviceProvider.CreateScope(); scope .ServiceProvider.GetRequiredService>() diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json b/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json index c9d9024e0..a827a4946 100644 --- a/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json @@ -399,8 +399,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -408,7 +408,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -457,18 +457,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/ArcGIS/Speckle.Converters.ArcGIS3/packages.lock.json b/Converters/ArcGIS/Speckle.Converters.ArcGIS3/packages.lock.json index fb7b412a2..ce5d5d0a4 100644 --- a/Converters/ArcGIS/Speckle.Converters.ArcGIS3/packages.lock.json +++ b/Converters/ArcGIS/Speckle.Converters.ArcGIS3/packages.lock.json @@ -237,7 +237,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -260,18 +260,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.Autocad2022/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2022/packages.lock.json index 65c4a6461..d793366bf 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2022/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2022/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.Autocad2023/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2023/packages.lock.json index 673be9880..06502516a 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2023/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2023/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json index fc9dba428..ae3c4c29f 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -301,7 +301,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -339,18 +339,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json index 1127e99af..aad3d3cc6 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json @@ -238,8 +238,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -247,7 +247,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -265,7 +265,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.DependencyInjection": { @@ -303,18 +303,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Civil3d/Speckle.Converters.Civil3d2024/packages.lock.json b/Converters/Civil3d/Speckle.Converters.Civil3d2024/packages.lock.json index 15c45655d..1d5682905 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3d2024/packages.lock.json +++ b/Converters/Civil3d/Speckle.Converters.Civil3d2024/packages.lock.json @@ -282,7 +282,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -305,18 +305,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json index 9dfb76777..693ece02c 100644 --- a/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2022.Tests/packages.lock.json @@ -363,7 +363,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -393,18 +393,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2022/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2022/packages.lock.json index 7ffb759fa..4f91063c7 100644 --- a/Converters/Revit/Speckle.Converters.Revit2022/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2022/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json index a5471652b..70c7e011c 100644 --- a/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2023.Tests/packages.lock.json @@ -363,7 +363,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -393,18 +393,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2023/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2023/packages.lock.json index be3f37143..22fd4ef63 100644 --- a/Converters/Revit/Speckle.Converters.Revit2023/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2023/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json index e8f3ac41a..2112e0a11 100644 --- a/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2024.Tests/packages.lock.json @@ -363,7 +363,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -393,18 +393,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2024/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2024/packages.lock.json index 56021520e..2b3064cd4 100644 --- a/Converters/Revit/Speckle.Converters.Revit2024/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2024/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Revit/Speckle.Converters.Revit2025/packages.lock.json b/Converters/Revit/Speckle.Converters.Revit2025/packages.lock.json index f8bb5033a..0c3e5dbe5 100644 --- a/Converters/Revit/Speckle.Converters.Revit2025/packages.lock.json +++ b/Converters/Revit/Speckle.Converters.Revit2025/packages.lock.json @@ -237,7 +237,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -260,18 +260,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json index 614ee9434..f160cf303 100644 --- a/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json +++ b/Converters/Rhino/Speckle.Converters.Rhino7.Tests/packages.lock.json @@ -363,7 +363,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -393,18 +393,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Rhino/Speckle.Converters.Rhino7/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino7/packages.lock.json index 22502c755..36eff02fd 100644 --- a/Converters/Rhino/Speckle.Converters.Rhino7/packages.lock.json +++ b/Converters/Rhino/Speckle.Converters.Rhino7/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Converters/Rhino/Speckle.Converters.Rhino8/packages.lock.json b/Converters/Rhino/Speckle.Converters.Rhino8/packages.lock.json index 4c9b238a6..5fa802b9a 100644 --- a/Converters/Rhino/Speckle.Converters.Rhino8/packages.lock.json +++ b/Converters/Rhino/Speckle.Converters.Rhino8/packages.lock.json @@ -273,7 +273,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "Microsoft.Extensions.Logging": { @@ -296,18 +296,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json b/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json index 57e327307..e2c78991c 100644 --- a/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json @@ -342,8 +342,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -351,7 +351,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -394,18 +394,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json b/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json index 07d7ae116..914064d33 100644 --- a/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json @@ -274,8 +274,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -283,7 +283,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -319,18 +319,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", @@ -588,8 +588,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.dui": { @@ -597,7 +597,7 @@ "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", "Speckle.Connectors.Common": "[1.0.0, )", - "Speckle.Sdk": "[3.1.0-dev.160, )", + "Speckle.Sdk": "[3.1.0-dev.162, )", "System.Threading.Tasks.Dataflow": "[6.0.0, )" } }, @@ -633,18 +633,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/DUI3/Speckle.Connectors.DUI/packages.lock.json b/DUI3/Speckle.Connectors.DUI/packages.lock.json index eb01389dd..b88c79359 100644 --- a/DUI3/Speckle.Connectors.DUI/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI/packages.lock.json @@ -50,9 +50,9 @@ }, "Speckle.Sdk": { "type": "Direct", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", @@ -325,8 +325,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.logging": { @@ -355,11 +355,11 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } } } diff --git a/Directory.Packages.props b/Directory.Packages.props index 20fe69345..88a142aae 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -31,7 +31,6 @@ - @@ -39,8 +38,8 @@ - - + + diff --git a/Sdk/Speckle.Connectors.Common/Connector.cs b/Sdk/Speckle.Connectors.Common/Connector.cs index 7b7b314b5..40c1fefc7 100644 --- a/Sdk/Speckle.Connectors.Common/Connector.cs +++ b/Sdk/Speckle.Connectors.Common/Connector.cs @@ -12,10 +12,19 @@ namespace Speckle.Connectors.Common; public static class Connector { + private sealed record LoggingDisposable(IDisposable Tracing, IDisposable Metrics) : IDisposable + { + public void Dispose() + { + Tracing.Dispose(); + Metrics.Dispose(); + } + } + public static readonly string TabName = "Speckle"; public static readonly string TabTitle = "Speckle (Beta)"; - public static IDisposable? Initialize( + public static IDisposable Initialize( this IServiceCollection serviceCollection, HostApplication application, HostAppVersion version @@ -23,36 +32,47 @@ HostAppVersion version { TypeLoader.Initialize(typeof(Base).Assembly, typeof(Point).Assembly); - var (logging, tracing) = Observability.Initialize( + var (logging, tracing, metrics) = Observability.Initialize( application.Name + " " + HostApplications.GetVersion(version), application.Slug, Assembly.GetExecutingAssembly().GetVersion(), - new( #if DEBUG || LOCAL - new SpeckleLogging(Console: true, MinimumLevel: SpeckleLogLevel.Debug), new SpeckleTracing(Console: false) + new( + new SpeckleLogging(Console: true, File: new(), MinimumLevel: SpeckleLogLevel.Debug), + new SpeckleTracing(Console: false), + new SpeckleMetrics(Console: false) + ) #else + new( new SpeckleLogging( Console: true, - Otel: new( - Endpoint: "https://seq-dev.speckle.systems/ingest/otlp/v1/logs", - Headers: new() { { "X-Seq-ApiKey", "y5YnBp12ZE1Czh4tzZWn" } } - ), + File: new(), + Otel: + [ + new( + Endpoint: "https://seq-dev.speckle.systems/ingest/otlp/v1/logs", + Headers: new() { { "X-Seq-ApiKey", "y5YnBp12ZE1Czh4tzZWn" } } + ) + ], MinimumLevel: SpeckleLogLevel.Warning ), new SpeckleTracing( Console: false, - Otel: new( - Endpoint: "https://seq-dev.speckle.systems/ingest/otlp/v1/traces", - Headers: new() { { "X-Seq-ApiKey", "y5YnBp12ZE1Czh4tzZWn" } } - ) + Otel: + [ + new( + Endpoint: "https://seq-dev.speckle.systems/ingest/otlp/v1/traces", + Headers: new() { { "X-Seq-ApiKey", "y5YnBp12ZE1Czh4tzZWn" } } + ) + ] ) -#endif ) +#endif ); serviceCollection.AddLogging(x => x.AddProvider(new SpeckleLogProvider(logging))); serviceCollection.AddSpeckleSdk(application, version, Assembly.GetExecutingAssembly().GetVersion()); serviceCollection.AddSingleton(); - return tracing; + return new LoggingDisposable(tracing, metrics); } } diff --git a/Sdk/Speckle.Connectors.Common/ConnectorActivityFactory.cs b/Sdk/Speckle.Connectors.Common/ConnectorActivityFactory.cs index b69ec0f2d..417361f59 100644 --- a/Sdk/Speckle.Connectors.Common/ConnectorActivityFactory.cs +++ b/Sdk/Speckle.Connectors.Common/ConnectorActivityFactory.cs @@ -1,11 +1,12 @@ using System.Runtime.CompilerServices; using Speckle.Connectors.Logging; +using Speckle.Sdk; using Speckle.Sdk.Common; using Speckle.Sdk.Logging; namespace Speckle.Connectors.Common; -public sealed class ConnectorActivityFactory : ISdkActivityFactory, IDisposable +public sealed class ConnectorActivityFactory(ISpeckleApplication application) : ISdkActivityFactory, IDisposable { private readonly LoggingActivityFactory _loggingActivityFactory = new(); @@ -15,7 +16,7 @@ public sealed class ConnectorActivityFactory : ISdkActivityFactory, IDisposable public ISdkActivity? Start(string? name = default, [CallerMemberName] string source = "") { - var activity = _loggingActivityFactory.Start(name, source); + var activity = _loggingActivityFactory.Start(application.ApplicationAndVersion + " " + (name ?? source)); if (activity is null) { return null; @@ -43,5 +44,7 @@ public void SetStatus(SdkActivityStatusCode code) => _ => throw new ArgumentOutOfRangeException(nameof(code), code, null) } ); + + public void InjectHeaders(Action header) => activity.InjectHeaders(header); } } diff --git a/Sdk/Speckle.Connectors.Common/ConnectorMetricsFactory.cs b/Sdk/Speckle.Connectors.Common/ConnectorMetricsFactory.cs new file mode 100644 index 000000000..c85a8ef37 --- /dev/null +++ b/Sdk/Speckle.Connectors.Common/ConnectorMetricsFactory.cs @@ -0,0 +1,34 @@ +using Speckle.Connectors.Logging; +using Speckle.Sdk.Logging; + +namespace Speckle.Connectors.Common; + +public sealed class ConnectorMetricsFactory : ISdkMetricsFactory, IDisposable +{ + private readonly LoggingMetricsFactory _loggingMetricsFactory = new(); + + public void Dispose() => _loggingMetricsFactory.Dispose(); + + public ISdkCounter CreateCounter(string name, string? unit = default, string? description = default) + where T : struct => new ConnectorCounter(_loggingMetricsFactory.CreateCounter(name, unit, description)); + + private readonly struct ConnectorCounter(LoggingCounter counter) : ISdkCounter + where T : struct + { + public void Add(T value) => counter.Add(value); + + public void Add(T value, KeyValuePair tag) => counter.Add(value, tag); + + public void Add(T value, KeyValuePair tag1, KeyValuePair tag2) => + counter.Add(value, tag1, tag2); + + public void Add( + T value, + KeyValuePair tag1, + KeyValuePair tag2, + KeyValuePair tag3 + ) => counter.Add(value, tag1, tag2, tag3); + + public void Add(T value, params KeyValuePair[] tags) => counter.Add(value, tags); + } +} diff --git a/Sdk/Speckle.Connectors.Common/packages.lock.json b/Sdk/Speckle.Connectors.Common/packages.lock.json index 9b9acfea0..5b10bc71e 100644 --- a/Sdk/Speckle.Connectors.Common/packages.lock.json +++ b/Sdk/Speckle.Connectors.Common/packages.lock.json @@ -53,18 +53,18 @@ }, "Speckle.Objects": { "type": "Direct", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "Direct", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Sdk/Speckle.Connectors.Logging/ActivityScopeProcessor.cs b/Sdk/Speckle.Connectors.Logging/ActivityScopeActivityProcessor.cs similarity index 57% rename from Sdk/Speckle.Connectors.Logging/ActivityScopeProcessor.cs rename to Sdk/Speckle.Connectors.Logging/ActivityScopeActivityProcessor.cs index 5645962b3..33d205bd1 100644 --- a/Sdk/Speckle.Connectors.Logging/ActivityScopeProcessor.cs +++ b/Sdk/Speckle.Connectors.Logging/ActivityScopeActivityProcessor.cs @@ -3,11 +3,11 @@ namespace Speckle.Connectors.Logging; -internal sealed class ActivityScopeProcessor : BaseProcessor +internal sealed class ActivityScopeActivityProcessor : BaseProcessor { public override void OnEnd(Activity data) { - foreach (KeyValuePair keyValuePair in ActivityScope.Tags) + foreach (KeyValuePair keyValuePair in ActivityScope.Tags) { data.SetTag(keyValuePair.Key, keyValuePair.Value); } diff --git a/Sdk/Speckle.Connectors.Logging/ActivityScopeExtensions.cs b/Sdk/Speckle.Connectors.Logging/ActivityScopeExtensions.cs index dc503a476..2cb549fef 100644 --- a/Sdk/Speckle.Connectors.Logging/ActivityScopeExtensions.cs +++ b/Sdk/Speckle.Connectors.Logging/ActivityScopeExtensions.cs @@ -1,10 +1,11 @@ -namespace Speckle.Connectors.Logging; +namespace Speckle.Connectors.Logging; public static class ActivityScope { - private static readonly AsyncLocal> s_tags = new() { Value = new() }; - - public static IReadOnlyDictionary Tags => s_tags.Value ?? []; + private static readonly AsyncLocal> s_tags = new() { Value = new() }; + public static IReadOnlyDictionary Tags => s_tags.Value ?? []; + public static IReadOnlyList> TagsList { get; } = + new List>(s_tags.Value); public static IDisposable SetTag(string key, string value) { diff --git a/Sdk/Speckle.Connectors.Logging/ActivityScopeLogProcessor.cs b/Sdk/Speckle.Connectors.Logging/ActivityScopeLogProcessor.cs new file mode 100644 index 000000000..857785a43 --- /dev/null +++ b/Sdk/Speckle.Connectors.Logging/ActivityScopeLogProcessor.cs @@ -0,0 +1,22 @@ +using OpenTelemetry; +using OpenTelemetry.Logs; + +namespace Speckle.Connectors.Logging; + +internal sealed class ActivityScopeLogProcessor : BaseProcessor +{ + public override void OnEnd(LogRecord data) + { + if (ActivityScope.Tags.Count > 0) + { + if (data.Attributes is null) + { + data.Attributes = ActivityScope.TagsList; + } + else if (data.Attributes.Count > 0) + { + data.Attributes = data.Attributes.Concat(ActivityScope.Tags).ToList(); + } + } + } +} diff --git a/Sdk/Speckle.Connectors.Logging/Consts.cs b/Sdk/Speckle.Connectors.Logging/Consts.cs index 2101db9e8..53d9bda08 100644 --- a/Sdk/Speckle.Connectors.Logging/Consts.cs +++ b/Sdk/Speckle.Connectors.Logging/Consts.cs @@ -1,3 +1,5 @@ +using System.Reflection; + namespace Speckle.Connectors.Logging; public static class Consts @@ -9,4 +11,27 @@ public static class Consts public const string OS_SLUG = "os.slug"; public const string RUNTIME_NAME = "runtime.name"; public const string USER_ID = "user.id"; + public const string TRACING_SOURCE = "speckle"; + + public static string GetPackageVersion(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/Sdk/Speckle.Connectors.Logging/Internal/LogBuilder.cs b/Sdk/Speckle.Connectors.Logging/Internal/LogBuilder.cs index 24b5aed65..cb7fd96fd 100644 --- a/Sdk/Speckle.Connectors.Logging/Internal/LogBuilder.cs +++ b/Sdk/Speckle.Connectors.Logging/Internal/LogBuilder.cs @@ -1,8 +1,10 @@ -using OpenTelemetry.Resources; +using System.Text; +using Microsoft.Extensions.Logging; +using OpenTelemetry.Exporter; +using OpenTelemetry.Logs; +using OpenTelemetry.Resources; using Serilog; using Serilog.Exceptions; -using Serilog.Extensions.Logging; -using Serilog.Sinks.OpenTelemetry; namespace Speckle.Connectors.Logging.Internal; @@ -15,61 +17,85 @@ public static LoggerProvider Initialize( ResourceBuilder resourceBuilder ) { - var serilogLogConfiguration = new LoggerConfiguration() - .MinimumLevel.Is(SpeckleLogLevelUtility.GetLevel(speckleLogging?.MinimumLevel ?? SpeckleLogLevel.Warning)) - .Enrich.FromLogContext() - .Enrich.WithExceptionDetails(); - - if (speckleLogging?.File is not null) + var factory = LoggerFactory.Create(loggingBuilder => { - // 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?.File is not null || speckleLogging?.Console is not null) + { + var serilogLogConfiguration = new LoggerConfiguration() + .MinimumLevel.Is(SpeckleLogLevelUtility.GetLevel(speckleLogging.MinimumLevel)) + .Enrich.FromLogContext() + .Enrich.WithExceptionDetails(); - if (speckleLogging?.Console ?? false) - { - serilogLogConfiguration = serilogLogConfiguration.WriteTo.Console(); - } + 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?.Otel is not null) - { - serilogLogConfiguration = InitializeOtelLogging(serilogLogConfiguration, speckleLogging.Otel, resourceBuilder); - } - var logger = serilogLogConfiguration.CreateLogger(); + if (speckleLogging.Console) + { + serilogLogConfiguration.WriteTo.Console(); + } - logger - .ForContext("applicationAndVersion", applicationAndVersion) - .ForContext("connectorVersion", connectorVersion) - .ForContext("userApplicationDataPath", SpecklePathProvider.UserApplicationDataPath()) - .ForContext("installApplicationDataPath", SpecklePathProvider.InstallApplicationDataPath) - .Information( - "Initialized logger inside {applicationAndVersion}/{connectorVersion}. Path info {userApplicationDataPath} {installApplicationDataPath}." - ); + var serilogLogger = serilogLogConfiguration.CreateLogger(); + if (speckleLogging.File is not null) + { + serilogLogger + .ForContext("applicationAndVersion", applicationAndVersion) + .ForContext("connectorVersion", connectorVersion) + .ForContext("userApplicationDataPath", SpecklePathProvider.UserApplicationDataPath()) + .ForContext("installApplicationDataPath", SpecklePathProvider.InstallApplicationDataPath) + .Information( + "Initialized logger inside {applicationAndVersion}/{connectorVersion}. Path info {userApplicationDataPath} {installApplicationDataPath}." + ); + } + + loggingBuilder.AddSerilog(serilogLogger); + } + + foreach (var otel in speckleLogging?.Otel ?? []) + { + InitializeOtelLogging(loggingBuilder, otel, resourceBuilder); + } + }); -#pragma warning disable CA2000 - return new LoggerProvider(new SerilogLoggerProvider(logger)); -#pragma warning restore CA2000 + return new LoggerProvider(factory); } - private static LoggerConfiguration InitializeOtelLogging( - LoggerConfiguration serilogLogConfiguration, + private static void InitializeOtelLogging( + ILoggingBuilder loggingBuilder, SpeckleOtelLogging speckleOtelLogging, ResourceBuilder resourceBuilder ) => - serilogLogConfiguration.WriteTo.OpenTelemetry(o => + loggingBuilder.AddOpenTelemetry(x => { - o.Protocol = OtlpProtocol.HttpProtobuf; - o.LogsEndpoint = speckleOtelLogging.Endpoint; - o.Headers = speckleOtelLogging.Headers ?? o.Headers; - o.ResourceAttributes = resourceBuilder - .Build() - .Attributes.Concat(ActivityScope.Tags) - .ToDictionary(x => x.Key, x => x.Value); + x.AddOtlpExporter(y => + { + y.Protocol = OtlpExportProtocol.HttpProtobuf; + y.Endpoint = new Uri(speckleOtelLogging.Endpoint); + var sb = new StringBuilder(); + bool appendSemicolon = false; + foreach (var kvp in speckleOtelLogging.Headers ?? []) + { + sb.Append(kvp.Key).Append('=').Append(kvp.Value); + if (appendSemicolon) + { + sb.Append(','); + } + else + { + appendSemicolon = true; + } + } + y.Headers = sb.ToString(); + }) + .AddProcessor(new ActivityScopeLogProcessor()) + .SetResourceBuilder(resourceBuilder); }); } diff --git a/Sdk/Speckle.Connectors.Logging/Internal/MetricsBuilder.cs b/Sdk/Speckle.Connectors.Logging/Internal/MetricsBuilder.cs new file mode 100644 index 000000000..daf109aaa --- /dev/null +++ b/Sdk/Speckle.Connectors.Logging/Internal/MetricsBuilder.cs @@ -0,0 +1,42 @@ +using OpenTelemetry.Exporter; +using OpenTelemetry.Metrics; +using OpenTelemetry.Resources; +using OpenTelemetry.Trace; + +namespace Speckle.Connectors.Logging.Internal; + +internal static class MetricsBuilder +{ + public static IDisposable Initialize(SpeckleMetrics? metricsConfiguration, ResourceBuilder resourceBuilder) + { + var metricsProviderBuilder = OpenTelemetry.Sdk.CreateMeterProviderBuilder().AddMeter(Consts.TRACING_SOURCE); + foreach (var metrics in metricsConfiguration?.Otel ?? []) + { + metricsProviderBuilder = metricsProviderBuilder.AddOtlpExporter(x => ProcessOptions(metrics, x)); + } + + if (metricsConfiguration?.Console ?? false) + { + metricsProviderBuilder = metricsProviderBuilder.AddConsoleExporter(); + } + + metricsProviderBuilder = metricsProviderBuilder.AddHttpClientInstrumentation().SetResourceBuilder(resourceBuilder); + + return metricsProviderBuilder.Build(); + } + + private static void ProcessOptions(SpeckleOtelMetrics metrics, OtlpExporterOptions options) + { + options.Protocol = OtlpExportProtocol.HttpProtobuf; + var headers = string.Join(",", metrics.Headers?.Select(x => x.Key + "=" + x.Value) ?? []); + if (headers.Length != 0) + { + options.Headers = headers; + } + + if (metrics.Endpoint is not null) + { + options.Endpoint = new Uri(metrics.Endpoint); + } + } +} diff --git a/Sdk/Speckle.Connectors.Logging/Internal/ResourceCreator.cs b/Sdk/Speckle.Connectors.Logging/Internal/ResourceCreator.cs index 7de798c48..22f2ab9b7 100644 --- a/Sdk/Speckle.Connectors.Logging/Internal/ResourceCreator.cs +++ b/Sdk/Speckle.Connectors.Logging/Internal/ResourceCreator.cs @@ -8,7 +8,7 @@ internal static class ResourceCreator internal static ResourceBuilder Create(string applicationAndVersion, string slug, string connectorVersion) => ResourceBuilder .CreateEmpty() - .AddService(serviceName: LoggingActivityFactory.TRACING_SOURCE, serviceVersion: connectorVersion) + .AddService(serviceName: Consts.TRACING_SOURCE, serviceVersion: connectorVersion) .AddAttributes( new List> { diff --git a/Sdk/Speckle.Connectors.Logging/Internal/TracingBuilder.cs b/Sdk/Speckle.Connectors.Logging/Internal/TracingBuilder.cs index be67b65a6..42eeb2655 100644 --- a/Sdk/Speckle.Connectors.Logging/Internal/TracingBuilder.cs +++ b/Sdk/Speckle.Connectors.Logging/Internal/TracingBuilder.cs @@ -6,25 +6,18 @@ namespace Speckle.Connectors.Logging.Internal; internal static class TracingBuilder { - public static IDisposable? Initialize(SpeckleTracing? logConfiguration, ResourceBuilder resourceBuilder) + public static IDisposable Initialize(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(LoggingActivityFactory.TRACING_SOURCE); - tracerProviderBuilder = tracerProviderBuilder.AddHttpClientInstrumentation(); - if (otelEnabled) + .AddSource(Consts.TRACING_SOURCE) + .AddHttpClientInstrumentation(); + foreach (var tracing in logConfiguration?.Otel ?? []) { - tracerProviderBuilder = tracerProviderBuilder.AddOtlpExporter(x => ProcessOptions(logConfiguration!, x)); + tracerProviderBuilder = tracerProviderBuilder.AddOtlpExporter(x => ProcessOptions(tracing, x)); } - if (consoleEnabled) + if (logConfiguration?.Console ?? false) { tracerProviderBuilder = tracerProviderBuilder.AddConsoleExporter(); } @@ -32,23 +25,23 @@ internal static class TracingBuilder tracerProviderBuilder = tracerProviderBuilder .SetResourceBuilder(resourceBuilder) .SetSampler() - .AddProcessor(new ActivityScopeProcessor()); + .AddProcessor(new ActivityScopeActivityProcessor()); return tracerProviderBuilder.Build(); } - private static void ProcessOptions(SpeckleTracing logConfiguration, OtlpExporterOptions options) + private static void ProcessOptions(SpeckleOtelTracing tracing, OtlpExporterOptions options) { options.Protocol = OtlpExportProtocol.HttpProtobuf; - var headers = string.Join(",", logConfiguration.Otel?.Headers?.Select(x => x.Key + "=" + x.Value) ?? []); + var headers = string.Join(",", tracing.Headers?.Select(x => x.Key + "=" + x.Value) ?? []); if (headers.Length != 0) { options.Headers = headers; } - if (logConfiguration.Otel?.Endpoint is not null) + if (tracing.Endpoint is not null) { - options.Endpoint = new Uri(logConfiguration.Otel.Endpoint); + options.Endpoint = new Uri(tracing.Endpoint); } } } diff --git a/Sdk/Speckle.Connectors.Logging/LoggerProvider.cs b/Sdk/Speckle.Connectors.Logging/LoggerProvider.cs index 5f16f8821..bf037bf46 100644 --- a/Sdk/Speckle.Connectors.Logging/LoggerProvider.cs +++ b/Sdk/Speckle.Connectors.Logging/LoggerProvider.cs @@ -1,10 +1,14 @@ -using Serilog.Extensions.Logging; +using Microsoft.Extensions.Logging; namespace Speckle.Connectors.Logging; -public sealed class LoggerProvider(SerilogLoggerProvider provider) : IDisposable +public sealed class LoggerProvider : IDisposable { - public Logger CreateLogger(string categoryName) => new(provider.CreateLogger(categoryName)); + private readonly ILoggerFactory _provider; - public void Dispose() => provider.Dispose(); + internal LoggerProvider(ILoggerFactory provider) => _provider = provider; + + public Logger CreateLogger(string categoryName) => new(_provider.CreateLogger(categoryName)); + + public void Dispose() => _provider.Dispose(); } diff --git a/Sdk/Speckle.Connectors.Logging/LoggingActivity.cs b/Sdk/Speckle.Connectors.Logging/LoggingActivity.cs index 7fbe82a2e..d8e6073bf 100644 --- a/Sdk/Speckle.Connectors.Logging/LoggingActivity.cs +++ b/Sdk/Speckle.Connectors.Logging/LoggingActivity.cs @@ -30,4 +30,17 @@ public void SetStatus(LoggingActivityStatusCode code) => _ => throw new ArgumentOutOfRangeException(nameof(code), code, null) } ); + + public void InjectHeaders(Action header) => + DistributedContextPropagator.Current.Inject( + _activity, + header, + static (carrier, key, value) => + { + if (carrier is Action request) + { + request.Invoke(key, value); + } + } + ); } diff --git a/Sdk/Speckle.Connectors.Logging/LoggingActivityFactory.cs b/Sdk/Speckle.Connectors.Logging/LoggingActivityFactory.cs index cf99bffdd..82223f5b8 100644 --- a/Sdk/Speckle.Connectors.Logging/LoggingActivityFactory.cs +++ b/Sdk/Speckle.Connectors.Logging/LoggingActivityFactory.cs @@ -1,23 +1,21 @@ -using System.Diagnostics; +using System.Diagnostics; using System.Reflection; -using System.Runtime.CompilerServices; namespace Speckle.Connectors.Logging; public sealed class LoggingActivityFactory : IDisposable { - public const string TRACING_SOURCE = "speckle-connectors"; - private readonly ActivitySource? _activitySource = - new(TRACING_SOURCE, GetPackageVersion(Assembly.GetExecutingAssembly())); + private readonly ActivitySource _activitySource = + new(Consts.TRACING_SOURCE, Consts.GetPackageVersion(Assembly.GetExecutingAssembly())); private readonly Dictionary _tags = new(); public void SetTag(string key, object? value) => _tags[key] = value; - public LoggingActivity? Start(string? name = null, [CallerMemberName] string source = "") + public LoggingActivity? Start(string name) { //If you get a MissingManifestResourceException, Likely source or name is empty string, which is no good. - var activity = _activitySource?.StartActivity(name: name ?? source, kind: ActivityKind.Client, tags: _tags); + var activity = _activitySource.StartActivity(name: name, kind: ActivityKind.Client, tags: _tags); if (activity is null) { return null; @@ -25,27 +23,5 @@ public sealed class LoggingActivityFactory : IDisposable return new LoggingActivity(activity); } - public void Dispose() => _activitySource?.Dispose(); - - private static string GetPackageVersion(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; - } + public void Dispose() => _activitySource.Dispose(); } diff --git a/Sdk/Speckle.Connectors.Logging/LoggingMetricsFactory.cs b/Sdk/Speckle.Connectors.Logging/LoggingMetricsFactory.cs new file mode 100644 index 000000000..0e66e11bc --- /dev/null +++ b/Sdk/Speckle.Connectors.Logging/LoggingMetricsFactory.cs @@ -0,0 +1,42 @@ +using System.Diagnostics.Metrics; +using System.Reflection; + +namespace Speckle.Connectors.Logging; + +public sealed class LoggingMetricsFactory : IDisposable +{ + private readonly Meter _meterSource = + new(Consts.TRACING_SOURCE, Consts.GetPackageVersion(Assembly.GetExecutingAssembly())); + + public LoggingCounter CreateCounter(string name, string? unit = null, string? description = null) + where T : struct => new(_meterSource.CreateCounter(name, unit, description)); + + public void Dispose() => _meterSource.Dispose(); +} + +public readonly struct LoggingCounter + where T : struct +{ + private readonly Counter _counter; + + internal LoggingCounter(Counter counter) + { + _counter = counter; + } + + public void Add(T value) => _counter.Add(value); + + public void Add(T value, KeyValuePair tag) => _counter.Add(value, tag); + + public void Add(T value, KeyValuePair tag1, KeyValuePair tag2) => + _counter.Add(value, tag1, tag2); + + public void Add( + T value, + KeyValuePair tag1, + KeyValuePair tag2, + KeyValuePair tag3 + ) => _counter.Add(value, tag1, tag2, tag3); + + public void Add(T value, params KeyValuePair[] tags) => _counter.Add(value, tags); +} diff --git a/Sdk/Speckle.Connectors.Logging/Observability.cs b/Sdk/Speckle.Connectors.Logging/Observability.cs index 420e6798c..59405aed4 100644 --- a/Sdk/Speckle.Connectors.Logging/Observability.cs +++ b/Sdk/Speckle.Connectors.Logging/Observability.cs @@ -4,7 +4,7 @@ namespace Speckle.Connectors.Logging; public static class Observability { - public static (LoggerProvider, IDisposable?) Initialize( + public static (LoggerProvider, IDisposable, IDisposable) Initialize( string applicationAndVersion, string slug, string connectorVersion, @@ -19,6 +19,7 @@ SpeckleObservability observability resourceBuilder ); var tracing = TracingBuilder.Initialize(observability.Tracing, resourceBuilder); - return (logging, tracing); + var metrics = MetricsBuilder.Initialize(observability.Metrics, resourceBuilder); + return (logging, tracing, metrics); } } diff --git a/Sdk/Speckle.Connectors.Logging/Speckle.Connectors.Logging.csproj b/Sdk/Speckle.Connectors.Logging/Speckle.Connectors.Logging.csproj index 2b5a3b2bb..e3100f21b 100644 --- a/Sdk/Speckle.Connectors.Logging/Speckle.Connectors.Logging.csproj +++ b/Sdk/Speckle.Connectors.Logging/Speckle.Connectors.Logging.csproj @@ -21,6 +21,5 @@ - diff --git a/Sdk/Speckle.Connectors.Logging/SpeckleObservability.cs b/Sdk/Speckle.Connectors.Logging/SpeckleObservability.cs index 9f98f5ebc..ba14a59ec 100644 --- a/Sdk/Speckle.Connectors.Logging/SpeckleObservability.cs +++ b/Sdk/Speckle.Connectors.Logging/SpeckleObservability.cs @@ -4,23 +4,56 @@ namespace Speckle.Connectors.Logging; /// Configuration object for the Speckle logging system. /// -public record SpeckleObservability(SpeckleLogging? Logging = null, SpeckleTracing? Tracing = null); +public record SpeckleObservability( + SpeckleLogging? Logging = null, + SpeckleTracing? Tracing = null, + SpeckleMetrics? Metrics = null +); public record SpeckleLogging( SpeckleLogLevel MinimumLevel = SpeckleLogLevel.Warning, bool Console = true, SpeckleFileLogging? File = null, - SpeckleOtelLogging? Otel = null -); + IEnumerable? Otel = null +) +{ + public SpeckleLogging( + SpeckleLogLevel minimumLevel = SpeckleLogLevel.Warning, + bool console = true, + SpeckleFileLogging? file = null, + SpeckleOtelLogging? otel = null + ) + : this(minimumLevel, console, file, otel is null ? null : [otel]) { } +} public record SpeckleFileLogging(string? Path = null, bool Enabled = true); -public record SpeckleOtelLogging(string Endpoint, bool Enabled = true, Dictionary? Headers = null); +public record SpeckleOtelLogging( + string? Endpoint = null, + bool Enabled = true, + Dictionary? Headers = null +); -public record SpeckleTracing(bool Console = false, SpeckleOtelTracing? Otel = null); +public record SpeckleTracing(bool Console = false, IEnumerable? Otel = null) +{ + public SpeckleTracing(bool console = true, SpeckleOtelTracing? otel = null) + : this(console, otel is null ? null : [otel]) { } +} public record SpeckleOtelTracing( string? Endpoint = null, bool Enabled = true, Dictionary? Headers = null ); + +public record SpeckleMetrics(bool Console = false, IEnumerable? Otel = null) +{ + public SpeckleMetrics(bool console = true, SpeckleOtelMetrics? otel = null) + : this(console, otel is null ? null : [otel]) { } +} + +public record SpeckleOtelMetrics( + string? Endpoint = null, + bool Enabled = true, + Dictionary? Headers = null +); diff --git a/Sdk/Speckle.Connectors.Logging/packages.lock.json b/Sdk/Speckle.Connectors.Logging/packages.lock.json index e54d19b96..21def2c52 100644 --- a/Sdk/Speckle.Connectors.Logging/packages.lock.json +++ b/Sdk/Speckle.Connectors.Logging/packages.lock.json @@ -127,17 +127,6 @@ "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, )", @@ -146,8 +135,8 @@ }, "Google.Protobuf": { "type": "Transitive", - "resolved": "3.26.1", - "contentHash": "CHZX8zXqhF/fdUtd+AYzew8T2HFkAoe5c7lbGxZY/qryAlQXckDvM5BfOJjXlMS7kyICqQTMszj4w1bX5uBJ/w==", + "resolved": "3.22.5", + "contentHash": "tTMtDZPbLxJew8pk7NBdqhLqC4OipfkZdwPuCEUNr2AoDo1siUGcxFqJK0wDewTL8ge5Cjrb16CToMPxBUHMGA==", "dependencies": { "System.Memory": "4.5.3", "System.Runtime.CompilerServices.Unsafe": "4.5.2" @@ -172,30 +161,12 @@ }, "Grpc.Core.Api": { "type": "Transitive", - "resolved": "2.62.0", - "contentHash": "q4Jj6bRZHNnE4CMLqgjiBUCKLit+tRr0simZsS2W6U++akd7CzXByeKy2tddqT68hFzP2XzceXA2YtBTfWtixA==", + "resolved": "2.44.0", + "contentHash": "FBfPMvKwT8q98T8lWa5z6nBMLdH/Mmo5g4yyYYMvbXLWDzo4beqa7CUU5QH3PKvo2X6/b+UAZ2IymXlrYG3IXg==", "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", diff --git a/Sdk/Speckle.Connectors.Tests/packages.lock.json b/Sdk/Speckle.Connectors.Tests/packages.lock.json index 890289043..89be98716 100644 --- a/Sdk/Speckle.Connectors.Tests/packages.lock.json +++ b/Sdk/Speckle.Connectors.Tests/packages.lock.json @@ -342,8 +342,8 @@ "dependencies": { "Microsoft.Extensions.DependencyInjection": "[2.2.0, )", "Speckle.Connectors.Logging": "[1.0.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )", - "Speckle.Sdk": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )", + "Speckle.Sdk": "[3.1.0-dev.162, )" } }, "speckle.connectors.logging": { @@ -385,18 +385,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Sdk/Speckle.Converters.Common.Tests/packages.lock.json b/Sdk/Speckle.Converters.Common.Tests/packages.lock.json index 9702ea8af..f87ed6f29 100644 --- a/Sdk/Speckle.Converters.Common.Tests/packages.lock.json +++ b/Sdk/Speckle.Converters.Common.Tests/packages.lock.json @@ -350,7 +350,7 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Objects": "[3.1.0-dev.160, )" + "Speckle.Objects": "[3.1.0-dev.162, )" } }, "speckle.testing": { @@ -380,18 +380,18 @@ }, "Speckle.Objects": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0", diff --git a/Sdk/Speckle.Converters.Common/packages.lock.json b/Sdk/Speckle.Converters.Common/packages.lock.json index 412bbe0df..04a7d94ad 100644 --- a/Sdk/Speckle.Converters.Common/packages.lock.json +++ b/Sdk/Speckle.Converters.Common/packages.lock.json @@ -50,11 +50,11 @@ }, "Speckle.Objects": { "type": "Direct", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "wU8YcZ3NtLnB3uJ9qvWw/j0pZ2FeDMh/eGsX3uqgBPD46G4Yksaeom7SucGxtsAsVNaeDvtd23F8sGzNei/i4w==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "1fyaPjC1kVtroKfoXI7edJX0Uho/TNRWG9mtmIQ7jKhX1zElrJPSoH8zEIMqckZhGmwUrYjlQFPssASNCP721Q==", "dependencies": { - "Speckle.Sdk": "3.1.0-dev.160" + "Speckle.Sdk": "3.1.0-dev.162" } }, "GraphQL.Client": { @@ -319,9 +319,9 @@ }, "Speckle.Sdk": { "type": "CentralTransitive", - "requested": "[3.1.0-dev.160, )", - "resolved": "3.1.0-dev.160", - "contentHash": "Gqsp2y9s8QzUSa0iPnTVay9xdXxUkPy0F5lJ6L+DY9HcnII9FQZrCRXYfz05xdcB+M/E6Yg9qeDLx7KwKoD7kw==", + "requested": "[3.1.0-dev.162, )", + "resolved": "3.1.0-dev.162", + "contentHash": "ulT3XNgqIQSmpQFK5YEEwRq4RA6emXBKQHnZxtCz37SJin1PnVpH9m8vOAF9FmaWsgSAfjhhjIZDruMu1oKxSg==", "dependencies": { "GraphQL.Client": "6.0.0", "Microsoft.CSharp": "4.7.0",