From 853aa3dc77f3a23bcee7e9ecee162d46ef26d257 Mon Sep 17 00:00:00 2001
From: splincode <omaxphp@yandex.ru>
Date: Wed, 28 Aug 2024 16:02:47 +0300
Subject: [PATCH] ci: add serve action

---
 .github/workflows/e2e.yml |   39 +-
 package-lock.json         | 1602 +++----------------------------------
 package.json              |    2 -
 3 files changed, 105 insertions(+), 1538 deletions(-)

diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml
index abafd30e9..87b86c295 100644
--- a/.github/workflows/e2e.yml
+++ b/.github/workflows/e2e.yml
@@ -13,20 +13,14 @@ jobs:
       - uses: taiga-family/ci/actions/setup/node@v1.68.0
       - uses: taiga-family/ci/actions/setup/playwright@v1.68.0
       - run: npx nx prerender editor-demo
-
-      - uses: jacobtomlinson/gha-find-replace@v3
+      - uses: taiga-family/ci/actions/run/serve@v1.70.1
         with:
-          find: '<base href="/editor/">'
-          replace: '<base href="/">'
-          include: '${{ env.DIST }}/index.html'
-          regex: false
-      - name: Serve ${{ env.DIST }} in background
-        run: |
-          npx ws --port ${{ env.NG_SERVER_PORT }} --directory ${{ env.DIST }} --spa index.html &
-          npx wait-on http://localhost:${{ env.NG_SERVER_PORT }}
+          port: ${{ env.NG_SERVER_PORT }}
+          directory: ${{ env.DIST }}
+          replaceBaseUrlFrom: /editor/
+          replaceBaseUrlTo: /
 
-      - name: Run screenshot tests on ${{ env.DIST }}
-        run: npx nx e2e editor-demo-playwright -- --update-snapshots
+      - run: npx nx e2e editor-demo-playwright -- --update-snapshots
 
       - name: Download ${{ env.DIST_NEXT }} for serve locally
         run: |
@@ -35,27 +29,20 @@ jobs:
                 --branch snapshots/demo/next/${{ github.base_ref }} \
                 https://github.com/taiga-family/editor.git ${{ env.DIST_NEXT }}
 
-      - uses: jacobtomlinson/gha-find-replace@v3
+      - uses: taiga-family/ci/actions/run/serve@v1.70.1
         with:
-          find: '<base href="/editor/">'
-          replace: '<base href="/">'
-          include: '${{ env.DIST_NEXT }}/index.html'
-          regex: false
-      - name: Serve ${{ env.DIST_NEXT }} in background
-        run: |
-          npx ws --port ${{ env.NG_SERVER_PORT }} --directory ${{ env.DIST_NEXT }} --spa index.html &
-          npx wait-on http://localhost:${{ env.NG_SERVER_PORT }}
+          port: ${{ env.NG_SERVER_PORT }}
+          directory: ${{ env.DIST_NEXT }}
+          replaceBaseUrlFrom: /editor/
+          replaceBaseUrlTo: /
 
       - run: npx nx e2e-ui editor-demo-playwright
         continue-on-error: true
 
-      - name: Check if diff-output exists
-        id: diff-checker
+      - id: diff-checker
         run: |
           echo "diff_exist=$(find ./projects/demo-playwright/tests-results -regex '.*diff\.png$' | wc -l | sed -e 's/^[[:space:]]*//')" >> $GITHUB_OUTPUT
-
-      - name: Fall with an error if diff-output exists
-        if: ${{ steps.diff-checker.outputs.diff_exist != '0' }}
+      - if: ${{ steps.diff-checker.outputs.diff_exist != '0' }}
         run: |
           find ./projects/demo-playwright/tests-results -regex '.*diff\.png$' -exec echo "{}" \;
           exit 1
diff --git a/package-lock.json b/package-lock.json
index f4b159f70..37be96781 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -64,7 +64,6 @@
                 "jest-environment-jsdom": "29.7.0",
                 "jest-preset-angular": "14.2.2",
                 "lint-staged": "15.2.9",
-                "local-web-server": "5.4.0",
                 "marked": "14.1.0",
                 "ng-morph": "4.6.3",
                 "ng-packagr": "16.2.3",
@@ -75,7 +74,6 @@
                 "ts-jest": "29.2.5",
                 "tslib": "2.7.0",
                 "typescript": "5.0.4",
-                "wait-on": "7.2.0",
                 "webpack": "5.93.0"
             },
             "engines": {
@@ -84,20 +82,6 @@
                 "yarn": "Please use npm instead of yarn to install dependencies"
             }
         },
-        "node_modules/@75lb/deep-merge": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.2.tgz",
-            "integrity": "sha512-08K9ou5VNbheZFxM5tDWoqjA3ImC50DiuuJ2tj1yEPRfkp8lLLg6XAaJ4On+a0yAXor/8ay5gHnAIshRM44Kpw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "lodash": "^4.17.21",
-                "typical": "^7.1.1"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/@adobe/css-tools": {
             "version": "4.4.0",
             "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz",
@@ -3388,15 +3372,15 @@
             }
         },
         "node_modules/@commitlint/cli": {
-            "version": "19.4.0",
-            "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.4.0.tgz",
-            "integrity": "sha512-sJX4J9UioVwZHq7JWM9tjT5bgWYaIN3rC4FP7YwfEwBYiIO+wMyRttRvQLNkow0vCdM0D67r9NEWU0Ui03I4Eg==",
+            "version": "19.4.1",
+            "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.4.1.tgz",
+            "integrity": "sha512-EerFVII3ZcnhXsDT9VePyIdCJoh3jEzygN1L37MjQXgPfGS6fJTWL/KHClVMod1d8w94lFC3l4Vh/y5ysVAz2A==",
             "dev": true,
             "license": "MIT",
             "peer": true,
             "dependencies": {
                 "@commitlint/format": "^19.3.0",
-                "@commitlint/lint": "^19.2.2",
+                "@commitlint/lint": "^19.4.1",
                 "@commitlint/load": "^19.4.0",
                 "@commitlint/read": "^19.4.0",
                 "@commitlint/types": "^19.0.3",
@@ -3411,9 +3395,9 @@
             }
         },
         "node_modules/@commitlint/config-conventional": {
-            "version": "19.2.2",
-            "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.2.2.tgz",
-            "integrity": "sha512-mLXjsxUVLYEGgzbxbxicGPggDuyWNkf25Ht23owXIH+zV2pv1eJuzLK3t1gDY5Gp6pxdE60jZnWUY5cvgL3ufw==",
+            "version": "19.4.1",
+            "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.4.1.tgz",
+            "integrity": "sha512-D5S5T7ilI5roybWGc8X35OBlRXLAwuTseH1ro0XgqkOWrhZU8yOwBOslrNmSDlTXhXLq8cnfhQyC42qaUCzlXA==",
             "dev": true,
             "license": "MIT",
             "peer": true,
@@ -3529,16 +3513,16 @@
             }
         },
         "node_modules/@commitlint/lint": {
-            "version": "19.2.2",
-            "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.2.2.tgz",
-            "integrity": "sha512-xrzMmz4JqwGyKQKTpFzlN0dx0TAiT7Ran1fqEBgEmEj+PU98crOFtysJgY+QdeSagx6EDRigQIXJVnfrI0ratA==",
+            "version": "19.4.1",
+            "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.4.1.tgz",
+            "integrity": "sha512-Ws4YVAZ0jACTv6VThumITC1I5AG0UyXMGua3qcf55JmXIXm/ejfaVKykrqx7RyZOACKVAs8uDRIsEsi87JZ3+Q==",
             "dev": true,
             "license": "MIT",
             "peer": true,
             "dependencies": {
                 "@commitlint/is-ignored": "^19.2.2",
                 "@commitlint/parse": "^19.0.3",
-                "@commitlint/rules": "^19.0.3",
+                "@commitlint/rules": "^19.4.1",
                 "@commitlint/types": "^19.0.3"
             },
             "engines": {
@@ -3647,9 +3631,9 @@
             }
         },
         "node_modules/@commitlint/rules": {
-            "version": "19.0.3",
-            "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.0.3.tgz",
-            "integrity": "sha512-TspKb9VB6svklxNCKKwxhELn7qhtY1rFF8ls58DcFd0F97XoG07xugPjjbVnLqmMkRjZDbDIwBKt9bddOfLaPw==",
+            "version": "19.4.1",
+            "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.4.1.tgz",
+            "integrity": "sha512-AgctfzAONoVxmxOXRyxXIq7xEPrd7lK/60h2egp9bgGUMZK9v0+YqLOA+TH+KqCa63ZoCr8owP2YxoSSu7IgnQ==",
             "dev": true,
             "license": "MIT",
             "peer": true,
@@ -4568,30 +4552,6 @@
             "dev": true,
             "license": "MIT"
         },
