From 7ff8334c8cbe6afba70f80bf7af9ddfa0ececc6a Mon Sep 17 00:00:00 2001 From: Silas Meilbeck <130072839+sMeilbeck@users.noreply.github.com> Date: Fri, 20 Sep 2024 15:19:03 +0200 Subject: [PATCH 1/2] Fix build and publish image (#721) * Triggering build process * Update Build_and_Publish_Images.yaml * debian bullseye to bookworm @ Dockerfile * Get Edge and edgedriver over Package Manager * Add Execution Test variable * push docker/login-action @v3 * test * no message * test2 * test * test * bullseye -> bookworm * try latest node 20 * apt-update * Node 20 everywhere + Manual edgedriver again * edgedriver by selenium webdriver-manager * RUN npm install -g edgedriver * test for edgedriver * Fix typo, check edge and edgedriver version separately, use npm install edgedriver also for backend Dockerfile * Revert "test" This reverts commit af01248c64a566d1999ad340241e7c64d4d54c6f. * Revert "test" This reverts commit c7782ecbdd082d96434d1cf0efb65f23c9fd9b8a. * remove on push * ignore scripts --- .../workflows/Build_and_Publish_Images.yaml | 9 ++-- Dockerfile | 54 ++++++++++++------- backend/Dockerfile | 21 +++++--- frontend/Dockerfile | 2 +- 4 files changed, 52 insertions(+), 34 deletions(-) diff --git a/.github/workflows/Build_and_Publish_Images.yaml b/.github/workflows/Build_and_Publish_Images.yaml index bc810212..0a7da241 100644 --- a/.github/workflows/Build_and_Publish_Images.yaml +++ b/.github/workflows/Build_and_Publish_Images.yaml @@ -11,13 +11,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@v4 - - - name: Install Dependencies - run: npm install node-fetch #TODO: Remove node-fetch as not needed (probably) + uses: actions/checkout@v4 - name: Login to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} @@ -80,7 +77,7 @@ jobs: if: ${{ startsWith(github.event.release.name, 'Seed-Test_v') }} run: docker push ${{ secrets.DOCKER_USERNAME }}/seed-test-demo:latest - - name: Post susccess message + - name: Post success message uses: ./actions/notifyTeams with: title: "Publish Release DockerHub 🐳🌐" diff --git a/Dockerfile b/Dockerfile index fe1a6f68..66caee63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:20.9 +FROM node:20 RUN apt-get update && \ apt-get install -qq -y wget @@ -17,7 +17,7 @@ RUN apt-get -y install gnupg curl RUN curl -fsSL https://pgp.mongodb.com/server-7.0.asc | \ gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \ --dearmor -RUN echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/7.0 main" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list +RUN echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list RUN apt-get update && apt-get -y install mongodb-org RUN mkdir /data RUN mkdir /data/db @@ -42,24 +42,38 @@ RUN tar xjf ~/FirefoxSetup.tar.bz2 -C /opt/ RUN ln -s /opt/firefox/firefox /usr/local/bin/ RUN apt-get -q update && apt-get install -qq -y bzip2 libdbus-glib-1-2 libgtk-3-0 libpci-dev libx11-xcb-dev libxt6 libxtst6 wget && rm -rf /var/lib/apt/lists/* -# install edge -RUN curl -q https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg -RUN install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/ -RUN sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge-dev.list' -RUN rm microsoft.gpg -RUN apt-get -q update && apt-get install -qq -y microsoft-edge-stable -# include in path -RUN export PATH=$PATH:/opt/microsoft/msedge/ -ENV PATH="${PATH}:/opt/microsoft/msedge/" - -# install msedgedriver -# # Extract the latest stable version of edge -RUN msedge --version | sed 's/.*Edge \([0-9.]*\).*/\1/' > latest_stable.txt - -# # Remove the driver-pagehtml -RUN wget -q -O /tmp/msedgedriver.zip https://msedgedriver.azureedge.net/$(cat latest_stable.txt)/edgedriver_linux64.zip -RUN unzip /tmp/msedgedriver.zip msedgedriver -d /usr/local/bin/ -RUN rm -f latest_stable.txt +# # install edge +# RUN curl -q https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg +# RUN install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/ +# RUN sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge-dev.list' +# RUN rm microsoft.gpg +# RUN apt-get -q update && apt-get install -qq -y microsoft-edge-stable +# # include in path +# RUN export PATH=$PATH:/opt/microsoft/msedge/ +# ENV PATH="${PATH}:/opt/microsoft/msedge/" + +# # install msedgedriver +# # # Extract the latest stable version of edge +# RUN msedge --version | sed 's/.*Edge \([0-9.]*\).*/\1/' > latest_stable.txt + +# # # Remove the driver-pagehtml +# RUN wget -q -O /tmp/msedgedriver.zip https://msedgedriver.azureedge.net/$(cat latest_stable.txt)/edgedriver_linux64.zip +# RUN unzip /tmp/msedgedriver.zip msedgedriver -d /usr/local/bin/ +# RUN rm -f latest_stable.txt + + +# Install edge via package manager +RUN apt-get update && apt-get install -qq -y software-properties-common +RUN curl -q https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg +RUN add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" +RUN apt-get update && apt-get install -qq -y microsoft-edge-stable + +# Install msedgedriver +RUN npm install --ignore-scripts -g edgedriver + +# Show Edge and EdgeDriver version +RUN microsoft-edge --version +RUN edgedriver --version # Clean up the cache after installing all necessary packages RUN apt-get -q update && apt-get clean && rm -rf /var/lib/apt/lists/* diff --git a/backend/Dockerfile b/backend/Dockerfile index 6aa60d07..330acffa 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,5 +1,5 @@ # Use build argument for Node.js version -ARG NODE_VERSION=20.9 +ARG NODE_VERSION=20 FROM node:${NODE_VERSION} RUN apt-get update && \ @@ -45,12 +45,19 @@ RUN msedge --version | sed 's/.*Edge \([0-9.]*\).*/\1/' > latest_stable.txt # Return stable version (debugging purposes) RUN cat latest_stable.txt -# Download msedgedriver (only if available) -RUN if [ $(wget -qO- https://msedgedriver.azureedge.net/$(cat latest_stable.txt)/edgedriver_linux64.zip) ]; then \ - wget -q -O /tmp/msedgedriver.zip https://msedgedriver.azureedge.net/$(cat latest_stable.txt)/edgedriver_linux64.zip && \ - unzip /tmp/msedgedriver.zip msedgedriver -d /usr/local/bin/ && \ - rm -f /tmp/msedgedriver.zip; \ -fi +# # Download msedgedriver (only if available) +# RUN if [ $(wget -qO- https://msedgedriver.azureedge.net/$(cat latest_stable.txt)/edgedriver_linux64.zip) ]; then \ +# wget -q -O /tmp/msedgedriver.zip https://msedgedriver.azureedge.net/$(cat latest_stable.txt)/edgedriver_linux64.zip && \ +# unzip /tmp/msedgedriver.zip msedgedriver -d /usr/local/bin/ && \ +# rm -f /tmp/msedgedriver.zip; \ +# fi + +# Install msedgedriver +RUN npm install --ignore-scripts -g edgedriver + +# Show Edge and EdgeDriver version +RUN microsoft-edge --version +RUN edgedriver --version # Remove temporary file (regardless of download success) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index d0d65acd..b68feadc 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,5 +1,5 @@ # Use build argument for Node.js version -ARG NODE_VERSION=20.9 +ARG NODE_VERSION=20 FROM node:${NODE_VERSION} # Create app directory From 0aec128995b0a08de5e012c748027044eadc4ffc Mon Sep 17 00:00:00 2001 From: Silas Meilbeck Date: Fri, 20 Sep 2024 15:33:19 +0200 Subject: [PATCH 2/2] Frontend: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @angular-devkit/build-angular ^18.2.4 → ^18.2.5 @angular/animations ^18.2.4 → ^18.2.5 @angular/cdk ^18.2.4 → ^18.2.5 @angular/cli ^18.2.4 → ^18.2.5 @angular/common ^18.2.4 → ^18.2.5 @angular/compiler ^18.2.4 → ^18.2.5 @angular/compiler-cli ^18.2.4 → ^18.2.5 @angular/core ^18.2.4 → ^18.2.5 @angular/forms ^18.2.4 → ^18.2.5 @angular/localize ^18.2.4 → ^18.2.5 @angular/material ^18.2.4 → ^18.2.5 @angular/platform-browser ^18.2.4 → ^18.2.5 @angular/platform-browser-dynamic ^18.2.4 → ^18.2.5 @angular/router ^18.2.4 → ^18.2.5 @typescript-eslint/eslint-plugin ^8.5.0 → ^8.6.0 @typescript-eslint/parser ^8.5.0 → ^8.6.0 jspdf ^2.5.1 → ^2.5.2 Backend: selenium-webdriver ^4.24.0 → ^4.24.1 --- backend/package-lock.json | 8 +- backend/package.json | 2 +- frontend/package-lock.json | 409 ++++++++++++++++++++----------------- frontend/package.json | 34 +-- 4 files changed, 243 insertions(+), 210 deletions(-) diff --git a/backend/package-lock.json b/backend/package-lock.json index e038a453..8c2eeb59 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -27,7 +27,7 @@ "nodemailer": "^6.9.15", "passport": "^0.7.0", "passport-local": "^1.0.0", - "selenium-webdriver": "^4.24.0", + "selenium-webdriver": "^4.24.1", "stream-to-string": "^1.2.1", "string-to-stream": "^3.0.1", "tar": "^7.4.3", @@ -9995,9 +9995,9 @@ "integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ=" }, "node_modules/selenium-webdriver": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.24.0.tgz", - "integrity": "sha512-qrqoHhHPZuKLiz5VAQUxrn3ILs7/cYqn2/x96r35g5JjkLUjOS1lX+F+tEJKhRMlQ/MGJ+N1016JF5g2xZUFzw==", + "version": "4.24.1", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.24.1.tgz", + "integrity": "sha512-fcK5BTI/54cSqIhiVtrd9li1YL6LW109yIwuVw6V+FlVE6y4riGiX2qdZxVzHq+sm2TJyps+D2sjzXrpDZe1Og==", "license": "Apache-2.0", "dependencies": { "@bazel/runfiles": "^5.8.1", diff --git a/backend/package.json b/backend/package.json index d9ec38fa..5d739cb9 100644 --- a/backend/package.json +++ b/backend/package.json @@ -36,7 +36,7 @@ "nodemailer": "^6.9.15", "passport": "^0.7.0", "passport-local": "^1.0.0", - "selenium-webdriver": "^4.24.0", + "selenium-webdriver": "^4.24.1", "stream-to-string": "^1.2.1", "string-to-stream": "^3.0.1", "tar": "^7.4.3", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 30e3cf62..f8432f45 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,19 +8,19 @@ "name": "seed-test-frontend", "version": "1.7.3", "dependencies": { - "@angular-devkit/build-angular": "^18.2.4", - "@angular/animations": "^18.2.4", - "@angular/cdk": "^18.2.4", - "@angular/cli": "^18.2.4", - "@angular/common": "^18.2.4", - "@angular/compiler": "^18.2.4", - "@angular/core": "^18.2.4", - "@angular/forms": "^18.2.4", - "@angular/localize": "^18.2.4", - "@angular/material": "^18.2.4", - "@angular/platform-browser": "^18.2.4", - "@angular/platform-browser-dynamic": "^18.2.4", - "@angular/router": "^18.2.4", + "@angular-devkit/build-angular": "^18.2.5", + "@angular/animations": "^18.2.5", + "@angular/cdk": "^18.2.5", + "@angular/cli": "^18.2.5", + "@angular/common": "^18.2.5", + "@angular/compiler": "^18.2.5", + "@angular/core": "^18.2.5", + "@angular/forms": "^18.2.5", + "@angular/localize": "^18.2.5", + "@angular/material": "^18.2.5", + "@angular/platform-browser": "^18.2.5", + "@angular/platform-browser-dynamic": "^18.2.5", + "@angular/router": "^18.2.5", "@material/checkbox": "^15.0.0-canary.fff4066c6.0", "@ng-bootstrap/ng-bootstrap": "^17.0.1", "@ngneat/until-destroy": "^10.0.0", @@ -33,7 +33,7 @@ "html2canvas": "1.4.1", "jest-preset-angular": "^14.2.4", "jquery": "^3.7.1", - "jspdf": "^2.5.1", + "jspdf": "^2.5.2", "ngx-cookie-service": "^18.0.0", "ngx-logger": "~5.0.12", "ngx-owl-carousel-o": "^18.0.0", @@ -48,12 +48,12 @@ "@angular-eslint/eslint-plugin-template": "18.3.1", "@angular-eslint/schematics": "18.3.1", "@angular-eslint/template-parser": "18.3.1", - "@angular/compiler-cli": "^18.2.4", + "@angular/compiler-cli": "^18.2.5", "@compodoc/compodoc": "^1.1.25", "@popperjs/core": "^2.11.8", "@types/jest": "^29.5.13", - "@typescript-eslint/eslint-plugin": "^8.5.0", - "@typescript-eslint/parser": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.6.0", + "@typescript-eslint/parser": "^8.6.0", "eslint": "^8.57.0", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", @@ -93,12 +93,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1802.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.4.tgz", - "integrity": "sha512-VH7AwGng1zuWPTJoH1IgHYeNhqZIgzlwDx39JPmArZAW/WZHDILWB7ipbTNw0R4U4VncrXJqDmMVex7NdHP6sg==", + "version": "0.1802.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.5.tgz", + "integrity": "sha512-c7sVoW85Yqj7IYvNKxtNSGS5I7gWpORorg/xxLZX3OkHWXDrwYbb5LN/2p5/Aytxyb0aXl4o5fFOu6CUwcaLUw==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", + "@angular-devkit/core": "18.2.5", "rxjs": "7.8.1" }, "engines": { @@ -108,16 +108,16 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.4.tgz", - "integrity": "sha512-zLDstS95Yb7iBA1ZCYe3LsOLpIhr0ZC3sZ03PhVvAGbVRGSbQNnhQRZLKMk+LDhYJiG+eNFQGLfU3RfZrGds7A==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.5.tgz", + "integrity": "sha512-dIvb0AHoRIMM6tLuG4t6lDDslSAYP77wqytodsN317UzFOuuCPernXbO8NJs+QHxj09nPsem1T5vnvpO2E/PVQ==", "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.4", - "@angular-devkit/build-webpack": "0.1802.4", - "@angular-devkit/core": "18.2.4", - "@angular/build": "18.2.4", + "@angular-devkit/architect": "0.1802.5", + "@angular-devkit/build-webpack": "0.1802.5", + "@angular-devkit/core": "18.2.5", + "@angular/build": "18.2.5", "@babel/core": "7.25.2", "@babel/generator": "7.25.0", "@babel/helper-annotate-as-pure": "7.24.7", @@ -128,7 +128,7 @@ "@babel/preset-env": "7.25.3", "@babel/runtime": "7.25.0", "@discoveryjs/json-ext": "0.6.1", - "@ngtools/webpack": "18.2.4", + "@ngtools/webpack": "18.2.5", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", @@ -168,7 +168,7 @@ "terser": "5.31.6", "tree-kill": "1.2.2", "tslib": "2.6.3", - "vite": "5.4.0", + "vite": "5.4.6", "watchpack": "2.4.1", "webpack": "5.94.0", "webpack-dev-middleware": "7.4.2", @@ -712,12 +712,12 @@ "license": "0BSD" }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1802.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.4.tgz", - "integrity": "sha512-juaDoguYccObm2xnzRDRlOtiL7ZyZcSAyiyls6QuO8hoo/h6phdHALJkUhI9+SIhCRQ6eUQtolC7hN3J+FZKnA==", + "version": "0.1802.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.5.tgz", + "integrity": "sha512-6qkcrWBdkxojCVHGWcdJaz4G+7QTjFvmc+3g8xvLc9sYvJq1I059gfXhDnC0FxiA0MT4cY/26ECYWUHTD5CJLQ==", "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.4", + "@angular-devkit/architect": "0.1802.5", "rxjs": "7.8.1" }, "engines": { @@ -731,9 +731,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.4.tgz", - "integrity": "sha512-svlgZ0vbLrfNJAQE5WePAutcYIyA7C0OfzKSTMsfV2X1I+1blYDaZIu/ocnHqofMHu6ZqdSaaU/p/rieqU8fcA==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.5.tgz", + "integrity": "sha512-r9TumPlJ8PvA2+yz4sp+bUHgtznaVKzhvXTN5qL1k4YP8LJ7iZWMR2FOP+HjukHZOTsenzmV9pszbogabqwoZQ==", "license": "MIT", "dependencies": { "ajv": "8.17.1", @@ -785,12 +785,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.4.tgz", - "integrity": "sha512-s2WdUhyLlKj5kOjb6vrvJg9/31KvgyRJGjy7PnzS43tpwF9MLuM3AYhuJsXHPhx+i0nyWn/Jnd8ZLjMzXljSxg==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.5.tgz", + "integrity": "sha512-NUmz2UQ1Xl4cf4j1AgkwIfsCjBzAPgfeC3IBrD29hSOBE1Y3j6auqjBkvw50v6mbSPxESND995Xy13HpK1Xflw==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", + "@angular-devkit/core": "18.2.5", "jsonc-parser": "3.3.1", "magic-string": "0.30.11", "ora": "5.4.1", @@ -928,9 +928,9 @@ } }, "node_modules/@angular/animations": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.4.tgz", - "integrity": "sha512-ajjXpLD+SyxbHnmhj2ZvYpXneviOjcBgU9L2UX4OVS0jVWxCNHLhJrcMqtqFHA6U5fPnhPNR9cmnt6tmqri0rA==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.5.tgz", + "integrity": "sha512-IlXtW/Nj48ZzjHUzH1TykZcSR64ScJx39T3IHnjV2z/bVATzZ36JGoadQHdqpJNKBodYJNgtJCGLCbgAvGWY2g==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -939,17 +939,17 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.4" + "@angular/core": "18.2.5" } }, "node_modules/@angular/build": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.4.tgz", - "integrity": "sha512-GVs7O7wxNMJCkqh6Vv2u9GEArWg9jyEt8Fofd6CJGzxKBYQ4hR5gjzL/lU6kNFiMcioS1wm1f6qtJtgilUO+9A==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.5.tgz", + "integrity": "sha512-XWkmjzgeUga0SJ0lYSYcTuYOWTyqcln2mNfBp7Ae/GZ+/7+APbedsIZEiZGZwveOIyOpTM5wguNSoe9khDl5Ig==", "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1802.4", + "@angular-devkit/architect": "0.1802.5", "@babel/core": "7.25.2", "@babel/helper-annotate-as-pure": "7.24.7", "@babel/helper-split-export-declaration": "7.24.7", @@ -971,7 +971,7 @@ "rollup": "4.20.0", "sass": "1.77.6", "semver": "7.6.3", - "vite": "5.4.0", + "vite": "5.4.6", "watchpack": "2.4.1" }, "engines": { @@ -1464,9 +1464,9 @@ } }, "node_modules/@angular/cdk": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.4.tgz", - "integrity": "sha512-o+TuxZDqStfkviEkCR05pVyP6R2RIruEs/45Cms76hlsIheMoxRaxir/yrHdh4tZESJJhcO/EVE+aymNIRWAfg==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.5.tgz", + "integrity": "sha512-HLg5cfrIrgNIJJ+0v3kLieHeLPJLFNOBO359holXOrKUPRG+XQ3CT8EzSvREFm1XkaSEsDC0+dnG0ouNhOPFpQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1481,17 +1481,17 @@ } }, "node_modules/@angular/cli": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.4.tgz", - "integrity": "sha512-n+Y2xlgcpTZ+MZmycf2b3ceVvANDJFkDEodobVtyG63WvGOhkZ3aGhT7sHguKpAQwJLicSf8zF2z+v1Yi0DvRw==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.5.tgz", + "integrity": "sha512-97uNs0HsOdnMaTlNJKFjIBUXw0wz43uYvSSKmIpBt7eq1LaPLju1G/qpDIHx2YwhMClPrXXrW2H/xdvqZiIw+w==", "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1802.4", - "@angular-devkit/core": "18.2.4", - "@angular-devkit/schematics": "18.2.4", + "@angular-devkit/architect": "0.1802.5", + "@angular-devkit/core": "18.2.5", + "@angular-devkit/schematics": "18.2.5", "@inquirer/prompts": "5.3.8", "@listr2/prompt-adapter-inquirer": "2.0.15", - "@schematics/angular": "18.2.4", + "@schematics/angular": "18.2.5", "@yarnpkg/lockfile": "1.1.0", "ini": "4.1.3", "jsonc-parser": "3.3.1", @@ -1514,9 +1514,9 @@ } }, "node_modules/@angular/common": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.4.tgz", - "integrity": "sha512-flUaKhdr8KvtjH0cLC6Rrjirt8GsiFlrmZLZplr784O3Gkei2VBBNFoopgmlEzbVGPiIG5QlFZH9yvah6JPQZw==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.5.tgz", + "integrity": "sha512-m+KJrtbFXTE36jP/po6UAMeUR/enQxRHpVGLCRcIcE7VWVH1ZcOvoW1yqh2A6k+KxWXeajlq/Z04nnMhcoxMRw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1525,14 +1525,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.4", + "@angular/core": "18.2.5", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.4.tgz", - "integrity": "sha512-o3ngFr1Bjt7cKOu4DSZJGCUF9YPTxJee97wFon2eNFj6FFNTmnGwAvsnJjHBMmk90fmZLC2/HpPdhYz7WprMZQ==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.5.tgz", + "integrity": "sha512-vcqe9x4dGGAnMfPhEpcZyiSVgAiqJeK80LqP1vWoAmBR+HeOqAilSv6SflcLAtuTzwgzMMAvD2T+SMCgUvaqww==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1541,7 +1541,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "18.2.4" + "@angular/core": "18.2.5" }, "peerDependenciesMeta": { "@angular/core": { @@ -1550,9 +1550,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.4.tgz", - "integrity": "sha512-BIp5zr+npqSs/4KWPxwKdn7+sjo008ieNOQDlXyQms9BKlxx/gDnj7W2TsxhrkDTYCIHF73fJZ7u2U8Qy4JWfw==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.5.tgz", + "integrity": "sha512-CCCtZobUTUfId/RTYtuDCw5R1oK0w65hdAUMRP1MdGmd8bb8DKJA86u1QCWwozL3rbXlIIX4ognQ6urQ43k/Gw==", "license": "MIT", "dependencies": { "@babel/core": "7.25.2", @@ -1573,14 +1573,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.2.4", + "@angular/compiler": "18.2.5", "typescript": ">=5.4 <5.6" } }, "node_modules/@angular/core": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.4.tgz", - "integrity": "sha512-ulYmYpI/ZVQ5BL38rBy4DS/9wgGWmVD9Uo6tcrLqCzt1G1G2nKwseZv009536pHfk6dj2HdPSkpcerhWh57DWw==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.5.tgz", + "integrity": "sha512-5BLVc5gXxzanQkADNS9WPsor3vNF5nQcyIHBi5VScErwM5vVZ7ATH1iZwaOg1ykDEVTFVhKDwD0X1aaqGDbhmQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1594,9 +1594,9 @@ } }, "node_modules/@angular/forms": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.4.tgz", - "integrity": "sha512-rlLhReauUz6jhLCEkGabLqqF6xLaTfvxafuj2ojzcqoKGSZcXDIM/UOSoWX756B8NtrpsuglpGBZjZlsrAZGsg==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.5.tgz", + "integrity": "sha512-ohKeH+EZCCIyGSiFYlraWLzssGAZc13P92cuYpXB62322PkcA5u0IT72mML9JWGKRqF2zteVsw4koWHVxXM5mA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1605,16 +1605,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.4", - "@angular/core": "18.2.4", - "@angular/platform-browser": "18.2.4", + "@angular/common": "18.2.5", + "@angular/core": "18.2.5", + "@angular/platform-browser": "18.2.5", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/localize": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.2.4.tgz", - "integrity": "sha512-3QgfYNwM4Dkd7sWu/JXZfOToporIrgdyi/G8T2zgTtArbvPNbZdSmihpSjKVmsDzB4ScXlOCH/sf0rLKIYkKwQ==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.2.5.tgz", + "integrity": "sha512-kteBBkSmmmpMrHAIlxFK/PB9HemJ8OBo/qAGOqCGbvPHLMHdR7cxaMGL+Lkya/QhwhqlhoxUcE5zFWXl7UslNg==", "license": "MIT", "dependencies": { "@babel/core": "7.25.2", @@ -1631,21 +1631,21 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "18.2.4", - "@angular/compiler-cli": "18.2.4" + "@angular/compiler": "18.2.5", + "@angular/compiler-cli": "18.2.5" } }, "node_modules/@angular/material": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.4.tgz", - "integrity": "sha512-F09145mI/EAHY9ngdnQTo3pFRmUoU/50i6cmddtL4cse0WidatoodQr0gZCksxhmpJgRy5mTcjh/LU2hShOgcA==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.5.tgz", + "integrity": "sha512-+Yz8ayKz1ALz2UvPrM33FHSUmrE0GKHn+Gg79l6NdC4eSrzAAYBVdLfQvCBWCgtdvs7IiegbCnnAJiqXVC1DDg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/animations": "^18.0.0 || ^19.0.0", - "@angular/cdk": "18.2.4", + "@angular/cdk": "18.2.5", "@angular/common": "^18.0.0 || ^19.0.0", "@angular/core": "^18.0.0 || ^19.0.0", "@angular/forms": "^18.0.0 || ^19.0.0", @@ -1654,9 +1654,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.4.tgz", - "integrity": "sha512-ddzq5MyPvFyTv0kUe8U9fbhE1nZtLYBCFKDqICrzHXiVRAdqLv6qtE5PtbURrdspSy1u/YEGV4LdkNJK3UgnZQ==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.5.tgz", + "integrity": "sha512-PoX9idwnOpTJBlujzZ2nFGOsmCnZzOH7uNSWIR7trdoq0b1AFXfrxlCQ36qWamk7bbhJI4H28L8YTmKew/nXDA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1665,9 +1665,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "18.2.4", - "@angular/common": "18.2.4", - "@angular/core": "18.2.4" + "@angular/animations": "18.2.5", + "@angular/common": "18.2.5", + "@angular/core": "18.2.5" }, "peerDependenciesMeta": { "@angular/animations": { @@ -1676,9 +1676,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.4.tgz", - "integrity": "sha512-0nA04zJueGzdnl37TJ7guDCrzxYS4fjqgvYKiOpFktpMHPuNrBlAQo5YA7u20HGFG3i47PQh7hEWhQaqcXXpQw==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.5.tgz", + "integrity": "sha512-5u0IuAt1r5e2u2vSKhp3phnaf6hH89B/q7GErfPse1sdDfNI6wHVppxai28PAfAj9gwooJun6MjFWhJFLzS44A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1687,16 +1687,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.4", - "@angular/compiler": "18.2.4", - "@angular/core": "18.2.4", - "@angular/platform-browser": "18.2.4" + "@angular/common": "18.2.5", + "@angular/compiler": "18.2.5", + "@angular/core": "18.2.5", + "@angular/platform-browser": "18.2.5" } }, "node_modules/@angular/router": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.4.tgz", - "integrity": "sha512-kYNHD3K1Xou2PRMqbG2tVahtMobgDlhwHdMB7G5oFHg6K13gQ2TmopF1U5A2wYtIMdsC+AkVGIJEOxQN8fmgcA==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.5.tgz", + "integrity": "sha512-OjZV1PTiSwT0ytmR0ykveLYzs4uQWf0EuIclZmWqM/bb8Q4P+gJl7/sya05nGnZsj6nHGOL0e/LhSZ3N+5p6qg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -1705,9 +1705,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "18.2.4", - "@angular/core": "18.2.4", - "@angular/platform-browser": "18.2.4", + "@angular/common": "18.2.5", + "@angular/core": "18.2.5", + "@angular/platform-browser": "18.2.5", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -5851,9 +5851,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.4.tgz", - "integrity": "sha512-JVDRexu3q7lg2oqJG36RtX7cqTheoZRwg2HhMV8hYXUDL0fyOrv2galwTCgXrx7vAjlx45L2uR2kuWbgW0VVcQ==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.5.tgz", + "integrity": "sha512-L0n4eHObeqEOYRfSP+e4SeF/dmwxOIFy9xYvYCOUwOLrW4b3+a1+kkT30pqyfL72LFtpf0cmUwaWEFIcWl5PCg==", "license": "MIT", "engines": { "node": "^18.19.1 || ^20.11.1 || >=22.0.0", @@ -6364,13 +6364,13 @@ ] }, "node_modules/@schematics/angular": { - "version": "18.2.4", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.4.tgz", - "integrity": "sha512-GxrPv4eOPrjMKoAVhch9eprW8H/DFhBy5Zgp7CgGui9NprYkkubxw/yyo11WfR5CFZ/q5AfsjV76dPCkhLwLmA==", + "version": "18.2.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.5.tgz", + "integrity": "sha512-tBXhk9OGT4U6VsBNbuCNl2ITDOF3NYdGrEieIHU+lHSkpJNGZUIGxCgXCETXkmXDq1pe4wFZSKelWjeqYDfX0g==", "license": "MIT", "dependencies": { - "@angular-devkit/core": "18.2.4", - "@angular-devkit/schematics": "18.2.4", + "@angular-devkit/core": "18.2.5", + "@angular-devkit/schematics": "18.2.5", "jsonc-parser": "3.3.1" }, "engines": { @@ -6761,9 +6761,9 @@ } }, "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", "license": "MIT" }, "node_modules/@types/raf": { @@ -6861,17 +6861,17 @@ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.5.0.tgz", - "integrity": "sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.6.0.tgz", + "integrity": "sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/type-utils": "8.5.0", - "@typescript-eslint/utils": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/scope-manager": "8.6.0", + "@typescript-eslint/type-utils": "8.6.0", + "@typescript-eslint/utils": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -6895,16 +6895,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.5.0.tgz", - "integrity": "sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.6.0.tgz", + "integrity": "sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/typescript-estree": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/scope-manager": "8.6.0", + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/typescript-estree": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0", "debug": "^4.3.4" }, "engines": { @@ -6924,14 +6924,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.5.0.tgz", - "integrity": "sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz", + "integrity": "sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0" + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6942,14 +6942,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.5.0.tgz", - "integrity": "sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.6.0.tgz", + "integrity": "sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.5.0", - "@typescript-eslint/utils": "8.5.0", + "@typescript-eslint/typescript-estree": "8.6.0", + "@typescript-eslint/utils": "8.6.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -6967,9 +6967,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.5.0.tgz", - "integrity": "sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.6.0.tgz", + "integrity": "sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==", "dev": true, "license": "MIT", "engines": { @@ -6981,14 +6981,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.5.0.tgz", - "integrity": "sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz", + "integrity": "sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/visitor-keys": "8.5.0", + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/visitor-keys": "8.6.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -7010,16 +7010,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.6.0.tgz", + "integrity": "sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.5.0", - "@typescript-eslint/types": "8.5.0", - "@typescript-eslint/typescript-estree": "8.5.0" + "@typescript-eslint/scope-manager": "8.6.0", + "@typescript-eslint/types": "8.6.0", + "@typescript-eslint/typescript-estree": "8.6.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -7033,13 +7033,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.5.0.tgz", - "integrity": "sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz", + "integrity": "sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.5.0", + "@typescript-eslint/types": "8.6.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -9534,9 +9534,10 @@ } }, "node_modules/dompurify": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.7.tgz", - "integrity": "sha512-kxxKlPEDa6Nc5WJi+qRgPbOAbgTpSULL+vI3NUXsZMlkJxTqYI9wg5ZTay2sFrdZRWHPWNi+EdAhcJf81WtoMQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.5.6.tgz", + "integrity": "sha512-zUTaUBO8pY4+iJMPE1B9XlO2tXVYIcEA4SNGtvDELzTSCQO7RzH+j7S180BmhmJId78lqGU2z19vgVx2Sxs/PQ==", + "license": "(MPL-2.0 OR Apache-2.0)", "optional": true }, "node_modules/domutils": { @@ -10604,9 +10605,10 @@ } }, "node_modules/fflate": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", - "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "license": "MIT" }, "node_modules/file-entry-cache": { "version": "6.0.1", @@ -14108,19 +14110,20 @@ ] }, "node_modules/jspdf": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.1.tgz", - "integrity": "sha512-hXObxz7ZqoyhxET78+XR34Xu2qFGrJJ2I2bE5w4SM8eFaFEkW2xcGRVUss360fYelwRSid/jT078kbNvmoW0QA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.5.2.tgz", + "integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.14.0", + "@babel/runtime": "^7.23.2", "atob": "^2.1.2", "btoa": "^1.2.1", - "fflate": "^0.4.8" + "fflate": "^0.8.1" }, "optionalDependencies": { "canvg": "^3.0.6", "core-js": "^3.6.0", - "dompurify": "^2.2.0", + "dompurify": "^2.5.4", "html2canvas": "^1.0.0-rc.5" } }, @@ -14890,9 +14893,9 @@ } }, "node_modules/memfs": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.11.1.tgz", - "integrity": "sha512-LZcMTBAgqUUKNXZagcZxvXXfgF1bHX7Y7nQ0QyEiNbRJgE29GhgPd8Yna1VQcLlPiHt/5RFJMWYN9Uv/VPNvjQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.12.0.tgz", + "integrity": "sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==", "license": "Apache-2.0", "dependencies": { "@jsonjoy.com/json-pack": "^1.0.3", @@ -16351,9 +16354,10 @@ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -17748,9 +17752,10 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -19066,14 +19071,14 @@ } }, "node_modules/vite": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz", - "integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==", + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", "license": "MIT", "dependencies": { "esbuild": "^0.21.3", - "postcss": "^8.4.40", - "rollup": "^4.13.0" + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -19124,6 +19129,34 @@ } } }, + "node_modules/vite/node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, "node_modules/vlq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 429b75b9..057ce0be 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -19,19 +19,19 @@ }, "private": true, "dependencies": { - "@angular-devkit/build-angular": "^18.2.4", - "@angular/animations": "^18.2.4", - "@angular/cdk": "^18.2.4", - "@angular/cli": "^18.2.4", - "@angular/common": "^18.2.4", - "@angular/compiler": "^18.2.4", - "@angular/core": "^18.2.4", - "@angular/forms": "^18.2.4", - "@angular/localize": "^18.2.4", - "@angular/material": "^18.2.4", - "@angular/platform-browser": "^18.2.4", - "@angular/platform-browser-dynamic": "^18.2.4", - "@angular/router": "^18.2.4", + "@angular-devkit/build-angular": "^18.2.5", + "@angular/animations": "^18.2.5", + "@angular/cdk": "^18.2.5", + "@angular/cli": "^18.2.5", + "@angular/common": "^18.2.5", + "@angular/compiler": "^18.2.5", + "@angular/core": "^18.2.5", + "@angular/forms": "^18.2.5", + "@angular/localize": "^18.2.5", + "@angular/material": "^18.2.5", + "@angular/platform-browser": "^18.2.5", + "@angular/platform-browser-dynamic": "^18.2.5", + "@angular/router": "^18.2.5", "@material/checkbox": "^15.0.0-canary.fff4066c6.0", "@ng-bootstrap/ng-bootstrap": "^17.0.1", "@ngneat/until-destroy": "^10.0.0", @@ -44,7 +44,7 @@ "html2canvas": "1.4.1", "jest-preset-angular": "^14.2.4", "jquery": "^3.7.1", - "jspdf": "^2.5.1", + "jspdf": "^2.5.2", "ngx-cookie-service": "^18.0.0", "ngx-logger": "~5.0.12", "ngx-owl-carousel-o": "^18.0.0", @@ -59,12 +59,12 @@ "@angular-eslint/eslint-plugin-template": "18.3.1", "@angular-eslint/schematics": "18.3.1", "@angular-eslint/template-parser": "18.3.1", - "@angular/compiler-cli": "^18.2.4", + "@angular/compiler-cli": "^18.2.5", "@compodoc/compodoc": "^1.1.25", "@popperjs/core": "^2.11.8", "@types/jest": "^29.5.13", - "@typescript-eslint/eslint-plugin": "^8.5.0", - "@typescript-eslint/parser": "^8.5.0", + "@typescript-eslint/eslint-plugin": "^8.6.0", + "@typescript-eslint/parser": "^8.6.0", "eslint": "^8.57.0", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2",