diff --git a/docker-compose.yml b/docker-compose.yml index 254c81b..e005620 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -184,7 +184,7 @@ services: retries: 5 prometheus: - image: prom/prometheus:v3.15.0@sha256:efd719c99d83b060d9daefdcf00360461adf279f45ef5391f8d111892118753e + image: prom/prometheus:v3.15.1@sha256:fa3302279710be2f21a8301ec17a8b4f2301fd829bd113839b3b6b02b6f191a2 container_name: pkgdiff-prometheus restart: always cap_drop: diff --git a/src/backend/Directory.Packages.props b/src/backend/Directory.Packages.props index cf7c775..b67da7c 100644 --- a/src/backend/Directory.Packages.props +++ b/src/backend/Directory.Packages.props @@ -14,7 +14,7 @@ - + @@ -33,7 +33,7 @@ - + diff --git a/src/backend/PkgDiff.API/packages.lock.json b/src/backend/PkgDiff.API/packages.lock.json index de19ff4..5db3645 100644 --- a/src/backend/PkgDiff.API/packages.lock.json +++ b/src/backend/PkgDiff.API/packages.lock.json @@ -99,14 +99,14 @@ }, "Swashbuckle.AspNetCore": { "type": "Direct", - "requested": "[10.3.0, )", - "resolved": "10.3.0", - "contentHash": "y76EI71vcrsXfjw+HrUJaf9lRYulqb+0vzRFkKDgCyzK8GY6O0F0mTDWUEK2tUYbpkifHTaQTpT4tkh7f/q1kA==", + "requested": "[10.3.1, )", + "resolved": "10.3.1", + "contentHash": "aCaJQAUxU2SZhN0lXqTfa+6/hJ7RdofjtbWu4oXSmsQ+z7WFJQvAAPrvn5rQI/ly8M/Vu381wtlbA1FUYseHPg==", "dependencies": { "Microsoft.Extensions.ApiDescription.Server": "10.0.0", - "Swashbuckle.AspNetCore.Swagger": "10.3.0", - "Swashbuckle.AspNetCore.SwaggerGen": "10.3.0", - "Swashbuckle.AspNetCore.SwaggerUI": "10.3.0" + "Swashbuckle.AspNetCore.Swagger": "10.3.1", + "Swashbuckle.AspNetCore.SwaggerGen": "10.3.1", + "Swashbuckle.AspNetCore.SwaggerUI": "10.3.1" } }, "AngleSharp.Css": { @@ -355,24 +355,24 @@ }, "Swashbuckle.AspNetCore.Swagger": { "type": "Transitive", - "resolved": "10.3.0", - "contentHash": "/W3Vdf8TeHAk6Pw6H/rduW6LQbzxKhUVnqtUFNHj/qUrLjlEZeVN8Q5WWgyGc3DLHRKlXm82kKCYfWRvx3/WCg==", + "resolved": "10.3.1", + "contentHash": "ZBsi9PZbuy25lUIs+4/V8pmuMqospRAX9zVmxzCm1ZRyKiXjsUL9YCyqdi7ezfDwxKuef6P0fUgVan9sLRcDJA==", "dependencies": { "Microsoft.OpenApi": "2.7.5" } }, "Swashbuckle.AspNetCore.SwaggerGen": { "type": "Transitive", - "resolved": "10.3.0", - "contentHash": "X0tSFT1OrlkhVQNqk1DNL+dQZmfvmXF2/syJ8whjORhVkPdZoyWC4445OG0VwnYoH9Q+oZaIblMBHX+Geb30Hw==", + "resolved": "10.3.1", + "contentHash": "DMamYj+m40rOgnGdAp+4iQ+NXIMup2oYVs/zIOZtal0Dar6CXjCF9/SkepEn42TKNO29wAx0xyLfOXj1VjEIXg==", "dependencies": { - "Swashbuckle.AspNetCore.Swagger": "10.3.0" + "Swashbuckle.AspNetCore.Swagger": "10.3.1" } }, "Swashbuckle.AspNetCore.SwaggerUI": { "type": "Transitive", - "resolved": "10.3.0", - "contentHash": "3qcin6S55lsFTsWf0vQO3P0bFc0tvk2EOkH+6wgJF9UQUk1WqsDUPEkexQE9Ievc+3zTPoYds9BTlvPMRbmkcQ==" + "resolved": "10.3.1", + "contentHash": "kXuMIVJBDD6qMwG78VUrKy4x5Ke98HU0Q023Sf2iSBO/x45c5BuByYPAExIs9UeVsjdGGgvLWU5jK8l6MO2Z0Q==" }, "System.CodeDom": { "type": "Transitive", @@ -453,7 +453,7 @@ "AngleSharp": "[1.8.5, )", "HtmlAgilityPack": "[1.13.1, )", "HtmlSanitizer": "[9.2.1039, )", - "Markdig": "[1.4.1, )", + "Markdig": "[1.5.0, )", "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore": "[10.0.13, )", "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "[10.0.13, )", "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.3, )", @@ -493,9 +493,9 @@ }, "Markdig": { "type": "CentralTransitive", - "requested": "[1.4.1, )", - "resolved": "1.4.1", - "contentHash": "laiWlBRnwVqQlY9eWR56+uteUVtR+LpGw0doMSpirFuxdplSi3V59UOGRTepJaE8hJvfKGcCoguIZ8jmUHcEnA==" + "requested": "[1.5.0, )", + "resolved": "1.5.0", + "contentHash": "oEm6N4PYFPUZiJ5e89993AE6hfC8EWRGD5M8nyoSJbwD4GgW818mjlQCk++SdTV4godaN50Ybcmm4j2Dp76oIQ==" }, "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore": { "type": "CentralTransitive", diff --git a/src/backend/PkgDiff.Infrastructure/packages.lock.json b/src/backend/PkgDiff.Infrastructure/packages.lock.json index 4c7b1af..09c4b4b 100644 --- a/src/backend/PkgDiff.Infrastructure/packages.lock.json +++ b/src/backend/PkgDiff.Infrastructure/packages.lock.json @@ -26,9 +26,9 @@ }, "Markdig": { "type": "Direct", - "requested": "[1.4.1, )", - "resolved": "1.4.1", - "contentHash": "laiWlBRnwVqQlY9eWR56+uteUVtR+LpGw0doMSpirFuxdplSi3V59UOGRTepJaE8hJvfKGcCoguIZ8jmUHcEnA==" + "requested": "[1.5.0, )", + "resolved": "1.5.0", + "contentHash": "oEm6N4PYFPUZiJ5e89993AE6hfC8EWRGD5M8nyoSJbwD4GgW818mjlQCk++SdTV4godaN50Ybcmm4j2Dp76oIQ==" }, "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore": { "type": "Direct", diff --git a/src/backend/PkgDiff.Tests/packages.lock.json b/src/backend/PkgDiff.Tests/packages.lock.json index 92a6bd1..f196ebf 100644 --- a/src/backend/PkgDiff.Tests/packages.lock.json +++ b/src/backend/PkgDiff.Tests/packages.lock.json @@ -253,24 +253,24 @@ }, "Swashbuckle.AspNetCore.Swagger": { "type": "Transitive", - "resolved": "10.3.0", - "contentHash": "/W3Vdf8TeHAk6Pw6H/rduW6LQbzxKhUVnqtUFNHj/qUrLjlEZeVN8Q5WWgyGc3DLHRKlXm82kKCYfWRvx3/WCg==", + "resolved": "10.3.1", + "contentHash": "ZBsi9PZbuy25lUIs+4/V8pmuMqospRAX9zVmxzCm1ZRyKiXjsUL9YCyqdi7ezfDwxKuef6P0fUgVan9sLRcDJA==", "dependencies": { "Microsoft.OpenApi": "2.7.5" } }, "Swashbuckle.AspNetCore.SwaggerGen": { "type": "Transitive", - "resolved": "10.3.0", - "contentHash": "X0tSFT1OrlkhVQNqk1DNL+dQZmfvmXF2/syJ8whjORhVkPdZoyWC4445OG0VwnYoH9Q+oZaIblMBHX+Geb30Hw==", + "resolved": "10.3.1", + "contentHash": "DMamYj+m40rOgnGdAp+4iQ+NXIMup2oYVs/zIOZtal0Dar6CXjCF9/SkepEn42TKNO29wAx0xyLfOXj1VjEIXg==", "dependencies": { - "Swashbuckle.AspNetCore.Swagger": "10.3.0" + "Swashbuckle.AspNetCore.Swagger": "10.3.1" } }, "Swashbuckle.AspNetCore.SwaggerUI": { "type": "Transitive", - "resolved": "10.3.0", - "contentHash": "3qcin6S55lsFTsWf0vQO3P0bFc0tvk2EOkH+6wgJF9UQUk1WqsDUPEkexQE9Ievc+3zTPoYds9BTlvPMRbmkcQ==" + "resolved": "10.3.1", + "contentHash": "kXuMIVJBDD6qMwG78VUrKy4x5Ke98HU0Q023Sf2iSBO/x45c5BuByYPAExIs9UeVsjdGGgvLWU5jK8l6MO2Z0Q==" }, "System.Security.AccessControl": { "type": "Transitive", @@ -364,7 +364,7 @@ "PkgDiff.Application": "[1.0.0, )", "PkgDiff.Infrastructure": "[1.0.0, )", "PkgDiff.Shared": "[1.0.0, )", - "Swashbuckle.AspNetCore": "[10.3.0, )", + "Swashbuckle.AspNetCore": "[10.3.1, )", "prometheus-net.AspNetCore": "[8.2.1, )" } }, @@ -389,7 +389,7 @@ "AngleSharp": "[1.8.5, )", "HtmlAgilityPack": "[1.13.1, )", "HtmlSanitizer": "[9.2.1039, )", - "Markdig": "[1.4.1, )", + "Markdig": "[1.5.0, )", "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore": "[10.0.13, )", "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "[10.0.13, )", "Npgsql.EntityFrameworkCore.PostgreSQL": "[10.0.3, )", @@ -459,9 +459,9 @@ }, "Markdig": { "type": "CentralTransitive", - "requested": "[1.4.1, )", - "resolved": "1.4.1", - "contentHash": "laiWlBRnwVqQlY9eWR56+uteUVtR+LpGw0doMSpirFuxdplSi3V59UOGRTepJaE8hJvfKGcCoguIZ8jmUHcEnA==" + "requested": "[1.5.0, )", + "resolved": "1.5.0", + "contentHash": "oEm6N4PYFPUZiJ5e89993AE6hfC8EWRGD5M8nyoSJbwD4GgW818mjlQCk++SdTV4godaN50Ybcmm4j2Dp76oIQ==" }, "Microsoft.AspNetCore.Authentication.JwtBearer": { "type": "CentralTransitive", @@ -606,14 +606,14 @@ }, "Swashbuckle.AspNetCore": { "type": "CentralTransitive", - "requested": "[10.3.0, )", - "resolved": "10.3.0", - "contentHash": "y76EI71vcrsXfjw+HrUJaf9lRYulqb+0vzRFkKDgCyzK8GY6O0F0mTDWUEK2tUYbpkifHTaQTpT4tkh7f/q1kA==", + "requested": "[10.3.1, )", + "resolved": "10.3.1", + "contentHash": "aCaJQAUxU2SZhN0lXqTfa+6/hJ7RdofjtbWu4oXSmsQ+z7WFJQvAAPrvn5rQI/ly8M/Vu381wtlbA1FUYseHPg==", "dependencies": { "Microsoft.Extensions.ApiDescription.Server": "10.0.0", - "Swashbuckle.AspNetCore.Swagger": "10.3.0", - "Swashbuckle.AspNetCore.SwaggerGen": "10.3.0", - "Swashbuckle.AspNetCore.SwaggerUI": "10.3.0" + "Swashbuckle.AspNetCore.Swagger": "10.3.1", + "Swashbuckle.AspNetCore.SwaggerGen": "10.3.1", + "Swashbuckle.AspNetCore.SwaggerUI": "10.3.1" } }, "System.IdentityModel.Tokens.Jwt": { diff --git a/src/frontend/Dockerfile b/src/frontend/Dockerfile index a648f34..f28eb01 100644 --- a/src/frontend/Dockerfile +++ b/src/frontend/Dockerfile @@ -1,5 +1,5 @@ # This stage's Node binary also runs the render server in the final image. -FROM node:22.23.3-alpine@sha256:0a7108bf6c7bf5de370ffb1a3ed6be93d405b43ff159f681a8d18c0e2bc2e402 AS build +FROM node:22.23.4-alpine@sha256:fe4f6d74e20370acb04ad889077d14d0f64a9c8ea6a42bc60cddf1e844699914 AS build WORKDIR /app COPY package.json package-lock.json ./ diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index 2b2c00e..bdc08e8 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -26,14 +26,14 @@ }, "devDependencies": { "@angular/build": "^21.2.27", - "@angular/cli": "^21.2.27", + "@angular/cli": "^21.2.28", "@angular/compiler-cli": "^21.2.25", "@tailwindcss/typography": "^0.5.20", "@types/express": "^5.0.6", "@types/node": "^22.20.5", "autoprefixer": "^10.6.1", "jsdom": "^27.4.0", - "postcss": "^8.5.30", + "postcss": "^8.5.31", "tailwindcss": "^3.4.19", "typescript": "~5.9.3", "vitest": "^4.1.12" @@ -283,13 +283,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.2102.27", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.27.tgz", - "integrity": "sha512-nMxXG8j9Pb+wYdn4WuNdf1xC04Nk8EfRaA1CH9PAvbmk3S07tvymrWpoGjUf+8V0pMQk5vubGQLG4pYhsxxLNQ==", + "version": "0.2102.28", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.28.tgz", + "integrity": "sha512-hgUMgAkXTC9YmDU2LEBonOrjtnBWLcg58cSvl8cgTjOAGVsiUTr8w46tzaN4SnaTScSTI9NflcnZ4q+jq4Ustg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.2.27", + "@angular-devkit/core": "21.2.28", "rxjs": "7.8.2" }, "bin": { @@ -302,9 +302,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "21.2.27", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.27.tgz", - "integrity": "sha512-phny+RUMoyntTPW/F0Mx9vUlftptyePX1aPsd4s53h227qs/m66NMPO+0MzQpi2YGyHfgqv905cB6X4h096y7w==", + "version": "21.2.28", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.28.tgz", + "integrity": "sha512-CAunrxW1j4/Ctr7vDDwc+00yn6wbjiJNsZtNxAyxCvWag2AtVmYlCPiOXa+lnvQpjTTXFySR3Oy02wX9PatBKw==", "dev": true, "license": "MIT", "dependencies": { @@ -330,13 +330,13 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "21.2.27", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.27.tgz", - "integrity": "sha512-plZD0b3TlITN3v/Z9Tk2dMlU1Cu1vH4dgx3aehz4cdGrJoKEdjmJ+cgEjiGRjrgiRzKO3jGucFM/gZ3g0+aIwQ==", + "version": "21.2.28", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.2.28.tgz", + "integrity": "sha512-ubFSRtrRzEi4vkAvRFiLzgy0vEdydqn/oZicTApPvtsKO3JOGWcbcR5NwL0q63AJy64qagcWmGyLGdSjs7J1wA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.2.27", + "@angular-devkit/core": "21.2.28", "jsonc-parser": "3.3.1", "magic-string": "0.30.21", "ora": "9.3.0", @@ -448,53 +448,6 @@ } } }, - "node_modules/@angular/build/node_modules/@angular-devkit/architect": { - "version": "0.2102.28", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2102.28.tgz", - "integrity": "sha512-hgUMgAkXTC9YmDU2LEBonOrjtnBWLcg58cSvl8cgTjOAGVsiUTr8w46tzaN4SnaTScSTI9NflcnZ4q+jq4Ustg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@angular-devkit/core": "21.2.28", - "rxjs": "7.8.2" - }, - "bin": { - "architect": "bin/cli.js" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/build/node_modules/@angular-devkit/core": { - "version": "21.2.28", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.2.28.tgz", - "integrity": "sha512-CAunrxW1j4/Ctr7vDDwc+00yn6wbjiJNsZtNxAyxCvWag2AtVmYlCPiOXa+lnvQpjTTXFySR3Oy02wX9PatBKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "8.18.0", - "ajv-formats": "3.0.1", - "jsonc-parser": "3.3.1", - "picomatch": "4.0.4", - "rxjs": "7.8.2", - "source-map": "0.7.6" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0", - "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", - "yarn": ">= 1.13.0" - }, - "peerDependencies": { - "chokidar": "^5.0.0" - }, - "peerDependenciesMeta": { - "chokidar": { - "optional": true - } - } - }, "node_modules/@angular/cdk": { "version": "21.2.14", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.2.14.tgz", @@ -512,19 +465,19 @@ } }, "node_modules/@angular/cli": { - "version": "21.2.27", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.27.tgz", - "integrity": "sha512-B/RtfOhx/oMVXmmdea41T498YGPKA0mBv19gzypjEsw00o2LP9ALdzooIqZBPKq5N8gYHE5vuJcCx5OUkjNHHg==", + "version": "21.2.28", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.2.28.tgz", + "integrity": "sha512-5PDbWyivOzobaVT1oVqEsOaDjW/honAKCjten4dlWO1q8O2/GKcLa29niaNnuSX3BKN6TsYmSo2JmeOuDXWhDg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2102.27", - "@angular-devkit/core": "21.2.27", - "@angular-devkit/schematics": "21.2.27", + "@angular-devkit/architect": "0.2102.28", + "@angular-devkit/core": "21.2.28", + "@angular-devkit/schematics": "21.2.28", "@inquirer/prompts": "7.10.1", "@listr2/prompt-adapter-inquirer": "3.0.5", - "@modelcontextprotocol/sdk": "1.31.0", - "@schematics/angular": "21.2.27", + "@modelcontextprotocol/sdk": "1.32.1", + "@schematics/angular": "21.2.28", "@yarnpkg/lockfile": "1.1.0", "algoliasearch": "5.48.1", "ini": "6.0.0", @@ -1251,7 +1204,6 @@ "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -3935,14 +3887,14 @@ ] }, "node_modules/@schematics/angular": { - "version": "21.2.27", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.2.27.tgz", - "integrity": "sha512-QFI9VIlguYqubM/kOAO5Te++QAzcdI8cPkKpkcxCarskd3NecXya1dF1thSFj9f7UjZVOc7JKb6gbsjVH7n90A==", + "version": "21.2.28", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.2.28.tgz", + "integrity": "sha512-Y1IsbJYPhXdbXx48gWbXOQMFSWmH4/Hxvj12R7zFpakbgRfKo+LLcnljqVEm2AlYVh8v0m+iveK4//8lwvQIFA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.2.27", - "@angular-devkit/schematics": "21.2.27", + "@angular-devkit/core": "21.2.28", + "@angular-devkit/schematics": "21.2.28", "jsonc-parser": "3.3.1" }, "engines": { @@ -7822,9 +7774,9 @@ } }, "node_modules/postcss": { - "version": "8.5.30", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.30.tgz", - "integrity": "sha512-zkd+e9S1AQHhmaBKye9zlFHWjOwVgqXl1q3ECYy8561K7qxR2cREf/STLskulBFd78k6AOFeA+ff1TtEzk9bAA==", + "version": "8.5.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.31.tgz", + "integrity": "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg==", "dev": true, "funding": [ { diff --git a/src/frontend/package.json b/src/frontend/package.json index 9a39b9a..bef2c87 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -43,14 +43,14 @@ }, "devDependencies": { "@angular/build": "^21.2.27", - "@angular/cli": "^21.2.27", + "@angular/cli": "^21.2.28", "@angular/compiler-cli": "^21.2.25", "@tailwindcss/typography": "^0.5.20", "@types/express": "^5.0.6", "@types/node": "^22.20.5", "autoprefixer": "^10.6.1", "jsdom": "^27.4.0", - "postcss": "^8.5.30", + "postcss": "^8.5.31", "tailwindcss": "^3.4.19", "typescript": "~5.9.3", "vitest": "^4.1.12"