This is an automated email from the ASF dual-hosted git repository.

marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git

commit dbd6f7c7fed7e6b86ebe26b96697eef8ac019e5b
Author: Marat Gubaidullin <[email protected]>
AuthorDate: Wed Sep 11 12:37:50 2024 -0400

    Upgrade PatternFly
---
 karavan-app/src/main/webui/package-lock.json | 593 +++++++++++++++------------
 karavan-app/src/main/webui/package.json      |  21 +-
 karavan-designer/package-lock.json           | 154 ++++---
 karavan-designer/package.json                |  13 +-
 karavan-space/package-lock.json              | 487 ++++++++++++----------
 karavan-space/package.json                   |  26 +-
 karavan-vscode/package-lock.json             |  16 +-
 karavan-vscode/package.json                  |  17 +-
 8 files changed, 751 insertions(+), 576 deletions(-)

diff --git a/karavan-app/src/main/webui/package-lock.json 
b/karavan-app/src/main/webui/package-lock.json
index b777437c..bfa10f8c 100644
--- a/karavan-app/src/main/webui/package-lock.json
+++ b/karavan-app/src/main/webui/package-lock.json
@@ -10,28 +10,29 @@
       "dependencies": {
         "@microsoft/fetch-event-source": "^2.0.1",
         "@monaco-editor/react": "4.6.0",
-        "@patternfly/patternfly": "^5.3.1",
-        "@patternfly/react-charts": "^7.3.0",
-        "@patternfly/react-core": "^5.3.3",
-        "@patternfly/react-log-viewer": "^5.1.0",
-        "@patternfly/react-table": "^5.3.3",
-        "@patternfly/react-topology": "^5.2.0",
+        "@patternfly/patternfly": "^5.4.0",
+        "@patternfly/react-charts": "^7.4.0",
+        "@patternfly/react-core": "^5.4.0",
+        "@patternfly/react-log-viewer": "^5.3.0",
+        "@patternfly/react-table": "^5.4.0",
+        "@patternfly/react-topology": "^5.4.0",
         "@types/js-yaml": "4.0.9",
         "@types/uuid": "10.0.0",
         "@uiw/react-markdown-preview": "^5.1.1",
-        "axios": "1.7.5",
+        "axios": "1.7.7",
         "buffer": "6.0.3",
         "file-saver": "2.0.5",
         "html-to-image": "1.11.11",
         "karavan-core": "file:../../../../karavan-core",
-        "keycloak-js": "25.0.1",
+        "keycloak-js": "25.0.5",
         "react": "18.3.1",
         "react-dom": "18.3.1",
         "react-hook-form": "^7.51.5",
         "react-router-dom": "^6.23.1",
         "rxjs": "7.8.1",
+        "usehooks-ts": "^3.1.0",
         "uuid": "10.0.0",
-        "zustand": "^4.5.4"
+        "zustand": "^4.5.5"
       },
       "devDependencies": {
         "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
@@ -2461,6 +2462,22 @@
         "postcss-selector-parser": "^6.0.10"
       }
     },
+    "node_modules/@dagrejs/dagre": {
+      "version": "1.1.2",
+      "resolved": 
"https://registry.npmjs.org/@dagrejs/dagre/-/dagre-1.1.2.tgz";,
+      "integrity": 
"sha512-F09dphqvHsbe/6C2t2unbmpr5q41BNPEfJCdn8Z7aEBpVSy/zFQ/b4SWsweQjWNsYMDvE2ffNUN8X0CeFsEGNw==",
+      "dependencies": {
+        "@dagrejs/graphlib": "2.2.2"
+      }
+    },
+    "node_modules/@dagrejs/graphlib": {
+      "version": "2.2.2",
+      "resolved": 
"https://registry.npmjs.org/@dagrejs/graphlib/-/graphlib-2.2.2.tgz";,
+      "integrity": 
"sha512-CbyGpCDKsiTg/wuk79S7Muoj8mghDGAESWGxcSyhHX5jD35vYMBZochYVFzlHxynpE9unpu6O+4ZuhrLxASsOg==",
+      "engines": {
+        "node": ">17.0.0"
+      }
+    },
     "node_modules/@eslint-community/eslint-utils": {
       "version": "4.4.0",
       "resolved": 
"https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz";,
@@ -3559,37 +3576,37 @@
       }
     },
     "node_modules/@patternfly/patternfly": {
-      "version": "5.3.1",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.3.1.tgz";,
-      "integrity": 
"sha512-KYIr9pKRTzHZNGuDuaa5j5CaZyLltvotPFGG1BiJalBDBGSOyk0BZCgHLowm4txKZXrLhorEuuv9XLrMQL8eoA=="
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.4.0.tgz";,
+      "integrity": 
"sha512-9B33M4N0/KDyss6NpCwAhz18za7R+sXYiFrUObhGoJ1Cmg06SeScVrEAjT4yJwAClWUlKh604Af9wE4D7IF8Lg=="
     },
     "node_modules/@patternfly/react-charts": {
-      "version": "7.3.0",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.3.0.tgz";,
-      "integrity": 
"sha512-J6d/bFolI3zUOvJoK4lEveNeXZeJNfBq+iXgQ/mImESyW0H7MSebMcVB4d+NC6JX0QykuaOEn/7YMJMU9K73tw==",
+      "version": "7.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.4.0.tgz";,
+      "integrity": 
"sha512-2nvjoGw+ndAwiSFds041wMb4c1BnflyWLAutyC1kYTawhlKrSDGsd4heKWmquzg7GTLBzr1w6YbxKv2i2l7Z7g==",
       "dependencies": {
-        "@patternfly/react-styles": "^5.3.0",
-        "@patternfly/react-tokens": "^5.3.0",
-        "hoist-non-react-statics": "^3.3.0",
+        "@patternfly/react-styles": "^5.4.0",
+        "@patternfly/react-tokens": "^5.4.0",
+        "hoist-non-react-statics": "^3.3.2",
         "lodash": "^4.17.21",
-        "tslib": "^2.5.0",
-        "victory-area": "^36.9.1",
-        "victory-axis": "^36.9.1",
-        "victory-bar": "^36.9.1",
-        "victory-box-plot": "^36.9.1",
-        "victory-chart": "^36.9.1",
-        "victory-core": "^36.9.1",
-        "victory-create-container": "^36.9.1",
-        "victory-cursor-container": "^36.9.1",
-        "victory-group": "^36.9.1",
-        "victory-legend": "^36.9.1",
-        "victory-line": "^36.9.1",
-        "victory-pie": "^36.9.1",
-        "victory-scatter": "^36.9.1",
-        "victory-stack": "^36.9.1",
-        "victory-tooltip": "^36.9.1",
-        "victory-voronoi-container": "^36.9.1",
-        "victory-zoom-container": "^36.9.1"
+        "tslib": "^2.6.3",
+        "victory-area": "^37.0.2",
+        "victory-axis": "^37.0.2",
+        "victory-bar": "^37.0.2",
+        "victory-box-plot": "^37.0.2",
+        "victory-chart": "^37.0.2",
+        "victory-core": "^37.0.2",
+        "victory-create-container": "^37.0.2",
+        "victory-cursor-container": "^37.0.2",
+        "victory-group": "^37.0.2",
+        "victory-legend": "^37.0.2",
+        "victory-line": "^37.0.2",
+        "victory-pie": "^37.0.2",
+        "victory-scatter": "^37.0.2",
+        "victory-stack": "^37.0.2",
+        "victory-tooltip": "^37.0.2",
+        "victory-voronoi-container": "^37.0.2",
+        "victory-zoom-container": "^37.0.2"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -3597,16 +3614,16 @@
       }
     },
     "node_modules/@patternfly/react-core": {
-      "version": "5.3.3",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.3.3.tgz";,
-      "integrity": 
"sha512-qq3j0M+Vi+Xmd+a/MhRhGgjdRh9Hnm79iA+L935HwMIVDcIWRYp6Isib/Ha4+Jk+f3Qdl0RT3dBDvr/4m6OpVQ==",
-      "dependencies": {
-        "@patternfly/react-icons": "^5.3.2",
-        "@patternfly/react-styles": "^5.3.1",
-        "@patternfly/react-tokens": "^5.3.1",
-        "focus-trap": "7.5.2",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.4.0.tgz";,
+      "integrity": 
"sha512-Tz2Y9V4G2pnwrylc/4/FyxIRFvxiA8BEBIG6UBwXxrstnJmJaHgAIy6QJdJmERzVx3GVDz6/rM0PnMqa5R6auQ==",
+      "dependencies": {
+        "@patternfly/react-icons": "^5.4.0",
+        "@patternfly/react-styles": "^5.4.0",
+        "@patternfly/react-tokens": "^5.4.0",
+        "focus-trap": "7.5.4",
         "react-dropzone": "^14.2.3",
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.3"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -3614,18 +3631,18 @@
       }
     },
     "node_modules/@patternfly/react-icons": {
-      "version": "5.3.2",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.3.2.tgz";,
-      "integrity": 
"sha512-GEygYbl0H4zD8nZuTQy2dayKIrV2bMMeWKSOEZ16Y3EYNgYVUOUnN+J0naAEuEGH39Xb1DE9n+XUbE1PC4CxPA==",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.4.0.tgz";,
+      "integrity": 
"sha512-2M3qN/naultvRHeG2laJMmoIroFCGAyfwTVrnCjSkG6/KnRoXV0+dqd+Xrh7xzpzvIJB1klvifC0oX42cEkDrA==",
       "peerDependencies": {
         "react": "^17 || ^18",
         "react-dom": "^17 || ^18"
       }
     },
     "node_modules/@patternfly/react-log-viewer": {
-      "version": "5.2.0",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-log-viewer/-/react-log-viewer-5.2.0.tgz";,
-      "integrity": 
"sha512-+9v4d49ImSMWACJVBbvl5OjIAbEl4QWDuJJQpi2r+tP3ZzAHDZOohOGBeMmT780i0sOeny83qnbNpNbMBVeLCA==",
+      "version": "5.3.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-log-viewer/-/react-log-viewer-5.3.0.tgz";,
+      "integrity": 
"sha512-6jzhxwJwllLdX3jpoGdzIhvhPTfYuC6B+KuN2Laf7Iuioeig8bOMzJZFh6VXg+aBGd9j4JGv2dYryDsbDsTLvw==",
       "dependencies": {
         "@patternfly/react-core": "^5.0.0",
         "@patternfly/react-icons": "^5.0.0",
@@ -3638,21 +3655,21 @@
       }
     },
     "node_modules/@patternfly/react-styles": {
-      "version": "5.3.1",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.3.1.tgz";,
-      "integrity": 
"sha512-H6uBoFH3bJjD6PP75qZ4k+2TtF59vxf9sIVerPpwrGJcRgBZbvbMZCniSC3+S2LQ8DgXLnDvieq78jJzHz0hiA=="
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.4.0.tgz";,
+      "integrity": 
"sha512-4ZE0s6LkX/0KsN0FOeogrDoj18m+BPA73YKnabZGB4SDRzrBNeBh2a6bSt546ZseEjkoJ+S81kOG0G8YckPQYg=="
     },
     "node_modules/@patternfly/react-table": {
-      "version": "5.3.3",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.3.3.tgz";,
-      "integrity": 
"sha512-uaRmsJABvVPH8gYTh+EUcDz61knIxe9qor/VGUYDLONYBL5G3IaltwG42IsJ9jShxiwFmIPy+QARPpaadTpv5w==",
-      "dependencies": {
-        "@patternfly/react-core": "^5.3.3",
-        "@patternfly/react-icons": "^5.3.2",
-        "@patternfly/react-styles": "^5.3.1",
-        "@patternfly/react-tokens": "^5.3.1",
-        "lodash": "^4.17.19",
-        "tslib": "^2.5.0"
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.4.0.tgz";,
+      "integrity": 
"sha512-HkXxVEPeI6nRVSUSHb5BungF41IfjB8W2VqaA3SX+6fGxQAW0e/Hb58ctUdPR2VJ/S2YZFcIcqCCWQtQEf+xKA==",
+      "dependencies": {
+        "@patternfly/react-core": "^5.4.0",
+        "@patternfly/react-icons": "^5.4.0",
+        "@patternfly/react-styles": "^5.4.0",
+        "@patternfly/react-tokens": "^5.4.0",
+        "lodash": "^4.17.21",
+        "tslib": "^2.6.3"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -3660,25 +3677,23 @@
       }
     },
     "node_modules/@patternfly/react-tokens": {
-      "version": "5.3.1",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.3.1.tgz";,
-      "integrity": 
"sha512-VYK0uVP2/2RJ7ZshJCCLeq0Boih5I1bv+9Z/Bg6h12dCkLs85XsxAX9Ve+BGIo5DF54/mzcRHE1RKYap4ISXuw=="
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.4.0.tgz";,
+      "integrity": 
"sha512-KONkwCVOMyklhuuaYeYgcAsGtCBQXnsBGZeolhOdSzr2Mj0RVSW0oMrQPgZuPVzhhC/kbqgClHJJl6xuG9xheA=="
     },
     "node_modules/@patternfly/react-topology": {
-      "version": "5.2.0",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-topology/-/react-topology-5.2.0.tgz";,
-      "integrity": 
"sha512-+kZJSbD6Pb1bTriNzLRiddfSbEBxyiNGSreiV6zOyPwfRizqbFPsOYyRuEocduzLqj0/wT3PM5Ml6JSp8Rw2TQ==",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-topology/-/react-topology-5.4.0.tgz";,
+      "integrity": 
"sha512-WGPunNm8HAQSkkTn0N05vFdNer9UOHWduTBXdyvuVAr/fQZrgglvplJe4qdMPOmT3R/8aVyGJP7itxV2J2b8EA==",
       "dependencies": {
+        "@dagrejs/dagre": "1.1.2",
         "@patternfly/react-core": "^5.1.1",
         "@patternfly/react-icons": "^5.1.1",
         "@patternfly/react-styles": "^5.1.1",
         "@types/d3": "^7.4.0",
         "@types/d3-force": "^1.2.1",
-        "@types/dagre": "0.7.42",
         "@types/react-measure": "^2.0.6",
         "d3": "^7.8.0",
-        "dagre": "0.8.2",
-        "lodash": "^4.17.19",
         "mobx": "^6.9.0",
         "mobx-react": "^7.6.0",
         "point-in-svg-path": "^1.0.1",
@@ -3692,11 +3707,6 @@
         "react-dom": "^17 || ^18"
       }
     },
-    "node_modules/@patternfly/react-topology/node_modules/@types/dagre": {
-      "version": "0.7.42",
-      "resolved": "https://registry.npmjs.org/@types/dagre/-/dagre-0.7.42.tgz";,
-      "integrity": 
"sha512-knVdi1Ul8xYgJ0wdhQ+/2YGJFKJFa/5srcPII9zvOs4KhsHfpnFrSTQXATYmjslglxRMif3Lg+wEZ0beag+94A=="
-    },
     "node_modules/@pkgjs/parseargs": {
       "version": "0.11.0",
       "resolved": 
"https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz";,
@@ -4484,16 +4494,6 @@
         "@types/json-schema": "*"
       }
     },
-    "node_modules/@types/eslint-scope": {
-      "version": "3.7.7",
-      "resolved": 
"https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz";,
-      "integrity": 
"sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
-      "dev": true,
-      "dependencies": {
-        "@types/eslint": "*",
-        "@types/estree": "*"
-      }
-    },
     "node_modules/@types/estree": {
       "version": "1.0.5",
       "resolved": 
"https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz";,
@@ -5823,9 +5823,9 @@
       }
     },
     "node_modules/axios": {
-      "version": "1.7.5",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz";,
-      "integrity": 
"sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==",
+      "version": "1.7.7",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz";,
+      "integrity": 
"sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
       "dependencies": {
         "follow-redirects": "^1.15.6",
         "form-data": "^4.0.0",
@@ -6242,9 +6242,9 @@
       "dev": true
     },
     "node_modules/body-parser": {
-      "version": "1.20.2",
-      "resolved": 
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz";,
-      "integrity": 
"sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
+      "version": "1.20.3",
+      "resolved": 
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz";,
+      "integrity": 
"sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
       "dev": true,
       "dependencies": {
         "bytes": "3.1.2",
@@ -6255,7 +6255,7 @@
         "http-errors": "2.0.0",
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
-        "qs": "6.11.0",
+        "qs": "6.13.0",
         "raw-body": "2.5.2",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
@@ -6301,6 +6301,21 @@
       "integrity": 
"sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
       "dev": true
     },
+    "node_modules/body-parser/node_modules/qs": {
+      "version": "6.13.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz";,
+      "integrity": 
"sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+      "dev": true,
+      "dependencies": {
+        "side-channel": "^1.0.6"
+      },
+      "engines": {
+        "node": ">=0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/bonjour-service": {
       "version": "1.2.1",
       "resolved": 
"https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz";,
@@ -7746,15 +7761,6 @@
         "node": ">=12"
       }
     },
-    "node_modules/dagre": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.2.tgz";,
-      "integrity": 
"sha512-TEOOGZOkCOgCG7AoUIq64sJ3d21SMv8tyoqteLpX+UsUsS9Qw8iap4hhogXY4oB3r0bbZuAjO0atAilgCmsE0Q==",
-      "dependencies": {
-        "graphlib": "^2.1.5",
-        "lodash": "^4.17.4"
-      }
-    },
     "node_modules/damerau-levenshtein": {
       "version": "1.0.8",
       "resolved": 
"https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz";,
@@ -8348,9 +8354,9 @@
       }
     },
     "node_modules/enhanced-resolve": {
-      "version": "5.17.0",
-      "resolved": 
"https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz";,
-      "integrity": 
"sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+      "version": "5.17.1",
+      "resolved": 
"https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz";,
+      "integrity": 
"sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
       "dev": true,
       "dependencies": {
         "graceful-fs": "^4.2.4",
@@ -9386,37 +9392,37 @@
       }
     },
     "node_modules/express": {
-      "version": "4.19.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz";,
-      "integrity": 
"sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
+      "version": "4.20.0",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz";,
+      "integrity": 
"sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==",
       "dev": true,
       "dependencies": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
-        "body-parser": "1.20.2",
+        "body-parser": "1.20.3",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
         "cookie": "0.6.0",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
-        "encodeurl": "~1.0.2",
+        "encodeurl": "~2.0.0",
         "escape-html": "~1.0.3",
         "etag": "~1.8.1",
         "finalhandler": "1.2.0",
         "fresh": "0.5.2",
         "http-errors": "2.0.0",
-        "merge-descriptors": "1.0.1",
+        "merge-descriptors": "1.0.3",
         "methods": "~1.1.2",
         "on-finished": "2.4.1",
         "parseurl": "~1.3.3",
-        "path-to-regexp": "0.1.7",
+        "path-to-regexp": "0.1.10",
         "proxy-addr": "~2.0.7",
         "qs": "6.11.0",
         "range-parser": "~1.2.1",
         "safe-buffer": "5.2.1",
-        "send": "0.18.0",
-        "serve-static": "1.15.0",
+        "send": "0.19.0",
+        "serve-static": "1.16.0",
         "setprototypeof": "1.2.0",
         "statuses": "2.0.1",
         "type-is": "~1.6.18",
@@ -9436,6 +9442,15 @@
         "ms": "2.0.0"
       }
     },