-        "node_modules/@hapi/bourne": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-3.0.0.tgz",
-            "integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==",
-            "dev": true,
-            "license": "BSD-3-Clause"
-        },
-        "node_modules/@hapi/hoek": {
-            "version": "9.3.0",
-            "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
-            "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
-            "dev": true,
-            "license": "BSD-3-Clause"
-        },
-        "node_modules/@hapi/topo": {
-            "version": "5.1.0",
-            "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
-            "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
-            "dev": true,
-            "license": "BSD-3-Clause",
-            "dependencies": {
-                "@hapi/hoek": "^9.0.0"
-            }
-        },
         "node_modules/@humanwhocodes/config-array": {
             "version": "0.11.14",
             "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
@@ -5682,19 +5642,6 @@
                 "@jridgewell/sourcemap-codec": "^1.4.14"
             }
         },
-        "node_modules/@koa/cors": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/@koa/cors/-/cors-5.0.0.tgz",
-            "integrity": "sha512-x/iUDjcS90W69PryLDIMgFyV21YLTnG9zOpPXS7Bkt2b8AsY3zZsIpOLBkYr9fBcF3HbkKaER5hOBZLfpLgYNw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "vary": "^1.1.2"
-            },
-            "engines": {
-                "node": ">= 14.0.0"
-            }
-        },
         "node_modules/@leichtgewicht/ip-codec": {
             "version": "2.0.5",
             "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
@@ -9173,9 +9120,9 @@
             }
         },
         "node_modules/@oxc-resolver/binding-darwin-arm64": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-1.10.2.tgz",
-            "integrity": "sha512-aOCZYXqmFL+2sXlaVkYbAOtICGGeTFtmdul8OimQfOXHJods6YHJ2nR6+rEeBcJzaXyXPP18ne1IsEc4AYL1IA==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-1.11.0.tgz",
+            "integrity": "sha512-jjhTgaTMhJ5lpE/OiqF5eX7Nhy5gPZBjZNqwmZstbHmqujfVs1MGiTEXHWgKUrcFdLnENWtuoIR3Kmdp3/vuqw==",
             "cpu": [
                 "arm64"
             ],
@@ -9187,9 +9134,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-darwin-x64": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-1.10.2.tgz",
-            "integrity": "sha512-6WD7lHGkoduFZfUgnC2suKOlqttQRKxWsiVXiiGPu3mfXvQAhMd/gekuH1t8vOhFlPJduaww15n5UB0bSjCK+w==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-1.11.0.tgz",
+            "integrity": "sha512-w/svTRKnuRinojYAVsWRozVoPar7XUPlJhpfnsYlReRjls6A53/ziTzHfpmcKjdBrP/AXPcDVJDnM4pOSsvWvA==",
             "cpu": [
                 "x64"
             ],
@@ -9201,9 +9148,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-freebsd-x64": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-1.10.2.tgz",
-            "integrity": "sha512-nEqHWx/Ot5p7Mafj8qH6vFlLSvHjECxAcZwhnAMqRuQu1NgXC/QM3emkdhVGy7QJgsxZbHpPaF6TERNf5/NL9Q==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-1.11.0.tgz",
+            "integrity": "sha512-thGp8g8maYUx7vYJqD0vSsuUO95vWNJwKS2AXchq212J5dQ0Dybq4gjt2O2N9iU+lxj1QzmIDXGw7q5HCagOiw==",
             "cpu": [
                 "x64"
             ],
@@ -9215,9 +9162,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-linux-arm-gnueabihf": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.10.2.tgz",
-            "integrity": "sha512-+AlZI0fPnpfArh8aC5k2295lmQrxa2p8gBLxC3buvCkz0ZpbVLxyyAXz3J2jGwJnmc5MUPLEqPYw6ZlAGH4XHA==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.11.0.tgz",
+            "integrity": "sha512-8G99bs4cnwpJRjRK2cEJXiJVyLogzPJq4JgLlcMEKSGhdkoMV1Ia0dghLk9lAFog33U4lWIwKmPgqQzTO6JM8g==",
             "cpu": [
                 "arm"
             ],
@@ -9229,9 +9176,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-linux-arm64-gnu": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.10.2.tgz",
-            "integrity": "sha512-8fZ8NszFaUZaoA8eUwkF2lHjgUs76aFiewWgG/cjcZmwKp+ErZQLW8eOvIWZ4SohHQ+ScvhVsSaU2PU38c88gw==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.11.0.tgz",
+            "integrity": "sha512-hNcB/wbuCFbsspg4h9+Nz5gSL8PbRW7zG/eVvmEpzGhmVubzDFuNmlYtmaUaZ6b9jzOrrqTkYCt9t7Q2TDHnBA==",
             "cpu": [
                 "arm64"
             ],
@@ -9243,9 +9190,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-linux-arm64-musl": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.10.2.tgz",
-            "integrity": "sha512-oPrLICrw96Ym9n04FWXWGkbkpF6qJtZ57JSnqI3oQ24xHTt4iWyjHKHQO46NbJAK9sFb3Qce4BzV8faDI5Rifg==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.11.0.tgz",
+            "integrity": "sha512-H9rjqCcNQT9aip1VLrtsiyj9So0DEKUoutMNu1oL9UuD3H5lWIaxhDlHTAFsobWeUHCnuaCbizhGb9wyLRHSuA==",
             "cpu": [
                 "arm64"
             ],
@@ -9257,9 +9204,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-linux-x64-gnu": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.10.2.tgz",
-            "integrity": "sha512-eli74jTAUiIfqi8IPFqiPxQS69Alcr6w/IFRyf3XxrkxeFGgcgxJkRIxWNTKJ6T3EXxjuma+49LdZn6l9rEj7A==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.11.0.tgz",
+            "integrity": "sha512-6hdv/kmaGysK3/hUaGTYG07yX+nvk6hGoWombmOuc0vBnGLRtSjqvvgDBdAs9/iIcOSQI2YNUEiJvTyy6eb5GA==",
             "cpu": [
                 "x64"
             ],
@@ -9271,9 +9218,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-linux-x64-musl": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-1.10.2.tgz",
-            "integrity": "sha512-HH9zmjNSQo3rkbqJH5nIjGrtjC+QPrUy0KGGMR/oRCSLuD0cNFJ/Uly1XAugwSm4oEw0+rv6PmeclXmVTKsxhw==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-1.11.0.tgz",
+            "integrity": "sha512-AYUvI4VwQkBq0rcYI3Z7a9+BpllbllbxQCD30ZRgHghvqXvDECWfP8r98iynz7u0oKGO8ZPf15d/l9VrkRtiuQ==",
             "cpu": [
                 "x64"
             ],
@@ -9285,9 +9232,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-wasm32-wasi": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-1.10.2.tgz",
-            "integrity": "sha512-3ItX23q33sfVBtMMdMhVDSe0NX5zBHxHfmFiXhSJuwNaVIwGpLFU7WU2nmq9oNdnmTOvjL8vlhOqiGvumBLlRA==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-1.11.0.tgz",
+            "integrity": "sha512-vhXnOs34q8p7QhqQ04bIGy7ZzLEHBaBTsqh2wpAzSBCmjL7MmTpM8KWwXFPFB+Wj0P7/parjGDHzbZG20pEePg==",
             "cpu": [
                 "wasm32"
             ],
