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",