+    "node_modules/express/node_modules/encodeurl": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz";,
+      "integrity": 
"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
     "node_modules/express/node_modules/ms": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";,
@@ -9727,9 +9742,9 @@
       "dev": true
     },
     "node_modules/focus-trap": {
-      "version": "7.5.2",
-      "resolved": 
"https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz";,
-      "integrity": 
"sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==",
+      "version": "7.5.4",
+      "resolved": 
"https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz";,
+      "integrity": 
"sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==",
       "dependencies": {
         "tabbable": "^6.2.0"
       }
@@ -10326,14 +10341,6 @@
       "integrity": 
"sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
       "dev": true
     },
-    "node_modules/graphlib": {
-      "version": "2.1.8",
-      "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz";,
-      "integrity": 
"sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==",
-      "dependencies": {
-        "lodash": "^4.17.15"
-      }
-    },
     "node_modules/gzip-size": {
       "version": "6.0.0",
       "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz";,
@@ -14305,9 +14312,9 @@
       "link": true
     },
     "node_modules/keycloak-js": {
-      "version": "25.0.1",
-      "resolved": 
"https://registry.npmjs.org/keycloak-js/-/keycloak-js-25.0.1.tgz";,
-      "integrity": 
"sha512-ns5sKQ5Iz3UyVGIKq2XBBXNZTlTCg9bzybR+JB2Vn+fDHIo9EGgAY4kzrBWMwbeFuegY+qJwGs05N+W9jgY9tg==",
+      "version": "25.0.5",
+      "resolved": 
"https://registry.npmjs.org/keycloak-js/-/keycloak-js-25.0.5.tgz";,
+      "integrity": 
"sha512-/lrUWHpDoqt4XrY07Wtfo4S2/KPJ3pvE4y1xtus65pAlgqtiEONtlYOdAdJv6iAWl7RE4Jx7eaN5P1A5yO/NLg==",
       "dependencies": {
         "js-sha256": "^0.11.0",
         "jwt-decode": "^4.0.0"
@@ -14460,8 +14467,7 @@
     "node_modules/lodash.debounce": {
       "version": "4.0.8",
       "resolved": 
"https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz";,
-      "integrity": 
"sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
-      "dev": true
+      "integrity": 
"sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
     },
     "node_modules/lodash.memoize": {
       "version": "4.1.2",
@@ -14866,10 +14872,13 @@
       "integrity": 
"sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q=="
     },
     "node_modules/merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": 
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";,
-      "integrity": 
"sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
-      "dev": true
+      "version": "1.0.3",
+      "resolved": 
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz";,
+      "integrity": 
"sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
+      }
     },
     "node_modules/merge-stream": {
       "version": "2.0.0",
@@ -15431,9 +15440,9 @@
       ]
     },
     "node_modules/micromatch": {
-      "version": "4.0.7",
-      "resolved": 
"https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz";,
-      "integrity": 
"sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+      "version": "4.0.8",
+      "resolved": 
"https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz";,
+      "integrity": 
"sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
       "dev": true,
       "dependencies": {
         "braces": "^3.0.3",
@@ -16215,9 +16224,9 @@
       }
     },
     "node_modules/path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": 
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";,
-      "integrity": 
"sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
+      "version": "0.1.10",
+      "resolved": 
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz";,
+      "integrity": 
"sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
       "dev": true
     },
     "node_modules/path-type": {
@@ -19299,9 +19308,9 @@
       }
     },
     "node_modules/send": {
-      "version": "0.18.0",
-      "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz";,
-      "integrity": 
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+      "version": "0.19.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz";,
+      "integrity": 
"sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
       "dev": true,
       "dependencies": {
         "debug": "2.6.9",
@@ -19431,9 +19440,9 @@
       }
     },
     "node_modules/serve-static": {
-      "version": "1.15.0",
-      "resolved": 
"https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz";,
-      "integrity": 
"sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+      "version": "1.16.0",
+      "resolved": 
"https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz";,
+      "integrity": 
"sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==",
       "dev": true,
       "dependencies": {
         "encodeurl": "~1.0.2",
@@ -19445,6 +19454,51 @@
         "node": ">= 0.8.0"
       }
     },