@@ -9302,9 +9249,9 @@
             }
         },
         "node_modules/@oxc-resolver/binding-win32-arm64-msvc": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.10.2.tgz",
-            "integrity": "sha512-aVoj2V+jmQ1N+lVy9AhaLmzssJM0lcKt8D0UL83aNLZJ5lSN7hgBuUXTVmL+VF268f167khjo38z+fbELDVm8Q==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.11.0.tgz",
+            "integrity": "sha512-5XMm8EELDkAVQoMGv4QKqi+SjWnhcU1aq5B9q59iqiXIBNAs72f0d3LAldLrqE2XomP2QweorpsoxuGuIk2Cnw==",
             "cpu": [
                 "arm64"
             ],
@@ -9316,9 +9263,9 @@
             ]
         },
         "node_modules/@oxc-resolver/binding-win32-x64-msvc": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.10.2.tgz",
-            "integrity": "sha512-l8BDQWyP0Piw8hlmYPUqTRKLsq+ceG9h+9p6ZrjNzwW9AmJX7T7T2hgoVVHqS6f4WNA/CFkb3RyZP9QTzNkyyA==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.11.0.tgz",
+            "integrity": "sha512-rVKiZSTgao4SBWyqWvStxDhKmwbKEN/E8+H3CJzIP4FcsL7MQtWH2HT86bmoefkyRe1yO+m2/mG7j3TfADh/Fg==",
             "cpu": [
                 "x64"
             ],
@@ -9708,30 +9655,6 @@
                 "url": "https://github.com/sponsors/jonschlinkert"
             }
         },
-        "node_modules/@sideway/address": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
-            "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
-            "dev": true,
-            "license": "BSD-3-Clause",
-            "dependencies": {
-                "@hapi/hoek": "^9.0.0"
-            }
-        },
-        "node_modules/@sideway/formula": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
-            "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
-            "dev": true,
-            "license": "BSD-3-Clause"
-        },
-        "node_modules/@sideway/pinpoint": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
-            "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
-            "dev": true,
-            "license": "BSD-3-Clause"
-        },
         "node_modules/@sigstore/bundle": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz",
@@ -13169,19 +13092,6 @@
                 "node": ">=6"
             }
         },
-        "node_modules/ansi-escape-sequences": {
-            "version": "6.2.2",
-            "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-6.2.2.tgz",
-            "integrity": "sha512-mBPG9BZy4dMOJQ9BehU6ph8IKslvVppbqZ8APHnpfP+Hsx/hGow5PY46lSQL1vPPi1F5XTtO6p3GcH8O9c0cUg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^6.2.2"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/ansi-escapes": {
             "version": "4.3.2",
             "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
@@ -13323,16 +13233,6 @@
                 "dequal": "^2.0.3"
             }
         },
-        "node_modules/array-back": {
-            "version": "6.2.2",
-            "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
-            "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/array-buffer-byte-length": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
@@ -13692,9 +13592,9 @@
             }
         },
         "node_modules/aws4": {
-            "version": "1.13.1",
-            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.1.tgz",
-            "integrity": "sha512-u5w79Rd7SU4JaIlA/zFqG+gOiuq25q5VLyZ8E+ijJeILuTxVzZgp2CaGw/UTw6pXYN9XMO9yiqj/nEHmhTG5CA==",
+            "version": "1.13.2",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
+            "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
             "dev": true,
             "license": "MIT"
         },
@@ -14945,16 +14845,6 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
-        "node_modules/byte-size": {
-            "version": "9.0.0",
-            "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-9.0.0.tgz",
-            "integrity": "sha512-xrJ8Hki7eQ6xew55mM6TG9zHI852OoAHcPfduWWtR6yxk2upTuIZy13VioRBDyHReHDdbeDPifUboeNkK/sXXA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/bytes": {
             "version": "3.1.2",
             "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -15232,98 +15122,6 @@
                 "node": ">=4"
             }
         },
-        "node_modules/chalk-template": {
-            "version": "0.4.0",
-            "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
-            "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "chalk": "^4.1.2"
-            },
-            "engines": {
-                "node": ">=12"
-            },
-            "funding": {
-                "url": "https://github.com/chalk/chalk-template?sponsor=1"
-            }
-        },
-        "node_modules/chalk-template/node_modules/ansi-styles": {
-            "version": "4.3.0",
-            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-            "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "color-convert": "^2.0.1"
-            },
-            "engines": {
-                "node": ">=8"
-            },
-            "funding": {
-                "url": "https://github.com/chalk/ansi-styles?sponsor=1"
-            }
-        },
-        "node_modules/chalk-template/node_modules/chalk": {
-            "version": "4.1.2",
-            "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-            "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "ansi-styles": "^4.1.0",
-                "supports-color": "^7.1.0"
-            },
-            "engines": {
-                "node": ">=10"
-            },
-            "funding": {
-                "url": "https://github.com/chalk/chalk?sponsor=1"
-            }
-        },
-        "node_modules/chalk-template/node_modules/color-convert": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-            "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "color-name": "~1.1.4"
-            },
-            "engines": {
-                "node": ">=7.0.0"
-            }
-        },
-        "node_modules/chalk-template/node_modules/color-name": {
-            "version": "1.1.4",
-            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-            "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/chalk-template/node_modules/has-flag": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-            "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/chalk-template/node_modules/supports-color": {
-            "version": "7.2.0",
-            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-            "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "has-flag": "^4.0.0"
-            },
-            "engines": {
-                "node": ">=8"
-            }
-        },
         "node_modules/char-regex": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
@@ -15543,9 +15341,9 @@
             }
         },
         "node_modules/cli-truncate/node_modules/emoji-regex": {
-            "version": "10.3.0",
-            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
-            "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
+            "version": "10.4.0",
+            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+            "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
             "dev": true,
             "license": "MIT"
         },
@@ -15656,23 +15454,6 @@
                 "node": ">= 0.12.0"
             }
         },
-        "node_modules/co-body": {
-            "version": "6.2.0",
-            "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.2.0.tgz",
-            "integrity": "sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "@hapi/bourne": "^3.0.0",
-                "inflation": "^2.0.0",
-                "qs": "^6.5.2",
-                "raw-body": "^2.3.3",
-                "type-is": "^1.6.16"
-            },
-            "engines": {
-                "node": ">=8.0.0"
-            }
-        },
         "node_modules/code-block-writer": {
             "version": "13.0.2",
             "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.2.tgz",
@@ -15752,38 +15533,6 @@
                 "node": ">= 0.8"
             }
         },
-        "node_modules/command-line-args": {
-            "version": "6.0.0",
-            "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.0.tgz",
-            "integrity": "sha512-zDdHxHzlCp/gA1gy0VtPK3YL0Aob3ijJdwZ7H3HSl55hh8EziLtRlyj/od8EGRJfX8IjussC/mQkScl2Ms5Suw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^6.2.2",
-                "find-replace": "^5.0.1",
-                "lodash.camelcase": "^4.3.0",
-                "typical": "^7.1.1"
-            },
-            "engines": {
-                "node": ">=12.20"
-            }
-        },
-        "node_modules/command-line-usage": {
-            "version": "7.0.3",
-            "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz",
-            "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^6.2.2",
-                "chalk-template": "^0.4.0",
-                "table-layout": "^4.1.0",
-                "typical": "^7.1.1"
-            },
-            "engines": {
-                "node": ">=12.20.0"
-            }
-        },
         "node_modules/commander": {
             "version": "12.1.0",
             "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz",
@@ -15794,19 +15543,6 @@
                 "node": ">=18"
             }
         },
-        "node_modules/common-log-format": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/common-log-format/-/common-log-format-1.0.0.tgz",
-            "integrity": "sha512-fFn/WPNbsTCGTTwdCpZfVZSa5mgqMEkA0gMTRApFSlEsYN+9B2FPfiqch5FT+jsv5IV1RHV3GeZvCa7Qg+jssw==",
-            "dev": true,
-            "license": "MIT",
-            "bin": {
-                "clf": "bin/cli.js"
-            },
-            "engines": {
-                "node": ">=8"
-            }
-        },
         "node_modules/common-path-prefix": {
             "version": "3.0.0",
             "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
@@ -16357,13 +16093,6 @@
                 "url": "https://github.com/sponsors/mesqueeb"
             }
         },
