diff --git a/web/package-lock.json b/web/package-lock.json
index cd5397633..8705fa937 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -12,7 +12,7 @@
                 "@babel/core": "^7.21.4",
                 "@babel/plugin-proposal-decorators": "^7.21.0",
                 "@babel/plugin-transform-runtime": "^7.21.4",
-                "@babel/preset-env": "^7.21.4",
+                "@babel/preset-env": "^7.21.5",
                 "@babel/preset-typescript": "^7.21.4",
                 "@codemirror/lang-html": "^6.4.3",
                 "@codemirror/lang-javascript": "^6.1.7",
@@ -123,9 +123,9 @@
             }
         },
         "node_modules/@babel/compat-data": {
-            "version": "7.21.4",
-            "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz",
-            "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==",
+            "version": "7.21.7",
+            "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz",
+            "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==",
             "engines": {
                 "node": ">=6.9.0"
             }
@@ -160,11 +160,11 @@
             }
         },
         "node_modules/@babel/generator": {
-            "version": "7.21.4",
-            "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz",
-            "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz",
+            "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==",
             "dependencies": {
-                "@babel/types": "^7.21.4",
+                "@babel/types": "^7.21.5",
                 "@jridgewell/gen-mapping": "^0.3.2",
                 "@jridgewell/trace-mapping": "^0.3.17",
                 "jsesc": "^2.5.1"
@@ -197,11 +197,11 @@
             }
         },
         "node_modules/@babel/helper-compilation-targets": {
-            "version": "7.21.4",
-            "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz",
-            "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz",
+            "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==",
             "dependencies": {
-                "@babel/compat-data": "^7.21.4",
+                "@babel/compat-data": "^7.21.5",
                 "@babel/helper-validator-option": "^7.21.0",
                 "browserslist": "^4.21.3",
                 "lru-cache": "^5.1.1",
@@ -280,9 +280,9 @@
             }
         },
         "node_modules/@babel/helper-environment-visitor": {
-            "version": "7.18.9",
-            "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
-            "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz",
+            "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==",
             "engines": {
                 "node": ">=6.9.0"
             }
@@ -344,18 +344,18 @@
             }
         },
         "node_modules/@babel/helper-module-transforms": {
-            "version": "7.21.2",
-            "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz",
-            "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz",
+            "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==",
             "dependencies": {
-                "@babel/helper-environment-visitor": "^7.18.9",
-                "@babel/helper-module-imports": "^7.18.6",
-                "@babel/helper-simple-access": "^7.20.2",
+                "@babel/helper-environment-visitor": "^7.21.5",
+                "@babel/helper-module-imports": "^7.21.4",
+                "@babel/helper-simple-access": "^7.21.5",
                 "@babel/helper-split-export-declaration": "^7.18.6",
                 "@babel/helper-validator-identifier": "^7.19.1",
                 "@babel/template": "^7.20.7",
-                "@babel/traverse": "^7.21.2",
-                "@babel/types": "^7.21.2"
+                "@babel/traverse": "^7.21.5",
+                "@babel/types": "^7.21.5"
             },
             "engines": {
                 "node": ">=6.9.0"
@@ -373,9 +373,9 @@
             }
         },
         "node_modules/@babel/helper-plugin-utils": {
-            "version": "7.20.2",
-            "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
-            "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz",
+            "integrity": "sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==",
             "engines": {
                 "node": ">=6.9.0"
             }
@@ -414,11 +414,11 @@
             }
         },
         "node_modules/@babel/helper-simple-access": {
-            "version": "7.20.2",
-            "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
-            "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz",
+            "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==",
             "dependencies": {
-                "@babel/types": "^7.20.2"
+                "@babel/types": "^7.21.5"
             },
             "engines": {
                 "node": ">=6.9.0"
@@ -447,9 +447,9 @@
             }
         },
         "node_modules/@babel/helper-string-parser": {
-            "version": "7.19.4",
-            "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
-            "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.21.5.tgz",
+            "integrity": "sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==",
             "engines": {
                 "node": ">=6.9.0"
             }
@@ -511,9 +511,9 @@
             }
         },
         "node_modules/@babel/parser": {
-            "version": "7.21.4",
-            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
-            "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.5.tgz",
+            "integrity": "sha512-J+IxH2IsxV4HbnTrSWgMAQj0UEo61hDA4Ny8h8PCX0MLXiibqHbqIOVneqdocemSBc22VpBKxt4J6FQzy9HarQ==",
             "bin": {
                 "parser": "bin/babel-parser.js"
             },
@@ -889,6 +889,17 @@
                 "@babel/core": "^7.0.0-0"
             }
         },