+    "node_modules/serve-static/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";,
+      "integrity": 
"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/serve-static/node_modules/debug/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";,
+      "integrity": 
"sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true
+    },
+    "node_modules/serve-static/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";,
+      "integrity": 
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "dev": true
+    },
+    "node_modules/serve-static/node_modules/send": {
+      "version": "0.18.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz";,
+      "integrity": 
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+      "dev": true,
+      "dependencies": {
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "destroy": "1.2.0",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "2.0.0",
+        "mime": "1.6.0",
+        "ms": "2.1.3",
+        "on-finished": "2.4.1",
+        "range-parser": "~1.2.1",
+        "statuses": "2.0.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
     "node_modules/set-function-length": {
       "version": "1.2.2",
       "resolved": 
"https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz";,
@@ -21165,13 +21219,27 @@
       }
     },
     "node_modules/use-sync-external-store": {
-      "version": "1.2.0",
-      "resolved": 
"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz";,
-      "integrity": 
"sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+      "version": "1.2.2",
+      "resolved": 
"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz";,
+      "integrity": 
"sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==",
       "peerDependencies": {
         "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
       }
     },
+    "node_modules/usehooks-ts": {
+      "version": "3.1.0",
+      "resolved": 
"https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz";,
+      "integrity": 
"sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==",
+      "dependencies": {
+        "lodash.debounce": "^4.0.8"
+      },
+      "engines": {
+        "node": ">=16.15.0"
+      },
+      "peerDependencies": {
+        "react": "^16.8.0  || ^17 || ^18"
+      }
+    },
     "node_modules/util-deprecate": {
       "version": "1.0.2",
       "resolved": 
"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";,
@@ -21275,259 +21343,259 @@
       }
     },
     "node_modules/victory-area": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-area/-/victory-area-36.9.2.tgz";,