-        "node_modules/copy-to": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
-            "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==",
-            "dev": true,
-            "license": "MIT"
-        },
         "node_modules/copy-webpack-plugin": {
             "version": "11.0.0",
             "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
@@ -16644,16 +16373,6 @@
                 "node": ">=8"
             }
         },
-        "node_modules/create-mixin": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/create-mixin/-/create-mixin-3.0.0.tgz",
-            "integrity": "sha512-LkdMqnWT9LaqBN4huqpUnMz56Yr1mVSoCduAd2xXefgH/YZP2sXCMAyztXjk4q8hTF/TlcDa+zQW2aTgGdjjKQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=10"
-            }
-        },
         "node_modules/create-require": {
             "version": "1.1.1",
             "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
@@ -17102,16 +16821,6 @@
             "dev": true,
             "license": "MIT"
         },
-        "node_modules/current-module-paths": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/current-module-paths/-/current-module-paths-1.1.2.tgz",
-            "integrity": "sha512-H4s4arcLx/ugbu1XkkgSvcUZax0L6tXUqnppGniQb8l5VjUKGHoayXE5RiriiPhYDd+kjZnaok1Uig13PKtKYQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/cypress": {
             "version": "13.13.3",
             "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.3.tgz",
@@ -21119,19 +20828,6 @@
                 "node": ">=8"
             }
         },
-        "node_modules/find-replace": {
-            "version": "5.0.1",
-            "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.1.tgz",
-            "integrity": "sha512-o5/Y8HrCNRuFF5rdNTkX8Vhv6kTFTV0t1zIoigwlCdbkA9qaapRzxvWPND2VvlFa9LBI05Q1i8ml/saMqkOJUQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^6.2.2"
-            },
-            "engines": {
-                "node": ">=14"
-            }
-        },
         "node_modules/find-root": {
             "version": "1.1.0",
             "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
@@ -23086,16 +22782,6 @@
             "dev": true,
             "license": "ISC"
         },
-        "node_modules/inflation": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.1.0.tgz",
-            "integrity": "sha512-t54PPJHG1Pp7VQvxyVCJ9mBbjG3Hqryges9bXoOO6GExCPa+//i/d5GSuFtpx3ALLd7lgIAur6zrIlBQyJuMlQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
         "node_modules/inflight": {
             "version": "1.0.6",
             "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -26466,20 +26152,6 @@
                 "jiti": "bin/jiti.js"
             }
         },
-        "node_modules/joi": {
-            "version": "17.13.3",
-            "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
-            "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
-            "dev": true,
-            "license": "BSD-3-Clause",
-            "dependencies": {
-                "@hapi/hoek": "^9.3.0",
-                "@hapi/topo": "^5.1.0",
-                "@sideway/address": "^4.1.5",
-                "@sideway/formula": "^3.0.1",
-                "@sideway/pinpoint": "^2.0.0"
-            }
-        },
         "node_modules/js-tokens": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -26786,21 +26458,6 @@
                 "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4"
             }
         },
-        "node_modules/koa-bodyparser": {
-            "version": "4.4.1",
-            "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.1.tgz",
-            "integrity": "sha512-kBH3IYPMb+iAXnrxIhXnW+gXV8OTzCu8VPDqvcDHW9SQrbkHmqPQtiZwrltNmSq6/lpipHnT7k7PsjlVD7kK0w==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "co-body": "^6.0.0",
-                "copy-to": "^2.0.1",
-                "type-is": "^1.6.18"
-            },
-            "engines": {
-                "node": ">=8.0.0"
-            }
-        },
         "node_modules/koa-compose": {
             "version": "4.1.0",
             "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
@@ -26808,66 +26465,6 @@
             "dev": true,
             "license": "MIT"
         },
-        "node_modules/koa-compress": {
-            "version": "5.1.1",
-            "resolved": "https://registry.npmjs.org/koa-compress/-/koa-compress-5.1.1.tgz",
-            "integrity": "sha512-UgMIN7ZoEP2DuoSQmD6CYvFSLt0NReGlc2qSY4bO4Oq0L56OiD9pDG41Kj/zFmVY/A3Wvmn4BqKcfq5H30LGIg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "bytes": "^3.1.2",
-                "compressible": "^2.0.18",
-                "http-errors": "^1.8.1",
-                "koa-is-json": "^1.0.0"
-            },
-            "engines": {
-                "node": ">= 12"
-            }
-        },
-        "node_modules/koa-compress/node_modules/depd": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-            "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/koa-compress/node_modules/http-errors": {
-            "version": "1.8.1",
-            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
-            "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "depd": "~1.1.2",
-                "inherits": "2.0.4",
-                "setprototypeof": "1.2.0",
-                "statuses": ">= 1.5.0 < 2",
-                "toidentifier": "1.0.1"
-            },
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/koa-compress/node_modules/statuses": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-            "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/koa-conditional-get": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/koa-conditional-get/-/koa-conditional-get-2.0.0.tgz",
-            "integrity": "sha512-FTZYr681zfyW0bz8FDc55RJrRnicz6KPv2oA3GOf6knksJd0uJdfenKud+RtBjHzO0g1tVHNjwN6gk7OfHAtbQ==",
-            "dev": true,
-            "license": "MIT"
-        },
         "node_modules/koa-convert": {
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz",
@@ -26892,152 +26489,6 @@
                 "any-promise": "^1.1.0"
             }
         },
-        "node_modules/koa-etag": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/koa-etag/-/koa-etag-4.0.0.tgz",
-            "integrity": "sha512-1cSdezCkBWlyuB9l6c/IFoe1ANCDdPBxkDkRiaIup40xpUub6U/wwRXoKBZw/O5BifX9OlqAjYnDyzM6+l+TAg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "etag": "^1.8.1"
-            }
-        },
-        "node_modules/koa-is-json": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz",
-            "integrity": "sha512-+97CtHAlWDx0ndt0J8y3P12EWLwTLMXIfMnYDev3wOTwH/RpBGMlfn4bDXlMEg1u73K6XRE9BbUp+5ZAYoRYWw==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/koa-json": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/koa-json/-/koa-json-2.0.2.tgz",
-            "integrity": "sha512-8+dz0T2ekDuNN1svYoKPCV2txotQ3Ufg8Fn5bft1T48MPJWiC/HKmkk+3xj9EC/iNZuFYeLRazN2h2o3RSUXuQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-is-json": "1",
-                "streaming-json-stringify": "3"
-            }
-        },
-        "node_modules/koa-morgan": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/koa-morgan/-/koa-morgan-1.0.1.tgz",
-            "integrity": "sha512-JOUdCNlc21G50afBXfErUrr1RKymbgzlrO5KURY+wmDG1Uvd2jmxUJcHgylb/mYXy2SjiNZyYim/ptUBGsIi3A==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "morgan": "^1.6.1"
-            }
-        },
-        "node_modules/koa-range": {
-            "version": "0.3.0",
-            "resolved": "https://registry.npmjs.org/koa-range/-/koa-range-0.3.0.tgz",
-            "integrity": "sha512-Ich3pCz6RhtbajYXRWjIl6O5wtrLs6kE3nkXc9XmaWe+MysJyZO7K4L3oce1Jpg/iMgCbj+5UCiMm/rqVtcDIg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "stream-slice": "^0.1.2"
-            },
-            "engines": {
-                "node": ">=7"
-            }
-        },
-        "node_modules/koa-route": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/koa-route/-/koa-route-4.0.1.tgz",
-            "integrity": "sha512-ytLrdDPF/qTMh20BxZCNpIUY329SoGu84xjGYeNsp/jkGT3OpZfkuK646sDScVJQ9XdsLXJVMml1dXMA5EIuxQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "debug": "*",
-                "methods": "~1.1.0",
-                "path-to-regexp": "^6.2.1"
-            }
-        },
-        "node_modules/koa-route/node_modules/path-to-regexp": {
-            "version": "6.2.2",
-            "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
-            "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/koa-send": {
-            "version": "5.0.1",
-            "resolved": "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz",
-            "integrity": "sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "debug": "^4.1.1",
-                "http-errors": "^1.7.3",
-                "resolve-path": "^1.4.0"
-            },
-            "engines": {
-                "node": ">= 8"
-            }
-        },
-        "node_modules/koa-send/node_modules/depd": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-            "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/koa-send/node_modules/http-errors": {
-            "version": "1.8.1",
-            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
-            "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "depd": "~1.1.2",
-                "inherits": "2.0.4",
-                "setprototypeof": "1.2.0",
-                "statuses": ">= 1.5.0 < 2",
-                "toidentifier": "1.0.1"
-            },
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/koa-send/node_modules/statuses": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-            "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/koa-static": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz",
-            "integrity": "sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "debug": "^3.1.0",
-                "koa-send": "^5.0.0"
-            },
-            "engines": {
-                "node": ">= 7.6.0"
-            }
-        },
-        "node_modules/koa-static/node_modules/debug": {
-            "version": "3.2.7",
-            "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
-            "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "ms": "^2.1.1"
-            }
-        },
         "node_modules/koa/node_modules/debug": {
             "version": "3.1.0",
             "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
@@ -27420,9 +26871,9 @@
             }
         },
         "node_modules/listr2/node_modules/emoji-regex": {
-            "version": "10.3.0",
-            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
-            "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
+            "version": "10.4.0",
+            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+            "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
             "dev": true,
             "license": "MIT"
         },
