From 293e478e0108a6edf2570964f0151e827b701ed2 Mon Sep 17 00:00:00 2001 From: Jedd Morgan <45512892+JR-Morgan@users.noreply.github.com> Date: Wed, 21 Jan 2026 19:10:34 +0000 Subject: [PATCH] wip --- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../CefSharpPanel.xaml.cs | 11 ++ .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- .../DUI3ControlWebView.xaml.cs | 15 +++ .../packages.lock.json | 18 ++- .../Bridge/BrowserBridge.cs | 124 +++++++++++++++--- .../Bridge/IBrowserScriptExecutor.cs | 2 + .../Speckle.Connectors.DUI.csproj | 1 + .../Speckle.Connectors.DUI/packages.lock.json | 12 ++ Directory.Packages.props | 3 +- .../packages.lock.json | 9 +- .../packages.lock.json | 9 +- 53 files changed, 522 insertions(+), 69 deletions(-) diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json index 110b42c14..dde316837 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2022/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -362,6 +363,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json index acc739b20..cb3892d97 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2023/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -362,6 +363,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json index 95efa61a4..d5b8ce935 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2024/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -363,6 +364,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json index 206d8db60..8db654b1d 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2025/packages.lock.json @@ -237,7 +237,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -312,6 +313,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, "net8.0-windows7.0/win-x64": { diff --git a/Connectors/Autocad/Speckle.Connectors.Autocad2026/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Autocad2026/packages.lock.json index 65a7005bf..47ee2a6d1 100644 --- a/Connectors/Autocad/Speckle.Connectors.Autocad2026/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Autocad2026/packages.lock.json @@ -237,7 +237,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -312,6 +313,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, "net8.0-windows7.0/win-x64": { diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3d2022/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Civil3d2022/packages.lock.json index 98259786c..67c2d5206 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3d2022/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Civil3d2022/packages.lock.json @@ -297,7 +297,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -372,6 +373,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3d2023/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Civil3d2023/packages.lock.json index 110792b35..0ee5f29f6 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3d2023/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Civil3d2023/packages.lock.json @@ -297,7 +297,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -372,6 +373,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json index ecc351d50..387c8f77a 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Civil3d2024/packages.lock.json @@ -297,7 +297,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -372,6 +373,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3d2025/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Civil3d2025/packages.lock.json index d4a6a75c0..f084c3a5f 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3d2025/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Civil3d2025/packages.lock.json @@ -246,7 +246,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -322,6 +323,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, "net8.0-windows7.0/win-x64": { diff --git a/Connectors/Autocad/Speckle.Connectors.Civil3d2026/packages.lock.json b/Connectors/Autocad/Speckle.Connectors.Civil3d2026/packages.lock.json index 5b15390dd..f1353df44 100644 --- a/Connectors/Autocad/Speckle.Connectors.Civil3d2026/packages.lock.json +++ b/Connectors/Autocad/Speckle.Connectors.Civil3d2026/packages.lock.json @@ -246,7 +246,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -322,6 +323,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, "net8.0-windows7.0/win-x64": { diff --git a/Connectors/CSi/Speckle.Connectors.ETABS21/packages.lock.json b/Connectors/CSi/Speckle.Connectors.ETABS21/packages.lock.json index c663b9e26..9f57c218f 100644 --- a/Connectors/CSi/Speckle.Connectors.ETABS21/packages.lock.json +++ b/Connectors/CSi/Speckle.Connectors.ETABS21/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -361,6 +362,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/CSi/Speckle.Connectors.ETABS22/packages.lock.json b/Connectors/CSi/Speckle.Connectors.ETABS22/packages.lock.json index a93346f45..cf01241e6 100644 --- a/Connectors/CSi/Speckle.Connectors.ETABS22/packages.lock.json +++ b/Connectors/CSi/Speckle.Connectors.ETABS22/packages.lock.json @@ -237,7 +237,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -310,6 +311,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Navisworks/Speckle.Connectors.Navisworks2020/packages.lock.json b/Connectors/Navisworks/Speckle.Connectors.Navisworks2020/packages.lock.json index 5d34eb3c5..f1f6a32ee 100644 --- a/Connectors/Navisworks/Speckle.Connectors.Navisworks2020/packages.lock.json +++ b/Connectors/Navisworks/Speckle.Connectors.Navisworks2020/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -363,6 +364,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, ".NETFramework,Version=v4.8/win-x64": { diff --git a/Connectors/Navisworks/Speckle.Connectors.Navisworks2021/packages.lock.json b/Connectors/Navisworks/Speckle.Connectors.Navisworks2021/packages.lock.json index adb412d27..686da0c87 100644 --- a/Connectors/Navisworks/Speckle.Connectors.Navisworks2021/packages.lock.json +++ b/Connectors/Navisworks/Speckle.Connectors.Navisworks2021/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -363,6 +364,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, ".NETFramework,Version=v4.8/win-x64": { diff --git a/Connectors/Navisworks/Speckle.Connectors.Navisworks2022/packages.lock.json b/Connectors/Navisworks/Speckle.Connectors.Navisworks2022/packages.lock.json index 70e6b54a7..33690e2d0 100644 --- a/Connectors/Navisworks/Speckle.Connectors.Navisworks2022/packages.lock.json +++ b/Connectors/Navisworks/Speckle.Connectors.Navisworks2022/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -363,6 +364,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, ".NETFramework,Version=v4.8/win-x64": { diff --git a/Connectors/Navisworks/Speckle.Connectors.Navisworks2023/packages.lock.json b/Connectors/Navisworks/Speckle.Connectors.Navisworks2023/packages.lock.json index 3eb517cc1..09c0d9a1c 100644 --- a/Connectors/Navisworks/Speckle.Connectors.Navisworks2023/packages.lock.json +++ b/Connectors/Navisworks/Speckle.Connectors.Navisworks2023/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -363,6 +364,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, ".NETFramework,Version=v4.8/win-x64": { diff --git a/Connectors/Navisworks/Speckle.Connectors.Navisworks2024/packages.lock.json b/Connectors/Navisworks/Speckle.Connectors.Navisworks2024/packages.lock.json index 3debee923..466ff6950 100644 --- a/Connectors/Navisworks/Speckle.Connectors.Navisworks2024/packages.lock.json +++ b/Connectors/Navisworks/Speckle.Connectors.Navisworks2024/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -363,6 +364,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, ".NETFramework,Version=v4.8/win-x64": { diff --git a/Connectors/Navisworks/Speckle.Connectors.Navisworks2025/packages.lock.json b/Connectors/Navisworks/Speckle.Connectors.Navisworks2025/packages.lock.json index 5f3786828..be7778561 100644 --- a/Connectors/Navisworks/Speckle.Connectors.Navisworks2025/packages.lock.json +++ b/Connectors/Navisworks/Speckle.Connectors.Navisworks2025/packages.lock.json @@ -294,7 +294,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -363,6 +364,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, ".NETFramework,Version=v4.8/win-x64": { diff --git a/Connectors/Navisworks/Speckle.Connectors.Navisworks2026/packages.lock.json b/Connectors/Navisworks/Speckle.Connectors.Navisworks2026/packages.lock.json index 8c897e77a..2be5f0e13 100644 --- a/Connectors/Navisworks/Speckle.Connectors.Navisworks2026/packages.lock.json +++ b/Connectors/Navisworks/Speckle.Connectors.Navisworks2026/packages.lock.json @@ -295,7 +295,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -365,6 +366,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, ".NETFramework,Version=v4.8/win-x64": { diff --git a/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json index b596bd481..c1f2ee62d 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2022/packages.lock.json @@ -310,7 +310,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -383,6 +384,12 @@ "requested": "[2023.0.0, )", "resolved": "2022.0.2.1", "contentHash": "IrLN4WyI2ix+g3zCpo7sX8zNB3FrtrdQ3E2RpceGVPNG00v8OfD+Kei7o1bn1u/ML46iBYRAr/JcsLbwfUQsBw==" + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json index 293f12e01..d895b0887 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2023/packages.lock.json @@ -310,7 +310,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -383,6 +384,12 @@ "requested": "[2023.0.0, )", "resolved": "2023.0.0", "contentHash": "tq40eD7psgTbV+epNouYyqfo6+hEi7FmXZqcxEOsAV7zfYyWhL6Rt3vmojkWGNuerGbH6oRI6KIIxrnlCNb8Hw==" + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json index b4a68f057..9d9b4dd85 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2024/packages.lock.json @@ -310,7 +310,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -383,6 +384,12 @@ "requested": "[2023.0.0, )", "resolved": "2024.0.0", "contentHash": "a4dsvZ00ocvzTgCD6dUdydf0jIZDVcDhs6dUX9cv+y3aTDbU8rmzhYXWt8sThedIG+IPSVa0vHmAH9pKiJL3SQ==" + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json index d8b56657f..575238851 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2025/packages.lock.json @@ -253,7 +253,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -326,6 +327,12 @@ "requested": "[2023.0.0, )", "resolved": "2025.0.0", "contentHash": "Hwf/3Ydc7KxvjgD9pSZKLSJRsFTsxYg95YyTm6f43hcsGjmk49GsLFQt921Z9OcvUVewOggQHcmBgti+P2EPHw==" + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, "net8.0-windows7.0/win-x64": { diff --git a/Connectors/Revit/Speckle.Connectors.Revit2026/packages.lock.json b/Connectors/Revit/Speckle.Connectors.Revit2026/packages.lock.json index b53de8a03..2e177616a 100644 --- a/Connectors/Revit/Speckle.Connectors.Revit2026/packages.lock.json +++ b/Connectors/Revit/Speckle.Connectors.Revit2026/packages.lock.json @@ -246,7 +246,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -310,6 +311,12 @@ "requested": "[2023.0.0, )", "resolved": "2026.0.0", "contentHash": "SiqqKbF1pXyZWXZhAl2JhjYhTt7RiYO5JaQrAjq+OlleAjT4zatwAp/DnTwQspFbP7UZr3b2Ed2kuWNN0ZFelw==" + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, "net8.0-windows7.0/win-x64": { diff --git a/Connectors/Revit/Speckle.Connectors.RevitShared.Cef/CefSharpPanel.xaml.cs b/Connectors/Revit/Speckle.Connectors.RevitShared.Cef/CefSharpPanel.xaml.cs index 6c808fd7d..042e33c30 100644 --- a/Connectors/Revit/Speckle.Connectors.RevitShared.Cef/CefSharpPanel.xaml.cs +++ b/Connectors/Revit/Speckle.Connectors.RevitShared.Cef/CefSharpPanel.xaml.cs @@ -42,6 +42,17 @@ public partial class CefSharpPanel : Page, Autodesk.Revit.UI.IDockablePaneProvid } } + public Task ExecuteScriptAsyncMethod(string script, CancellationToken cancellationToken) + { + Browser.Dispatcher.Invoke( + () => Browser.ExecuteScriptAsync(script), + DispatcherPriority.Background, + cancellationToken + ); + + return Task.CompletedTask; + } + public void SendProgress(string script) => ExecuteScript(script); public bool IsBrowserInitialized => Browser.IsBrowserInitialized; diff --git a/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json b/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json index 6e975c175..73ab89faf 100644 --- a/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json +++ b/Connectors/Rhino/Speckle.Connectors.Rhino7/packages.lock.json @@ -335,7 +335,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -437,6 +438,12 @@ "System.Formats.Nrbf": "9.0.4", "System.Memory": "4.5.5" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json b/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json index 04234290c..4e5719a03 100644 --- a/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json +++ b/Connectors/Rhino/Speckle.Connectors.Rhino8/packages.lock.json @@ -335,7 +335,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -436,6 +437,12 @@ "System.Formats.Nrbf": "9.0.4", "System.Memory": "4.5.5" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Rhino/Speckle.Connectors.RhinoImporter/packages.lock.json b/Connectors/Rhino/Speckle.Connectors.RhinoImporter/packages.lock.json index 91742203d..94ba346c8 100644 --- a/Connectors/Rhino/Speckle.Connectors.RhinoImporter/packages.lock.json +++ b/Connectors/Rhino/Speckle.Connectors.RhinoImporter/packages.lock.json @@ -262,7 +262,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -335,6 +336,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, "net8.0-windows7.0/win-x64": { diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2023/packages.lock.json b/Connectors/Tekla/Speckle.Connector.Tekla2023/packages.lock.json index 870a3756e..7adecd35e 100644 --- a/Connectors/Tekla/Speckle.Connector.Tekla2023/packages.lock.json +++ b/Connectors/Tekla/Speckle.Connector.Tekla2023/packages.lock.json @@ -354,7 +354,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -436,6 +437,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json b/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json index c359234f6..5e900c7a5 100644 --- a/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json +++ b/Connectors/Tekla/Speckle.Connector.Tekla2024/packages.lock.json @@ -435,7 +435,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -517,6 +518,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Connectors/Tekla/Speckle.Connector.Tekla2025/packages.lock.json b/Connectors/Tekla/Speckle.Connector.Tekla2025/packages.lock.json index 64c74e790..5df5f7720 100644 --- a/Connectors/Tekla/Speckle.Connector.Tekla2025/packages.lock.json +++ b/Connectors/Tekla/Speckle.Connector.Tekla2025/packages.lock.json @@ -435,7 +435,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -517,6 +518,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json index 5286428f1..c9b01e4b9 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2024/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -355,6 +356,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json index e506e2305..cff2a5f4e 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2025/packages.lock.json @@ -237,7 +237,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -304,6 +305,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Autocad/Speckle.Converters.Autocad2026/packages.lock.json b/Converters/Autocad/Speckle.Converters.Autocad2026/packages.lock.json index d9abee7c6..8f530b3e9 100644 --- a/Converters/Autocad/Speckle.Converters.Autocad2026/packages.lock.json +++ b/Converters/Autocad/Speckle.Converters.Autocad2026/packages.lock.json @@ -237,7 +237,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -304,6 +305,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Civil3d/Speckle.Converters.Civil3d2025/packages.lock.json b/Converters/Civil3d/Speckle.Converters.Civil3d2025/packages.lock.json index bdbf99004..f42d7426b 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3d2025/packages.lock.json +++ b/Converters/Civil3d/Speckle.Converters.Civil3d2025/packages.lock.json @@ -246,7 +246,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -313,6 +314,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Civil3d/Speckle.Converters.Civil3d2026/packages.lock.json b/Converters/Civil3d/Speckle.Converters.Civil3d2026/packages.lock.json index 70297b143..39fafb71d 100644 --- a/Converters/Civil3d/Speckle.Converters.Civil3d2026/packages.lock.json +++ b/Converters/Civil3d/Speckle.Converters.Civil3d2026/packages.lock.json @@ -246,7 +246,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -313,6 +314,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Navisworks/Speckle.Converters.Navisworks2020/packages.lock.json b/Converters/Navisworks/Speckle.Converters.Navisworks2020/packages.lock.json index 1dd59075c..de23ae351 100644 --- a/Converters/Navisworks/Speckle.Converters.Navisworks2020/packages.lock.json +++ b/Converters/Navisworks/Speckle.Converters.Navisworks2020/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -342,6 +343,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Navisworks/Speckle.Converters.Navisworks2021/packages.lock.json b/Converters/Navisworks/Speckle.Converters.Navisworks2021/packages.lock.json index aa83b74bd..54031338c 100644 --- a/Converters/Navisworks/Speckle.Converters.Navisworks2021/packages.lock.json +++ b/Converters/Navisworks/Speckle.Converters.Navisworks2021/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -342,6 +343,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Navisworks/Speckle.Converters.Navisworks2022/packages.lock.json b/Converters/Navisworks/Speckle.Converters.Navisworks2022/packages.lock.json index dff553a0d..f77c7b144 100644 --- a/Converters/Navisworks/Speckle.Converters.Navisworks2022/packages.lock.json +++ b/Converters/Navisworks/Speckle.Converters.Navisworks2022/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -342,6 +343,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Navisworks/Speckle.Converters.Navisworks2023/packages.lock.json b/Converters/Navisworks/Speckle.Converters.Navisworks2023/packages.lock.json index 5fad3058d..e4e75b6ad 100644 --- a/Converters/Navisworks/Speckle.Converters.Navisworks2023/packages.lock.json +++ b/Converters/Navisworks/Speckle.Converters.Navisworks2023/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -342,6 +343,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Navisworks/Speckle.Converters.Navisworks2024/packages.lock.json b/Converters/Navisworks/Speckle.Converters.Navisworks2024/packages.lock.json index d15507c36..54b742932 100644 --- a/Converters/Navisworks/Speckle.Converters.Navisworks2024/packages.lock.json +++ b/Converters/Navisworks/Speckle.Converters.Navisworks2024/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -342,6 +343,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Navisworks/Speckle.Converters.Navisworks2025/packages.lock.json b/Converters/Navisworks/Speckle.Converters.Navisworks2025/packages.lock.json index d2c3a5b49..a541a80b4 100644 --- a/Converters/Navisworks/Speckle.Converters.Navisworks2025/packages.lock.json +++ b/Converters/Navisworks/Speckle.Converters.Navisworks2025/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -342,6 +343,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Converters/Navisworks/Speckle.Converters.Navisworks2026/packages.lock.json b/Converters/Navisworks/Speckle.Converters.Navisworks2026/packages.lock.json index 5e7a9e635..14f4a9f9e 100644 --- a/Converters/Navisworks/Speckle.Converters.Navisworks2026/packages.lock.json +++ b/Converters/Navisworks/Speckle.Converters.Navisworks2026/packages.lock.json @@ -289,7 +289,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -343,6 +344,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json b/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json index e99195f38..0ff6946dd 100644 --- a/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI.Tests/packages.lock.json @@ -341,7 +341,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -404,6 +405,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/DUI3/Speckle.Connectors.DUI.WebView/DUI3ControlWebView.xaml.cs b/DUI3/Speckle.Connectors.DUI.WebView/DUI3ControlWebView.xaml.cs index 20c2475e2..5f5df8eb1 100644 --- a/DUI3/Speckle.Connectors.DUI.WebView/DUI3ControlWebView.xaml.cs +++ b/DUI3/Speckle.Connectors.DUI.WebView/DUI3ControlWebView.xaml.cs @@ -48,6 +48,21 @@ public sealed partial class DUI3ControlWebView : UserControl, IBrowserScriptExec } } + public Task ExecuteScriptAsyncMethod(string script, CancellationToken cancellationToken) + { + if (!Browser.IsInitialized) + { + throw new InvalidOperationException("Failed to execute script, Webview2 is not initialized yet."); + } + //always invoke even on the main thread because it's better somehow + Browser.Dispatcher.Invoke( + //fire and forget + () => Browser.ExecuteScriptAsync(script), + DispatcherPriority.Background + ); + return Task.CompletedTask; + } + public void SendProgress(string script) => ExecuteScript(script); private void OnInitialized(object? sender, CoreWebView2InitializationCompletedEventArgs e) diff --git a/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json b/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json index 77f897cc0..c6b912807 100644 --- a/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI.WebView/packages.lock.json @@ -288,7 +288,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -342,6 +343,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } }, "net8.0-windows7.0": { @@ -580,7 +587,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.logging": { @@ -634,6 +642,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/DUI3/Speckle.Connectors.DUI/Bridge/BrowserBridge.cs b/DUI3/Speckle.Connectors.DUI/Bridge/BrowserBridge.cs index 034b44d85..a9646ed51 100644 --- a/DUI3/Speckle.Connectors.DUI/Bridge/BrowserBridge.cs +++ b/DUI3/Speckle.Connectors.DUI/Bridge/BrowserBridge.cs @@ -3,6 +3,7 @@ using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.Runtime.InteropServices; +using System.Threading.Tasks.Dataflow; using Microsoft.Extensions.Logging; using Speckle.Connectors.Common.Threading; using Speckle.Connectors.DUI.Bindings; @@ -29,6 +30,8 @@ public sealed class BrowserBridge : IBrowserBridge /// private readonly ConcurrentDictionary _resultsStore = new(); + private readonly SynchronizationContext _mainThreadContext; + private ActionBlock? _actionBlock; private readonly ITopLevelExceptionHandler _topLevelExceptionHandler; private readonly IThreadContext _threadContext; @@ -58,6 +61,13 @@ public sealed class BrowserBridge : IBrowserBridge } } + private struct RunMethodArgs + { + public string MethodName; + public string RequestId; + public string MethodArgs; + } + public BrowserBridge( IThreadContext threadContext, IJsonSerializer jsonSerializer, @@ -71,6 +81,7 @@ public sealed class BrowserBridge : IBrowserBridge _logger = logger; _browserScriptExecutor = browserScriptExecutor; _topLevelExceptionHandler = topLevelExceptionHandler; + _mainThreadContext = SynchronizationContext.Current.NotNull("No UI thread to capture?"); } private async Task OnExceptionEvent(Exception ex) => @@ -103,6 +114,24 @@ public sealed class BrowserBridge : IBrowserBridge } _bindingMethodCache = bindingMethodCache; _logger.LogInformation("Bridge bound to front end name {FrontEndName}", binding.Name); + + _actionBlock = new ActionBlock( + OnActionBlock, + new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = 1000 } + ); + } + + private async Task OnActionBlock(RunMethodArgs args) + { + Result result = await _topLevelExceptionHandler + .CatchUnhandledAsync(async () => await ExecuteMethod(args.MethodName, args.MethodArgs).ConfigureAwait(false)) + .ConfigureAwait(false); + + string resultJson = result.IsSuccess + ? _jsonSerializer.Serialize(result.Value) + : SerializeFormattedException(result.Exception); + + await NotifyUIMethodCallResultReady(args.RequestId, resultJson).ConfigureAwait(false); } /// @@ -116,26 +145,68 @@ public sealed class BrowserBridge : IBrowserBridge return bindingNames; } - //don't wait for browser runs on purpose - public void RunMethod(string methodName, string requestId, string methodArgs) => - _threadContext - .RunOnWorkerAsync(async () => - { - var task = await _topLevelExceptionHandler - .CatchUnhandledAsync(async () => + // //don't wait for browser runs on purpose + // public void RunMethod(string methodName, string requestId, string methodArgs) => + // _threadContext + // .RunOnWorkerAsync(async () => + // { + // var task = await _topLevelExceptionHandler + // .CatchUnhandledAsync(async () => + // { + // var result = await ExecuteMethod(methodName, methodArgs).ConfigureAwait(false); + // string resultJson = _jsonSerializer.Serialize(result); + // NotifyUIMethodCallResultReady(requestId, resultJson); + // }) + // .ConfigureAwait(false); + // if (task.Exception is not null) + // { + // string resultJson = SerializeFormattedException(task.Exception); + // NotifyUIMethodCallResultReady(requestId, resultJson); + // } + // }) + // .FireAndForget(); + + /// + /// This method posts the requested call to our action block executor. + /// + /// + /// + /// + public void RunMethod(string methodName, string requestId, string args) + { + _topLevelExceptionHandler.CatchUnhandled(Post); + return; + + void Post() + { + bool wasAccepted = _actionBlock + .NotNull() + .Post( + new RunMethodArgs { - var result = await ExecuteMethod(methodName, methodArgs).ConfigureAwait(false); - string resultJson = _jsonSerializer.Serialize(result); - NotifyUIMethodCallResultReady(requestId, resultJson); - }) - .ConfigureAwait(false); - if (task.Exception is not null) - { - string resultJson = SerializeFormattedException(task.Exception); - NotifyUIMethodCallResultReady(requestId, resultJson); - } - }) - .FireAndForget(); + MethodName = methodName, + RequestId = requestId, + MethodArgs = args + } + ); + if (!wasAccepted) + { + throw new InvalidOperationException($"Action block declined to Post ({methodName} {requestId} {args})"); + } + } + } + + public void RunOnMainThread(Action action) + { + _mainThreadContext.Post( + _ => + { + // Execute the action on the main thread + _topLevelExceptionHandler.CatchUnhandled(action); + }, + null + ); + } /// /// Used by the action block to invoke the actual method called by the UI. @@ -228,11 +299,22 @@ public sealed class BrowserBridge : IBrowserBridge /// /// /// - private void NotifyUIMethodCallResultReady(string requestId, string? serializedData = null) + // private void NotifyUIMethodCallResultReady(string requestId, string? serializedData = null) + // { + // _resultsStore[requestId] = serializedData; + // string script = $"{FrontendBoundName}.responseReady('{requestId}')"; + // _browserScriptExecutor.ExecuteScript(script); + // } + + private async Task NotifyUIMethodCallResultReady( + string requestId, + string? serializedData = null, + CancellationToken cancellationToken = default + ) { _resultsStore[requestId] = serializedData; string script = $"{FrontendBoundName}.responseReady('{requestId}')"; - _browserScriptExecutor.ExecuteScript(script); + await _browserScriptExecutor.ExecuteScriptAsyncMethod(script, cancellationToken).ConfigureAwait(false); } /// diff --git a/DUI3/Speckle.Connectors.DUI/Bridge/IBrowserScriptExecutor.cs b/DUI3/Speckle.Connectors.DUI/Bridge/IBrowserScriptExecutor.cs index fccc8aab4..9bb12ec8e 100644 --- a/DUI3/Speckle.Connectors.DUI/Bridge/IBrowserScriptExecutor.cs +++ b/DUI3/Speckle.Connectors.DUI/Bridge/IBrowserScriptExecutor.cs @@ -6,6 +6,8 @@ public interface IBrowserScriptExecutor /// The (constant string) script to execute on the browser void ExecuteScript(string script); + public Task ExecuteScriptAsyncMethod(string script, CancellationToken cancellationToken); + void SendProgress(string script); bool IsBrowserInitialized { get; } diff --git a/DUI3/Speckle.Connectors.DUI/Speckle.Connectors.DUI.csproj b/DUI3/Speckle.Connectors.DUI/Speckle.Connectors.DUI.csproj index 0d08e6b96..e25a06fe6 100644 --- a/DUI3/Speckle.Connectors.DUI/Speckle.Connectors.DUI.csproj +++ b/DUI3/Speckle.Connectors.DUI/Speckle.Connectors.DUI.csproj @@ -11,6 +11,7 @@ + diff --git a/DUI3/Speckle.Connectors.DUI/packages.lock.json b/DUI3/Speckle.Connectors.DUI/packages.lock.json index 44e6147ca..ef0319ad6 100644 --- a/DUI3/Speckle.Connectors.DUI/packages.lock.json +++ b/DUI3/Speckle.Connectors.DUI/packages.lock.json @@ -39,6 +39,12 @@ "resolved": "0.9.6", "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" }, + "System.Threading.Tasks.Dataflow": { + "type": "Direct", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" + }, "GraphQL.Client": { "type": "Transitive", "resolved": "6.0.0", @@ -369,6 +375,12 @@ "resolved": "0.9.6", "contentHash": "HKH7tYrYYlCK1ct483hgxERAdVdMtl7gUKW9ijWXxA1UsYR4Z+TrRHYmzZ9qmpu1NnTycSrp005NYM78GDKV1w==" }, + "System.Threading.Tasks.Dataflow": { + "type": "Direct", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" + }, "GraphQL.Client": { "type": "Transitive", "resolved": "6.0.0", diff --git a/Directory.Packages.props b/Directory.Packages.props index b74556d39..21f8246d8 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -39,6 +39,7 @@ + @@ -62,4 +63,4 @@ - + \ No newline at end of file diff --git a/Importers/Rhino/Speckle.Importers.JobProcessor/packages.lock.json b/Importers/Rhino/Speckle.Importers.JobProcessor/packages.lock.json index 1b34536eb..16d38b373 100644 --- a/Importers/Rhino/Speckle.Importers.JobProcessor/packages.lock.json +++ b/Importers/Rhino/Speckle.Importers.JobProcessor/packages.lock.json @@ -520,7 +520,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -628,6 +629,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } } diff --git a/Importers/Rhino/Speckle.Importers.Rhino/packages.lock.json b/Importers/Rhino/Speckle.Importers.Rhino/packages.lock.json index 923379bd0..c30e14cb5 100644 --- a/Importers/Rhino/Speckle.Importers.Rhino/packages.lock.json +++ b/Importers/Rhino/Speckle.Importers.Rhino/packages.lock.json @@ -281,7 +281,8 @@ "type": "Project", "dependencies": { "Microsoft.Extensions.Logging.Abstractions": "[2.2.0, )", - "Speckle.Connectors.Common": "[1.0.0, )" + "Speckle.Connectors.Common": "[1.0.0, )", + "System.Threading.Tasks.Dataflow": "[10.0.2, )" } }, "speckle.connectors.dui.webview": { @@ -362,6 +363,12 @@ "dependencies": { "Speckle.Sdk": "3.12.0" } + }, + "System.Threading.Tasks.Dataflow": { + "type": "CentralTransitive", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "h1jjCvwBFPXfH4y8KeGXERA+D/oKWUwZ5zX8TXO3YSQRi7zWiNxhvc8GTgFFEW11yTvepjVugDxemtzNDMW7Qw==" } } }