-      "integrity": 
"sha512-32aharvPf2RgdQB+/u1j3/ajYFNH/7ugLX9ZRpdd65gP6QEbtXL+58gS6CxvFw6gr/y8a0xMlkMKkpDVacXLpw==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-area/-/victory-area-37.1.1.tgz";,
+      "integrity": 
"sha512-9OVILTIT5DW/BsMksZ1xCjmNrT0iIhsHnumeNJDvvfzWUeqLyYPwmqp8e2wRraj1VRhRAAgZGXAHi7XA3rJkgQ==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2",
-        "victory-vendor": "^36.9.2"
+        "victory-core": "37.1.1",
+        "victory-vendor": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-axis": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-axis/-/victory-axis-36.9.2.tgz";,
-      "integrity": 
"sha512-4Odws+IAjprJtBg2b2ZCxEPgrQ6LgIOa22cFkGghzOSfTyNayN4M3AauNB44RZyn2O/hDiM1gdBkEg1g9YDevQ==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-axis/-/victory-axis-37.1.1.tgz";,
+      "integrity": 
"sha512-LqlXoAHNxvS/GdAKR6YSHZf0I9egMZf84kqUb7dG3NNLE8M1XnaEkYlfIOJsL+vsZJqm4kqoe67yI56eqIY5Hw==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-bar": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-bar/-/victory-bar-36.9.2.tgz";,
-      "integrity": 
"sha512-R3LFoR91FzwWcnyGK2P8DHNVv9gsaWhl5pSr2KdeNtvLbZVEIvUkTeVN9RMBMzterSFPw0mbWhS1Asb3sV6PPw==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-bar/-/victory-bar-37.1.1.tgz";,
+      "integrity": 
"sha512-1e1QtVDMgFRwXZDrt9nT1Fqv57yHL9Z9ssA2mgyzV/wi/HRneuUXE958Q/t59z4cTEkRYwNrUE3dODBCpxXMKw==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2",
-        "victory-vendor": "^36.9.2"
+        "victory-core": "37.1.1",
+        "victory-vendor": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-box-plot": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-box-plot/-/victory-box-plot-36.9.2.tgz";,
-      "integrity": 
"sha512-nUD45V/YHDkAKZyak7YDsz+Vk1F9N0ica3jWQe0AY0JqD9DleHa8RY/olSVws26kLyEj1I+fQqva6GodcLaIqQ==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-box-plot/-/victory-box-plot-37.1.1.tgz";,
+      "integrity": 
"sha512-cdmAxg1Sqt/c2lbPJdD8+4qBNj8UMav8fLtsGd/uCNHWYzv52+0g9B8ToE6ImsKyBFRGnW+c0BD5vKbtyW6tJw==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2",
-        "victory-vendor": "^36.9.2"
+        "victory-core": "37.1.1",
+        "victory-vendor": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-brush-container": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-brush-container/-/victory-brush-container-36.9.2.tgz";,
-      "integrity": 
"sha512-KcQjzFeo40tn52cJf1A02l5MqeR9GKkk3loDqM3T2hfi1PCyUrZXEUjGN5HNlLizDRvtcemaAHNAWlb70HbG/g==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-brush-container/-/victory-brush-container-37.1.1.tgz";,
+      "integrity": 
"sha512-iZkp/r7uzkc7UN3EgAWe4aDDEFHe7BQs0nv/mmyFeFYIXG5e2uiKs28OsZnfgp6CDIHDqUoV8DAGOccotUbUaQ==",
       "dependencies": {
         "lodash": "^4.17.19",
         "react-fast-compare": "^3.2.0",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-chart": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-chart/-/victory-chart-36.9.2.tgz";,
-      "integrity": 
"sha512-dMNcS0BpqL3YiGvI4BSEmPR76FCksCgf3K4CSZ7C/MGyrElqB6wWwzk7afnlB1Qr71YIHXDmdwsPNAl/iEwTtA==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-chart/-/victory-chart-37.1.1.tgz";,
+      "integrity": 
"sha512-p//04lKzUX1ocXmp9RWmQMOsQUcP7m1CsrYkBOvqzD1sjgMhDzTqZdn38rMUzW0bpbCs0Tl6wbOzxMN+/PA8fQ==",
       "dependencies": {
         "lodash": "^4.17.19",
         "react-fast-compare": "^3.2.0",
-        "victory-axis": "^36.9.2",
-        "victory-core": "^36.9.2",
-        "victory-polar-axis": "^36.9.2",
-        "victory-shared-events": "^36.9.2"
+        "victory-axis": "37.1.1",
+        "victory-core": "37.1.1",
+        "victory-polar-axis": "37.1.1",
+        "victory-shared-events": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-core": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-core/-/victory-core-36.9.2.tgz";,
-      "integrity": 
"sha512-AzmMy+9MYMaaRmmZZovc/Po9urHne3R3oX7bbXeQdVuK/uMBrlPiv11gVJnuEH2SXLVyep43jlKgaBp8ef9stQ==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-core/-/victory-core-37.1.1.tgz";,
+      "integrity": 
"sha512-4UK1S1+9CFBn1Nwu18JsOf2EtaTI/DOE4Eoi5byLd6kFO8/luSbaLvc7BDPxiLpSj0BGiX/Hbqs12T2gPaEnAA==",
       "dependencies": {
         "lodash": "^4.17.21",
         "react-fast-compare": "^3.2.0",
-        "victory-vendor": "^36.9.2"
+        "victory-vendor": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-create-container": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-create-container/-/victory-create-container-36.9.2.tgz";,
-      "integrity": 
"sha512-uA0dh1R0YDzuXyE/7StZvq4qshet+WYceY7R1UR5mR/F9079xy+iQsa2Ca4h97/GtVZoLO6r1eKLWBt9TN+U7A==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-create-container/-/victory-create-container-37.1.1.tgz";,
+      "integrity": 
"sha512-t/soXK97TcP4yxHYwvfCWJW9jGlRyYS4zdhjLe9Q2iETY0ngiVk+bpETZVPMgubPxq3JPaogMQKgd+1hDWjBMg==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-brush-container": "^36.9.2",
-        "victory-core": "^36.9.2",
-        "victory-cursor-container": "^36.9.2",
-        "victory-selection-container": "^36.9.2",
-        "victory-voronoi-container": "^36.9.2",
-        "victory-zoom-container": "^36.9.2"
+        "victory-brush-container": "37.1.1",
+        "victory-core": "37.1.1",
+        "victory-cursor-container": "37.1.1",
+        "victory-selection-container": "37.1.1",
+        "victory-voronoi-container": "37.1.1",
+        "victory-zoom-container": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-cursor-container": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-cursor-container/-/victory-cursor-container-36.9.2.tgz";,
-      "integrity": 
"sha512-jidab4j3MaciF3fGX70jTj4H9rrLcY8o2LUrhJ67ZLvEFGGmnPtph+p8Fe97Umrag7E/DszjNxQZolpwlgUh3g==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-cursor-container/-/victory-cursor-container-37.1.1.tgz";,
+      "integrity": 
"sha512-m2YS7nmAcGHatVhuqjuJW7jXRXutI0e1pBz9PbHm692HNAJbMfFTJAKtgPXUj5wYVae4OAr6f0551/ekkcL7xQ==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-group": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-group/-/victory-group-36.9.2.tgz";,
-      "integrity": 
"sha512-wBmpsjBTKva8mxHvHNY3b8RE58KtnpLLItEyyAHaYkmExwt3Uj8Cld3sF3vmeuijn2iR64NPKeMbgMbfZJzycw==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-group/-/victory-group-37.1.1.tgz";,
+      "integrity": 
"sha512-170CnQ6+doT8VUPZzcq6IIluSMSYqactT9J0ANSDEwHsO/+r0tFwez44FtA4/DgdDh5ObWQ6VfQx330urMG5bA==",
       "dependencies": {
         "lodash": "^4.17.19",
         "react-fast-compare": "^3.2.0",
-        "victory-core": "^36.9.2",
-        "victory-shared-events": "^36.9.2"
+        "victory-core": "37.1.1",
+        "victory-shared-events": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-legend": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-legend/-/victory-legend-36.9.2.tgz";,
-      "integrity": 
"sha512-cucFJpv6fty+yXp5pElQFQnHBk1TqA4guGUMI+XF/wLlnuM4bhdAtASobRIIBkz0mHGBaCAAV4PzL9azPU/9dg==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-legend/-/victory-legend-37.1.1.tgz";,
+      "integrity": 
"sha512-8F51DbYzG+jkMJoGp2Ulqqxgoq00TWgvQcBTZptdrN2PFlc2b1Ug7z3lbK1ziUCunrVbHQpAhge0onDoRyn1Vg==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-line": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-line/-/victory-line-36.9.2.tgz";,
-      "integrity": 
"sha512-kmYFZUo0o2xC8cXRsmt/oUBRQSZJVT2IJnAkboUepypoj09e6CY5tRH4TSdfEDGkBk23xQkn7d4IFgl4kAGnSA==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-line/-/victory-line-37.1.1.tgz";,
+      "integrity": 
"sha512-YLR9/i7BwN3taBvHCfmc5hA0po16QFQuFnO61NPNCBZtv8kNf39m3BpDTDYMeuEgEBCnMw0znR0C1NASZcJDWQ==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2",
-        "victory-vendor": "^36.9.2"
+        "victory-core": "37.1.1",
+        "victory-vendor": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-pie": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-pie/-/victory-pie-36.9.2.tgz";,
-      "integrity": 
"sha512-i3zWezvy5wQEkhXKt4rS9ILGH7Vr9Q5eF9fKO4GMwDPBdYOTE3Dh2tVaSrfDC8g9zFIc0DKzOtVoJRTb+0AkPg==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-pie/-/victory-pie-37.1.1.tgz";,
+      "integrity": 
"sha512-GWHR4prUq6ZNeMd0IEywHvvWn3dkn7vS3fkLMVTKitpbMIRPGlFxo5gLTkAQv3nnA/762GLSyELbcFgFQXOQUA==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2",
-        "victory-vendor": "^36.9.2"
+        "victory-core": "37.1.1",
+        "victory-vendor": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-polar-axis": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-polar-axis/-/victory-polar-axis-36.9.2.tgz";,
-      "integrity": 
"sha512-HBR90FF4M56yf/atXjSmy3DMps1vSAaLXmdVXLM/A5g+0pUS7HO719r5x6dsR3I6Rm+8x6Kk8xJs0qgpnGQIEw==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-polar-axis/-/victory-polar-axis-37.1.1.tgz";,
+      "integrity": 
"sha512-I9okmw1MauiucV6WxylHDOZtW5mgrozYmfglOSR6fnQ9gcxPoXSgBNxo801kyV2/pu8BP6dD07Uz1QLbCh3KSA==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-scatter": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-scatter/-/victory-scatter-36.9.2.tgz";,
-      "integrity": 
"sha512-hK9AtbJQfaW05i8BH7Lf1HK7vWMAfQofj23039HEQJqTKbCL77YT+Q0LhZw1a1BRCpC/5aSg9EuqblhfIYw2wg==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-scatter/-/victory-scatter-37.1.1.tgz";,
+      "integrity": 
"sha512-2jt0HgYnLngw8oVAY5Tcq2MEHVc3FDo47gMQf7LysFvsuCtBLvgkaDuRPnF+8Ty3hP/7qwjV9tgM7Ui2cSfZSg==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-selection-container": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-selection-container/-/victory-selection-container-36.9.2.tgz";,
-      "integrity": 
"sha512-chboroEwqqVlMB60kveXM2WznJ33ZM00PWkFVCoJDzHHlYs7TCADxzhqet2S67SbZGSyvSprY2YztSxX8kZ+XQ==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-selection-container/-/victory-selection-container-37.1.1.tgz";,
+      "integrity": 
"sha512-5FYlMQNt7uV+EfndtCTYkE5/yjnHo243ZnBiUzXmvXU+IBCjzXmcOeyqyn7IY7+p1fvA2Hc698mDLGydd8QJrA==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-shared-events": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-shared-events/-/victory-shared-events-36.9.2.tgz";,
-      "integrity": 
"sha512-W/atiw3Or6MnpBuhluFv6007YrixIRh5NtiRvtFLGxNuQJLYjaSh6koRAih5xJer5Pj7YUx0tL9x67jTRcJ6Dg==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-shared-events/-/victory-shared-events-37.1.1.tgz";,
+      "integrity": 
"sha512-hMZI4GMLNWoIQ/Yso/tiTKpx5wUgNi2iwozrxWDesr11I5uqwutkBeHpIBMBwsGRWy6plkMyBp9lCf2Etkxm4A==",
       "dependencies": {
         "json-stringify-safe": "^5.0.1",
         "lodash": "^4.17.19",
         "react-fast-compare": "^3.2.0",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-stack": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-stack/-/victory-stack-36.9.2.tgz";,
-      "integrity": 
"sha512-imR6FniVlDFlBa/B3Est8kTryNhWj2ZNpivmVOebVDxkKcVlLaDg3LotCUOI7NzOhBQaro0UzeE9KmZV93JcYA==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-stack/-/victory-stack-37.1.1.tgz";,
+      "integrity": 
"sha512-jIHV7xRZW8jEuOGjrEreIh/u1mddDix98NmIJnd2+qMk1EuWIHngC2neCKQ0iF3wc8eAMuaK8gGr6ksSkpsqPA==",
       "dependencies": {
         "lodash": "^4.17.19",
         "react-fast-compare": "^3.2.0",
-        "victory-core": "^36.9.2",
-        "victory-shared-events": "^36.9.2"
+        "victory-core": "37.1.1",
+        "victory-shared-events": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-tooltip": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-tooltip/-/victory-tooltip-36.9.2.tgz";,
-      "integrity": 
"sha512-76seo4TWD1WfZHJQH87IP3tlawv38DuwrUxpnTn8+uW6/CUex82poQiVevYdmJzhataS9jjyCWv3w7pOmLBCLg==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-tooltip/-/victory-tooltip-37.1.1.tgz";,
+      "integrity": 
"sha512-n5TTR92jIDaeXSADV+edevcMcNLz1iPwzQr7CNX38vWU6RWf/FRcdiBlBNg3v4rNh41+sO8jjMQhjOpDti6Rvw==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-vendor": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz";,
-      "integrity": 
"sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.1.1.tgz";,
+      "integrity": 
"sha512-WDnoGOSqmgyFgY/+7v4i40Vc/I/iOqc9JpUniWO9TvLCWAVEmwAjKxrorBlxEv+vQxQuhxGKOf3PcJqfjZqA9g==",
       "dependencies": {
         "@types/d3-array": "^3.0.3",
         "@types/d3-ease": "^3.0.0",
@@ -21546,27 +21614,27 @@
       }
     },
     "node_modules/victory-voronoi-container": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-voronoi-container/-/victory-voronoi-container-36.9.2.tgz";,
-      "integrity": 
"sha512-NIVYqck9N4OQnEz9mgQ4wILsci3OBWWK7RLuITGHyoD7Ne/+WH1i0Pv2y9eIx+f55rc928FUTugPPhkHvXyH3A==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-voronoi-container/-/victory-voronoi-container-37.1.1.tgz";,
+      "integrity": 
"sha512-OIiT/KroQCvPaITEGcZfPd7B5Byw2vjo52RiUfzdg5WfCvqxuOURnvXsv6lh8nTNS/VI9uWaxHYdATXqXtNgfA==",
       "dependencies": {
         "delaunay-find": "0.0.6",
         "lodash": "^4.17.19",
         "react-fast-compare": "^3.2.0",
-        "victory-core": "^36.9.2",
-        "victory-tooltip": "^36.9.2"
+        "victory-core": "37.1.1",
+        "victory-tooltip": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
       }
     },
     "node_modules/victory-zoom-container": {
-      "version": "36.9.2",
-      "resolved": 
"https://registry.npmjs.org/victory-zoom-container/-/victory-zoom-container-36.9.2.tgz";,
-      "integrity": 
"sha512-pXa2Ji6EX/pIarKT6Hcmmu2n7IG/x8Vs0D2eACQ/nbpvZa+DXWIxCRW4hcg2Va35fmXcDIEpGaX3/soXzZ+pbw==",
+      "version": "37.1.1",
+      "resolved": 
"https://registry.npmjs.org/victory-zoom-container/-/victory-zoom-container-37.1.1.tgz";,
+      "integrity": 
"sha512-pBW64iT9zlFqmo468+MXkqNwJuuM+Q/+5/llFCKBoMA6wE1SwpkgHQ8RITWQUDCY9dR3y/bJFLEQg2aqoFB8/g==",
       "dependencies": {
         "lodash": "^4.17.19",
-        "victory-core": "^36.9.2"
+        "victory-core": "37.1.1"
       },
       "peerDependencies": {
         "react": ">=16.6.0"
@@ -21692,12 +21760,11 @@
       }
     },
     "node_modules/webpack": {
-      "version": "5.92.1",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz";,
-      "integrity": 
"sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
+      "version": "5.94.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz";,
+      "integrity": 
"sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
       "dev": true,
       "dependencies": {
-        "@types/eslint-scope": "^3.7.3",
         "@types/estree": "^1.0.5",
         "@webassemblyjs/ast": "^1.12.1",
         "@webassemblyjs/wasm-edit": "^1.12.1",
@@ -21706,7 +21773,7 @@
         "acorn-import-attributes": "^1.9.5",
         "browserslist": "^4.21.10",
         "chrome-trace-event": "^1.0.2",
-        "enhanced-resolve": "^5.17.0",
+        "enhanced-resolve": "^5.17.1",
         "es-module-lexer": "^1.2.1",
         "eslint-scope": "5.1.1",
         "events": "^3.2.0",
@@ -22618,11 +22685,11 @@
       }
     },
     "node_modules/zustand": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.4.tgz";,
-      "integrity": 
"sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==",
+      "version": "4.5.5",
+      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz";,
+      "integrity": 
"sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==",
       "dependencies": {
-        "use-sync-external-store": "1.2.0"
+        "use-sync-external-store": "1.2.2"
       },
       "engines": {
         "node": ">=12.7.0"
diff --git a/karavan-app/src/main/webui/package.json 
b/karavan-app/src/main/webui/package.json
index 99982e3c..7d3e7a68 100644
--- a/karavan-app/src/main/webui/package.json
+++ b/karavan-app/src/main/webui/package.json
@@ -32,35 +32,36 @@
   "dependencies": {
     "@microsoft/fetch-event-source": "^2.0.1",
     "@monaco-editor/react": "4.6.0",
-    "@patternfly/patternfly": "^5.3.1",
-    "@patternfly/react-charts": "^7.3.0",
-    "@patternfly/react-core": "^5.3.3",
-    "@patternfly/react-log-viewer": "^5.1.0",
-    "@patternfly/react-table": "^5.3.3",
-    "@patternfly/react-topology": "^5.2.0",
+    "@patternfly/patternfly": "^5.4.0",
+    "@patternfly/react-charts": "^7.4.0",
+    "@patternfly/react-core": "^5.4.0",
+    "@patternfly/react-log-viewer": "^5.3.0",
+    "@patternfly/react-table": "^5.4.0",
+    "@patternfly/react-topology": "^5.4.0",
     "@types/js-yaml": "4.0.9",
     "@types/uuid": "10.0.0",
     "@uiw/react-markdown-preview": "^5.1.1",
-    "axios": "1.7.5",
+    "axios": "1.7.7",
     "buffer": "6.0.3",
     "file-saver": "2.0.5",
     "html-to-image": "1.11.11",
     "karavan-core": "file:../../../../karavan-core",
-    "keycloak-js": "25.0.1",
+    "keycloak-js": "25.0.5",
     "react": "18.3.1",
     "react-dom": "18.3.1",
     "react-hook-form": "^7.51.5",
     "react-router-dom": "^6.23.1",
     "rxjs": "7.8.1",
+    "usehooks-ts": "^3.1.0",
     "uuid": "10.0.0",
-    "zustand": "^4.5.4"
+    "zustand": "^4.5.5"
   },
   "devDependencies": {
     "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
     "@svgr/webpack": "^8.1.0",
-    "@types/node": "20.14.9",
     "@types/dagre": "^0.7.52",
     "@types/file-saver": "^2.0.7",
+    "@types/node": "20.14.9",
     "@types/react": "^18.3.1",
     "@types/react-dom": "^18.3.0",
     "@typescript-eslint/eslint-plugin": "^5.51.0",
diff --git a/karavan-designer/package-lock.json 
b/karavan-designer/package-lock.json
index 77618a27..a0458632 100644
--- a/karavan-designer/package-lock.json
+++ b/karavan-designer/package-lock.json
@@ -10,20 +10,21 @@
       "license": "Apache-2.0",
       "dependencies": {
         "@monaco-editor/react": "^4.6.0",
-        "@patternfly/patternfly": "^5.3.1",
-        "@patternfly/react-core": "^5.3.3",
-        "@patternfly/react-table": "^5.3.3",
-        "@patternfly/react-topology": "^5.2.0",
+        "@patternfly/patternfly": "^5.4.0",
+        "@patternfly/react-core": "^5.4.0",
+        "@patternfly/react-table": "^5.4.0",
+        "@patternfly/react-topology": "^5.4.0",
         "@types/js-yaml": "4.0.9",
         "@types/uuid": "10.0.0",
-        "axios": "1.7.5",
+        "axios": "1.7.7",
         "html-to-image": "1.11.11",
         "karavan-core": "file:../karavan-core",
         "react": "18.3.1",
         "react-dom": "18.3.1",
         "rxjs": "7.8.1",
+        "usehooks-ts": "^3.1.0",
         "uuid": "10.0.0",
-        "zustand": "^4.5.2"
+        "zustand": "^4.5.5"
       },
       "devDependencies": {
         "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
@@ -3716,6 +3717,22 @@
         "postcss-selector-parser": "^6.0.10"
       }
     },
+    "node_modules/@dagrejs/dagre": {
+      "version": "1.1.2",
+      "resolved": 
"https://registry.npmjs.org/@dagrejs/dagre/-/dagre-1.1.2.tgz";,
+      "integrity": 
"sha512-F09dphqvHsbe/6C2t2unbmpr5q41BNPEfJCdn8Z7aEBpVSy/zFQ/b4SWsweQjWNsYMDvE2ffNUN8X0CeFsEGNw==",
+      "dependencies": {
+        "@dagrejs/graphlib": "2.2.2"
+      }
+    },
+    "node_modules/@dagrejs/graphlib": {
+      "version": "2.2.2",
+      "resolved": 
"https://registry.npmjs.org/@dagrejs/graphlib/-/graphlib-2.2.2.tgz";,
+      "integrity": 
"sha512-CbyGpCDKsiTg/wuk79S7Muoj8mghDGAESWGxcSyhHX5jD35vYMBZochYVFzlHxynpE9unpu6O+4ZuhrLxASsOg==",
+      "engines": {
+        "node": ">17.0.0"
+      }
+    },
     "node_modules/@eslint-community/eslint-utils": {
       "version": "4.4.0",
       "dev": true,
@@ -4723,19 +4740,21 @@
       }
     },
     "node_modules/@patternfly/patternfly": {
-      "version": "5.3.1",
-      "license": "MIT"
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.4.0.tgz";,
+      "integrity": 
"sha512-9B33M4N0/KDyss6NpCwAhz18za7R+sXYiFrUObhGoJ1Cmg06SeScVrEAjT4yJwAClWUlKh604Af9wE4D7IF8Lg=="
     },
     "node_modules/@patternfly/react-core": {
-      "version": "5.3.3",
-      "license": "MIT",
-      "dependencies": {
-        "@patternfly/react-icons": "^5.3.2",
-        "@patternfly/react-styles": "^5.3.1",
-        "@patternfly/react-tokens": "^5.3.1",
-        "focus-trap": "7.5.2",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.4.0.tgz";,
+      "integrity": 
"sha512-Tz2Y9V4G2pnwrylc/4/FyxIRFvxiA8BEBIG6UBwXxrstnJmJaHgAIy6QJdJmERzVx3GVDz6/rM0PnMqa5R6auQ==",
+      "dependencies": {
+        "@patternfly/react-icons": "^5.4.0",
+        "@patternfly/react-styles": "^5.4.0",
+        "@patternfly/react-tokens": "^5.4.0",
+        "focus-trap": "7.5.4",
         "react-dropzone": "^14.2.3",
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.3"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -4743,27 +4762,30 @@
       }
     },
     "node_modules/@patternfly/react-icons": {
-      "version": "5.3.2",
-      "license": "MIT",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.4.0.tgz";,
+      "integrity": 
"sha512-2M3qN/naultvRHeG2laJMmoIroFCGAyfwTVrnCjSkG6/KnRoXV0+dqd+Xrh7xzpzvIJB1klvifC0oX42cEkDrA==",
       "peerDependencies": {
         "react": "^17 || ^18",
         "react-dom": "^17 || ^18"
       }
     },
     "node_modules/@patternfly/react-styles": {
-      "version": "5.3.1",
-      "license": "MIT"
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.4.0.tgz";,
+      "integrity": 
"sha512-4ZE0s6LkX/0KsN0FOeogrDoj18m+BPA73YKnabZGB4SDRzrBNeBh2a6bSt546ZseEjkoJ+S81kOG0G8YckPQYg=="
     },
     "node_modules/@patternfly/react-table": {
-      "version": "5.3.3",
-      "license": "MIT",
-      "dependencies": {
-        "@patternfly/react-core": "^5.3.3",
-        "@patternfly/react-icons": "^5.3.2",
-        "@patternfly/react-styles": "^5.3.1",
-        "@patternfly/react-tokens": "^5.3.1",
-        "lodash": "^4.17.19",
-        "tslib": "^2.5.0"
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.4.0.tgz";,
+      "integrity": 
"sha512-HkXxVEPeI6nRVSUSHb5BungF41IfjB8W2VqaA3SX+6fGxQAW0e/Hb58ctUdPR2VJ/S2YZFcIcqCCWQtQEf+xKA==",
+      "dependencies": {
+        "@patternfly/react-core": "^5.4.0",
+        "@patternfly/react-icons": "^5.4.0",
+        "@patternfly/react-styles": "^5.4.0",
+        "@patternfly/react-tokens": "^5.4.0",
+        "lodash": "^4.17.21",
+        "tslib": "^2.6.3"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -4771,23 +4793,23 @@
       }
     },
     "node_modules/@patternfly/react-tokens": {
-      "version": "5.3.1",
-      "license": "MIT"
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.4.0.tgz";,
+      "integrity": 
"sha512-KONkwCVOMyklhuuaYeYgcAsGtCBQXnsBGZeolhOdSzr2Mj0RVSW0oMrQPgZuPVzhhC/kbqgClHJJl6xuG9xheA=="
     },
     "node_modules/@patternfly/react-topology": {
-      "version": "5.2.0",
-      "license": "MIT",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-topology/-/react-topology-5.4.0.tgz";,
+      "integrity": 
"sha512-WGPunNm8HAQSkkTn0N05vFdNer9UOHWduTBXdyvuVAr/fQZrgglvplJe4qdMPOmT3R/8aVyGJP7itxV2J2b8EA==",
       "dependencies": {
+        "@dagrejs/dagre": "1.1.2",
         "@patternfly/react-core": "^5.1.1",
         "@patternfly/react-icons": "^5.1.1",
         "@patternfly/react-styles": "^5.1.1",
         "@types/d3": "^7.4.0",
         "@types/d3-force": "^1.2.1",
-        "@types/dagre": "0.7.42",
         "@types/react-measure": "^2.0.6",
         "d3": "^7.8.0",
-        "dagre": "0.8.2",
-        "lodash": "^4.17.19",
         "mobx": "^6.9.0",
         "mobx-react": "^7.6.0",
         "point-in-svg-path": "^1.0.1",
@@ -4801,10 +4823,6 @@
         "react-dom": "^17 || ^18"
       }
     },
-    "node_modules/@patternfly/react-topology/node_modules/@types/dagre": {
-      "version": "0.7.42",
-      "license": "MIT"
-    },
     "node_modules/@pkgjs/parseargs": {
       "version": "0.11.0",
       "dev": true,
@@ -6649,9 +6667,9 @@
       }
     },
     "node_modules/axios": {
-      "version": "1.7.5",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz";,
-      "integrity": 
"sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==",
+      "version": "1.7.7",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz";,
+      "integrity": 
"sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
       "dependencies": {
         "follow-redirects": "^1.15.6",
         "form-data": "^4.0.0",
@@ -8298,14 +8316,6 @@
         "node": ">=12"
       }
     },
-    "node_modules/dagre": {
-      "version": "0.8.2",
-      "license": "MIT",
-      "dependencies": {
-        "graphlib": "^2.1.5",
-        "lodash": "^4.17.4"
-      }
-    },
     "node_modules/damerau-levenshtein": {
       "version": "1.0.8",
       "dev": true,
@@ -10055,8 +10065,9 @@
       "license": "ISC"
     },
     "node_modules/focus-trap": {
-      "version": "7.5.2",
-      "license": "MIT",
+      "version": "7.5.4",
+      "resolved": 
"https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz";,
+      "integrity": 
"sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==",
       "dependencies": {
         "tabbable": "^6.2.0"
       }
@@ -10599,13 +10610,6 @@
       "dev": true,
       "license": "MIT"
     },
-    "node_modules/graphlib": {
-      "version": "2.1.8",
-      "license": "MIT",
-      "dependencies": {
-        "lodash": "^4.17.15"
-      }
-    },
     "node_modules/gzip-size": {
       "version": "6.0.0",
       "dev": true,
@@ -14013,7 +14017,6 @@
     },
     "node_modules/lodash.debounce": {
       "version": "4.0.8",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/lodash.memoize": {
@@ -18335,7 +18338,8 @@
     },
     "node_modules/tabbable": {
       "version": "6.2.0",
-      "license": "MIT"
+      "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz";,
+      "integrity": 
"sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew=="
     },
     "node_modules/tailwindcss": {
       "version": "3.4.4",
@@ -18953,12 +18957,27 @@
       }
     },
     "node_modules/use-sync-external-store": {
-      "version": "1.2.0",
-      "license": "MIT",
+      "version": "1.2.2",
+      "resolved": 
"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz";,
+      "integrity": 
"sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==",
       "peerDependencies": {
         "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
       }
     },
+    "node_modules/usehooks-ts": {
+      "version": "3.1.0",
+      "resolved": 
"https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz";,
+      "integrity": 
"sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==",
+      "dependencies": {
+        "lodash.debounce": "^4.0.8"
+      },
+      "engines": {
+        "node": ">=16.15.0"
+      },
+      "peerDependencies": {
+        "react": "^16.8.0  || ^17 || ^18"
+      }
+    },
     "node_modules/util-deprecate": {
       "version": "1.0.2",
       "dev": true,
@@ -19968,10 +19987,11 @@
       }
     },
     "node_modules/zustand": {
-      "version": "4.5.4",
-      "license": "MIT",
+      "version": "4.5.5",
+      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz";,
+      "integrity": 
"sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==",
       "dependencies": {
-        "use-sync-external-store": "1.2.0"
+        "use-sync-external-store": "1.2.2"
       },
       "engines": {
         "node": ">=12.7.0"
diff --git a/karavan-designer/package.json b/karavan-designer/package.json
index 8c395ecb..74e4259f 100644
--- a/karavan-designer/package.json
+++ b/karavan-designer/package.json
@@ -27,20 +27,21 @@
   },
   "dependencies": {
     "@monaco-editor/react": "^4.6.0",
-    "@patternfly/patternfly": "^5.3.1",
-    "@patternfly/react-core": "^5.3.3",
-    "@patternfly/react-table": "^5.3.3",
-    "@patternfly/react-topology": "^5.2.0",
+    "@patternfly/patternfly": "^5.4.0",
+    "@patternfly/react-core": "^5.4.0",
+    "@patternfly/react-table": "^5.4.0",
+    "@patternfly/react-topology": "^5.4.0",
     "@types/js-yaml": "4.0.9",
     "@types/uuid": "10.0.0",
-    "axios": "1.7.5",
+    "axios": "1.7.7",
     "html-to-image": "1.11.11",
     "karavan-core": "file:../karavan-core",
     "react": "18.3.1",
     "react-dom": "18.3.1",
     "rxjs": "7.8.1",
+    "usehooks-ts": "^3.1.0",
     "uuid": "10.0.0",
-    "zustand": "^4.5.2"
+    "zustand": "^4.5.5"
   },
   "devDependencies": {
     "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
diff --git a/karavan-space/package-lock.json b/karavan-space/package-lock.json
index 43df9c6e..7b215191 100644
--- a/karavan-space/package-lock.json
+++ b/karavan-space/package-lock.json
@@ -10,13 +10,13 @@
       "license": "Apache-2.0",
       "dependencies": {
         "@monaco-editor/react": "^4.6.0",
-        "@patternfly/patternfly": "^5.3.1",
-        "@patternfly/react-core": "^5.3.3",
-        "@patternfly/react-table": "^5.3.3",
-        "@patternfly/react-topology": "^5.2.0",
+        "@patternfly/patternfly": "^5.4.0",
+        "@patternfly/react-core": "^5.4.0",
+        "@patternfly/react-table": "^5.4.0",
+        "@patternfly/react-topology": "^5.4.0",
         "@types/js-yaml": "4.0.9",
         "@types/uuid": "9.0.8",
-        "axios": "1.7.5",
+        "axios": "1.7.7",
         "html-to-image": "1.11.11",
         "karavan-core": "file:../karavan-core",
         "netlify-auth-providers": "^1.0.0-alpha5",
@@ -24,9 +24,10 @@
         "react": "18.3.1",
         "react-dom": "18.3.1",
         "rxjs": "7.8.1",
-        "uuid": "9.0.1",
-        "vite": "^5.2.13",
-        "zustand": "^4.5.2"
+        "usehooks-ts": "^3.1.0",
+        "uuid": "10.0.0",
+        "vite": "^5.4.4",
+        "zustand": "^4.5.5"
       },
       "devDependencies": {
         "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
@@ -2456,6 +2457,22 @@
         "postcss-selector-parser": "^6.0.10"
       }
     },
+    "node_modules/@dagrejs/dagre": {
+      "version": "1.1.2",
+      "resolved": 
"https://registry.npmjs.org/@dagrejs/dagre/-/dagre-1.1.2.tgz";,
+      "integrity": 
"sha512-F09dphqvHsbe/6C2t2unbmpr5q41BNPEfJCdn8Z7aEBpVSy/zFQ/b4SWsweQjWNsYMDvE2ffNUN8X0CeFsEGNw==",
+      "dependencies": {
+        "@dagrejs/graphlib": "2.2.2"
+      }
+    },
+    "node_modules/@dagrejs/graphlib": {
+      "version": "2.2.2",
+      "resolved": 
"https://registry.npmjs.org/@dagrejs/graphlib/-/graphlib-2.2.2.tgz";,
+      "integrity": 
"sha512-CbyGpCDKsiTg/wuk79S7Muoj8mghDGAESWGxcSyhHX5jD35vYMBZochYVFzlHxynpE9unpu6O+4ZuhrLxASsOg==",
+      "engines": {
+        "node": ">17.0.0"
+      }
+    },
     "node_modules/@esbuild/aix-ppc64": {
       "version": "0.21.5",
       "resolved": 
"https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz";,
@@ -4218,21 +4235,21 @@
       }
     },
     "node_modules/@patternfly/patternfly": {
-      "version": "5.3.1",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.3.1.tgz";,
-      "integrity": 
"sha512-KYIr9pKRTzHZNGuDuaa5j5CaZyLltvotPFGG1BiJalBDBGSOyk0BZCgHLowm4txKZXrLhorEuuv9XLrMQL8eoA=="
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.4.0.tgz";,
+      "integrity": 
"sha512-9B33M4N0/KDyss6NpCwAhz18za7R+sXYiFrUObhGoJ1Cmg06SeScVrEAjT4yJwAClWUlKh604Af9wE4D7IF8Lg=="
     },
     "node_modules/@patternfly/react-core": {
-      "version": "5.3.3",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.3.3.tgz";,
-      "integrity": 
"sha512-qq3j0M+Vi+Xmd+a/MhRhGgjdRh9Hnm79iA+L935HwMIVDcIWRYp6Isib/Ha4+Jk+f3Qdl0RT3dBDvr/4m6OpVQ==",
-      "dependencies": {
-        "@patternfly/react-icons": "^5.3.2",
-        "@patternfly/react-styles": "^5.3.1",
-        "@patternfly/react-tokens": "^5.3.1",
-        "focus-trap": "7.5.2",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.4.0.tgz";,
+      "integrity": 
"sha512-Tz2Y9V4G2pnwrylc/4/FyxIRFvxiA8BEBIG6UBwXxrstnJmJaHgAIy6QJdJmERzVx3GVDz6/rM0PnMqa5R6auQ==",
+      "dependencies": {
+        "@patternfly/react-icons": "^5.4.0",
+        "@patternfly/react-styles": "^5.4.0",
+        "@patternfly/react-tokens": "^5.4.0",
+        "focus-trap": "7.5.4",
         "react-dropzone": "^14.2.3",
-        "tslib": "^2.5.0"
+        "tslib": "^2.6.3"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -4240,30 +4257,30 @@
       }
     },
     "node_modules/@patternfly/react-icons": {
-      "version": "5.3.2",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.3.2.tgz";,
-      "integrity": 
"sha512-GEygYbl0H4zD8nZuTQy2dayKIrV2bMMeWKSOEZ16Y3EYNgYVUOUnN+J0naAEuEGH39Xb1DE9n+XUbE1PC4CxPA==",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.4.0.tgz";,
+      "integrity": 
"sha512-2M3qN/naultvRHeG2laJMmoIroFCGAyfwTVrnCjSkG6/KnRoXV0+dqd+Xrh7xzpzvIJB1klvifC0oX42cEkDrA==",
       "peerDependencies": {
         "react": "^17 || ^18",
         "react-dom": "^17 || ^18"
       }
     },
     "node_modules/@patternfly/react-styles": {
-      "version": "5.3.1",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.3.1.tgz";,
-      "integrity": 
"sha512-H6uBoFH3bJjD6PP75qZ4k+2TtF59vxf9sIVerPpwrGJcRgBZbvbMZCniSC3+S2LQ8DgXLnDvieq78jJzHz0hiA=="
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.4.0.tgz";,
+      "integrity": 
"sha512-4ZE0s6LkX/0KsN0FOeogrDoj18m+BPA73YKnabZGB4SDRzrBNeBh2a6bSt546ZseEjkoJ+S81kOG0G8YckPQYg=="
     },
     "node_modules/@patternfly/react-table": {
-      "version": "5.3.3",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.3.3.tgz";,
-      "integrity": 
"sha512-uaRmsJABvVPH8gYTh+EUcDz61knIxe9qor/VGUYDLONYBL5G3IaltwG42IsJ9jShxiwFmIPy+QARPpaadTpv5w==",
-      "dependencies": {
-        "@patternfly/react-core": "^5.3.3",
-        "@patternfly/react-icons": "^5.3.2",
-        "@patternfly/react-styles": "^5.3.1",
-        "@patternfly/react-tokens": "^5.3.1",
-        "lodash": "^4.17.19",
-        "tslib": "^2.5.0"
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.4.0.tgz";,
+      "integrity": 
"sha512-HkXxVEPeI6nRVSUSHb5BungF41IfjB8W2VqaA3SX+6fGxQAW0e/Hb58ctUdPR2VJ/S2YZFcIcqCCWQtQEf+xKA==",
+      "dependencies": {
+        "@patternfly/react-core": "^5.4.0",
+        "@patternfly/react-icons": "^5.4.0",
+        "@patternfly/react-styles": "^5.4.0",
+        "@patternfly/react-tokens": "^5.4.0",
+        "lodash": "^4.17.21",
+        "tslib": "^2.6.3"
       },
       "peerDependencies": {
         "react": "^17 || ^18",
@@ -4271,25 +4288,23 @@
       }
     },
     "node_modules/@patternfly/react-tokens": {
-      "version": "5.3.1",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.3.1.tgz";,
-      "integrity": 
"sha512-VYK0uVP2/2RJ7ZshJCCLeq0Boih5I1bv+9Z/Bg6h12dCkLs85XsxAX9Ve+BGIo5DF54/mzcRHE1RKYap4ISXuw=="
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.4.0.tgz";,
+      "integrity": 
"sha512-KONkwCVOMyklhuuaYeYgcAsGtCBQXnsBGZeolhOdSzr2Mj0RVSW0oMrQPgZuPVzhhC/kbqgClHJJl6xuG9xheA=="
     },
     "node_modules/@patternfly/react-topology": {
-      "version": "5.2.0",
-      "resolved": 
"https://registry.npmjs.org/@patternfly/react-topology/-/react-topology-5.2.0.tgz";,
-      "integrity": 
"sha512-+kZJSbD6Pb1bTriNzLRiddfSbEBxyiNGSreiV6zOyPwfRizqbFPsOYyRuEocduzLqj0/wT3PM5Ml6JSp8Rw2TQ==",
+      "version": "5.4.0",
+      "resolved": 
"https://registry.npmjs.org/@patternfly/react-topology/-/react-topology-5.4.0.tgz";,
+      "integrity": 
"sha512-WGPunNm8HAQSkkTn0N05vFdNer9UOHWduTBXdyvuVAr/fQZrgglvplJe4qdMPOmT3R/8aVyGJP7itxV2J2b8EA==",
       "dependencies": {
+        "@dagrejs/dagre": "1.1.2",
         "@patternfly/react-core": "^5.1.1",
         "@patternfly/react-icons": "^5.1.1",
         "@patternfly/react-styles": "^5.1.1",
         "@types/d3": "^7.4.0",
         "@types/d3-force": "^1.2.1",
-        "@types/dagre": "0.7.42",
         "@types/react-measure": "^2.0.6",
         "d3": "^7.8.0",
-        "dagre": "0.8.2",
-        "lodash": "^4.17.19",
         "mobx": "^6.9.0",
         "mobx-react": "^7.6.0",
         "point-in-svg-path": "^1.0.1",
@@ -4303,11 +4318,6 @@
         "react-dom": "^17 || ^18"
       }
     },
-    "node_modules/@patternfly/react-topology/node_modules/@types/dagre": {
-      "version": "0.7.42",
-      "resolved": "https://registry.npmjs.org/@types/dagre/-/dagre-0.7.42.tgz";,
-      "integrity": 
"sha512-knVdi1Ul8xYgJ0wdhQ+/2YGJFKJFa/5srcPII9zvOs4KhsHfpnFrSTQXATYmjslglxRMif3Lg+wEZ0beag+94A=="
-    },
     "node_modules/@pkgjs/parseargs": {
       "version": "0.11.0",
       "resolved": 
"https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz";,
@@ -4367,9 +4377,9 @@
       }
     },
     "node_modules/@rollup/rollup-android-arm-eabi": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz";,
-      "integrity": 
"sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.2.tgz";,
+      "integrity": 
"sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==",
       "cpu": [
         "arm"
       ],
@@ -4379,9 +4389,9 @@
       ]
     },
     "node_modules/@rollup/rollup-android-arm64": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz";,
-      "integrity": 
"sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.2.tgz";,
+      "integrity": 
"sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==",
       "cpu": [
         "arm64"
       ],
@@ -4391,9 +4401,9 @@
       ]
     },
     "node_modules/@rollup/rollup-darwin-arm64": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz";,