@@ -27485,19 +26936,6 @@
                 "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
             }
         },
-        "node_modules/load-module": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/load-module/-/load-module-5.0.0.tgz",
-            "integrity": "sha512-zZBnYIvAuP2TprnRisam+N/A3v+JX60pvdKoHQRKyl4xlHLQQLpp7JKNyEQ6D3Si0/QIQMgXko3PtV+cx6L7mA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^6.2.2"
-            },
-            "engines": {
-                "node": ">=12.20"
-            }
-        },
         "node_modules/loader-runner": {
             "version": "4.3.0",
             "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
@@ -27518,38 +26956,6 @@
                 "node": ">= 12.13.0"
             }
         },
-        "node_modules/local-web-server": {
-            "version": "5.4.0",
-            "resolved": "https://registry.npmjs.org/local-web-server/-/local-web-server-5.4.0.tgz",
-            "integrity": "sha512-FkQT6ZuX+8ywks3Mol5nHtuKzf+Rhtp88PPJUkcU0fP6JzNi7s9a+dWRQ8WrCxlGe3vHij85A4R1uL4wRg06WA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "current-module-paths": "^1.1.1",
-                "lws": "^4.1.5",
-                "lws-basic-auth": "^2.0.0",
-                "lws-blacklist": "^3.0.0",
-                "lws-body-parser": "^3.0.1",
-                "lws-compress": "^3.1.0",
-                "lws-conditional-get": "^3.0.0",
-                "lws-cors": "^4.2.1",
-                "lws-index": "^3.1.1",
-                "lws-json": "^2.0.0",
-                "lws-log": "^3.0.0",
-                "lws-mime": "^2.0.0",
-                "lws-range": "^4.0.1",
-                "lws-request-monitor": "^2.0.0",
-                "lws-rewrite": "^4.0.0",
-                "lws-spa": "^4.1.1",
-                "lws-static": "^3.1.1"
-            },
-            "bin": {
-                "ws": "bin/cli.js"
-            },
-            "engines": {
-                "node": ">=12.20"
-            }
-        },
         "node_modules/localtunnel": {
             "version": "2.0.2",
             "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz",
@@ -27666,7 +27072,8 @@
             "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
             "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
             "dev": true,
-            "license": "MIT"
+            "license": "MIT",
+            "peer": true
         },
         "node_modules/lodash.capitalize": {
             "version": "4.2.1",
@@ -27771,13 +27178,6 @@
             "license": "MIT",
             "peer": true
         },
-        "node_modules/lodash.throttle": {
-            "version": "4.1.1",
-            "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
-            "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",
-            "dev": true,
-            "license": "MIT"
-        },
         "node_modules/lodash.truncate": {
             "version": "4.4.2",
             "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
@@ -27980,9 +27380,9 @@
             }
         },
         "node_modules/log-update/node_modules/emoji-regex": {
-            "version": "10.3.0",
-            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
-            "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
+            "version": "10.4.0",
+            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+            "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
             "dev": true,
             "license": "MIT"
         },
@@ -28178,371 +27578,6 @@
                 "node": ">=12"
             }
         },
