From 62783c1ca67977add0029098e182af10a81dc080 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Wed, 17 Jun 2026 11:24:40 +0200 Subject: [PATCH 01/12] Fixed CVE-2026-54290 --- ui-ngx/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index ed3de52ba4..2faad2e65d 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -6566,9 +6566,9 @@ hasown@^2.0.2: function-bind "^1.1.2" hono@^4.11.4: - version "4.12.8" - resolved "https://registry.yarnpkg.com/hono/-/hono-4.12.8.tgz#5f3a9c0d5339ff460b2c652a4c64dd79059930ad" - integrity sha512-VJCEvtrezO1IAR+kqEYnxUOoStaQPGrCmX3j4wDTNOcD1uRPFpGlwQUIW8niPuvHXaTUxeOUl5MMDGrl+tmO9A== + version "4.12.25" + resolved "https://registry.yarnpkg.com/hono/-/hono-4.12.25.tgz#f2d9996a54e8c9c0c5f5de1c8f3a962e43a98c4e" + integrity sha512-2NFaIyNVgJmBs/ecmtGzlmluTFs5cHEWGTdu0t1HBwYzoGXOL5nUQBRMXsXWla5i4KkG//QMzVP88m1+I3fdAQ== hosted-git-info@^9.0.0: version "9.0.2" From 7dbbfcc903a0ee4dcf58f7628e79d92c7a2aee14 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Wed, 17 Jun 2026 11:25:27 +0200 Subject: [PATCH 02/12] Fixed CVE-2026-48779 --- ui-ngx/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index 2faad2e65d..8cbc16f097 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -10945,9 +10945,9 @@ wrappy@1: integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.18.0: - version "8.19.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" - integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== + version "8.21.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" + integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== wsl-utils@^0.1.0: version "0.1.0" From f459e3a0c6b1abbe4f693b89879572bf1737809d Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Wed, 17 Jun 2026 11:34:47 +0200 Subject: [PATCH 03/12] Fixed CVE-2026-54268 --- ui-ngx/package.json | 24 +-- ....24.patch => @angular+build+20.3.25.patch} | 0 ...3.19.patch => @angular+core+20.3.25.patch} | 4 +- ui-ngx/yarn.lock | 181 ++++++++++++------ 4 files changed, 137 insertions(+), 72 deletions(-) rename ui-ngx/patches/{@angular+build+20.3.24.patch => @angular+build+20.3.25.patch} (100%) rename ui-ngx/patches/{@angular+core+20.3.19.patch => @angular+core+20.3.25.patch} (92%) diff --git a/ui-ngx/package.json b/ui-ngx/package.json index ad50207047..565794bfa1 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -13,16 +13,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "20.3.19", + "@angular/animations": "20.3.25", "@angular/cdk": "20.2.14", - "@angular/common": "20.3.19", - "@angular/compiler": "20.3.19", - "@angular/core": "20.3.19", - "@angular/forms": "20.3.19", + "@angular/common": "20.3.25", + "@angular/compiler": "20.3.25", + "@angular/core": "20.3.25", + "@angular/forms": "20.3.25", "@angular/material": "20.2.14", - "@angular/platform-browser": "20.3.19", - "@angular/platform-browser-dynamic": "20.3.19", - "@angular/router": "20.3.19", + "@angular/platform-browser": "20.3.25", + "@angular/platform-browser-dynamic": "20.3.25", + "@angular/router": "20.3.25", "@auth0/angular-jwt": "^5.2.0", "@flowjs/flow.js": "^2.14.1", "@flowjs/ngx-flow": "20.0.2", @@ -97,10 +97,10 @@ "@angular-devkit/build-angular": "20.3.24", "@angular-devkit/core": "20.3.24", "@angular-devkit/schematics": "20.3.24", - "@angular/build": "20.3.24", - "@angular/cli": "20.3.24", - "@angular/compiler-cli": "20.3.19", - "@angular/language-service": "20.3.19", + "@angular/build": "20.3.25", + "@angular/cli": "20.3.25", + "@angular/compiler-cli": "20.3.25", + "@angular/language-service": "20.3.25", "@types/ace-diff": "^2.1.4", "@types/canvas-gauges": "^2.1.8", "@types/flot": "^0.0.36", diff --git a/ui-ngx/patches/@angular+build+20.3.24.patch b/ui-ngx/patches/@angular+build+20.3.25.patch similarity index 100% rename from ui-ngx/patches/@angular+build+20.3.24.patch rename to ui-ngx/patches/@angular+build+20.3.25.patch diff --git a/ui-ngx/patches/@angular+core+20.3.19.patch b/ui-ngx/patches/@angular+core+20.3.25.patch similarity index 92% rename from ui-ngx/patches/@angular+core+20.3.19.patch rename to ui-ngx/patches/@angular+core+20.3.25.patch index 5295946f7b..5cb9b5e521 100644 --- a/ui-ngx/patches/@angular+core+20.3.19.patch +++ b/ui-ngx/patches/@angular+core+20.3.25.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/@angular/core/fesm2022/debug_node.mjs b/node_modules/@angular/core/fesm2022/debug_node.mjs -index 4f7d936..4a98b2c 100755 +index be43067..079f100 100755 --- a/node_modules/@angular/core/fesm2022/debug_node.mjs +++ b/node_modules/@angular/core/fesm2022/debug_node.mjs -@@ -9428,13 +9428,13 @@ function findDirectiveDefMatches(tView, tNode) { +@@ -9599,13 +9599,13 @@ function findDirectiveDefMatches(tView, tNode) { if (isNodeMatchingSelectorList(tNode, def.selectors, /* isProjectionMode */ false)) { matches ??= []; if (isComponentDef(def)) { diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index 8cbc16f097..07787994d7 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -160,7 +160,7 @@ "@angular-devkit/core" "^20.0.0" "@angular/build" "^20.0.0" -"@angular-devkit/architect@0.2003.24", "@angular-devkit/architect@>= 0.2000.0 < 0.2100.0", "@angular-devkit/architect@>=0.2000.0 < 0.2100.0": +"@angular-devkit/architect@0.2003.24": version "0.2003.24" resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2003.24.tgz#1c59822ffeada4248f669424c7c0534f39fe8bc5" integrity sha512-E7mCdkL6SWnW60G1nGLuugmsopza/eVIrDWB1y0vLkWN8gepOvnHz2Uf637kdzed/F1WoqR+dhv1SfsaJapzKA== @@ -168,6 +168,14 @@ "@angular-devkit/core" "20.3.24" rxjs "7.8.2" +"@angular-devkit/architect@0.2003.25", "@angular-devkit/architect@>= 0.2000.0 < 0.2100.0", "@angular-devkit/architect@>=0.2000.0 < 0.2100.0": + version "0.2003.25" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2003.25.tgz#5fef6c3b713c7db438464e7f352bc762eafedfa5" + integrity sha512-39pTqt4wSmpD1WeCee46oSGXRh6TR1PFd9GZEwyZoMvBTMs8mE2sXGxUgd4Qyi5CkQ1XnCM5XfgJcjUWUQRoGg== + dependencies: + "@angular-devkit/core" "20.3.25" + rxjs "7.8.2" + "@angular-devkit/build-angular@20.3.24": version "20.3.24" resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-20.3.24.tgz#871b7c134d9c9f77b16cd68bca340801638e56a7" @@ -238,7 +246,7 @@ "@angular-devkit/architect" "0.2003.24" rxjs "7.8.2" -"@angular-devkit/core@20.3.24", "@angular-devkit/core@>= 20.0.0 < 21.0.0", "@angular-devkit/core@^20.0.0": +"@angular-devkit/core@20.3.24": version "20.3.24" resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.3.24.tgz#e4108ad599d507d934b9ca990d98a4bb23bd0471" integrity sha512-kmOjXJcbFxUI91nds9n6XZ6Y/DyQ7/TqRXbHHqvkz9RtlIpdbgWHlIZIq6mgsPOgPBzkxFjtncVARYZUI3yxaw== @@ -250,7 +258,19 @@ rxjs "7.8.2" source-map "0.7.6" -"@angular-devkit/schematics@20.3.24", "@angular-devkit/schematics@>= 20.0.0 < 21.0.0": +"@angular-devkit/core@20.3.25", "@angular-devkit/core@>= 20.0.0 < 21.0.0", "@angular-devkit/core@^20.0.0": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.3.25.tgz#779b2eba00f688f0b9105e1562d9c14738cfabfa" + integrity sha512-pSfeWEoS1y9zxqTOw0Etj2NXkRmp/aU52wdnyq3KqVA9cJtgxtlOHlBBNswTil4dReojEy+0K1xJm+mLuWuLxA== + dependencies: + ajv "8.18.0" + ajv-formats "3.0.1" + jsonc-parser "3.3.1" + picomatch "4.0.4" + rxjs "7.8.2" + source-map "0.7.6" + +"@angular-devkit/schematics@20.3.24": version "20.3.24" resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.3.24.tgz#4631ec0755363173db0e89eadc0d756985e0bae1" integrity sha512-B5fBPi0xnEDI0wLLkCjsrYjazRPyf+rnHLAHi34thMdeY9dqljJGWYdNuyUUBak6HNPBLdEo1EUSNcOF9OWt4A== @@ -261,6 +281,17 @@ ora "8.2.0" rxjs "7.8.2" +"@angular-devkit/schematics@20.3.25", "@angular-devkit/schematics@>= 20.0.0 < 21.0.0": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.3.25.tgz#446618dbeb9b9756784e46b01190b71d10b6ffee" + integrity sha512-IB0IHf8ZRqr69hT/XIfHkYLPAYHWQ/WUc6+fKHBwq58jJlm/y5QUeTEuXvJ18IX/+hUIqw+E2Q3T0N9rLDLzXg== + dependencies: + "@angular-devkit/core" "20.3.25" + jsonc-parser "3.3.1" + magic-string "0.30.17" + ora "8.2.0" + rxjs "7.8.2" + "@angular-eslint/builder@20.7.0": version "20.7.0" resolved "https://registry.yarnpkg.com/@angular-eslint/builder/-/builder-20.7.0.tgz#57df5635e287f3a583d495cabad0b1661d85aa87" @@ -321,14 +352,14 @@ dependencies: "@angular-eslint/bundled-angular-compiler" "20.7.0" -"@angular/animations@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-20.3.19.tgz#636cf19528c548427f3f2ce6c4dd3b863b1475c4" - integrity sha512-/FjU9i7J58/yBURhgVSIiLDcuyOfJxAa0b7ZrOsx6P+FES+M2T2BKZl5V2NuiP2fDFtjsV7U+M/Z9UNUmeHCEw== +"@angular/animations@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-20.3.25.tgz#f672d78b9282a93f23b91739093dc1b40663e1ef" + integrity sha512-lQmti3tI85D525TjUVGqCNLzFxSUoZg+vgIyvuGJZPY0UU/o2S6KAxW6ObmcRotZZHNfenLHIxWgzamBDjIjuw== dependencies: tslib "^2.3.0" -"@angular/build@20.3.24", "@angular/build@^20.0.0": +"@angular/build@20.3.24": version "20.3.24" resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.3.24.tgz#79e423a077a4177074b52e3a20c76f082fc08824" integrity sha512-AMGXOr268y+kVutl4LpOXY2xv9P+RXLCyXUkzYwi8XwGyxAJZfyu/L5qtcO2llExp5CuvP0OxkWxk4JOGRi9TA== @@ -362,6 +393,40 @@ optionalDependencies: lmdb "3.4.2" +"@angular/build@20.3.25", "@angular/build@^20.0.0": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.3.25.tgz#cb21941c33b00758a2496d7ffc1e4d5b869d0867" + integrity sha512-ddWmPzYuzDWz9ql0262u9w3OJHXpSjHVNIDFIYOG2XYyMj/Xve0RkJ8/xvV+Hv7T3iqyyGKtsO+n/d0GCJQCtQ== + dependencies: + "@ampproject/remapping" "2.3.0" + "@angular-devkit/architect" "0.2003.25" + "@babel/core" "7.28.3" + "@babel/helper-annotate-as-pure" "7.27.3" + "@babel/helper-split-export-declaration" "7.24.7" + "@inquirer/confirm" "5.1.14" + "@vitejs/plugin-basic-ssl" "2.1.0" + beasties "0.3.5" + browserslist "^4.23.0" + esbuild "0.28.0" + https-proxy-agent "7.0.6" + istanbul-lib-instrument "6.0.3" + jsonc-parser "3.3.1" + listr2 "9.0.1" + magic-string "0.30.17" + mrmime "2.0.1" + parse5-html-rewriting-stream "8.0.0" + picomatch "4.0.4" + piscina "5.1.3" + rollup "4.59.0" + sass "1.90.0" + semver "7.7.2" + source-map-support "0.5.21" + tinyglobby "0.2.14" + vite "7.3.2" + watchpack "2.4.4" + optionalDependencies: + lmdb "3.4.2" + "@angular/cdk@20.2.14": version "20.2.14" resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-20.2.14.tgz#5da8d29a0688cf0c6f58db77aee8afa0a05faaea" @@ -370,18 +435,18 @@ parse5 "^8.0.0" tslib "^2.3.0" -"@angular/cli@20.3.24": - version "20.3.24" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-20.3.24.tgz#e6ab456b83eede47ccc3503dd6068bdf04be4e05" - integrity sha512-TT7LldRJPCi1VGBJMzcrYU+P3w2G6zgubwhFUdJthUiS77A+At6WJqaRY2BdIS3l7HZOXTEaU2Vj2Gkf2ol2Yw== +"@angular/cli@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-20.3.25.tgz#f16e78a689dfc546b55e0fc7da68545d1b307944" + integrity sha512-QOSxza45CZY11kqPVpqsU+WGYF99rR/r9A9GykZQWuAHb5SEAxlXHyaaGMu/BMtBHy5HNIlJH25UlzelrbaNyQ== dependencies: - "@angular-devkit/architect" "0.2003.24" - "@angular-devkit/core" "20.3.24" - "@angular-devkit/schematics" "20.3.24" + "@angular-devkit/architect" "0.2003.25" + "@angular-devkit/core" "20.3.25" + "@angular-devkit/schematics" "20.3.25" "@inquirer/prompts" "7.8.2" "@listr2/prompt-adapter-inquirer" "3.0.1" "@modelcontextprotocol/sdk" "1.26.0" - "@schematics/angular" "20.3.24" + "@schematics/angular" "20.3.25" "@yarnpkg/lockfile" "1.1.0" algoliasearch "5.35.0" ini "5.0.0" @@ -394,17 +459,17 @@ yargs "18.0.0" zod "4.1.13" -"@angular/common@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-20.3.19.tgz#fb19c335a5a5ea84cd6c90a4abda99c2de5c8b17" - integrity sha512-hcB1eUEN8LGcKGc4DlRJ+abS6AYfbEHDZKg8LnXNugkbwI6Ebyh2AUYTDhzZL2S4aH+C8biHKgSYHFCqieCRhA== +"@angular/common@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-20.3.25.tgz#0f2bd058ec6595cfb4dd6a05601c41cb5cf3cb23" + integrity sha512-rnRGcXbjet0DHgkRL4Dqxk21G2T4UypVfiTV/fay58H8w9U89PJ1L6gRmk8B/uyfpii/9r23cBwnpcguQykxYw== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-20.3.19.tgz#baeb020e693a759b0b8190931611309678b1e011" - integrity sha512-ET/JjO8s62kAHfgIsGXlvW5VUwLqHm03q1y/2yD7aQW/WdDvssMsvZv7Knl440989vdOFemIGTMwVPakmWqRmA== +"@angular/compiler-cli@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-20.3.25.tgz#64c7cdcd4118cd24cb1905804754ccf3d90a7df4" + integrity sha512-iqxwVo5Pgzt3EfT49OZ6plxA6KKxwv7ixx1XNH7QRvaOJC9gmsPScWpx+LO7ZsVZdo/NkA+rnXDl0PauUgGciw== dependencies: "@babel/core" "7.28.3" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -415,31 +480,31 @@ tslib "^2.3.0" yargs "^18.0.0" -"@angular/compiler@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-20.3.19.tgz#cce87072c55c1bab3fda92d83048d0136cea83ad" - integrity sha512-ETkgDKm0l2PuaBubgPJe0ccy8kE75DFu6/zKcz7TUuk3KrKF2OZAopbbjftsUSZGeCNvCdqHzjmcL6hQ6oAOwA== +"@angular/compiler@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-20.3.25.tgz#674d07b2437e9a3c99e9bb1c10e4d13bbedb4086" + integrity sha512-TSh6gVoQqlLPqWwsYMK0lfVEQYENQO+USzS+BHFXEHFfgBRap6qDpIUGnRdj0Y2PlaVJUVFbeq1855EZUPUEoA== dependencies: tslib "^2.3.0" -"@angular/core@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-20.3.19.tgz#ce8b2a0df48612b3d9bfefe8098a1018a3186406" - integrity sha512-SYnwW+q51bQoPtGFoGovm1P5GK9fMEXsG0lGaEAUapjskblAYyX7hLlM/jgueSojv2SjhqNF8aXR+gjHLhZVNA== +"@angular/core@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-20.3.25.tgz#4418a9625a8a152029b49158dbda01f1c83d19c0" + integrity sha512-B4XnnR5jzikZDvZ4PjwjAWZMT14dxrKrmJdwa/n0yp7rMPkIJTKF6ZJMg4d1pLWLLSsc2oWHioN3UrWlGqIKnA== dependencies: tslib "^2.3.0" -"@angular/forms@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-20.3.19.tgz#179fa22f6e2daf3fe58c400d3e3a7c10647f0ebc" - integrity sha512-WJotd+Lhl4FG2b0K+aQNyQDHhR515zKCuphjiUqEW7sifWrOQxANLKzPBngGrH75ayANFgPaDf7U3ZRIoblcQA== +"@angular/forms@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-20.3.25.tgz#10a16a9ebe8e71c2a236b1bf69c3fe4bd44923c5" + integrity sha512-vGRo1LVPFo2Cu0k+QyDTlsBv5UbN0c3Et2YMS+43oyi1c4keocntBccOjLyM5C0kpMz4+pP81MqqYpAWu2k+TQ== dependencies: tslib "^2.3.0" -"@angular/language-service@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-20.3.19.tgz#ba9e04a35717d948ff972476486eae2ea25a109d" - integrity sha512-9J0XrAKXInz11KKyNMrMZmn2NSjVbxzt/DsAumbrzzixeZwiY7vDy2Kqw/LLFLi7IlfMQ/gznz/mCVVgUWI5Gg== +"@angular/language-service@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-20.3.25.tgz#a319dec7d6369337908862461b45be96c6851a06" + integrity sha512-3PZUwbDUVQXk9BLSiNUpDxTnRXGR3szwK9QFQaGDt8lhmLYaQLh3VJsY0FHDRghHZYIGR2P2MbVxGQHytF+IPw== "@angular/material@20.2.14": version "20.2.14" @@ -448,24 +513,24 @@ dependencies: tslib "^2.3.0" -"@angular/platform-browser-dynamic@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.19.tgz#b13cb94dc39be24e22d70712605ca879aa5e83b2" - integrity sha512-OgErw7wjcC+8yKF5h99hJq8x+tvc091wThfmdL5YC+U3HgRmUaNZFgB/jR7cb/NeeeC42QW5Vc0qoUTC9rMnLQ== +"@angular/platform-browser-dynamic@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-20.3.25.tgz#5051bea6135c0e9585956bc2ec0df4d9dabac182" + integrity sha512-3Ku+IsN4tQPVBsw75SoLbLf7TsXAGL0rGPHSsyNYFhG2ZZeQuYNIAi8mc4cwz/qMDnuassHFrCxuLDgN6Yab5w== dependencies: tslib "^2.3.0" -"@angular/platform-browser@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-20.3.19.tgz#4bffa36591d9ba5adc89a1b48952fdfd982d2f30" - integrity sha512-TRZfatH1B/kreDwFRwtpLEurJQ6044qh6DWpvxzTbugaG5otLQJKTk+1z81/KsJwQqc1+24v+yuywc1LM7aq7w== +"@angular/platform-browser@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-20.3.25.tgz#f738f1895415c76932b5064d04b4493d17159cdf" + integrity sha512-0k06U/AJRQifGMLkcU3R9uEHWbuKEzkKMuKcGagXTrkeFvCG2Ub4JdsbcjFNWB2bspWgaxIMSceuj7c83U5wOA== dependencies: tslib "^2.3.0" -"@angular/router@20.3.19": - version "20.3.19" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-20.3.19.tgz#2346ff945a8039194ba921a473a8f4565a92b949" - integrity sha512-qHrMniHOsCJ4neZmcQVodjutJilyXAXk7EhLa931QyL0qyVKVomv6E0I3UFzRaC3ZeHc+hzBdU6C6bvMFKTl1g== +"@angular/router@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-20.3.25.tgz#0b79c6c0a0f4212002713c03bbb2709dbd79c546" + integrity sha512-YIjLHWAufTaukNj15hEoys29e7XNhnCRsS1/95h/OqR69R3adbB8hV7ut7gO6XdXokriYqb4gtoUjoESxR+xFQ== dependencies: tslib "^2.3.0" @@ -2740,13 +2805,13 @@ resolved "https://registry.yarnpkg.com/@sanity/diff-match-patch/-/diff-match-patch-3.2.0.tgz#7ce587273f7372a146308cb1075ba26177d42cdb" integrity sha512-4hPADs0qUThFZkBK/crnfKKHg71qkRowfktBljH2UIxGHHTxIzt8g8fBiXItyCjxkuNy+zpYOdRMifQNv8+Yww== -"@schematics/angular@20.3.24": - version "20.3.24" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-20.3.24.tgz#1cef967a08a55336b296dfd0e2c5207dc1c43226" - integrity sha512-GNB8zI8Lz0rJl4Q7FH4Y8ZmRpODkNDKGxWObfZ39POgiyr3CtT5sMRTQq1lWRWTlZeV8uD51DvW/EsAsbaS4HA== +"@schematics/angular@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-20.3.25.tgz#bf22b66390eb8fb8cf125f07ba3718077642c721" + integrity sha512-ezoJpPKhhjXgE3LxuNcJO/ghSXs8f73xrqGvqouag7IbuliJYbHrt22WH3X75XSbD0+iOdiqA2bARvAO/ezyxQ== dependencies: - "@angular-devkit/core" "20.3.24" - "@angular-devkit/schematics" "20.3.24" + "@angular-devkit/core" "20.3.25" + "@angular-devkit/schematics" "20.3.25" jsonc-parser "3.3.1" "@sigstore/bundle@^4.0.0": From 10888e5ead56f9ab3dd7c109b49f9e4f9dcd34ac Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Wed, 17 Jun 2026 11:41:26 +0200 Subject: [PATCH 04/12] Fixed CWE-426 and CWE-494 --- ui-ngx/package.json | 2 +- ui-ngx/yarn.lock | 318 ++++++++++++++++++++++---------------------- 2 files changed, 160 insertions(+), 160 deletions(-) diff --git a/ui-ngx/package.json b/ui-ngx/package.json index 565794bfa1..faf1a4117e 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -139,7 +139,7 @@ "ace-builds": "1.43.6", "tinymce": "6.8.6", "@babel/core": "7.28.3", - "esbuild": "0.28.0", + "esbuild": "0.28.1", "rollup": "4.59.0", "jquery.terminal/**/form-data": ">=4.0.4", "js-beautify/**/minimatch": "^9.0.7" diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index 07787994d7..9653ab1fc8 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -1447,135 +1447,135 @@ resolved "https://registry.yarnpkg.com/@es-joy/resolve.exports/-/resolve.exports-1.2.0.tgz#fe541a68aa080255f798c8561714ac8fad72cdd5" integrity sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g== -"@esbuild/aix-ppc64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz#7a289c158e29cbf59ea0afc83cc80f06d1c89402" - integrity sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA== - -"@esbuild/android-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz#b8828d9edfa3a92660644eb8de6e4f3c203d7b17" - integrity sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw== - -"@esbuild/android-arm@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.0.tgz#5ec1847605e05b5dbe5df90db9ff7e3e4c58dca7" - integrity sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ== - -"@esbuild/android-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.0.tgz#390642175b88ef82bad4cce03f8ab13fe9b1912e" - integrity sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA== - -"@esbuild/darwin-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz#ae45325960d5950cd6951e4f97396f4e1ff7d8d3" - integrity sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q== - -"@esbuild/darwin-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz#c079247d589b6b99449659d94f06951b84bff2e4" - integrity sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ== - -"@esbuild/freebsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz#45c456215a486593c94900297202dc11c880a37a" - integrity sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q== - -"@esbuild/freebsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz#0399494c1c85e4388e9b7040bd60d48f2a5b0d2c" - integrity sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw== - -"@esbuild/linux-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz#d6d9f09ef0de54116bf459a4d53cac7e0952fe39" - integrity sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A== - -"@esbuild/linux-arm@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz#7b42ffa84c288ae94fdc431c1b28a89e3c3b9278" - integrity sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw== - -"@esbuild/linux-ia32@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz#deb15d112ed8dd605346b6b953d23a21ff81253f" - integrity sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ== - -"@esbuild/linux-loong64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz#81fb89d07eecc79b157dea61033757726fce0ca4" - integrity sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg== - -"@esbuild/linux-mips64el@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz#d0e42691b3ff7af9fb2217b70fc01f343bdb62bb" - integrity sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w== - -"@esbuild/linux-ppc64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz#389f3e5e98f17d477c467cc87136e1a076eead87" - integrity sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg== - -"@esbuild/linux-riscv64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz#763bd60d59b242be12da1e67d5729f3024c605fa" - integrity sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ== - -"@esbuild/linux-s390x@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz#aac6061634872e4677de693bce8030d73b1fd055" - integrity sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q== - -"@esbuild/linux-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz#4f2917747188fe77632bcec65b2d84b422419779" - integrity sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ== - -"@esbuild/netbsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz#814df0ae57a0c386814491b8397eeba82094a947" - integrity sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw== - -"@esbuild/netbsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz#e01bdf7e60fa1a08e46d46d960b0d9bb8ac210af" - integrity sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw== - -"@esbuild/openbsd-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz#4a15c36aacca68d2d5a4c90b710c06759f4c1ffa" - integrity sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g== - -"@esbuild/openbsd-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz#475e6101498a8ecce3008d7c388111d7a27c17bd" - integrity sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA== - -"@esbuild/openharmony-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz#cfdc3957f0b7a69f1bde129aad17fcc2f6fa033e" - integrity sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w== - -"@esbuild/sunos-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz#a013c856fecacd1c3aec985c8afe1d1cb017497d" - integrity sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw== - -"@esbuild/win32-arm64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz#eae05e0f35271cad3898b43168d3e9a3bbaf47e5" - integrity sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA== - -"@esbuild/win32-ia32@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz#06161ebc5bf75c08d69feb3c6b22560515913998" - integrity sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA== - -"@esbuild/win32-x64@0.28.0": - version "0.28.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz#04d90d5752b4ce65d2b6ac25eba08ff7624fe07c" - integrity sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw== +"@esbuild/aix-ppc64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz#7a01a8d2ec2fbb2dac78adad09b0fa781e4082be" + integrity sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ== + +"@esbuild/android-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz#b540a27d14e4afd058496a4dbec4d3f414db110a" + integrity sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg== + +"@esbuild/android-arm@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.1.tgz#704bd297de6d762de54eabbeafbf55f6756abe2f" + integrity sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ== + +"@esbuild/android-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.1.tgz#d1cb166d34b0fbf0fe8ab460a5594f24a378701e" + integrity sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng== + +"@esbuild/darwin-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz#1034b26457fc886368fe61bbd09f653f6afa8e54" + integrity sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q== + +"@esbuild/darwin-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz#65556a432a1e4d72032d8218c1932fcca1a49772" + integrity sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ== + +"@esbuild/freebsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz#2e61e0592f9030d7e3dae18ee25ebc535918aef6" + integrity sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw== + +"@esbuild/freebsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz#c95ec289959ef8079c4dca817a1e2c4be66b9bd3" + integrity sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ== + +"@esbuild/linux-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz#40b22175dda06182f3ee8141186c5ff304c4a717" + integrity sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g== + +"@esbuild/linux-arm@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz#c09a0f67917592ac0de892a9be4d3814debd2a6c" + integrity sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ== + +"@esbuild/linux-ia32@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz#a580f9c676797833891e519fc7a1337c8afd8db3" + integrity sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w== + +"@esbuild/linux-loong64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz#46452cf321dc7f9e91c2fa780a56bb56e79cd68b" + integrity sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg== + +"@esbuild/linux-mips64el@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz#4211b3184dd6608f53dcb22e39f5d34ee08852c8" + integrity sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ== + +"@esbuild/linux-ppc64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz#697857c2a61cb9b0b6bb6652e40c1dc5e1ca8e5d" + integrity sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ== + +"@esbuild/linux-riscv64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz#d192943eb146a40ac4c6497d0cf7be35b986bf08" + integrity sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ== + +"@esbuild/linux-s390x@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz#acea0356da0e0ebc08f97cf7b9c2e401e1e648dc" + integrity sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag== + +"@esbuild/linux-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz#6f0c3ce0cb64c534b70c4c45ecb2c16d34e35dfd" + integrity sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA== + +"@esbuild/netbsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz#8bcd77077a0dce3378b574fedb26d2a253b73d36" + integrity sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw== + +"@esbuild/netbsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz#e7fb2a01e99c830c94e6623cd9fefb4c8fb58347" + integrity sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg== + +"@esbuild/openbsd-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz#c52909372db8b86e2c55e05a8940033b5660a3b2" + integrity sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q== + +"@esbuild/openbsd-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz#c427b9be5a64c262ff9a7eb70b5fbbaadf446c6c" + integrity sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw== + +"@esbuild/openharmony-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz#dc9b147baca2e6c4b3c85571741ef4860a489097" + integrity sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg== + +"@esbuild/sunos-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz#ce866d12df13c15e4c99f073a3d466f6e0649b3a" + integrity sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ== + +"@esbuild/win32-arm64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz#7468e3692d01d629d5941e5d83817bb80f9e39b4" + integrity sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA== + +"@esbuild/win32-ia32@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz#a5bc0063fb2bcab6d0ed63f2a1537958bc269ec6" + integrity sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg== + +"@esbuild/win32-x64@0.28.1": + version "0.28.1" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz#10064ee44f4347b90c9a02b446bbf80a91632b12" + integrity sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A== "@eslint-community/eslint-utils@^4.8.0", "@eslint-community/eslint-utils@^4.9.1": version "4.9.1" @@ -5777,37 +5777,37 @@ esbuild-wasm@0.28.0: resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.28.0.tgz#e2e60b86ed19e0f6f5a1e6c1c722f5a811d7d5f7" integrity sha512-5TRVKExcEmeMkccIZMzUq+Az6X2RoMAJyfl6SMMO1dMVhmvt0I2mx7gAb6zYi42n4d1ETcatFXazGKzA+aW7fg== -esbuild@0.28.0, esbuild@^0.27.0: - version "0.28.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.0.tgz#5dee347ffb3e3874212a35a69836b077b1ce6d96" - integrity sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw== +esbuild@0.28.0, esbuild@0.28.1, esbuild@^0.27.0: + version "0.28.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.1.tgz#ef45b4634c9c9d97a296aea4114a5f9840f95578" + integrity sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw== optionalDependencies: - "@esbuild/aix-ppc64" "0.28.0" - "@esbuild/android-arm" "0.28.0" - "@esbuild/android-arm64" "0.28.0" - "@esbuild/android-x64" "0.28.0" - "@esbuild/darwin-arm64" "0.28.0" - "@esbuild/darwin-x64" "0.28.0" - "@esbuild/freebsd-arm64" "0.28.0" - "@esbuild/freebsd-x64" "0.28.0" - "@esbuild/linux-arm" "0.28.0" - "@esbuild/linux-arm64" "0.28.0" - "@esbuild/linux-ia32" "0.28.0" - "@esbuild/linux-loong64" "0.28.0" - "@esbuild/linux-mips64el" "0.28.0" - "@esbuild/linux-ppc64" "0.28.0" - "@esbuild/linux-riscv64" "0.28.0" - "@esbuild/linux-s390x" "0.28.0" - "@esbuild/linux-x64" "0.28.0" - "@esbuild/netbsd-arm64" "0.28.0" - "@esbuild/netbsd-x64" "0.28.0" - "@esbuild/openbsd-arm64" "0.28.0" - "@esbuild/openbsd-x64" "0.28.0" - "@esbuild/openharmony-arm64" "0.28.0" - "@esbuild/sunos-x64" "0.28.0" - "@esbuild/win32-arm64" "0.28.0" - "@esbuild/win32-ia32" "0.28.0" - "@esbuild/win32-x64" "0.28.0" + "@esbuild/aix-ppc64" "0.28.1" + "@esbuild/android-arm" "0.28.1" + "@esbuild/android-arm64" "0.28.1" + "@esbuild/android-x64" "0.28.1" + "@esbuild/darwin-arm64" "0.28.1" + "@esbuild/darwin-x64" "0.28.1" + "@esbuild/freebsd-arm64" "0.28.1" + "@esbuild/freebsd-x64" "0.28.1" + "@esbuild/linux-arm" "0.28.1" + "@esbuild/linux-arm64" "0.28.1" + "@esbuild/linux-ia32" "0.28.1" + "@esbuild/linux-loong64" "0.28.1" + "@esbuild/linux-mips64el" "0.28.1" + "@esbuild/linux-ppc64" "0.28.1" + "@esbuild/linux-riscv64" "0.28.1" + "@esbuild/linux-s390x" "0.28.1" + "@esbuild/linux-x64" "0.28.1" + "@esbuild/netbsd-arm64" "0.28.1" + "@esbuild/netbsd-x64" "0.28.1" + "@esbuild/openbsd-arm64" "0.28.1" + "@esbuild/openbsd-x64" "0.28.1" + "@esbuild/openharmony-arm64" "0.28.1" + "@esbuild/sunos-x64" "0.28.1" + "@esbuild/win32-arm64" "0.28.1" + "@esbuild/win32-ia32" "0.28.1" + "@esbuild/win32-x64" "0.28.1" escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" From 01f2cc493abc62191e9c4383b13190a6211bbbd8 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Wed, 17 Jun 2026 11:47:11 +0200 Subject: [PATCH 05/12] Fixed CVE-2026-53571 --- ui-ngx/package.json | 1 + ui-ngx/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ui-ngx/package.json b/ui-ngx/package.json index faf1a4117e..adced5a5c9 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -140,6 +140,7 @@ "tinymce": "6.8.6", "@babel/core": "7.28.3", "esbuild": "0.28.1", + "vite": "7.3.5", "rollup": "4.59.0", "jquery.terminal/**/form-data": ">=4.0.4", "js-beautify/**/minimatch": "^9.0.7" diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index 9653ab1fc8..d87f22d5dc 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -10649,10 +10649,10 @@ vary@^1, vary@^1.1.2, vary@~1.1.2: resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vite@7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.2.tgz#cb041794d4c1395e28baea98198fd6e8f4b96b5c" - integrity sha512-Bby3NOsna2jsjfLVOHKes8sGwgl4TT0E6vvpYgnAYDIF/tie7MRaFthmKuHx1NSXjiTueXH3do80FMQgvEktRg== +vite@7.3.2, vite@7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.5.tgz#90c2d0b7b94a224e7e7dcf22d2912ff0b5291165" + integrity sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww== dependencies: esbuild "^0.27.0" fdir "^6.5.0" From 24fda421166a3b7040846a031071702d017adde4 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Wed, 17 Jun 2026 11:50:42 +0200 Subject: [PATCH 06/12] Fixed CVE-2026-12143 --- ui-ngx/yarn.lock | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index d87f22d5dc..f319d5526b 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -6330,15 +6330,15 @@ foreground-child@^3.1.0: signal-exit "^4.0.1" form-data@4.0.0, form-data@>=4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" - integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== + version "4.0.6" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.6.tgz#28e864e1b786dbebb68db1f452f9635278665827" + integrity sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" es-set-tostringtag "^2.1.0" - hasown "^2.0.2" - mime-types "^2.1.12" + hasown "^2.0.4" + mime-types "^2.1.35" formdata-polyfill@^4.0.10: version "4.0.10" @@ -6630,6 +6630,13 @@ hasown@^2.0.2: dependencies: function-bind "^1.1.2" +hasown@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" + integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== + dependencies: + function-bind "^1.1.2" + hono@^4.11.4: version "4.12.25" resolved "https://registry.yarnpkg.com/hono/-/hono-4.12.25.tgz#f2d9996a54e8c9c0c5f5de1c8f3a962e43a98c4e" @@ -7930,7 +7937,7 @@ mime-db@1.52.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.35, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== From 851f9c293baa103219a752ed299eec12ea6eed55 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Wed, 17 Jun 2026 11:53:19 +0200 Subject: [PATCH 07/12] Fixed CVE-2026-9277 --- ui-ngx/yarn.lock | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index f319d5526b..06a7fcb2fb 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -6623,14 +6623,7 @@ has-tostringtag@^1.0.2: dependencies: has-symbols "^1.0.3" -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -hasown@^2.0.4: +hasown@^2.0.2, hasown@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.4.tgz#8c62d8cb90beb2aad5d0a5b67581ad9854c3f003" integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== @@ -9715,9 +9708,9 @@ shebang-regex@^3.0.0: integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" - integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== + version "1.8.4" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.4.tgz#2edd9a4dcefc96649e2e2cb12f637b1f1d92a190" + integrity sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ== side-channel-list@^1.0.0: version "1.0.0" From b0a42a87a94c52d9d734bd5ecb2b962bc2f8711d Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Wed, 17 Jun 2026 12:26:02 +0200 Subject: [PATCH 08/12] Upgrade Angular to one version --- ui-ngx/package.json | 6 +-- ui-ngx/yarn.lock | 111 +++++++++----------------------------------- 2 files changed, 26 insertions(+), 91 deletions(-) diff --git a/ui-ngx/package.json b/ui-ngx/package.json index adced5a5c9..7293c95abd 100644 --- a/ui-ngx/package.json +++ b/ui-ngx/package.json @@ -94,9 +94,9 @@ }, "devDependencies": { "@angular-builders/custom-esbuild": "20.0.0", - "@angular-devkit/build-angular": "20.3.24", - "@angular-devkit/core": "20.3.24", - "@angular-devkit/schematics": "20.3.24", + "@angular-devkit/build-angular": "20.3.25", + "@angular-devkit/core": "20.3.25", + "@angular-devkit/schematics": "20.3.25", "@angular/build": "20.3.25", "@angular/cli": "20.3.25", "@angular/compiler-cli": "20.3.25", diff --git a/ui-ngx/yarn.lock b/ui-ngx/yarn.lock index 06a7fcb2fb..9411507b7a 100644 --- a/ui-ngx/yarn.lock +++ b/ui-ngx/yarn.lock @@ -160,14 +160,6 @@ "@angular-devkit/core" "^20.0.0" "@angular/build" "^20.0.0" -"@angular-devkit/architect@0.2003.24": - version "0.2003.24" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2003.24.tgz#1c59822ffeada4248f669424c7c0534f39fe8bc5" - integrity sha512-E7mCdkL6SWnW60G1nGLuugmsopza/eVIrDWB1y0vLkWN8gepOvnHz2Uf637kdzed/F1WoqR+dhv1SfsaJapzKA== - dependencies: - "@angular-devkit/core" "20.3.24" - rxjs "7.8.2" - "@angular-devkit/architect@0.2003.25", "@angular-devkit/architect@>= 0.2000.0 < 0.2100.0", "@angular-devkit/architect@>=0.2000.0 < 0.2100.0": version "0.2003.25" resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.2003.25.tgz#5fef6c3b713c7db438464e7f352bc762eafedfa5" @@ -176,16 +168,16 @@ "@angular-devkit/core" "20.3.25" rxjs "7.8.2" -"@angular-devkit/build-angular@20.3.24": - version "20.3.24" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-20.3.24.tgz#871b7c134d9c9f77b16cd68bca340801638e56a7" - integrity sha512-zBjETGqKtiojF8VHvjELW+UAMBRJ7ziqNc1xwUtqRuWZQVz8HH6x8m8Ncw4mSq9ecCFC4VB7OWTJ1VkAdYSBnQ== +"@angular-devkit/build-angular@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-20.3.25.tgz#1e3f973cd33a399ab6d05839cede6fe29b8e3219" + integrity sha512-jp2sbJhbVRT65RbGENY/lz3Z0W0D50Af3xzENmLDLBVp9uhlpIPSTC9LG4CEPV7T6H5Oq6ymHKM+OO5WwTlHHA== dependencies: "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.2003.24" - "@angular-devkit/build-webpack" "0.2003.24" - "@angular-devkit/core" "20.3.24" - "@angular/build" "20.3.24" + "@angular-devkit/architect" "0.2003.25" + "@angular-devkit/build-webpack" "0.2003.25" + "@angular-devkit/core" "20.3.25" + "@angular/build" "20.3.25" "@babel/core" "7.28.3" "@babel/generator" "7.28.3" "@babel/helper-annotate-as-pure" "7.27.3" @@ -196,7 +188,7 @@ "@babel/preset-env" "7.28.3" "@babel/runtime" "7.28.3" "@discoveryjs/json-ext" "0.6.3" - "@ngtools/webpack" "20.3.24" + "@ngtools/webpack" "20.3.25" ansi-colors "4.1.3" autoprefixer "10.4.21" babel-loader "10.0.0" @@ -218,7 +210,7 @@ ora "8.2.0" picomatch "4.0.4" piscina "5.1.3" - postcss "8.5.6" + postcss "8.5.12" postcss-loader "8.1.1" resolve-url-loader "5.0.0" rxjs "7.8.2" @@ -238,25 +230,13 @@ optionalDependencies: esbuild "0.28.0" -"@angular-devkit/build-webpack@0.2003.24": - version "0.2003.24" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.2003.24.tgz#9d96b1d2c05faf3bcb696059c736d9498230ba36" - integrity sha512-gfadsLK3SxbGpZQMSJGr8RK65R2mZi/VmHXdztXQHATvMpy+00CX1Nu3n+lPTxOVbC73aIczUkUbIuRC1HBCqg== - dependencies: - "@angular-devkit/architect" "0.2003.24" - rxjs "7.8.2" - -"@angular-devkit/core@20.3.24": - version "20.3.24" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-20.3.24.tgz#e4108ad599d507d934b9ca990d98a4bb23bd0471" - integrity sha512-kmOjXJcbFxUI91nds9n6XZ6Y/DyQ7/TqRXbHHqvkz9RtlIpdbgWHlIZIq6mgsPOgPBzkxFjtncVARYZUI3yxaw== +"@angular-devkit/build-webpack@0.2003.25": + version "0.2003.25" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.2003.25.tgz#ec1e1fbc690edb319a80f31acdf8673199352d43" + integrity sha512-jJMpYBdWeRfvrCna7JWsyMBbvjMcPblyzh4/pSfWw5znla3hJGzDtmb84qKZ+IB8eZNEcky4iGR5LK2jdGFLAg== dependencies: - ajv "8.18.0" - ajv-formats "3.0.1" - jsonc-parser "3.3.1" - picomatch "4.0.4" + "@angular-devkit/architect" "0.2003.25" rxjs "7.8.2" - source-map "0.7.6" "@angular-devkit/core@20.3.25", "@angular-devkit/core@>= 20.0.0 < 21.0.0", "@angular-devkit/core@^20.0.0": version "20.3.25" @@ -270,17 +250,6 @@ rxjs "7.8.2" source-map "0.7.6" -"@angular-devkit/schematics@20.3.24": - version "20.3.24" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.3.24.tgz#4631ec0755363173db0e89eadc0d756985e0bae1" - integrity sha512-B5fBPi0xnEDI0wLLkCjsrYjazRPyf+rnHLAHi34thMdeY9dqljJGWYdNuyUUBak6HNPBLdEo1EUSNcOF9OWt4A== - dependencies: - "@angular-devkit/core" "20.3.24" - jsonc-parser "3.3.1" - magic-string "0.30.17" - ora "8.2.0" - rxjs "7.8.2" - "@angular-devkit/schematics@20.3.25", "@angular-devkit/schematics@>= 20.0.0 < 21.0.0": version "20.3.25" resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-20.3.25.tgz#446618dbeb9b9756784e46b01190b71d10b6ffee" @@ -359,40 +328,6 @@ dependencies: tslib "^2.3.0" -"@angular/build@20.3.24": - version "20.3.24" - resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.3.24.tgz#79e423a077a4177074b52e3a20c76f082fc08824" - integrity sha512-AMGXOr268y+kVutl4LpOXY2xv9P+RXLCyXUkzYwi8XwGyxAJZfyu/L5qtcO2llExp5CuvP0OxkWxk4JOGRi9TA== - dependencies: - "@ampproject/remapping" "2.3.0" - "@angular-devkit/architect" "0.2003.24" - "@babel/core" "7.28.3" - "@babel/helper-annotate-as-pure" "7.27.3" - "@babel/helper-split-export-declaration" "7.24.7" - "@inquirer/confirm" "5.1.14" - "@vitejs/plugin-basic-ssl" "2.1.0" - beasties "0.3.5" - browserslist "^4.23.0" - esbuild "0.28.0" - https-proxy-agent "7.0.6" - istanbul-lib-instrument "6.0.3" - jsonc-parser "3.3.1" - listr2 "9.0.1" - magic-string "0.30.17" - mrmime "2.0.1" - parse5-html-rewriting-stream "8.0.0" - picomatch "4.0.4" - piscina "5.1.3" - rollup "4.59.0" - sass "1.90.0" - semver "7.7.2" - source-map-support "0.5.21" - tinyglobby "0.2.14" - vite "7.3.2" - watchpack "2.4.4" - optionalDependencies: - lmdb "3.4.2" - "@angular/build@20.3.25", "@angular/build@^20.0.0": version "20.3.25" resolved "https://registry.yarnpkg.com/@angular/build/-/build-20.3.25.tgz#cb21941c33b00758a2496d7ffc1e4d5b869d0867" @@ -2451,10 +2386,10 @@ dependencies: tslib "^2.0.0" -"@ngtools/webpack@20.3.24": - version "20.3.24" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-20.3.24.tgz#8e344ebaea46d7e669220f02a33bb61826bb35f6" - integrity sha512-PIP9hFVF6OOmDxG0s6vX7cHm/6wwWK8jXd6e1I/CewR0zpVPtR1vxhhw9CrY4VEUCFSL6x2NuW/U3cI7LU+Z1Q== +"@ngtools/webpack@20.3.25": + version "20.3.25" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-20.3.25.tgz#18e676da66c10b6810aac8b5aee9a10432e03e9a" + integrity sha512-p/YopAgukaIvezv3hsJzJevnNUBNTM8UQIkyDHPY5/aANdKraUTKDQUwlVxRiyD8U+PTSeD/BI56oOnuKrdFZQ== "@ngx-translate/core@^17.0.0": version "17.0.0" @@ -8981,10 +8916,10 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.5.6, postcss@^8.2.14, postcss@^8.4.33, postcss@^8.4.4, postcss@^8.4.47, postcss@^8.4.49, postcss@^8.5.6: - version "8.5.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== +postcss@8.5.12, postcss@^8.2.14, postcss@^8.4.33, postcss@^8.4.4, postcss@^8.4.47, postcss@^8.4.49, postcss@^8.5.6: + version "8.5.12" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.12.tgz#cd0c0f667f7cb0521e2313234ea6e707a9ec1ddb" + integrity sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA== dependencies: nanoid "^3.3.11" picocolors "^1.1.1" From 5ba7304259e7bc57bde025696cef1dd93b2f482f Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Thu, 18 Jun 2026 15:57:58 +0200 Subject: [PATCH 09/12] Fixed Advanced Widget Style Editor rendering (#15803) * Fixed Advanced Widget Style Editor rendering (cherry picked from commit 32ddf4336b32579f4b5d9b07f30148f7e068bde4) * Moved styles to class for styles consistency (cherry picked from commit 0b306159ba074415d9d7699614f5b4d9f0272157) --- .../home/components/widget/widget-config.component.html | 4 ++-- .../home/components/widget/widget-config.component.scss | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/widget-config.component.html b/ui-ngx/src/app/modules/home/components/widget/widget-config.component.html index f35a1f9ae1..b09929d917 100644 --- a/ui-ngx/src/app/modules/home/components/widget/widget-config.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/widget-config.component.html @@ -29,7 +29,7 @@
-
+
@@ -213,7 +213,7 @@
-
+
{{basicModeDirectiveError}}
diff --git a/ui-ngx/src/app/modules/home/components/widget/widget-config.component.scss b/ui-ngx/src/app/modules/home/components/widget/widget-config.component.scss index af7e27f481..8df18b25bc 100644 --- a/ui-ngx/src/app/modules/home/components/widget/widget-config.component.scss +++ b/ui-ngx/src/app/modules/home/components/widget/widget-config.component.scss @@ -43,7 +43,9 @@ } .tb-widget-config-content { & > .mat-content { - height: 100%; + &.tb-widget-config-fill { + height: 100%; + } padding-top: 8px; @media #{$mat-xs} { padding-left: 8px; From 67f502cd5a84ed38b3b9865439e186c918a0324b Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Thu, 18 Jun 2026 15:59:08 +0200 Subject: [PATCH 10/12] Fixed dashboard logo stretch at full width (#15800) * Fixed dashboard logo stretch at full width * Code improvements --- .../home/components/dashboard-page/dashboard-page.component.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.scss b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.scss index b1383603e0..1db4c35a6f 100644 --- a/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.scss +++ b/ui-ngx/src/app/modules/home/components/dashboard-page/dashboard-page.component.scss @@ -63,6 +63,7 @@ div.tb-dashboard-page { .dashboard_logo{ height: 75%; + width: auto; margin-right: 16px; } From c282c2540400e4791e468a9d694ffa3fd1d79874 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Thu, 18 Jun 2026 16:01:58 +0200 Subject: [PATCH 11/12] Merge pull request #15764 from mtsymbarov-del/fix/cf-dirty-flag-form Fixed "Confirm exit" dialog appearing when the form was not changed --- .../src/app/core/services/calculated-field-form.service.ts | 5 ++++- .../entity-aggregation-component.component.html | 1 - .../entity-aggregation-component.component.ts | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ui-ngx/src/app/core/services/calculated-field-form.service.ts b/ui-ngx/src/app/core/services/calculated-field-form.service.ts index 404676d383..378a74836e 100644 --- a/ui-ngx/src/app/core/services/calculated-field-form.service.ts +++ b/ui-ngx/src/app/core/services/calculated-field-form.service.ts @@ -25,11 +25,11 @@ import { CalculatedFieldType, OutputStrategyType } from '@shared/models/calculated-field.models'; -import { oneSpaceInsideRegex } from '@shared/models/regex.constants'; import { isDefined } from '@core/utils'; import { CalculatedFieldsService } from '@core/http/calculated-fields.service'; import { CalculatedFieldsTableEntity } from '@home/components/calculated-fields/calculated-fields-table-config'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; +import { getTimezoneInfo } from '@shared/models/time/time.models'; @Injectable({ providedIn: 'root' }) export class CalculatedFieldFormService { @@ -86,6 +86,9 @@ export class CalculatedFieldFormService { if (isDefined(config?.output) && !config?.output?.strategy) { config.output.strategy = { type: OutputStrategyType.RULE_CHAIN }; } + if (config.type === CalculatedFieldType.ENTITY_AGGREGATION && config.interval) { + config.interval.tz = getTimezoneInfo(config.interval.tz, undefined, true)?.id; + } } return config; } diff --git a/ui-ngx/src/app/modules/home/components/calculated-fields/components/entity-aggregation-configuration/entity-aggregation-component.component.html b/ui-ngx/src/app/modules/home/components/calculated-fields/components/entity-aggregation-configuration/entity-aggregation-component.component.html index ab7987c340..91f1fc0ac2 100644 --- a/ui-ngx/src/app/modules/home/components/calculated-fields/components/entity-aggregation-configuration/entity-aggregation-component.component.html +++ b/ui-ngx/src/app/modules/home/components/calculated-fields/components/entity-aggregation-configuration/entity-aggregation-component.component.html @@ -58,7 +58,6 @@ appearance="outline" subscriptSizing="dynamic" required - userTimezoneByDefault formControlName="tz">
diff --git a/ui-ngx/src/app/modules/home/components/calculated-fields/components/entity-aggregation-configuration/entity-aggregation-component.component.ts b/ui-ngx/src/app/modules/home/components/calculated-fields/components/entity-aggregation-configuration/entity-aggregation-component.component.ts index 8386555d2b..275034d2eb 100644 --- a/ui-ngx/src/app/modules/home/components/calculated-fields/components/entity-aggregation-configuration/entity-aggregation-component.component.ts +++ b/ui-ngx/src/app/modules/home/components/calculated-fields/components/entity-aggregation-configuration/entity-aggregation-component.component.ts @@ -37,7 +37,7 @@ import { } from '@shared/models/calculated-field.models'; import { filter, map } from 'rxjs/operators'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; -import { AVG_MONTH, AVG_QUARTER, DAY, HOUR, MINUTE, SECOND, WEEK, YEAR } from '@shared/models/time/time.models'; +import { AVG_MONTH, AVG_QUARTER, DAY, getDefaultTimezone, HOUR, MINUTE, SECOND, WEEK, YEAR } from '@shared/models/time/time.models'; import { deepClone, isDefinedAndNotNull } from '@core/utils'; import { getCurrentAuthState } from '@core/auth/auth.selectors'; import { Store } from '@ngrx/store'; @@ -99,7 +99,7 @@ export class EntityAggregationComponentComponent implements ControlValueAccessor metrics: this.fb.control({}, notEmptyObjectValidator()), interval: this.fb.group({ type: [AggIntervalType.HOUR], - tz: ['', Validators.required], + tz: [getDefaultTimezone(), Validators.required], durationSec: [this.minAllowedAggregationIntervalInSecForCF, Validators.required], allowOffsetSec: [false], offsetSec: [this.minAllowedAggregationIntervalInSecForCF > 60 ? MINUTE / SECOND : 1, Validators.required], From 156ddd113e84609719e24ec3812d3a8da623bea7 Mon Sep 17 00:00:00 2001 From: Maksym Tsymbarov Date: Thu, 18 Jun 2026 16:06:32 +0200 Subject: [PATCH 12/12] Added handler for WebGL unavailability in map widget (#15640) * Added handler for WebGL unavailability in map widget * Changed position of toast * Additional fixes * Code improvements --- .../components/widget/lib/maps/geo-map.ts | 20 +++++++++--- .../widget/lib/maps/leaflet/leaflet-tb.ts | 31 +++++++++++++++++-- .../components/widget/lib/maps/map-layer.ts | 11 +++++-- .../shared/models/widget/maps/map.models.ts | 2 ++ .../assets/locale/locale.constant-en_US.json | 1 + 5 files changed, 55 insertions(+), 10 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/geo-map.ts b/ui-ngx/src/app/modules/home/components/widget/lib/maps/geo-map.ts index bc1e5f8f89..405be8729e 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/geo-map.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/geo-map.ts @@ -18,13 +18,13 @@ import { DEFAULT_ZOOM_LEVEL, defaultGeoMapSettings, GeoMapSettings, - latLngPointToBounds, + latLngPointToBounds, MapControlsPosition, MapZoomAction, TbCircleData, TbPolygonCoordinate, TbPolygonCoordinates, TbPolygonRawCoordinate, - TbPolygonRawCoordinates + TbPolygonRawCoordinates, WEBGL_ERROR_EVENT } from '@shared/models/widget/maps/map.models'; import { WidgetContext } from '@home/models/widget-component.models'; import { DeepPartial } from '@shared/models/common'; @@ -92,9 +92,19 @@ export class TbGeoMap extends TbMap { return this.loadLayers().pipe( tap((layers: L.TB.LayerData[]) => { if (layers.length) { - const layer = layers[0]; - layer.layer.addTo(this.map); - this.map.attributionControl.setPrefix(layer.attributionPrefix); + const defaultLayer = layers[0]; + layers.forEach(layer => { + layer.layer.once(WEBGL_ERROR_EVENT, () => { + const toastPosition = this.settings.controlsPosition === MapControlsPosition.bottomleft + || this.settings.controlsPosition === MapControlsPosition.bottomright ? 'top' : 'bottom'; + this.ctx.showErrorToast( + this.ctx.translate.instant('widgets.maps.layer.webgl-not-available'), + toastPosition, 'left', this.ctx.toastTargetId, true + ); + }); + }); + defaultLayer.layer.addTo(this.map); + this.map.attributionControl.setPrefix(defaultLayer.attributionPrefix); if (layers.length > 1) { const sidebar = this.getSidebar(); L.TB.layers({ diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/leaflet/leaflet-tb.ts b/ui-ngx/src/app/modules/home/components/widget/lib/maps/leaflet/leaflet-tb.ts index c16d5cc67c..72e7e5b324 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/leaflet/leaflet-tb.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/leaflet/leaflet-tb.ts @@ -24,6 +24,7 @@ import { MatIconRegistry } from '@angular/material/icon'; import { isSvgIcon, splitIconName } from '@shared/models/icon.models'; import { catchError, take } from 'rxjs/operators'; import { of } from 'rxjs'; +import { WEBGL_ERROR_EVENT } from '@shared/models/widget/maps/map.models'; L.MarkerCluster = L.MarkerCluster.mergeOptions({ pmIgnore: true }); @@ -1093,6 +1094,7 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { private _actualCanvas: HTMLCanvasElement; private _offset: L.Point; private _zooming: boolean; + private _glError = false; constructor(options: TB.MapLibreGL.LeafletMapLibreGLMapOptions) { super(); @@ -1136,7 +1138,9 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { const paneName = this.getPaneName(); map.getPane(paneName).removeChild(this._container); - this._glMap.remove(); + if (this._glMap) { + this._glMap.remove(); + } this._glMap = null; return this; @@ -1204,7 +1208,18 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { zoom: this._map.getZoom() - 1, attributionControl: false }); - this._glMap = new MapLibreGLMap(options); + this._glError = false; + try { + this._glMap = new MapLibreGLMap(options); + } catch (e) { + this._glError = true; + this.fire(WEBGL_ERROR_EVENT, { error: e }); + return; + } + this._glMap.once('webglcontextlost', (e) => { + this._glError = true; + this.fire(WEBGL_ERROR_EVENT, {error: e}); + }); this._glMap.once('load', () => { this.fire('load'); }); @@ -1222,8 +1237,12 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { } } + private _glReady(): boolean { + return !this._glError && !!this._glMap; + } + private _update() { - if (!this._map) { + if (!this._map || !this._glReady()) { return; } this._offset = this._map.containerPointToLayerPoint([0, 0]); @@ -1253,6 +1272,7 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { private _transformGL(gl: MapLibreGLMap) { const center = this._map.getCenter(); const tr = gl._getTransformForUpdate(); + if (!tr) { return; } tr.setCenter(MapLibreGLLngLat.convert([center.lng, center.lat])); tr.setZoom(this._map.getZoom() - 1); gl.transform.apply(tr); @@ -1260,6 +1280,7 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { } private _pinchZoom() { + if (!this._glReady()) { return; } this._glMap.jumpTo({ zoom: this._map.getZoom() - 1, center: this._map.getCenter() @@ -1267,6 +1288,7 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { } private _animateZoom(e: L.ZoomAnimEvent) { + if (!this._glReady() || !this._actualCanvas) { return; } const scale = this._map.getZoomScale(e.zoom); const padding = this._map.getSize().multiplyBy(this.options.padding * scale); const viewHalf = this.getSize().divideBy(2); @@ -1291,6 +1313,7 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { } private _zoomEnd() { + if (!this._glReady() || !this._actualCanvas) { return; } const scale = this._map.getZoomScale(this._map.getZoom()); L.DomUtil.setTransform( this._actualCanvas, @@ -1302,7 +1325,9 @@ class MapLibreGLLayer extends L.Layer implements TB.MapLibreGL.MapLibreGLLayer { } private _transitionEnd() { + if (!this._glReady()) { return; } L.Util.requestAnimFrame(() => { + if (!this._glReady()) { return; } const zoom = this._map.getZoom(); const center = this._map.getCenter(); const offset = this._map.latLngToContainerPoint( diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/maps/map-layer.ts b/ui-ngx/src/app/modules/home/components/widget/lib/maps/map-layer.ts index 2953c609ce..4bc2dbf231 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/maps/map-layer.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/maps/map-layer.ts @@ -28,14 +28,14 @@ import { MapProvider, OpenStreetMapLayerSettings, ReferenceLayerType, - TencentMapLayerSettings + TencentMapLayerSettings, WEBGL_ERROR_EVENT } from '@shared/models/widget/maps/map.models'; import { WidgetContext } from '@home/models/widget-component.models'; import { DeepPartial } from '@shared/models/common'; import { mergeDeep } from '@core/utils'; import { Observable, of, shareReplay, switchMap } from 'rxjs'; import { CustomTranslatePipe } from '@shared/pipe/custom-translate.pipe'; -import L from 'leaflet'; +import L, { LeafletEvent } from 'leaflet'; import { catchError, map } from 'rxjs/operators'; import { ResourcesService } from '@core/services/resources.service'; import { StyleSpecification } from '@maplibre/maplibre-gl-style-spec'; @@ -120,6 +120,13 @@ export abstract class TbMapLayer { let referenceLayerLoaded = false; baseLayer.addTo(layer); referenceLayer.addTo(layer); + // Forwarding is needed only here: when a reference layer is present the base layer is + // wrapped in this featureGroup, and geo-map listens for WEBGL_ERROR_EVENT on the + // returned layer (the group). In the other branches the MapLibreGLLayer is returned + // directly and fires WEBGL_ERROR_EVENT itself, so no forwarding is required. + baseLayer.once(WEBGL_ERROR_EVENT, (e: LeafletEvent) => { + layer.fire(WEBGL_ERROR_EVENT, e); + }); baseLayer.once('load', () => { baseLayerLoaded = true; if (referenceLayerLoaded) { diff --git a/ui-ngx/src/app/shared/models/widget/maps/map.models.ts b/ui-ngx/src/app/shared/models/widget/maps/map.models.ts index 6db3b1481b..e8141e9eb1 100644 --- a/ui-ngx/src/app/shared/models/widget/maps/map.models.ts +++ b/ui-ngx/src/app/shared/models/widget/maps/map.models.ts @@ -1127,6 +1127,8 @@ export interface ImageMapSourceSettings { entityKey?: DataKey; } +export const WEBGL_ERROR_EVENT = 'gl-error'; + export const imageMapSourceSettingsValid = (imageSource: ImageMapSourceSettings): boolean => { if (!imageSource?.sourceType) { return false; diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 78308369f5..acfe5c344a 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -8538,6 +8538,7 @@ "roadmap": "Roadmap", "satellite": "Satellite", "hybrid": "Hybrid", + "webgl-not-available": "The selected map layer requires graphics acceleration to display. Please enable 'Hardware acceleration' in your browser settings, or switch to a different layer.", "reference": { "reference-layer": "Reference layer", "no-layer": "No layer",