-      "integrity": 
"sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.2.tgz";,
+      "integrity": 
"sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==",
       "cpu": [
         "arm64"
       ],
@@ -4403,9 +4413,9 @@
       ]
     },
     "node_modules/@rollup/rollup-darwin-x64": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz";,
-      "integrity": 
"sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.2.tgz";,
+      "integrity": 
"sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==",
       "cpu": [
         "x64"
       ],
@@ -4415,9 +4425,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz";,
-      "integrity": 
"sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.2.tgz";,
+      "integrity": 
"sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==",
       "cpu": [
         "arm"
       ],
@@ -4427,9 +4437,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm-musleabihf": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz";,
-      "integrity": 
"sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.2.tgz";,
+      "integrity": 
"sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==",
       "cpu": [
         "arm"
       ],
@@ -4439,9 +4449,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm64-gnu": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz";,
-      "integrity": 
"sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.2.tgz";,
+      "integrity": 
"sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==",
       "cpu": [
         "arm64"
       ],
@@ -4451,9 +4461,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-arm64-musl": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz";,
-      "integrity": 
"sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.2.tgz";,
+      "integrity": 
"sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==",
       "cpu": [
         "arm64"
       ],
@@ -4463,9 +4473,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz";,
-      "integrity": 
"sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.2.tgz";,
+      "integrity": 
"sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==",
       "cpu": [
         "ppc64"
       ],