-        "node_modules/lws": {
-            "version": "4.1.5",
-            "resolved": "https://registry.npmjs.org/lws/-/lws-4.1.5.tgz",
-            "integrity": "sha512-MGRogJgMXFuurf5VOUKOoBeBYYlmxvaxNX/q5SJC/GzHxAqLxcQ4I21NrGkZVmCdSladgyEyC1tm/s0sT1OMPQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "@75lb/deep-merge": "^1.1.2",
-                "ansi-escape-sequences": "^6.2.2",
-                "array-back": "^6.2.2",
-                "byte-size": "^9.0.0",
-                "command-line-args": "^6.0.0",
-                "command-line-usage": "^7.0.3",
-                "create-mixin": "^3.0.0",
-                "current-module-paths": "^1.1.1",
-                "koa": "^2.15.3",
-                "load-module": "^5.0.0",
-                "open": "^8.4.2",
-                "qrcode-terminal": "^0.12.0",
-                "typical": "^7.1.1",
-                "walk-back": "^5.1.0"
-            },
-            "bin": {
-                "lws": "bin/cli.js"
-            },
-            "engines": {
-                "node": ">=12.20"
-            }
-        },
-        "node_modules/lws-basic-auth": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/lws-basic-auth/-/lws-basic-auth-2.0.0.tgz",
-            "integrity": "sha512-zzyoGFLQPuKaQJvHMLmmSyfT6lIvocwcDXllTVW5brD0t0YgHYopILkzja+x+MIlJX/YhNKniaTSasujniYVjw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "basic-auth": "^2.0.1"
-            },
-            "engines": {
-                "node": ">=10"
-            }
-        },
-        "node_modules/lws-blacklist": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/lws-blacklist/-/lws-blacklist-3.0.0.tgz",
-            "integrity": "sha512-KNXGDBmbj+UGfWMBAefe2vrfuWpEQms/9Fd7kfMScTqAKF6nrVoEs4pkxfefArG3bX0bu7jWLyB4tJGma5WC6Q==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^4.0.1",
-                "path-to-regexp": "^6.1.0"
-            },
-            "engines": {
-                "node": ">=10"
-            }
-        },
-        "node_modules/lws-blacklist/node_modules/array-back": {
-            "version": "4.0.2",
-            "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
-            "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/lws-blacklist/node_modules/path-to-regexp": {
-            "version": "6.2.2",
-            "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
-            "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/lws-body-parser": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/lws-body-parser/-/lws-body-parser-3.0.1.tgz",
-            "integrity": "sha512-HUlTGYukWRXnmAFlpJhaJWSFsfkOP4fC9fjEiYeyI0kTy0/SaMLwcLzi5hQ/eriLZNGuF+PqnhBMtOys6nPdfw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-bodyparser": "^4.4.1"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws-compress": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/lws-compress/-/lws-compress-3.1.0.tgz",
-            "integrity": "sha512-uBlpYFNBUD3FuQjXbtwasvD90w3HH6GRivknvbibSSsDQf1MtIM8WZ5fS4795n1ozTYnQD+Ai8T+Cpy0q0xuhA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-compress": "^5.0.1"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws-conditional-get": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/lws-conditional-get/-/lws-conditional-get-3.0.0.tgz",
-            "integrity": "sha512-/O+JSIB889kIYgo8QFyJJayW3W0BMRc8zPHE6F5FBGtdqpsl+UsKZHFiSmJSTRn/1HGgnmcXQz2UpbB1PQYVSw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-conditional-get": "^2.0.0",
-                "koa-etag": "^4.0.0"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws-cors": {
-            "version": "4.2.1",
-            "resolved": "https://registry.npmjs.org/lws-cors/-/lws-cors-4.2.1.tgz",
-            "integrity": "sha512-KXsAn0Wn8n0riJ3SDHQzEAuzTrdeQZDJIxPHWEupsImW2hnQuBZVW5zqsmfzxD8SkCDDnQyFNuQZjSlBZmexKg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "@koa/cors": "^5.0.0"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws-index": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/lws-index/-/lws-index-3.1.1.tgz",
-            "integrity": "sha512-f1rjsCkrKHVbSe03lm6xQ1GNnqzq/tL5f0ge8kXJFRorpS8Sv7WDXzUsGswmGAgxPPvDj8L7E6zwD+BCjQRU8w==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "serve-index-75lb": "^2.0.1"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws-json": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/lws-json/-/lws-json-2.0.0.tgz",
-            "integrity": "sha512-vqUFrAQ5BGpkMS2Mm/ZhgvUMi6Tgia7YtESG7pKjNoiSsD+TxncG0nqp8YjUh2xrEzi/SYFc/ed+9ZOl/t0A0g==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-json": "^2.0.2"
-            },
-            "engines": {
-                "node": ">=10"
-            }
-        },
-        "node_modules/lws-log": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/lws-log/-/lws-log-3.0.0.tgz",
-            "integrity": "sha512-I0P5dcZkR97GQ92lyJHQlCZ6eRDota+4OQrEoVXSJQD1Dc8CFxy0+4ELYJke6RwEWmr0BwU65C1cCcSC1w5NFA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-morgan": "^1.0.1",
-                "stream-log-stats": "^3.0.2"
-            },
-            "engines": {
-                "node": ">=12"
-            }
-        },
-        "node_modules/lws-mime": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/lws-mime/-/lws-mime-2.0.0.tgz",
-            "integrity": "sha512-mfrAgRQ5+hkQ7LJ6EAgwnUeymNeYxwLXZY3UQ6C2hSTr7BqMSzm9k5O0C8wWP2dzdhChzITYKwzWbUnAYVBwtA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=10"
-            }
-        },
-        "node_modules/lws-range": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/lws-range/-/lws-range-4.0.1.tgz",
-            "integrity": "sha512-rUkHpsRv5Ixr+8/E4cDCz6jUi6En6hnEaDZhPb0a1GU1vasOHhGcW0qilkgf0dtS0xDJzdKixdfcCW40ankIeQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-range": "^0.3.0"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws-request-monitor": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/lws-request-monitor/-/lws-request-monitor-2.0.0.tgz",
-            "integrity": "sha512-ZTo0/pS42qiejcYlL+wlpurSbDSS0J7pDDohqBx7jjUQkgni2Qd8cPzn/kW8QI82gXgDmdZH+ps0vheLHlgdgg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "byte-size": "^6.2.0"
-            },
-            "engines": {
-                "node": ">=10"
-            }
-        },
-        "node_modules/lws-request-monitor/node_modules/byte-size": {
-            "version": "6.2.0",
-            "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-6.2.0.tgz",
-            "integrity": "sha512-6EspYUCAPMc7E2rltBgKwhG+Cmk0pDm9zDtF1Awe2dczNUL3YpZ8mTs/dueOTS1hqGWBOatqef4jYMGjln7WmA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/lws-rewrite": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/lws-rewrite/-/lws-rewrite-4.0.0.tgz",
-            "integrity": "sha512-I9rNDyAuy/1Wz2WMWTqjxFMlUTr8CugdHlUCjIudQkt04YnRdhP32iAoRnVnLsgP1UOiM44dxTW2EomQHHfirw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^6.2.2",
-                "http-proxy-agent": "^5.0.0",
-                "https-proxy-agent": "^5.0.1",
-                "koa-route": "^4.0.1",
-                "path-to-regexp": "^6.2.2"
-            },
-            "bin": {
-                "lws-rewrite": "bin/cli.js"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws-rewrite/node_modules/path-to-regexp": {
-            "version": "6.2.2",
-            "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz",
-            "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/lws-spa": {
-            "version": "4.1.1",
-            "resolved": "https://registry.npmjs.org/lws-spa/-/lws-spa-4.1.1.tgz",
-            "integrity": "sha512-v032GXet8j818l6vUyAlQm1HfcxPVM+Flvxptv6EcDveUJqvfNX5j1bo9PqKB8HbyEScek5OH8guFAqrSOwBNw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-send": "^5.0.1"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws-static": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/lws-static/-/lws-static-3.1.1.tgz",
-            "integrity": "sha512-4Xb6rE4gVp2ZmuiVYwvFaSsMUbQ8CwxSxzHzfK6URFz4g3vVT8+e+ekGlItp8ePf9w7u9l96HU7+QDswsmwhCg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "koa-static": "^5.0.0"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
-        "node_modules/lws/node_modules/cookies": {
-            "version": "0.9.1",
-            "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz",
-            "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "depd": "~2.0.0",
-                "keygrip": "~1.1.0"
-            },
-            "engines": {
-                "node": ">= 0.8"
-            }
-        },
-        "node_modules/lws/node_modules/http-errors": {
-            "version": "1.8.1",
-            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
-            "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "depd": "~1.1.2",
-                "inherits": "2.0.4",
-                "setprototypeof": "1.2.0",
-                "statuses": ">= 1.5.0 < 2",
-                "toidentifier": "1.0.1"
-            },
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/lws/node_modules/http-errors/node_modules/depd": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-            "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/lws/node_modules/koa": {
-            "version": "2.15.3",
-            "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz",
-            "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "accepts": "^1.3.5",
-                "cache-content-type": "^1.0.0",
-                "content-disposition": "~0.5.2",
-                "content-type": "^1.0.4",
-                "cookies": "~0.9.0",
-                "debug": "^4.3.2",
-                "delegates": "^1.0.0",
-                "depd": "^2.0.0",
-                "destroy": "^1.0.4",
-                "encodeurl": "^1.0.2",
-                "escape-html": "^1.0.3",
-                "fresh": "~0.5.2",
-                "http-assert": "^1.3.0",
-                "http-errors": "^1.6.3",
-                "is-generator-function": "^1.0.7",
-                "koa-compose": "^4.1.0",
-                "koa-convert": "^2.0.0",
-                "on-finished": "^2.3.0",
-                "only": "~0.0.2",
-                "parseurl": "^1.3.2",
-                "statuses": "^1.5.0",
-                "type-is": "^1.6.16",
-                "vary": "^1.1.2"
-            },
-            "engines": {
-                "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4"
-            }
-        },
-        "node_modules/lws/node_modules/koa-convert": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz",
-            "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "co": "^4.6.0",
-                "koa-compose": "^4.1.0"
-            },
-            "engines": {
-                "node": ">= 10"
-            }
-        },
-        "node_modules/lws/node_modules/statuses": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-            "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
         "node_modules/macos-release": {
             "version": "3.3.0",
             "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-3.3.0.tgz",
@@ -29028,10 +28063,9 @@
             }
         },
         "node_modules/mime-db": {
-            "version": "1.53.0",
-            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz",
-            "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==",
-            "dev": true,
+            "version": "1.52.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+            "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
             "license": "MIT",
             "engines": {
                 "node": ">= 0.6"
@@ -29049,15 +28083,6 @@
                 "node": ">= 0.6"
             }
         },
-        "node_modules/mime-types/node_modules/mime-db": {
-            "version": "1.52.0",
-            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
-            "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
         "node_modules/mimic-fn": {
             "version": "4.0.0",
             "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
@@ -29406,53 +28431,6 @@
                 "mkdirp": "bin/cmd.js"
             }
         },
