diff --git a/package-lock.json b/package-lock.json
index c17c5e58ff158ecd07ee454d985c3ba34deff923..7911f9b7b5c3ee54ba545e77f79ec14b807d1b8e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -93,7 +93,7 @@
         "pretty-quick": "^2.0.1",
         "ts-jest": "^28.0.7",
         "ts-node": "^10.9.1",
-        "typescript": "^4.9.3",
+        "typescript": "^5.4.5",
         "webpack-bundle-analyzer": "^4.8.0"
       },
       "engines": {
@@ -657,6 +657,22 @@
         "node": ">=12"
       }
     },
+    "node_modules/@angular-devkit/build-angular/node_modules/@ngtools/webpack": {
+      "version": "16.2.14",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.14.tgz",
+      "integrity": "sha512-3+zPP3Wir46qrZ3FEiTz5/emSoVHYUCH+WgBmJ57mZCx1qBOYh2VgllnPr/Yusl1sc/jUZjdwq/es/9ZNw+zDQ==",
+      "dev": true,
+      "engines": {
+        "node": "^16.14.0 || >=18.10.0",
+        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
+        "yarn": ">= 1.13.0"
+      },
+      "peerDependencies": {
+        "@angular/compiler-cli": "^16.0.0",
+        "typescript": ">=4.9.3 <5.2",
+        "webpack": "^5.54.0"
+      }
+    },
     "node_modules/@angular-devkit/build-angular/node_modules/esbuild": {
       "version": "0.18.17",
       "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz",
@@ -4450,6 +4466,18 @@
         "node": ">= 0.10"
       }
     },
+    "node_modules/@compodoc/ngd-core/node_modules/typescript": {
+      "version": "4.9.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=4.2.0"
+      }
+    },
     "node_modules/@compodoc/ngd-transformer": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.1.0.tgz",
@@ -8588,22 +8616,6 @@
         "rxjs": "^6.5.3 || ^7.5.0"
       }
     },
-    "node_modules/@ngtools/webpack": {
-      "version": "16.2.14",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.14.tgz",
-      "integrity": "sha512-3+zPP3Wir46qrZ3FEiTz5/emSoVHYUCH+WgBmJ57mZCx1qBOYh2VgllnPr/Yusl1sc/jUZjdwq/es/9ZNw+zDQ==",
-      "dev": true,
-      "engines": {
-        "node": "^16.14.0 || >=18.10.0",
-        "npm": "^6.11.0 || ^7.5.6 || >=8.0.0",
-        "yarn": ">= 1.13.0"
-      },
-      "peerDependencies": {
-        "@angular/compiler-cli": "^16.0.0",
-        "typescript": ">=4.9.3 <5.2",
-        "webpack": "^5.54.0"
-      }
-    },
     "node_modules/@nodelib/fs.scandir": {
       "version": "2.1.5",
       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -9078,6 +9090,32 @@
         }
       }
     },
+    "node_modules/@nrwl/cypress/node_modules/@phenomnomnominal/tsquery": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz",
+      "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==",
+      "dev": true,
+      "dependencies": {
+        "esquery": "^1.0.1"
+      },
+      "peerDependencies": {
+        "typescript": "^3 || ^4"
+      }
+    },
+    "node_modules/@nrwl/cypress/node_modules/typescript": {
+      "version": "4.9.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+      "dev": true,
+      "peer": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=4.2.0"
+      }
+    },
     "node_modules/@nrwl/devkit": {
       "version": "15.9.7",
       "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-15.9.7.tgz",
@@ -9124,6 +9162,18 @@
         "tslib": "^2.3.0"
       }
     },
+    "node_modules/@nrwl/js/node_modules/@phenomnomnominal/tsquery": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz",
+      "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==",
+      "dev": true,
+      "dependencies": {
+        "esquery": "^1.0.1"
+      },
+      "peerDependencies": {
+        "typescript": "^3 || ^4"
+      }
+    },
     "node_modules/@nrwl/js/node_modules/ansi-styles": {
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -9243,6 +9293,20 @@
         "node": ">=8"
       }
     },
+    "node_modules/@nrwl/js/node_modules/typescript": {
+      "version": "4.9.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+      "dev": true,
+      "peer": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=4.2.0"
+      }
+    },
     "node_modules/@nrwl/linter": {
       "version": "15.9.7",
       "resolved": "https://registry.npmjs.org/@nrwl/linter/-/linter-15.9.7.tgz",
@@ -9264,6 +9328,32 @@
         }
       }
     },
+    "node_modules/@nrwl/linter/node_modules/@phenomnomnominal/tsquery": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz",
+      "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==",
+      "dev": true,
+      "dependencies": {
+        "esquery": "^1.0.1"
+      },
+      "peerDependencies": {
+        "typescript": "^3 || ^4"
+      }
+    },
+    "node_modules/@nrwl/linter/node_modules/typescript": {
+      "version": "4.9.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+      "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+      "dev": true,
+      "peer": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=4.2.0"
+      }
+    },
     "node_modules/@nrwl/nx-darwin-arm64": {
       "version": "15.9.7",
       "resolved": "https://registry.npmjs.org/@nrwl/nx-darwin-arm64/-/nx-darwin-arm64-15.9.7.tgz",
@@ -9966,18 +10056,6 @@
         "url": "https://opencollective.com/parcel"
       }
     },
-    "node_modules/@phenomnomnominal/tsquery": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz",
-      "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==",
-      "dev": true,
-      "dependencies": {
-        "esquery": "^1.0.1"
-      },
-      "peerDependencies": {
-        "typescript": "^3 || ^4"
-      }
-    },
     "node_modules/@pkgjs/parseargs": {
       "version": "0.11.0",
       "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -30456,21 +30534,6 @@
         "js-yaml": "bin/js-yaml.js"
       }
     },