@@ -4475,9 +4485,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-riscv64-gnu": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz";,
-      "integrity": 
"sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.2.tgz";,
+      "integrity": 
"sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==",
       "cpu": [
         "riscv64"
       ],
@@ -4487,9 +4497,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-s390x-gnu": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz";,
-      "integrity": 
"sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.2.tgz";,
+      "integrity": 
"sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==",
       "cpu": [
         "s390x"
       ],
@@ -4499,9 +4509,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-x64-gnu": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz";,
-      "integrity": 
"sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.2.tgz";,
+      "integrity": 
"sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==",
       "cpu": [
         "x64"
       ],
@@ -4511,9 +4521,9 @@
       ]
     },
     "node_modules/@rollup/rollup-linux-x64-musl": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz";,
-      "integrity": 
"sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.2.tgz";,
+      "integrity": 
"sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==",
       "cpu": [
         "x64"
       ],
@@ -4523,9 +4533,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-arm64-msvc": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz";,
-      "integrity": 
"sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.2.tgz";,
+      "integrity": 
"sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==",
       "cpu": [
         "arm64"
       ],
@@ -4535,9 +4545,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-ia32-msvc": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz";,
-      "integrity": 
"sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.2.tgz";,
+      "integrity": 
"sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==",
       "cpu": [
         "ia32"
       ],