-        "node_modules/morgan": {
-            "version": "1.10.0",
-            "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
-            "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "basic-auth": "~2.0.1",
-                "debug": "2.6.9",
-                "depd": "~2.0.0",
-                "on-finished": "~2.3.0",
-                "on-headers": "~1.0.2"
-            },
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
-        "node_modules/morgan/node_modules/debug": {
-            "version": "2.6.9",
-            "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-            "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "ms": "2.0.0"
-            }
-        },
-        "node_modules/morgan/node_modules/ms": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-            "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/morgan/node_modules/on-finished": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
-            "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "ee-first": "1.1.1"
-            },
-            "engines": {
-                "node": ">= 0.8"
-            }
-        },
         "node_modules/mrmime": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
@@ -31486,26 +30464,26 @@
             "license": "MIT"
         },
         "node_modules/oxc-resolver": {
-            "version": "1.10.2",
-            "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-1.10.2.tgz",
-            "integrity": "sha512-NIbwVqoU8Bhl7PVtItHCg+VFFokIDwBgIgFUwFG2Y8ePhxftFh5xG+KLar5PLWXlCP4WunPIuXD3jr3v6/MfRw==",
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-1.11.0.tgz",
+            "integrity": "sha512-N3qMse2AM7uST8PaiUMXZkcACyGAMN073tomyvzHTICSzaOqKHvVS0IZ3vj/OqoE140QP4CyOiWmgC1Hw5Urmg==",
             "dev": true,
             "license": "MIT",
             "funding": {
                 "url": "https://github.com/sponsors/Boshen"
             },
             "optionalDependencies": {
-                "@oxc-resolver/binding-darwin-arm64": "1.10.2",
-                "@oxc-resolver/binding-darwin-x64": "1.10.2",
-                "@oxc-resolver/binding-freebsd-x64": "1.10.2",
-                "@oxc-resolver/binding-linux-arm-gnueabihf": "1.10.2",
-                "@oxc-resolver/binding-linux-arm64-gnu": "1.10.2",
-                "@oxc-resolver/binding-linux-arm64-musl": "1.10.2",
-                "@oxc-resolver/binding-linux-x64-gnu": "1.10.2",
-                "@oxc-resolver/binding-linux-x64-musl": "1.10.2",
-                "@oxc-resolver/binding-wasm32-wasi": "1.10.2",
-                "@oxc-resolver/binding-win32-arm64-msvc": "1.10.2",
-                "@oxc-resolver/binding-win32-x64-msvc": "1.10.2"
+                "@oxc-resolver/binding-darwin-arm64": "1.11.0",
+                "@oxc-resolver/binding-darwin-x64": "1.11.0",
+                "@oxc-resolver/binding-freebsd-x64": "1.11.0",
+                "@oxc-resolver/binding-linux-arm-gnueabihf": "1.11.0",
+                "@oxc-resolver/binding-linux-arm64-gnu": "1.11.0",
+                "@oxc-resolver/binding-linux-arm64-musl": "1.11.0",
+                "@oxc-resolver/binding-linux-x64-gnu": "1.11.0",
+                "@oxc-resolver/binding-linux-x64-musl": "1.11.0",
+                "@oxc-resolver/binding-wasm32-wasi": "1.11.0",
+                "@oxc-resolver/binding-win32-arm64-msvc": "1.11.0",
+                "@oxc-resolver/binding-win32-x64-msvc": "1.11.0"
             }
         },
         "node_modules/p-cancelable": {
@@ -33972,15 +32950,6 @@
             ],
             "license": "MIT"
         },
-        "node_modules/qrcode-terminal": {
-            "version": "0.12.0",
-            "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
-            "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==",
-            "dev": true,
-            "bin": {
-                "qrcode-terminal": "bin/qrcode-terminal.js"
-            }
-        },
         "node_modules/qs": {
             "version": "6.11.0",
             "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
@@ -34455,16 +33424,6 @@
                 "node": ">= 0.10"
             }
         },
-        "node_modules/reduce-flatten": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz",
-            "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=6"
-            }
-        },
         "node_modules/reflect-metadata": {
             "version": "0.1.14",
             "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz",
@@ -34797,9 +33756,9 @@
             }
         },
         "node_modules/release-it/node_modules/emoji-regex": {
-            "version": "10.3.0",
-            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz",
-            "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==",
+            "version": "10.4.0",
+            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz",
+            "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==",
             "dev": true,
             "license": "MIT"
         },
@@ -35350,70 +34309,6 @@
                 "node": "10.* || >= 12"
             }
         },
-        "node_modules/resolve-path": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz",
-            "integrity": "sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "http-errors": "~1.6.2",
-                "path-is-absolute": "1.0.1"
-            },
-            "engines": {
-                "node": ">= 0.8"
-            }
-        },
-        "node_modules/resolve-path/node_modules/depd": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-            "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/resolve-path/node_modules/http-errors": {
-            "version": "1.6.3",
-            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
-            "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "depd": "~1.1.2",
-                "inherits": "2.0.3",
-                "setprototypeof": "1.1.0",
-                "statuses": ">= 1.4.0 < 2"
-            },
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/resolve-path/node_modules/inherits": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-            "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
-            "dev": true,
-            "license": "ISC"
-        },
-        "node_modules/resolve-path/node_modules/setprototypeof": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
-            "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
-            "dev": true,
-            "license": "ISC"
-        },
-        "node_modules/resolve-path/node_modules/statuses": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-            "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
         "node_modules/resolve-pkg-maps": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
@@ -36323,92 +35218,6 @@
                 "node": ">= 0.8.0"
             }
         },
-        "node_modules/serve-index-75lb": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/serve-index-75lb/-/serve-index-75lb-2.0.1.tgz",
-            "integrity": "sha512-/d9r8bqJlFQcwy0a0nb1KnWAA+Mno+V+VaoKocdkbW5aXKRQd/+4bfnRhQRQr6uEoYwTRJ4xgztOyCJvWcpBpQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "accepts": "~1.3.4",
-                "batch": "0.6.1",
-                "debug": "2.6.9",
-                "escape-html": "~1.0.3",
-                "http-errors": "~1.6.2",
-                "mime-types": "~2.1.18",
-                "parseurl": "~1.3.2"
-            },
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
-        "node_modules/serve-index-75lb/node_modules/debug": {
-            "version": "2.6.9",
-            "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
-            "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "ms": "2.0.0"
-            }
-        },
-        "node_modules/serve-index-75lb/node_modules/depd": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
-            "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/serve-index-75lb/node_modules/http-errors": {
-            "version": "1.6.3",
-            "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
-            "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "depd": "~1.1.2",
-                "inherits": "2.0.3",
-                "setprototypeof": "1.1.0",
-                "statuses": ">= 1.4.0 < 2"
-            },
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/serve-index-75lb/node_modules/inherits": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-            "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
-            "dev": true,
-            "license": "ISC"
-        },
-        "node_modules/serve-index-75lb/node_modules/ms": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-            "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/serve-index-75lb/node_modules/setprototypeof": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
-            "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
-            "dev": true,
-            "license": "ISC"
-        },
-        "node_modules/serve-index-75lb/node_modules/statuses": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
-            "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
         "node_modules/serve-index/node_modules/debug": {
             "version": "2.6.9",
             "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -37488,108 +36297,6 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
-        "node_modules/stream-log-stats": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/stream-log-stats/-/stream-log-stats-3.0.2.tgz",
-            "integrity": "sha512-393j7aeF9iRdHvyANqEQU82UQmpw2CTxgsT83caefh+lOxavVLbVrw8Mr4zjXeZLh2+xeHZMKfVx4T0rJ/EchA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "ansi-escape-sequences": "^5.1.2",
-                "byte-size": "^6.2.0",
-                "common-log-format": "^1.0.0",
-                "JSONStream": "^1.3.5",
-                "lodash.throttle": "^4.1.1",
-                "stream-via": "^1.0.4",
-                "table-layout": "~1.0.0"
-            },
-            "bin": {
-                "log-stats": "bin/cli.js"
-            },
-            "engines": {
-                "node": ">=8.0.0"
-            }
-        },
-        "node_modules/stream-log-stats/node_modules/ansi-escape-sequences": {
-            "version": "5.1.2",
-            "resolved": "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-5.1.2.tgz",
-            "integrity": "sha512-JcpoVp1W1bl1Qn4cVuiXEhD6+dyXKSOgCn2zlzE8inYgCJCBy1aPnUhlz6I4DFum8D4ovb9Qi/iAjUcGvG2lqw==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^4.0.0"
-            },
-            "engines": {
-                "node": ">=8.0.0"
-            }
-        },
-        "node_modules/stream-log-stats/node_modules/array-back": {
-            "version": "4.0.2",
-            "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
-            "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/stream-log-stats/node_modules/byte-size": {
-            "version": "6.2.0",
-            "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-6.2.0.tgz",
-            "integrity": "sha512-6EspYUCAPMc7E2rltBgKwhG+Cmk0pDm9zDtF1Awe2dczNUL3YpZ8mTs/dueOTS1hqGWBOatqef4jYMGjln7WmA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/stream-log-stats/node_modules/table-layout": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz",
-            "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^4.0.1",
-                "deep-extend": "~0.6.0",
-                "typical": "^5.2.0",
-                "wordwrapjs": "^4.0.0"
-            },
-            "engines": {
-                "node": ">=8.0.0"
-            }
-        },
-        "node_modules/stream-log-stats/node_modules/typical": {
-            "version": "5.2.0",
-            "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
-            "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/stream-log-stats/node_modules/wordwrapjs": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz",
-            "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "reduce-flatten": "^2.0.0",
-                "typical": "^5.2.0"
-            },
-            "engines": {
-                "node": ">=8.0.0"
-            }
-        },
-        "node_modules/stream-slice": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz",
-            "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==",
-            "dev": true,
-            "license": "MIT"
-        },
         "node_modules/stream-throttle": {
             "version": "0.1.3",
             "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz",
@@ -37614,67 +36321,6 @@
             "dev": true,
             "license": "MIT"
         },