-    "node_modules/postcss-loader/node_modules/typescript": {
-      "version": "5.4.5",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
-      "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
-      "dev": true,
-      "optional": true,
-      "peer": true,
-      "bin": {
-        "tsc": "bin/tsc",
-        "tsserver": "bin/tsserver"
-      },
-      "engines": {
-        "node": ">=14.17"
-      }
-    },
     "node_modules/postcss-modules-extract-imports": {
       "version": "3.1.0",
       "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
@@ -34467,15 +34530,15 @@
       }
     },
     "node_modules/typescript": {
-      "version": "4.9.3",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
-      "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==",
+      "version": "5.4.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+      "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
       "bin": {
         "tsc": "bin/tsc",
         "tsserver": "bin/tsserver"
       },
       "engines": {
-        "node": ">=4.2.0"
+        "node": ">=14.17"
       }
     },
     "node_modules/ua-parser-js": {
@@ -36206,6 +36269,13 @@
           "dev": true,
           "optional": true
         },
+        "@ngtools/webpack": {
+          "version": "16.2.14",
+          "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.14.tgz",
+          "integrity": "sha512-3+zPP3Wir46qrZ3FEiTz5/emSoVHYUCH+WgBmJ57mZCx1qBOYh2VgllnPr/Yusl1sc/jUZjdwq/es/9ZNw+zDQ==",
+          "dev": true,
+          "requires": {}
+        },
         "esbuild": {
           "version": "0.18.17",
           "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz",
@@ -38803,6 +38873,11 @@
             "parse-node-version": "^1.0.0",
             "time-stamp": "^1.0.0"
           }
+        },
+        "typescript": {
+          "version": "4.9.5",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+          "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
         }
       }
     },
@@ -42070,13 +42145,6 @@
         "tslib": "^2.0.0"
       }
     },
-    "@ngtools/webpack": {
-      "version": "16.2.14",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-16.2.14.tgz",
-      "integrity": "sha512-3+zPP3Wir46qrZ3FEiTz5/emSoVHYUCH+WgBmJ57mZCx1qBOYh2VgllnPr/Yusl1sc/jUZjdwq/es/9ZNw+zDQ==",
-      "dev": true,
-      "requires": {}
-    },
     "@nodelib/fs.scandir": {
       "version": "2.1.5",
       "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -42434,6 +42502,24 @@
         "detect-port": "^1.5.1",
         "dotenv": "~10.0.0",
         "semver": "7.5.4"
+      },
+      "dependencies": {
+        "@phenomnomnominal/tsquery": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz",
+          "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==",
+          "dev": true,
+          "requires": {
+            "esquery": "^1.0.1"
+          }
+        },
+        "typescript": {
+          "version": "4.9.5",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+          "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+          "dev": true,
+          "peer": true
+        }
       }
     },
     "@nrwl/devkit": {
@@ -42479,6 +42565,15 @@
         "tslib": "^2.3.0"
       },
       "dependencies": {
+        "@phenomnomnominal/tsquery": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz",
+          "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==",
+          "dev": true,
+          "requires": {
+            "esquery": "^1.0.1"
+          }
+        },
         "ansi-styles": {
           "version": "4.3.0",
           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -42567,6 +42662,13 @@
           "requires": {
             "has-flag": "^4.0.0"
           }
+        },
+        "typescript": {
+          "version": "4.9.5",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+          "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+          "dev": true,
+          "peer": true
         }
       }
     },
@@ -42581,6 +42683,24 @@
         "@phenomnomnominal/tsquery": "4.1.1",
         "tmp": "~0.2.1",
         "tslib": "^2.3.0"
+      },
+      "dependencies": {
+        "@phenomnomnominal/tsquery": {
+          "version": "4.1.1",
+          "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz",
+          "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==",
+          "dev": true,
+          "requires": {
+            "esquery": "^1.0.1"
+          }
+        },
+        "typescript": {
+          "version": "4.9.5",
+          "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+          "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+          "dev": true,
+          "peer": true
+        }
       }
     },
     "@nrwl/nx-darwin-arm64": {
@@ -43034,15 +43154,6 @@
         "node-gyp-build": "^4.3.0"
       }
     },
-    "@phenomnomnominal/tsquery": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz",
-      "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==",
-      "dev": true,
-      "requires": {
-        "esquery": "^1.0.1"
-      }
-    },
     "@pkgjs/parseargs": {
       "version": "0.11.0",
       "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
@@ -58652,14 +58763,6 @@
           "requires": {
             "argparse": "^2.0.1"
           }
-        },
-        "typescript": {
-          "version": "5.4.5",
-          "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
-          "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
-          "dev": true,
-          "optional": true,
-          "peer": true
         }
       }
     },
@@ -61752,9 +61855,9 @@
       }
     },
     "typescript": {
-      "version": "4.9.3",
-      "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz",
-      "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA=="
+      "version": "5.4.5",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+      "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ=="
     },
     "ua-parser-js": {
       "version": "1.0.34",
diff --git a/package.json b/package.json
index 05630601fbdadeca78d18d338af58c7e4fda4da3..678d8772baec196b866751c36bac80e790cbdfba 100644
--- a/package.json
+++ b/package.json
@@ -118,7 +118,7 @@
     "pretty-quick": "^2.0.1",
     "ts-jest": "^28.0.7",
     "ts-node": "^10.9.1",
-    "typescript": "^4.9.3",
+    "typescript": "^5.4.5",
     "webpack-bundle-analyzer": "^4.8.0"
   }
 }