@@ -4547,9 +4557,9 @@
       ]
     },
     "node_modules/@rollup/rollup-win32-x64-msvc": {
-      "version": "4.18.0",
-      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz";,
-      "integrity": 
"sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
+      "version": "4.21.2",
+      "resolved": 
"https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.2.tgz";,
+      "integrity": 
"sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==",
       "cpu": [
         "x64"
       ],
@@ -5193,16 +5203,6 @@
         "@types/json-schema": "*"
       }
     },
-    "node_modules/@types/eslint-scope": {
-      "version": "3.7.7",
-      "resolved": 
"https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz";,
-      "integrity": 
"sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
-      "dev": true,
-      "dependencies": {
-        "@types/eslint": "*",
-        "@types/estree": "*"
-      }
-    },
     "node_modules/@types/estree": {
       "version": "1.0.5",
       "resolved": 
"https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz";,
@@ -6474,9 +6474,9 @@
       }
     },
     "node_modules/axios": {
-      "version": "1.7.5",
-      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz";,
-      "integrity": 
"sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==",
+      "version": "1.7.7",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz";,
+      "integrity": 
"sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==",
       "dependencies": {
         "follow-redirects": "^1.15.6",
         "form-data": "^4.0.0",
@@ -6861,9 +6861,9 @@
       "dev": true
     },
     "node_modules/body-parser": {
-      "version": "1.20.2",
-      "resolved": 
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz";,
-      "integrity": 
"sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
+      "version": "1.20.3",
+      "resolved": 
"https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz";,
+      "integrity": 
"sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
       "dev": true,
       "dependencies": {
         "bytes": "3.1.2",
@@ -6874,7 +6874,7 @@
         "http-errors": "2.0.0",
         "iconv-lite": "0.4.24",
         "on-finished": "2.4.1",
-        "qs": "6.11.0",
+        "qs": "6.13.0",
         "raw-body": "2.5.2",
         "type-is": "~1.6.18",
         "unpipe": "1.0.0"
@@ -6920,6 +6920,21 @@
       "integrity": 
"sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
       "dev": true
     },
+    "node_modules/body-parser/node_modules/qs": {
+      "version": "6.13.0",
+      "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz";,
+      "integrity": 
"sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+      "dev": true,
+      "dependencies": {
+        "side-channel": "^1.0.6"
+      },
+      "engines": {
+        "node": ">=0.6"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb";
+      }
+    },
     "node_modules/bonjour-service": {
       "version": "1.2.1",
       "resolved": 
"https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz";,
@@ -8304,15 +8319,6 @@
         "node": ">=12"
       }
     },
-    "node_modules/dagre": {
-      "version": "0.8.2",
-      "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.2.tgz";,
-      "integrity": 
"sha512-TEOOGZOkCOgCG7AoUIq64sJ3d21SMv8tyoqteLpX+UsUsS9Qw8iap4hhogXY4oB3r0bbZuAjO0atAilgCmsE0Q==",
-      "dependencies": {
-        "graphlib": "^2.1.5",
-        "lodash": "^4.17.4"
-      }
-    },
     "node_modules/damerau-levenshtein": {
       "version": "1.0.8",
       "resolved": 
"https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz";,
@@ -8850,9 +8856,9 @@
       }
     },
     "node_modules/enhanced-resolve": {
-      "version": "5.17.0",
-      "resolved": 
"https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz";,
-      "integrity": 
"sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==",
+      "version": "5.17.1",
+      "resolved": 
"https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz";,
+      "integrity": 
"sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
       "dev": true,
       "dependencies": {
         "graceful-fs": "^4.2.4",
@@ -9917,37 +9923,37 @@
       }
     },
     "node_modules/express": {
-      "version": "4.19.2",
-      "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz";,
-      "integrity": 
"sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
+      "version": "4.20.0",
+      "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz";,
+      "integrity": 
"sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==",
       "dev": true,
       "dependencies": {
         "accepts": "~1.3.8",
         "array-flatten": "1.1.1",
-        "body-parser": "1.20.2",
+        "body-parser": "1.20.3",
         "content-disposition": "0.5.4",
         "content-type": "~1.0.4",
         "cookie": "0.6.0",
         "cookie-signature": "1.0.6",
         "debug": "2.6.9",
         "depd": "2.0.0",
-        "encodeurl": "~1.0.2",
+        "encodeurl": "~2.0.0",
         "escape-html": "~1.0.3",
         "etag": "~1.8.1",
         "finalhandler": "1.2.0",
         "fresh": "0.5.2",
         "http-errors": "2.0.0",
-        "merge-descriptors": "1.0.1",
+        "merge-descriptors": "1.0.3",
         "methods": "~1.1.2",
         "on-finished": "2.4.1",
         "parseurl": "~1.3.3",
-        "path-to-regexp": "0.1.7",
+        "path-to-regexp": "0.1.10",
         "proxy-addr": "~2.0.7",
         "qs": "6.11.0",
         "range-parser": "~1.2.1",
         "safe-buffer": "5.2.1",
-        "send": "0.18.0",
-        "serve-static": "1.15.0",
+        "send": "0.19.0",
+        "serve-static": "1.16.0",
         "setprototypeof": "1.2.0",
         "statuses": "2.0.1",
         "type-is": "~1.6.18",
@@ -9967,6 +9973,15 @@
         "ms": "2.0.0"
       }
     },
+    "node_modules/express/node_modules/encodeurl": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz";,
+      "integrity": 
"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+      "dev": true,
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
     "node_modules/express/node_modules/ms": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";,
@@ -10248,9 +10263,9 @@
       "dev": true
     },
     "node_modules/focus-trap": {
-      "version": "7.5.2",
-      "resolved": 
"https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.2.tgz";,
-      "integrity": 
"sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==",
+      "version": "7.5.4",
+      "resolved": 
"https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz";,
+      "integrity": 
"sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==",
       "dependencies": {
         "tabbable": "^6.2.0"
       }
@@ -10841,14 +10856,6 @@
       "integrity": 
"sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
       "dev": true
     },
-    "node_modules/graphlib": {
-      "version": "2.1.8",
-      "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz";,
-      "integrity": 
"sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==",
-      "dependencies": {
-        "lodash": "^4.17.15"
-      }
-    },
     "node_modules/gzip-size": {
       "version": "6.0.0",
       "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz";,
@@ -14563,8 +14570,7 @@
     "node_modules/lodash.debounce": {
       "version": "4.0.8",
       "resolved": 
"https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz";,
-      "integrity": 
"sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
-      "dev": true
+      "integrity": 
"sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
     },
     "node_modules/lodash.memoize": {
       "version": "4.1.2",
@@ -14680,10 +14686,13 @@
       }
     },
     "node_modules/merge-descriptors": {
-      "version": "1.0.1",
-      "resolved": 
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";,
-      "integrity": 
"sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==",
-      "dev": true
+      "version": "1.0.3",
+      "resolved": 
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz";,
+      "integrity": 
"sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+      "dev": true,
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus";
+      }
     },
     "node_modules/merge-stream": {
       "version": "2.0.0",
@@ -14710,9 +14719,9 @@
       }
     },
     "node_modules/micromatch": {
-      "version": "4.0.7",
-      "resolved": 
"https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz";,
-      "integrity": 
"sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+      "version": "4.0.8",
+      "resolved": 
"https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz";,
+      "integrity": 
"sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
       "dev": true,
       "dependencies": {
         "braces": "^3.0.3",
@@ -15486,9 +15495,9 @@
       }
     },
     "node_modules/path-to-regexp": {
-      "version": "0.1.7",
-      "resolved": 
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";,
-      "integrity": 
"sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
+      "version": "0.1.10",
+      "resolved": 
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz";,
+      "integrity": 
"sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
       "dev": true
     },
     "node_modules/path-type": {
@@ -15706,9 +15715,9 @@
       }
     },
     "node_modules/postcss": {
-      "version": "8.4.38",
-      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz";,
-      "integrity": 
"sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
+      "version": "8.4.45",
+      "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz";,
+      "integrity": 
"sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==",
       "funding": [
         {
           "type": "opencollective",
@@ -15725,7 +15734,7 @@
       ],
       "dependencies": {
         "nanoid": "^3.3.7",
-        "picocolors": "^1.0.0",
+        "picocolors": "^1.0.1",
         "source-map-js": "^1.2.0"
       },
       "engines": {
@@ -17943,9 +17952,9 @@
       "integrity": 
"sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="
     },
     "node_modules/rollup": {
-      "version": "4.18.0",
-      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz";,
-      "integrity": 
"sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
+      "version": "4.21.2",
+      "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.2.tgz";,
+      "integrity": 
"sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==",
       "dependencies": {
         "@types/estree": "1.0.5"
       },
@@ -17957,22 +17966,22 @@
         "npm": ">=8.0.0"
       },
       "optionalDependencies": {
-        "@rollup/rollup-android-arm-eabi": "4.18.0",
-        "@rollup/rollup-android-arm64": "4.18.0",
-        "@rollup/rollup-darwin-arm64": "4.18.0",
-        "@rollup/rollup-darwin-x64": "4.18.0",
-        "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
-        "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
-        "@rollup/rollup-linux-arm64-gnu": "4.18.0",
-        "@rollup/rollup-linux-arm64-musl": "4.18.0",
-        "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
-        "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
-        "@rollup/rollup-linux-s390x-gnu": "4.18.0",
-        "@rollup/rollup-linux-x64-gnu": "4.18.0",
-        "@rollup/rollup-linux-x64-musl": "4.18.0",
-        "@rollup/rollup-win32-arm64-msvc": "4.18.0",
-        "@rollup/rollup-win32-ia32-msvc": "4.18.0",
-        "@rollup/rollup-win32-x64-msvc": "4.18.0",
+        "@rollup/rollup-android-arm-eabi": "4.21.2",
+        "@rollup/rollup-android-arm64": "4.21.2",
+        "@rollup/rollup-darwin-arm64": "4.21.2",
+        "@rollup/rollup-darwin-x64": "4.21.2",
+        "@rollup/rollup-linux-arm-gnueabihf": "4.21.2",
+        "@rollup/rollup-linux-arm-musleabihf": "4.21.2",
+        "@rollup/rollup-linux-arm64-gnu": "4.21.2",
+        "@rollup/rollup-linux-arm64-musl": "4.21.2",
+        "@rollup/rollup-linux-powerpc64le-gnu": "4.21.2",
+        "@rollup/rollup-linux-riscv64-gnu": "4.21.2",
+        "@rollup/rollup-linux-s390x-gnu": "4.21.2",
+        "@rollup/rollup-linux-x64-gnu": "4.21.2",
+        "@rollup/rollup-linux-x64-musl": "4.21.2",
+        "@rollup/rollup-win32-arm64-msvc": "4.21.2",
+        "@rollup/rollup-win32-ia32-msvc": "4.21.2",
+        "@rollup/rollup-win32-x64-msvc": "4.21.2",
         "fsevents": "~2.3.2"
       }
     },
@@ -18218,9 +18227,9 @@
       }
     },
     "node_modules/send": {
-      "version": "0.18.0",
-      "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz";,
-      "integrity": 
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+      "version": "0.19.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz";,
+      "integrity": 
"sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
       "dev": true,
       "dependencies": {
         "debug": "2.6.9",
@@ -18350,9 +18359,9 @@
       }
     },
     "node_modules/serve-static": {
-      "version": "1.15.0",
-      "resolved": 
"https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz";,
-      "integrity": 
"sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+      "version": "1.16.0",
+      "resolved": 
"https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz";,
+      "integrity": 
"sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==",
       "dev": true,
       "dependencies": {
         "encodeurl": "~1.0.2",
@@ -18364,6 +18373,51 @@
         "node": ">= 0.8.0"
       }
     },