-        "node_modules/stream-via": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz",
-            "integrity": "sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/streaming-json-stringify": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/streaming-json-stringify/-/streaming-json-stringify-3.1.0.tgz",
-            "integrity": "sha512-axtfs3BDxAsrZ9swD163FBrXZ8dhJJp6kUI6C97TvUZG9RHKfbg9nFbXqEheFNOb3IYMEt2ag9F62sWLFUZ4ug==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "json-stringify-safe": "5",
-                "readable-stream": "2"
-            }
-        },
-        "node_modules/streaming-json-stringify/node_modules/isarray": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-            "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/streaming-json-stringify/node_modules/readable-stream": {
-            "version": "2.3.8",
-            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
-            "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.3",
-                "isarray": "~1.0.0",
-                "process-nextick-args": "~2.0.0",
-                "safe-buffer": "~5.1.1",
-                "string_decoder": "~1.1.1",
-                "util-deprecate": "~1.0.1"
-            }
-        },
-        "node_modules/streaming-json-stringify/node_modules/safe-buffer": {
-            "version": "5.1.2",
-            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-            "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
-            "dev": true,
-            "license": "MIT"
-        },
-        "node_modules/streaming-json-stringify/node_modules/string_decoder": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
-            "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "safe-buffer": "~5.1.0"
-            }
-        },
         "node_modules/streamroller": {
             "version": "3.1.5",
             "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz",
@@ -37992,9 +36638,9 @@
             }
         },
         "node_modules/stylelint": {
-            "version": "16.8.2",
-            "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.8.2.tgz",
-            "integrity": "sha512-fInKATippQhcSm7AB+T32GpI+626yohrg33GkFT/5jzliUw5qhlwZq2UQQwgl3HsHrf09oeARi0ZwgY/UWEv9A==",
+            "version": "16.9.0",
+            "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.9.0.tgz",
+            "integrity": "sha512-31Nm3WjxGOBGpQqF43o3wO9L5AC36TPIe6030Lnm13H3vDMTcS21DrLh69bMX+DBilKqMMVLian4iG6ybBoNRQ==",
             "dev": true,
             "funding": [
                 {
@@ -38009,9 +36655,9 @@
             "license": "MIT",
             "peer": true,
             "dependencies": {
-                "@csstools/css-parser-algorithms": "^3.0.0",
-                "@csstools/css-tokenizer": "^3.0.0",
-                "@csstools/media-query-list-parser": "^3.0.0",
+                "@csstools/css-parser-algorithms": "^3.0.1",
+                "@csstools/css-tokenizer": "^3.0.1",
+                "@csstools/media-query-list-parser": "^3.0.1",
                 "@csstools/selector-specificity": "^4.0.0",
                 "@dual-bundle/import-meta-resolve": "^4.1.0",
                 "balanced-match": "^2.0.0",
@@ -38033,7 +36679,7 @@
                 "known-css-properties": "^0.34.0",
                 "mathml-tag-names": "^2.1.3",
                 "meow": "^13.2.0",
-                "micromatch": "^4.0.7",
+                "micromatch": "^4.0.8",
                 "normalize-path": "^3.0.0",
                 "picocolors": "^1.0.1",
                 "postcss": "^8.4.41",
@@ -38044,7 +36690,7 @@
                 "resolve-from": "^5.0.0",
                 "string-width": "^4.2.3",
                 "strip-ansi": "^7.1.0",
-                "supports-hyperlinks": "^3.0.0",
+                "supports-hyperlinks": "^3.1.0",
                 "svg-tags": "^1.0.0",
                 "table": "^6.8.2",
                 "write-file-atomic": "^5.0.1"
@@ -38196,9 +36842,9 @@
             }
         },
         "node_modules/stylelint/node_modules/file-entry-cache": {
-            "version": "9.0.0",
-            "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz",
-            "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==",
+            "version": "9.1.0",
+            "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz",
+            "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==",
             "dev": true,
             "license": "MIT",
             "peer": true,
@@ -38583,20 +37229,6 @@
                 "node": ">=10.0.0"
             }
         },
-        "node_modules/table-layout": {
-            "version": "4.1.1",
-            "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz",
-            "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "array-back": "^6.2.2",
-                "wordwrapjs": "^5.1.0"
-            },
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/table/node_modules/ansi-styles": {
             "version": "4.3.0",
             "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -39966,16 +38598,6 @@
                 "node": ">=12.20"
             }
         },
-        "node_modules/typical": {
-            "version": "7.1.1",
-            "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
-            "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/ua-parser-js": {
             "version": "1.0.38",
             "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz",
@@ -40516,36 +39138,6 @@
                 "node": ">=14"
             }
         },
-        "node_modules/wait-on": {
-            "version": "7.2.0",
-            "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
-            "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
-            "dev": true,
-            "license": "MIT",
-            "dependencies": {
-                "axios": "^1.6.1",
-                "joi": "^17.11.0",
-                "lodash": "^4.17.21",
-                "minimist": "^1.2.8",
-                "rxjs": "^7.8.1"
-            },
-            "bin": {
-                "wait-on": "bin/wait-on"
-            },
-            "engines": {
-                "node": ">=12.0.0"
-            }
-        },
-        "node_modules/walk-back": {
-            "version": "5.1.1",
-            "resolved": "https://registry.npmjs.org/walk-back/-/walk-back-5.1.1.tgz",
-            "integrity": "sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/walk-sync": {
             "version": "2.2.0",
             "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz",
@@ -41321,16 +39913,6 @@
             "dev": true,
             "license": "MIT"
         },
-        "node_modules/wordwrapjs": {
-            "version": "5.1.0",
-            "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz",
-            "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==",
-            "dev": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=12.17"
-            }
-        },
         "node_modules/wrap-ansi": {
             "version": "7.0.0",
             "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
diff --git a/package.json b/package.json
index c54814245..502080518 100644
--- a/package.json
+++ b/package.json
@@ -132,7 +132,6 @@
         "jest-environment-jsdom": "29.7.0",
         "jest-preset-angular": "14.2.2",
         "lint-staged": "15.2.9",
-        "local-web-server": "5.4.0",
         "marked": "14.1.0",
         "ng-morph": "4.6.3",
         "ng-packagr": "16.2.3",
@@ -143,7 +142,6 @@
         "ts-jest": "29.2.5",
         "tslib": "2.7.0",
         "typescript": "5.0.4",
-        "wait-on": "7.2.0",
         "webpack": "5.93.0"
     },
     "engines": {