+        "node_modules/@babel/plugin-syntax-import-meta": {
+            "version": "7.10.4",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+            "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+            "dependencies": {
+                "@babel/helper-plugin-utils": "^7.10.4"
+            },
+            "peerDependencies": {
+                "@babel/core": "^7.0.0-0"
+            }
+        },
         "node_modules/@babel/plugin-syntax-json-strings": {
             "version": "7.8.3",
             "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
@@ -1023,11 +1034,11 @@
             }
         },
         "node_modules/@babel/plugin-transform-arrow-functions": {
-            "version": "7.20.7",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz",
-            "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.21.5.tgz",
+            "integrity": "sha512-wb1mhwGOCaXHDTcsRYMKF9e5bbMgqwxtqa2Y1ifH96dXJPwbuLX9qHy3clhrxVqgMz7nyNXs8VkxdH8UBcjKqA==",
             "dependencies": {
-                "@babel/helper-plugin-utils": "^7.20.2"
+                "@babel/helper-plugin-utils": "^7.21.5"
             },
             "engines": {
                 "node": ">=6.9.0"
@@ -1103,11 +1114,11 @@
             }
         },
         "node_modules/@babel/plugin-transform-computed-properties": {
-            "version": "7.20.7",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz",
-            "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.21.5.tgz",
+            "integrity": "sha512-TR653Ki3pAwxBxUe8srfF3e4Pe3FTA46uaNHYyQwIoM4oWKSoOZiDNyHJ0oIoDIUPSRQbQG7jzgVBX3FPVne1Q==",
             "dependencies": {
-                "@babel/helper-plugin-utils": "^7.20.2",
+                "@babel/helper-plugin-utils": "^7.21.5",
                 "@babel/template": "^7.20.7"
             },
             "engines": {
@@ -1176,11 +1187,11 @@
             }
         },
         "node_modules/@babel/plugin-transform-for-of": {
-            "version": "7.21.0",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz",
-            "integrity": "sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.5.tgz",
+            "integrity": "sha512-nYWpjKW/7j/I/mZkGVgHJXh4bA1sfdFnJoOXwJuj4m3Q2EraO/8ZyrkCau9P5tbHQk01RMSt6KYLCsW7730SXQ==",
             "dependencies": {
-                "@babel/helper-plugin-utils": "^7.20.2"
+                "@babel/helper-plugin-utils": "^7.21.5"
             },
             "engines": {
                 "node": ">=6.9.0"
@@ -1249,13 +1260,13 @@
             }
         },
         "node_modules/@babel/plugin-transform-modules-commonjs": {
-            "version": "7.21.2",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz",
-            "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.5.tgz",
+            "integrity": "sha512-OVryBEgKUbtqMoB7eG2rs6UFexJi6Zj6FDXx+esBLPTCxCNxAY9o+8Di7IsUGJ+AVhp5ncK0fxWUBd0/1gPhrQ==",
             "dependencies": {
-                "@babel/helper-module-transforms": "^7.21.2",
-                "@babel/helper-plugin-utils": "^7.20.2",
-                "@babel/helper-simple-access": "^7.20.2"
+                "@babel/helper-module-transforms": "^7.21.5",
+                "@babel/helper-plugin-utils": "^7.21.5",
+                "@babel/helper-simple-access": "^7.21.5"
             },
             "engines": {
                 "node": ">=6.9.0"
@@ -1369,11 +1380,11 @@
             }
         },
         "node_modules/@babel/plugin-transform-regenerator": {
-            "version": "7.20.5",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz",
-            "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.21.5.tgz",
+            "integrity": "sha512-ZoYBKDb6LyMi5yCsByQ5jmXsHAQDDYeexT1Szvlmui+lADvfSecr5Dxd/PkrTC3pAD182Fcju1VQkB4oCp9M+w==",
             "dependencies": {
-                "@babel/helper-plugin-utils": "^7.20.2",
+                "@babel/helper-plugin-utils": "^7.21.5",
                 "regenerator-transform": "^0.15.1"
             },
             "engines": {
@@ -1505,11 +1516,11 @@
             }
         },
         "node_modules/@babel/plugin-transform-unicode-escapes": {
-            "version": "7.18.10",
-            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
-            "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.21.5.tgz",
+            "integrity": "sha512-LYm/gTOwZqsYohlvFUe/8Tujz75LqqVC2w+2qPHLR+WyWHGCZPN1KBpJCJn+4Bk4gOkQy/IXKIge6az5MqwlOg==",
             "dependencies": {
-                "@babel/helper-plugin-utils": "^7.18.9"
+                "@babel/helper-plugin-utils": "^7.21.5"
             },
             "engines": {
                 "node": ">=6.9.0"
@@ -1534,13 +1545,13 @@
             }
         },
         "node_modules/@babel/preset-env": {
-            "version": "7.21.4",
-            "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.4.tgz",
-            "integrity": "sha512-2W57zHs2yDLm6GD5ZpvNn71lZ0B/iypSdIeq25OurDKji6AdzV07qp4s3n1/x5BqtiGaTrPN3nerlSCaC5qNTw==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.21.5.tgz",
+            "integrity": "sha512-wH00QnTTldTbf/IefEVyChtRdw5RJvODT/Vb4Vcxq1AZvtXj6T0YeX0cAcXhI6/BdGuiP3GcNIL4OQbI2DVNxg==",
             "dependencies": {
-                "@babel/compat-data": "^7.21.4",
-                "@babel/helper-compilation-targets": "^7.21.4",
-                "@babel/helper-plugin-utils": "^7.20.2",
+                "@babel/compat-data": "^7.21.5",
+                "@babel/helper-compilation-targets": "^7.21.5",
+                "@babel/helper-plugin-utils": "^7.21.5",
                 "@babel/helper-validator-option": "^7.21.0",
                 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
                 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7",
@@ -1565,6 +1576,7 @@
                 "@babel/plugin-syntax-dynamic-import": "^7.8.3",
                 "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
                 "@babel/plugin-syntax-import-assertions": "^7.20.0",
+                "@babel/plugin-syntax-import-meta": "^7.10.4",
                 "@babel/plugin-syntax-json-strings": "^7.8.3",
                 "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
                 "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -1574,22 +1586,22 @@
                 "@babel/plugin-syntax-optional-chaining": "^7.8.3",
                 "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
                 "@babel/plugin-syntax-top-level-await": "^7.14.5",
-                "@babel/plugin-transform-arrow-functions": "^7.20.7",
+                "@babel/plugin-transform-arrow-functions": "^7.21.5",
                 "@babel/plugin-transform-async-to-generator": "^7.20.7",
                 "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
                 "@babel/plugin-transform-block-scoping": "^7.21.0",
                 "@babel/plugin-transform-classes": "^7.21.0",
-                "@babel/plugin-transform-computed-properties": "^7.20.7",
+                "@babel/plugin-transform-computed-properties": "^7.21.5",
                 "@babel/plugin-transform-destructuring": "^7.21.3",
                 "@babel/plugin-transform-dotall-regex": "^7.18.6",
                 "@babel/plugin-transform-duplicate-keys": "^7.18.9",
                 "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
-                "@babel/plugin-transform-for-of": "^7.21.0",
+                "@babel/plugin-transform-for-of": "^7.21.5",
                 "@babel/plugin-transform-function-name": "^7.18.9",
                 "@babel/plugin-transform-literals": "^7.18.9",
                 "@babel/plugin-transform-member-expression-literals": "^7.18.6",
                 "@babel/plugin-transform-modules-amd": "^7.20.11",
-                "@babel/plugin-transform-modules-commonjs": "^7.21.2",
+                "@babel/plugin-transform-modules-commonjs": "^7.21.5",
                 "@babel/plugin-transform-modules-systemjs": "^7.20.11",
                 "@babel/plugin-transform-modules-umd": "^7.18.6",
                 "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5",
@@ -1597,17 +1609,17 @@
                 "@babel/plugin-transform-object-super": "^7.18.6",
                 "@babel/plugin-transform-parameters": "^7.21.3",
                 "@babel/plugin-transform-property-literals": "^7.18.6",
-                "@babel/plugin-transform-regenerator": "^7.20.5",
+                "@babel/plugin-transform-regenerator": "^7.21.5",
                 "@babel/plugin-transform-reserved-words": "^7.18.6",
                 "@babel/plugin-transform-shorthand-properties": "^7.18.6",
                 "@babel/plugin-transform-spread": "^7.20.7",
                 "@babel/plugin-transform-sticky-regex": "^7.18.6",
                 "@babel/plugin-transform-template-literals": "^7.18.9",
                 "@babel/plugin-transform-typeof-symbol": "^7.18.9",
-                "@babel/plugin-transform-unicode-escapes": "^7.18.10",
+                "@babel/plugin-transform-unicode-escapes": "^7.21.5",
                 "@babel/plugin-transform-unicode-regex": "^7.18.6",
                 "@babel/preset-modules": "^0.1.5",
-                "@babel/types": "^7.21.4",
+                "@babel/types": "^7.21.5",
                 "babel-plugin-polyfill-corejs2": "^0.3.3",
                 "babel-plugin-polyfill-corejs3": "^0.6.0",
                 "babel-plugin-polyfill-regenerator": "^0.4.1",
@@ -1696,18 +1708,18 @@
             }
         },
         "node_modules/@babel/traverse": {
-            "version": "7.21.4",
-            "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz",
-            "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz",
+            "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==",
             "dependencies": {
                 "@babel/code-frame": "^7.21.4",
-                "@babel/generator": "^7.21.4",
-                "@babel/helper-environment-visitor": "^7.18.9",
+                "@babel/generator": "^7.21.5",
+                "@babel/helper-environment-visitor": "^7.21.5",
                 "@babel/helper-function-name": "^7.21.0",
                 "@babel/helper-hoist-variables": "^7.18.6",
                 "@babel/helper-split-export-declaration": "^7.18.6",
-                "@babel/parser": "^7.21.4",
-                "@babel/types": "^7.21.4",
+                "@babel/parser": "^7.21.5",
+                "@babel/types": "^7.21.5",
                 "debug": "^4.1.0",
                 "globals": "^11.1.0"
             },
@@ -1716,11 +1728,11 @@
             }
         },
         "node_modules/@babel/types": {
-            "version": "7.21.4",
-            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
-            "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
+            "version": "7.21.5",
+            "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz",
+            "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==",
             "dependencies": {
-                "@babel/helper-string-parser": "^7.19.4",
+                "@babel/helper-string-parser": "^7.21.5",
                 "@babel/helper-validator-identifier": "^7.19.1",
                 "to-fast-properties": "^2.0.0"
             },
diff --git a/web/package.json b/web/package.json
index a90144cb6..460f15570 100644
--- a/web/package.json
+++ b/web/package.json
@@ -19,7 +19,7 @@
         "@babel/core": "^7.21.4",
         "@babel/plugin-proposal-decorators": "^7.21.0",
         "@babel/plugin-transform-runtime": "^7.21.4",
-        "@babel/preset-env": "^7.21.4",
+        "@babel/preset-env": "^7.21.5",
         "@babel/preset-typescript": "^7.21.4",
         "@codemirror/lang-html": "^6.4.3",
         "@codemirror/lang-javascript": "^6.1.7",