From db8cd43068bd254bc1d431aef437537765dc0b3e Mon Sep 17 00:00:00 2001 From: Albrecht Lohofener Date: Mon, 19 Oct 2026 10:08:51 +0200 Subject: [PATCH] Update zone.js 0.15 -> 0.16 and minor dependency bumps express 4.22.3, @types/express 4.17.25, @types/node 26.6.5, @types/jasmine 5.1.15 Co-Authored-By: Claude Opus 5.5 --- .../workflows/openwrt-2410-snapshot-build.yml | 345 ------------------ web-frontend/package-lock.json | 177 ++++++--- web-frontend/package.json | 4 +- 3 files changed, 120 insertions(+), 406 deletions(-) delete mode 100644 .github/workflows/openwrt-2410-snapshot-build.yml diff --git a/.github/workflows/openwrt-2410-snapshot-build.yml b/.github/workflows/openwrt-2410-snapshot-build.yml deleted file mode 100644 index 95d0ca3..0000000 --- a/.github/workflows/openwrt-2410-snapshot-build.yml +++ /dev/null @@ -1,345 +0,0 @@ -name: OpenWrt 24.10-SNAPSHOT build - -on: - push: - branches: - - master - schedule: - - cron: '0 20 * * *' - -env: - OPENWRT_VERSION: 24.10-SNAPSHOT - -jobs: - build: - name: Build - runs-on: ubuntu-latest - - services: - registry: - image: registry:2 - ports: - - 5000:5000 - - steps: - - name: Checkout - uses: actions/checkout@v7 - - - name: Set Swap Space - uses: pierotofy/set-swap-space@master - with: - swap-size-gb: 10 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 - with: - driver-opts: network=host # Important to access local Docker registry - - - name: Login into Docker Hub - uses: docker/login-action@v4 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build Docker image - uses: docker/build-push-action@v7 - env: - DOCKER_BUILD_RECORD_UPLOAD: false - with: - context: . - push: true - provenance: false - platforms: | - linux/x86_64 - linux/arm64 - build-args: | - OPENWRT_VERSION=${{ env.OPENWRT_VERSION }} - BUILDKIT_MULTI_PLATFORM=1 - tags: | - albrechtloh/openwrt-docker:ci-openwrt-2410-snapshot - localhost:5000/local/openwrt-docker:latest - - - name: Inspect - run: | - docker buildx imagetools inspect localhost:5000/local/openwrt-docker:latest - - - name: Build and export - uses: docker/build-push-action@v7 - env: - DOCKER_BUILD_SUMMARY: false - DOCKER_BUILD_RECORD_UPLOAD: false - with: - tags: openwrt-docker:latest - build-args: OPENWRT_VERSION=${{ env.OPENWRT_VERSION }} - allow: security.insecure,network.host - outputs: type=docker,dest=/tmp/openwrt-docker-image.tar - - - name: Upload artifact - uses: actions/upload-artifact@v7 - with: - name: OpenWrt Docker Image - path: /tmp/openwrt-docker-image.tar - - - name: Login to Weidmueller wmucdev - uses: docker/login-action@v4 - with: - registry: wmucdev.azurecr.io - username: ${{ secrets.WMUCDEV_USERNAME }} - password: ${{ secrets.WMUCDEV_TOKEN }} - - - name: Create Weidmueller u-OS app - id: create_u-os-app - run: | - # uc-aom-packager accept only version that has to be greater than the previous one. Lets use the datetime to ensure that. - DATETIME=$(date "+%Y%m%d%H%M%S") - - # uc-aom-packager allow only decimal numbers as version number for an unkonwn reason - # see https://github.com/weidmueller/uc-addon/blob/main/uc-manifest.schema-doc.md#version) - # So lets convert the git hash into a decimal value - GIT_HASH=`git rev-parse --short HEAD` - GIT_HASH_DECIMAL=$((16#$GIT_HASH)) - - # Create app version - #APP_VERSION=$OPENWRT_VERSION.$DATETIME-$GIT_HASH_DECIMAL - APP_VERSION=24.10.99.$DATETIME-$GIT_HASH_DECIMAL # TODO just for SNAPSHOT - - echo "***** Create manifest from template *****" - mv u-os-app/manifest.json.template u-os-app/manifest.json - sed -i 's/APPVERSION_TO_INSERT/'"$APP_VERSION"'/g' u-os-app/manifest.json - cat u-os-app/manifest.json | grep version - - echo "***** Run uc-aom-packager to create the u-OS app *****" - # uc-aom-packager accepts only multiarch images. "--build-arg BUILDKIT_MULTI_PLATFORM=1" has to set to ensure that. - # uc-aom-packager needs to Docker registry credentials in a clear text file. Because of security concerns we use a local registry without credentials here. - - docker run --rm --network=host --pull=always \ - --mount src=$(pwd)/u-os-app,target=/tmp/u-os-app-openwrt,type=bind wmucdev.azurecr.io/u-control/uc-aom-packager:0 \ - uc-aom-packager push \ - -m /tmp/u-os-app-openwrt \ - -s /tmp/u-os-app-openwrt/source-credentials.json \ - -t /tmp/u-os-app-openwrt/target-credentials.json \ - -v - - echo "***** Create SWU app file*****" - docker run --rm --network=host --pull=always \ - --mount src=$(pwd)/u-os-app,target=/tmp/u-os-app-openwrt,type=bind wmucdev.azurecr.io/u-control/uc-aom-packager:0 \ - uc-aom-packager \ - export \ - -t /tmp/u-os-app-openwrt/target-credentials.json \ - --version $APP_VERSION \ - -o /tmp/u-os-app-openwrt/u-os-app-openwrt_$APP_VERSION.swu \ - -v - - find u-os-app/ - - - name: Archive artifacts (OpenWrt u-OS app) - if: always() && steps.create_u-os-app.outcome == 'success' - uses: actions/upload-artifact@v7 - with: - name: OpenWrt u-OS app - path: u-os-app/u-os-app-openwrt_*.swu/linux-arm64/*.swu - if-no-files-found: error - - - sbom: - name: SBOM generation - needs: build - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v7 - - - name: Generate alpine SBOM - uses: anchore/sbom-action@v0 - with: - image: albrechtloh/openwrt-docker:ci-openwrt-2410-snapshot - upload-artifact: false - format: cyclonedx-json - output-file: alpine_sbom.json - - - name: Prepare OpenWrt rootfs - run: | - # Use automated generated image - sed -i 's/image: albrechtloh\/openwrt-docker:latest/image: albrechtloh\/openwrt-docker:ci-openwrt-2410-snapshot/g' docker-compose.yml - - # Run OpenWrt container for some time to install additional IPKs - set +e # Enable that the next command can fail - timeout --preserve-status 60 docker compose up - set -e # Revert set +e - - # Get image from volume - sudo find /var/lib/docker/volumes/ - IMAGE=$(sudo cat /var/lib/docker/volumes/openwrt-docker_data/_data/current_version) - echo $IMAGE - - # Mount volume - wget https://raw.githubusercontent.com/AlbrechtL/openwrt-docker/refs/heads/master/src/mount_openwrt_squashfs_combined.sh - chmod +x mount_openwrt_squashfs_combined.sh - sudo ./mount_openwrt_squashfs_combined.sh "/var/lib/docker/volumes/openwrt-docker_data/_data/${IMAGE}" - - - name: Generate OpenWrt SBOM - uses: anchore/sbom-action@v0 - with: - path: /mnt - upload-artifact: false - format: cyclonedx-json - output-file: openwrt_sbom.json - - - name: Generate web-frontend SBOM - uses: anchore/sbom-action@v0 - with: - path: web-frontend - upload-artifact: false - format: cyclonedx-json - output-file: web-frontend_sbom.json - - - name: Generate web-backend SBOM - uses: anchore/sbom-action@v0 - with: - path: web-backend - upload-artifact: false - format: cyclonedx-json - output-file: web-backend_sbom.json - - - name: Archive artifacts (SBOMs) - uses: actions/upload-artifact@v7 - with: - name: Software Bill of Material (SBOM) - path: ./*.json - if-no-files-found: error - - test: - name: Test - runs-on: ubuntu-latest - needs: build - steps: - - name: Checkout - uses: actions/checkout@v7 - - - name: Download artifact - uses: actions/download-artifact@v8 - with: - name: OpenWrt Docker Image - path: . - - - name: Install VMs - run: | - set -x - sudo snap install multipass # multipass >= 1.15 because of networks support - sudo chmod a+w /var/snap/multipass/common/multipass_socket # Fix 'multipass socket access denied' - multipass find - - # Set up some bridges for the VMs - sudo ip link add lannetvm type bridge - sudo ip link add wannetvm type bridge - sudo ip link set dev lannetvm up - sudo ip link set dev wannetvm up - ip addr - - # We need to disable the firewall otherwise the tap devices are not working properly - sudo ufw disable - - # Start VMs - # Multipass and the OpenWrt container are using the same MAC QUI 52:54:00 which creates error. Let's use differnet MAC addresses here - multipass launch docker --network name=wannetvm,mac=06:00:00:11:22:33 --network name=lannetvm,mac=06:00:00:44:55:66 --name router-vm - multipass mount $GITHUB_WORKSPACE router-vm - - multipass launch --network wannetvm --name wan-vm - multipass launch --network lannetvm --name lan-vm - - - name: Show VM and and environments variables - run: | - export - multipass exec router-vm -- lsb_release -a - multipass info - - - name: Load image - run: | - multipass exec router-vm -- docker load --input openwrt-docker-image.tar - multipass exec router-vm -- docker image ls -a - - - name: Prepare VMs - run: | - # By default portainer is running at port 9000. But we need port 9000 - multipass exec router-vm -- docker stop portainer - - # Install python - multipass exec router-vm -- sudo apt-get -y install python3-pip python-is-python3 python3-venv - - # Install everthing for pytest - multipass exec router-vm -- find . - multipass exec router-vm -- bash -c 'python -m venv ~/.venv' - multipass exec router-vm -- bash -c 'source ~/.venv/bin/activate && pip install -r test/requirements.txt' - - echo '******** router-vm IPs ********' - multipass exec router-vm -- ip addr - - # Prepare WAN VM - echo '******** wan-vm IPs ********' - # Add IP address - multipass exec wan-vm -- sudo ip addr add 192.168.22.1/24 dev ens4 - multipass exec wan-vm -- ip addr - # Install DHCP server - multipass exec wan-vm -- sudo sh -c 'apt-get update && apt-get install -y isc-dhcp-server && echo "default-lease-time 600;\nmax-lease-time 7200;\nsubnet 192.168.22.0 netmask 255.255.255.0 {\n range 192.168.22.100 192.168.22.200;\n option routers 192.168.22.1;\n option domain-name-servers 8.8.8.8, 8.8.4.4;\n option domain-name \"example.org\";\n}" > /etc/dhcp/dhcpd.conf && systemctl enable isc-dhcp-server && systemctl restart isc-dhcp-server' - multipass exec wan-vm -- cat /etc/dhcp/dhcpd.conf - # Enable NAT - multipass exec wan-vm -- sudo modprobe iptable_nat - multipass exec wan-vm -- sudo iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE - multipass exec wan-vm -- sudo sysctl -w net.ipv4.ip_forward=1 - - # Prepare LAN VM - echo '******** lan-vm IPs ********' - multipass exec lan-vm -- sudo ip addr add 172.31.1.2/24 dev ens4 - multipass exec lan-vm -- sudo ip addr add 172.31.22.2/24 dev ens4 - multipass exec lan-vm -- ip addr - - # Double check if virtual networks are working - echo '******** host IPs ********' - ip addr - sudo ufw status - - echo '******** router-vm IPs ********' - multipass exec router-vm -- sudo ip addr add 192.168.22.99/24 dev ens4 - multipass exec router-vm -- sudo ip addr add 172.31.22.99/24 dev ens5 - multipass exec router-vm -- ip addr - - echo '******** Test connection between router-vm, lan-vm and wan-vm ********' - multipass exec router-vm -- ping -c 1 192.168.22.1 # to wan-vm - multipass exec router-vm -- ping -c 1 172.31.22.2 # to lan-vm - - - - name: Run tests - run: | - cat test/tests/docker-compose.yml.template - # Run pytest - multipass exec router-vm -- bash -c 'source ~/.venv/bin/activate && cd test/ && pytest -v -s --html=report.html --self-contained-html --reruns 3' - - - name: Archive test report - if: always() - uses: actions/upload-artifact@v7 - with: - name: Test report - path: test/*.html - if-no-files-found: error - - publish: - name: Publish - needs: test - runs-on: ubuntu-latest - - steps: - - name: Login into Docker Hub - uses: docker/login-action@v4 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Tag image at Docker Hub - run: | - docker buildx imagetools create \ - --tag albrechtloh/openwrt-docker:openwrt-2410-snapshot \ - albrechtloh/openwrt-docker:ci-openwrt-2410-snapshot \ No newline at end of file diff --git a/web-frontend/package-lock.json b/web-frontend/package-lock.json index ec4fc8b..04d62e9 100644 --- a/web-frontend/package-lock.json +++ b/web-frontend/package-lock.json @@ -24,7 +24,7 @@ "express": "^4.18.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", - "zone.js": "~0.15.0" + "zone.js": "~0.16.0" }, "devDependencies": { "@angular/build": "^22.2.3", @@ -3963,16 +3963,16 @@ } }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { @@ -4003,9 +4003,9 @@ "license": "MIT" }, "node_modules/@types/jasmine": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.5.tgz", - "integrity": "sha512-SaCZ3kM5NjOiJqMRYwHpLbTfUC2Dyk1KS3QanNFsUYPGTk70CWVK/J9ueun6zNhw/UkgV7xl8V4ZLQZNRbfnNw==", + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.15.tgz", + "integrity": "sha512-ZAC8KjmV2MJxbNTrwXFN+HKeajpXQZp6KpPiR6Aa4XvaEnjP6qh23lL/Rqb7AYzlp3h/rcwDrQ7Gg7q28cQTQg==", "dev": true, "license": "MIT" }, @@ -4024,13 +4024,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "26.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-26.0.1.tgz", - "integrity": "sha512-fc3KiUoBt6kie0N9bIW3E47vZsuaMf0PM2AaUpLCLT0s/LvX1nxAim6Fc049cNxODPpGm6qRAuUOB86SkRuPQw==", + "version": "26.6.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.6.5.tgz", + "integrity": "sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~8.3.0" + "undici-types": "~8.9.0" } }, "node_modules/@types/qs": { @@ -4280,23 +4280,23 @@ } }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.8", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.8.tgz", + "integrity": "sha512-JNcyFQ64OiijEkPzUBTCe+hyPXUD/3LEldGQ6iF5LR1w00mx9o7xtDWHXBY2iItjdCFGoilOLNQbH943ut7pHA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.16.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -4312,12 +4312,41 @@ "ms": "2.0.0" } }, + "node_modules/body-parser/node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, + "node_modules/body-parser/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/boolbase": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-2.0.0.tgz", @@ -5232,39 +5261,39 @@ "license": "MIT" }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.3.tgz", + "integrity": "sha512-Bdcs4+3qlpVlx2NRn6fgX2Ue2/gGRaPeawebgclM0ERSCqDpA+owF1fdPwjJUTAJWMTuAaxjDf+hzb0/4eKvvw==", "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", + "body-parser": "~1.20.5", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", + "path-to-regexp": "~0.1.13", "proxy-addr": "~2.0.7", - "qs": "6.13.0", + "qs": "~6.16.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -7373,9 +7402,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", "license": "MIT" }, "node_modules/picocolors": { @@ -7529,12 +7558,13 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.16.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.1.tgz", + "integrity": "sha512-5Px6J7rfHBAGUhNQ3es4YzcOdBBw0SDcVtThJml4RdnKw4tKs2epA0kPZ+K8X+WiHktT93RHVcQ/3ym5aTCgtg==", "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" }, "engines": { "node": ">=0.6" @@ -7553,20 +7583,49 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/raw-body/node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/readdirp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", @@ -8700,9 +8759,9 @@ } }, "node_modules/undici-types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", - "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.9.0.tgz", + "integrity": "sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==", "dev": true, "license": "MIT" }, @@ -9090,9 +9149,9 @@ } }, "node_modules/zone.js": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.15.0.tgz", - "integrity": "sha512-9oxn0IIjbCZkJ67L+LkhYWRyAy7axphb3VgE2MBDlOqnmHMPWGYMxJxBYFueFq/JGY2GMwS0rU+UCLunEmy5UA==", + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.16.3.tgz", + "integrity": "sha512-ihXL9+vhYyEhXz4TDNpHeAOZN9FVrbog0Il64OIEI28UP/n5AaI6gsccRuOHBfx+206agzyoK527bYIO0Foy6A==", "license": "MIT" } } diff --git a/web-frontend/package.json b/web-frontend/package.json index a9a3653..fff5c4d 100644 --- a/web-frontend/package.json +++ b/web-frontend/package.json @@ -27,7 +27,7 @@ "express": "^4.18.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", - "zone.js": "~0.15.0" + "zone.js": "~0.16.0" }, "devDependencies": { "@angular/build": "^22.2.3", @@ -45,4 +45,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~6.0.3" } -} \ No newline at end of file +}