+    "node_modules/serve-static/node_modules/debug": {
+      "version": "2.6.9",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";,
+      "integrity": 
"sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+      "dev": true,
+      "dependencies": {
+        "ms": "2.0.0"
+      }
+    },
+    "node_modules/serve-static/node_modules/debug/node_modules/ms": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";,
+      "integrity": 
"sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+      "dev": true
+    },
+    "node_modules/serve-static/node_modules/ms": {
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";,
+      "integrity": 
"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+      "dev": true
+    },
+    "node_modules/serve-static/node_modules/send": {
+      "version": "0.18.0",
+      "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz";,
+      "integrity": 
"sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+      "dev": true,
+      "dependencies": {
+        "debug": "2.6.9",
+        "depd": "2.0.0",
+        "destroy": "1.2.0",
+        "encodeurl": "~1.0.2",
+        "escape-html": "~1.0.3",
+        "etag": "~1.8.1",
+        "fresh": "0.5.2",
+        "http-errors": "2.0.0",
+        "mime": "1.6.0",
+        "ms": "2.1.3",
+        "on-finished": "2.4.1",
+        "range-parser": "~1.2.1",
+        "statuses": "2.0.1"
+      },
+      "engines": {
+        "node": ">= 0.8.0"
+      }
+    },
     "node_modules/set-function-length": {
       "version": "1.2.2",
       "resolved": 
"https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz";,
@@ -19931,13 +19985,27 @@
       }
     },
     "node_modules/use-sync-external-store": {
-      "version": "1.2.0",
-      "resolved": 
"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz";,
-      "integrity": 
"sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+      "version": "1.2.2",
+      "resolved": 
"https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz";,
+      "integrity": 
"sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==",
       "peerDependencies": {
         "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
       }
     },
+    "node_modules/usehooks-ts": {
+      "version": "3.1.0",
+      "resolved": 
"https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz";,
+      "integrity": 
"sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==",
+      "dependencies": {
+        "lodash.debounce": "^4.0.8"
+      },
+      "engines": {
+        "node": ">=16.15.0"
+      },
+      "peerDependencies": {
+        "react": "^16.8.0  || ^17 || ^18"
+      }
+    },
     "node_modules/util-deprecate": {
       "version": "1.0.2",
       "resolved": 
"https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";,
@@ -19960,9 +20028,9 @@
       }
     },
     "node_modules/uuid": {
-      "version": "9.0.1",
-      "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz";,
-      "integrity": 
"sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+      "version": "10.0.0",
+      "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz";,
+      "integrity": 
"sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
       "funding": [
         "https://github.com/sponsors/broofa";,
         "https://github.com/sponsors/ctavan";
@@ -20001,13 +20069,13 @@
       }
     },
     "node_modules/vite": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.2.tgz";,
-      "integrity": 
"sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==",
+      "version": "5.4.4",
+      "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.4.tgz";,
+      "integrity": 
"sha512-RHFCkULitycHVTtelJ6jQLd+KSAAzOgEYorV32R2q++M6COBjKJR6BxqClwp5sf0XaBDjVMuJ9wnNfyAJwjMkA==",
       "dependencies": {
         "esbuild": "^0.21.3",
-        "postcss": "^8.4.38",
-        "rollup": "^4.13.0"
+        "postcss": "^8.4.43",
+        "rollup": "^4.20.0"
       },
       "bin": {
         "vite": "bin/vite.js"
@@ -20026,6 +20094,7 @@
         "less": "*",
         "lightningcss": "^1.21.0",
         "sass": "*",
+        "sass-embedded": "*",
         "stylus": "*",
         "sugarss": "*",
         "terser": "^5.4.0"
@@ -20043,6 +20112,9 @@
         "sass": {
           "optional": true
         },
+        "sass-embedded": {
+          "optional": true
+        },
         "stylus": {
           "optional": true
         },
@@ -20165,12 +20237,11 @@
       }
     },
     "node_modules/webpack": {
-      "version": "5.92.1",
-      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz";,
-      "integrity": 
"sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==",
+      "version": "5.94.0",
+      "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz";,
+      "integrity": 
"sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
       "dev": true,
       "dependencies": {
-        "@types/eslint-scope": "^3.7.3",
         "@types/estree": "^1.0.5",
         "@webassemblyjs/ast": "^1.12.1",
         "@webassemblyjs/wasm-edit": "^1.12.1",
@@ -20179,7 +20250,7 @@
         "acorn-import-attributes": "^1.9.5",
         "browserslist": "^4.21.10",
         "chrome-trace-event": "^1.0.2",
-        "enhanced-resolve": "^5.17.0",
+        "enhanced-resolve": "^5.17.1",
         "es-module-lexer": "^1.2.1",
         "eslint-scope": "5.1.1",
         "events": "^3.2.0",
@@ -21245,11 +21316,11 @@
       }
     },
     "node_modules/zustand": {
-      "version": "4.5.4",
-      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.4.tgz";,
-      "integrity": 
"sha512-/BPMyLKJPtFEvVL0E9E9BTUM63MNyhPGlvxk1XjrfWTUlV+BR8jufjsovHzrtR6YNcBEcL7cMHovL1n9xHawEg==",
+      "version": "4.5.5",
+      "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz";,
+      "integrity": 
"sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==",
       "dependencies": {
-        "use-sync-external-store": "1.2.0"
+        "use-sync-external-store": "1.2.2"
       },
       "engines": {
         "node": ">=12.7.0"
diff --git a/karavan-space/package.json b/karavan-space/package.json
index e22f3155..2f6665a5 100644
--- a/karavan-space/package.json
+++ b/karavan-space/package.json
@@ -7,9 +7,8 @@
     "cp-expression": "cp -r ../karavan-designer/src/expression src",
     "cp-knowledgebase": "cp -r ../karavan-designer/src/knowledgebase src",
     "cp-topology": "cp -r ../karavan-designer/src/topology src",
-    "cp-public-kamelets": "cp -r ../karavan-designer/public/kamelets public",
-    "cp-public-components": "cp -r ../karavan-designer/public/components 
public",
-    "copy": "npm run cp-designer && npm run cp-expression && npm run 
cp-knowledgebase && npm run cp-topology && npm run cp-public-components && npm 
run cp-public-kamelets",
+    "cp-public-metadata": "cp -r ../karavan-designer/public/metadata public",
+    "copy": "npm run cp-designer && npm run cp-expression && npm run 
cp-knowledgebase && npm run cp-topology && npm run cp-public-metadata",
     "start": "npm run copy && react-scripts start",
     "build": "npm run copy && react-scripts build",
     "prod": "npm run copy && react-scripts build --dest && rsync -a build/* 
../resources/META-INF/resources"
@@ -34,13 +33,13 @@
   },
   "dependencies": {
     "@monaco-editor/react": "^4.6.0",
-    "@patternfly/patternfly": "^5.3.1",
-    "@patternfly/react-core": "^5.3.3",
-    "@patternfly/react-table": "^5.3.3",
-    "@patternfly/react-topology": "^5.2.0",
+    "@patternfly/patternfly": "^5.4.0",
+    "@patternfly/react-core": "^5.4.0",
+    "@patternfly/react-table": "^5.4.0",
+    "@patternfly/react-topology": "^5.4.0",
     "@types/js-yaml": "4.0.9",
     "@types/uuid": "9.0.8",
-    "axios": "1.7.5",
+    "axios": "1.7.7",
     "html-to-image": "1.11.11",
     "karavan-core": "file:../karavan-core",
     "netlify-auth-providers": "^1.0.0-alpha5",
@@ -48,9 +47,10 @@
     "react": "18.3.1",
     "react-dom": "18.3.1",
     "rxjs": "7.8.1",
-    "uuid": "9.0.1",
-    "vite": "^5.2.13",
-    "zustand": "^4.5.2"
+    "usehooks-ts": "^3.1.0",
+    "uuid": "10.0.0",
+    "vite": "^5.4.4",
+    "zustand": "^4.5.5"
   },
   "devDependencies": {
     "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
@@ -64,8 +64,8 @@
     "@typescript-eslint/parser": "^5.62.0",
     "eslint": "^8.39.0",
     "monaco-editor": "0.49.0",
-    "typescript": "4.9.5",
-    "react-scripts": "5.0.1"
+    "react-scripts": "5.0.1",
+    "typescript": "4.9.5"
   },
   "overrides": {
     "@svgr/webpack": "$@svgr/webpack",
diff --git a/karavan-vscode/package-lock.json b/karavan-vscode/package-lock.json
index 76983d91..46250ccf 100644
--- a/karavan-vscode/package-lock.json
+++ b/karavan-vscode/package-lock.json
@@ -23,6 +23,7 @@
         "react-dom": "18.3.1",
         "rxjs": "7.8.1",
         "shelljs": "^0.8.5",
+        "usehooks-ts": "^3.1.0",
         "uuid": "9.0.1",
         "zustand": "4.5.2"
       },
@@ -6385,7 +6386,6 @@
     },
     "node_modules/lodash.debounce": {
       "version": "4.0.8",
-      "dev": true,
       "license": "MIT"
     },
     "node_modules/lodash.merge": {
@@ -8752,6 +8752,20 @@
         "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
       }
     },
+    "node_modules/usehooks-ts": {
+      "version": "3.1.0",
+      "resolved": 
"https://registry.npmjs.org/usehooks-ts/-/usehooks-ts-3.1.0.tgz";,
+      "integrity": 
"sha512-bBIa7yUyPhE1BCc0GmR96VU/15l/9gP1Ch5mYdLcFBaFGQsdmXkvjV0TtOqW1yUd6VjIwDunm+flSciCQXujiw==",
+      "dependencies": {
+        "lodash.debounce": "^4.0.8"
+      },
+      "engines": {
+        "node": ">=16.15.0"
+      },
+      "peerDependencies": {
+        "react": "^16.8.0  || ^17 || ^18"
+      }
+    },
     "node_modules/util-deprecate": {
       "version": "1.0.2",
       "dev": true,
diff --git a/karavan-vscode/package.json b/karavan-vscode/package.json
index 4b774661..6d741599 100644
--- a/karavan-vscode/package.json
+++ b/karavan-vscode/package.json
@@ -738,12 +738,12 @@
   },
   "dependencies": {
     "@monaco-editor/react": "^4.6.0",
-    "@patternfly/patternfly": "^5.3.1",
-    "@patternfly/react-core": "^5.3.3",
-    "@patternfly/react-table": "^5.3.3",
-    "@patternfly/react-topology": "^5.2.0",
+    "@patternfly/patternfly": "5.4.0",
+    "@patternfly/react-core": "5.4.0",
+    "@patternfly/react-table": "5.4.0",
+    "@patternfly/react-topology": "5.4.0",
     "@types/js-yaml": "4.0.9",
-    "@types/uuid": "9.0.8",
+    "@types/uuid": "10.0.0",
     "html-to-image": "1.11.11",
     "js-yaml": "^4.1.0",
     "path-browserify": "^1.0.1",
@@ -751,16 +751,17 @@
     "react-dom": "18.3.1",
     "rxjs": "7.8.1",
     "shelljs": "^0.8.5",
-    "uuid": "9.0.1",
-    "zustand": "4.5.2"
+    "usehooks-ts": "^3.1.0",
+    "uuid": "10.0.0",
+    "zustand": "4.5.5"
   },
   "devDependencies": {
     "@babel/plugin-proposal-private-property-in-object": "^7.21.11",
     "@svgr/webpack": "7.0.0",
-    "@types/node": "20.14.2",
     "@types/chai": "^4.3.0",
     "@types/glob": "^7.1.3",
     "@types/mocha": "^8.0.4",
+    "@types/node": "20.14.2",
     "@types/react": "^18.3.1",
     "@types/react-dom": "18.3.0",
     "@types/shelljs": "^0.8.15",

Reply via email to