From 97cd5ab61e11a97e3d910a3d524d097c2eae434e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 23:08:16 +0000 Subject: [PATCH 01/26] chore(deps): bump the spring-platform group with 2 updates Bumps the spring-platform group with 2 updates: [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) and [org.springframework.cloud:spring-cloud-dependencies](https://github.com/spring-cloud/spring-cloud-release). Updates `org.springframework.boot:spring-boot-starter-parent` from 3.5.14 to 4.0.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.5.14...v4.0.6) Updates `org.springframework.cloud:spring-cloud-dependencies` from 2025.0.2 to 2025.1.1 - [Release notes](https://github.com/spring-cloud/spring-cloud-release/releases) - [Commits](https://github.com/spring-cloud/spring-cloud-release/compare/v2025.0.2...v2025.1.1) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-version: 4.0.6 dependency-type: direct:production update-type: version-update:semver-major dependency-group: spring-platform - dependency-name: org.springframework.cloud:spring-cloud-dependencies dependency-version: 2025.1.1 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: spring-platform ... Signed-off-by: dependabot[bot] --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 16306a98..9d64dd53 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,4 @@ - + @@ -7,7 +7,7 @@ org.springframework.boot spring-boot-starter-parent - 3.5.14 + 4.0.6 @@ -35,7 +35,7 @@ 21 21 - 2025.0.2 + 2025.1.1 4.1.133.Final 10.1.54 42.7.11 From 75236cb1f6423b1c43e445ea1183f00919c9dcfa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 23:23:12 +0000 Subject: [PATCH 02/26] chore(deps-dev): bump @playwright/test Bumps the playwright group in /frontend with 1 update: [@playwright/test](https://github.com/microsoft/playwright). Updates `@playwright/test` from 1.57.0 to 1.60.0 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](https://github.com/microsoft/playwright/compare/v1.57.0...v1.60.0) --- updated-dependencies: - dependency-name: "@playwright/test" dependency-version: 1.60.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: playwright ... Signed-off-by: dependabot[bot] --- frontend/package-lock.json | 39 ++++++++++++++++---------------------- frontend/package.json | 2 +- 2 files changed, 17 insertions(+), 24 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2e77e36a..7207599f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -19,7 +19,7 @@ "devDependencies": { "@axe-core/playwright": "^4.10.0", "@next/bundle-analyzer": "^16.2.6", - "@playwright/test": "1.57.0", + "@playwright/test": "1.60.0", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.3.0", "@types/jsdom": "^28.0.3", @@ -182,7 +182,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -206,7 +205,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -865,14 +863,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.57.0.tgz", - "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", + "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { - "playwright": "1.57.0" + "playwright": "1.60.0" }, "bin": { "playwright": "cli.js" @@ -909,7 +906,6 @@ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -1021,7 +1017,6 @@ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1032,7 +1027,6 @@ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -1056,7 +1050,8 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/acorn": { "version": "8.16.0", @@ -1335,6 +1330,7 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.2.tgz", "integrity": "sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==", "license": "(MPL-2.0 OR Apache-2.0)", + "peer": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -1501,7 +1497,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -1801,6 +1796,7 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", "license": "MIT", + "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -1976,13 +1972,13 @@ "license": "ISC" }, "node_modules/playwright": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.57.0.tgz", - "integrity": "sha512-ilYQj1s8sr2ppEJ2YVadYBN0Mb3mdo9J0wQ+UuDhzYqURwSoW4n1Xs5vs7ORwgDGmyEh33tRMeS8KhdkMoLXQw==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", + "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", "devOptional": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.57.0" + "playwright-core": "1.60.0" }, "bin": { "playwright": "cli.js" @@ -1995,12 +1991,11 @@ } }, "node_modules/playwright-core": { - "version": "1.57.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.57.0.tgz", - "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", + "version": "1.60.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", + "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "playwright-core": "cli.js" }, @@ -2089,7 +2084,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -2099,7 +2093,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, diff --git a/frontend/package.json b/frontend/package.json index ad5654d8..7c1088ac 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -38,7 +38,7 @@ "devDependencies": { "@axe-core/playwright": "^4.10.0", "@next/bundle-analyzer": "^16.2.6", - "@playwright/test": "1.57.0", + "@playwright/test": "1.60.0", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.3.0", "@types/jsdom": "^28.0.3", From 0e7e0bfaa9719ebc62634f976262d4cf129b8a95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 23:23:19 +0000 Subject: [PATCH 03/26] chore(deps-dev): bump jsdom from 25.0.1 to 29.1.1 in /frontend Bumps [jsdom](https://github.com/jsdom/jsdom) from 25.0.1 to 29.1.1. - [Release notes](https://github.com/jsdom/jsdom/releases) - [Commits](https://github.com/jsdom/jsdom/compare/v25.0.1...v29.1.1) --- updated-dependencies: - dependency-name: jsdom dependency-version: 29.1.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- frontend/package-lock.json | 788 ++++++++++++------------------------- frontend/package.json | 2 +- 2 files changed, 248 insertions(+), 542 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2e77e36a..c9ca488c 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -28,24 +28,61 @@ "@types/react-dom": "19.2.3", "@types/sockjs-client": "^1.5.4", "fast-check": "^3.23.0", - "jsdom": "^25.0.1", + "jsdom": "^29.1.1", "typescript": "6.0.3" } }, "node_modules/@asamuzakjp/css-color": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", - "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "version": "5.1.11", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-5.1.11.tgz", + "integrity": "sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^2.1.3", - "@csstools/css-color-parser": "^3.0.9", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "lru-cache": "^10.4.3" + "@asamuzakjp/generational-cache": "^1.0.1", + "@csstools/css-calc": "^3.2.0", + "@csstools/css-color-parser": "^4.1.0", + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-7.1.1.tgz", + "integrity": "sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/generational-cache": "^1.0.1", + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.2.1", + "is-potential-custom-element-name": "^1.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, + "node_modules/@asamuzakjp/generational-cache": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/generational-cache/-/generational-cache-1.0.1.tgz", + "integrity": "sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "dev": true, + "license": "MIT" + }, "node_modules/@axe-core/playwright": { "version": "4.11.3", "resolved": "https://registry.npmjs.org/@axe-core/playwright/-/playwright-4.11.3.tgz", @@ -94,10 +131,23 @@ "node": ">=6.9.0" } }, + "node_modules/@bramus/specificity": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@bramus/specificity/-/specificity-2.4.2.tgz", + "integrity": "sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "^3.0.0" + }, + "bin": { + "specificity": "bin/cli.js" + } + }, "node_modules/@csstools/color-helpers": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", - "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.0.2.tgz", + "integrity": "sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==", "dev": true, "funding": [ { @@ -111,13 +161,13 @@ ], "license": "MIT-0", "engines": { - "node": ">=18" + "node": ">=20.19.0" } }, "node_modules/@csstools/css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", - "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.2.1.tgz", + "integrity": "sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==", "dev": true, "funding": [ { @@ -131,17 +181,17 @@ ], "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-color-parser": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", - "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.1.1.tgz", + "integrity": "sha512-eZ5XOtyhK+mggRafYUWzA0tvaYOFgdY8AkgQiCJF9qNAePnUo/zmsqqYubBBb3sQ8uNUaSKTY9s9klfRaAXL0g==", "dev": true, "funding": [ { @@ -155,21 +205,21 @@ ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.1.0", - "@csstools/css-calc": "^2.1.4" + "@csstools/color-helpers": "^6.0.2", + "@csstools/css-calc": "^3.2.1" }, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.5", - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-parser-algorithms": "^4.0.0", + "@csstools/css-tokenizer": "^4.0.0" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", - "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-4.0.0.tgz", + "integrity": "sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==", "dev": true, "funding": [ { @@ -182,18 +232,42 @@ } ], "license": "MIT", - "peer": true, "engines": { - "node": ">=18" + "node": ">=20.19.0" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.4" + "@csstools/css-tokenizer": "^4.0.0" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.4.tgz", + "integrity": "sha512-wgsqt92b7C7tQhIdPNxj0n9zuUbQlvAuI1exyzeNrOKOi62SD7ren8zqszmpVREjAOqg8cD2FqYhQfAuKjk4sw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "peerDependencies": { + "css-tree": "^3.2.1" + }, + "peerDependenciesMeta": { + "css-tree": { + "optional": true + } } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", - "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", + "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", "dev": true, "funding": [ { @@ -206,9 +280,8 @@ } ], "license": "MIT", - "peer": true, "engines": { - "node": ">=18" + "node": ">=20.19.0" } }, "node_modules/@discoveryjs/json-ext": { @@ -231,6 +304,24 @@ "tslib": "^2.4.0" } }, + "node_modules/@exodus/bytes": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.0.tgz", + "integrity": "sha512-UY0nlA+feH81UGSHv92sLEPLCeZFjXOuHhrIo0HQydScuQc8s0A7kL/UdgwgDq8g8ilksmuoF35YVTNphV2aBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "@noble/hashes": "^1.8.0 || ^2.0.0" + }, + "peerDependenciesMeta": { + "@noble/hashes": { + "optional": true + } + } + }, "node_modules/@img/colour": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz", @@ -870,7 +961,6 @@ "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "playwright": "1.57.0" }, @@ -909,7 +999,6 @@ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -972,32 +1061,6 @@ "undici-types": "^7.21.0" } }, - "node_modules/@types/jsdom/node_modules/entities": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", - "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=20.19.0" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/@types/jsdom/node_modules/parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", - "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^8.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/@types/jsdom/node_modules/undici-types": { "version": "7.25.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.25.0.tgz", @@ -1021,7 +1084,6 @@ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1032,7 +1094,6 @@ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -1056,7 +1117,8 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/acorn": { "version": "8.16.0", @@ -1084,16 +1146,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1127,13 +1179,6 @@ "dequal": "^2.0.3" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, "node_modules/axe-core": { "version": "4.11.4", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.4.tgz", @@ -1156,18 +1201,14 @@ "node": ">=6.0.0" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", "dev": true, "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" + "require-from-string": "^2.0.2" } }, "node_modules/caniuse-lite": { @@ -1196,19 +1237,6 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -1219,27 +1247,20 @@ "node": ">= 10" } }, - "node_modules/cssstyle": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", - "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", + "node_modules/css-tree": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^3.2.0", - "rrweb-cssom": "^0.8.0" + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=18" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/cssstyle/node_modules/rrweb-cssom": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", - "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", - "dev": true, - "license": "MIT" - }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -1248,17 +1269,17 @@ "license": "MIT" }, "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", + "integrity": "sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.0" }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/debounce": { @@ -1268,24 +1289,6 @@ "dev": true, "license": "MIT" }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/decimal.js": { "version": "10.6.0", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", @@ -1293,16 +1296,6 @@ "dev": true, "license": "MIT" }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -1335,25 +1328,11 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.2.tgz", "integrity": "sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==", "license": "(MPL-2.0 OR Apache-2.0)", + "peer": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -1362,67 +1341,18 @@ "license": "MIT" }, "node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", + "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", "dev": true, "license": "BSD-2-Clause", "engines": { - "node": ">=0.12" + "node": ">=20.19.0" }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -1480,28 +1410,10 @@ "node": ">=0.8.0" } }, - "node_modules/form-data": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "hasown": "^2.0.2", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -1512,68 +1424,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", @@ -1590,59 +1440,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", - "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", + "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-encoding": "^3.1.1" + "@exodus/bytes": "^1.6.0" }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/html-escaper": { @@ -1658,47 +1466,6 @@ "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "license": "MIT" }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -1730,39 +1497,39 @@ "license": "MIT" }, "node_modules/jsdom": { - "version": "25.0.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", - "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==", + "version": "29.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-29.1.1.tgz", + "integrity": "sha512-ECi4Fi2f7BdJtUKTflYRTiaMxIB0O6zfR1fX0GXpUrf6flp8QIYn1UT20YQqdSOfk2dfkCwS8LAFoJDEppNK5Q==", "dev": true, "license": "MIT", "dependencies": { - "cssstyle": "^4.1.0", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.5", + "@asamuzakjp/css-color": "^5.1.11", + "@asamuzakjp/dom-selector": "^7.1.1", + "@bramus/specificity": "^2.4.2", + "@csstools/css-syntax-patches-for-csstree": "^1.1.3", + "@exodus/bytes": "^1.15.0", + "css-tree": "^3.2.1", + "data-urls": "^7.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^6.0.0", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.12", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.7.1", + "lru-cache": "^11.3.5", + "parse5": "^8.0.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^5.0.0", + "tough-cookie": "^6.0.1", + "undici": "^7.25.0", "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0", - "ws": "^8.18.0", + "webidl-conversions": "^8.0.1", + "whatwg-mimetype": "^5.0.0", + "whatwg-url": "^16.0.1", "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=18" + "node": "^20.19.0 || ^22.13.0 || >=24.0.0" }, "peerDependencies": { - "canvas": "^2.11.2" + "canvas": "^3.0.0" }, "peerDependenciesMeta": { "canvas": { @@ -1771,11 +1538,14 @@ } }, "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "11.3.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.3.6.tgz", + "integrity": "sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==", "dev": true, - "license": "ISC" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" + } }, "node_modules/lucide-react": { "version": "1.14.0", @@ -1801,6 +1571,7 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", "license": "MIT", + "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -1808,38 +1579,12 @@ "node": ">= 18" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/mdn-data": { + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } + "license": "CC0-1.0" }, "node_modules/monaco-editor": { "version": "0.55.1", @@ -1939,13 +1684,6 @@ } } }, - "node_modules/nwsapi": { - "version": "2.2.23", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", - "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -1957,13 +1695,13 @@ } }, "node_modules/parse5": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", - "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", + "integrity": "sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==", "dev": true, "license": "MIT", "dependencies": { - "entities": "^6.0.0" + "entities": "^8.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -2000,7 +1738,6 @@ "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "playwright-core": "cli.js" }, @@ -2089,7 +1826,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -2099,7 +1835,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -2114,19 +1849,22 @@ "dev": true, "license": "MIT" }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "license": "MIT" }, - "node_modules/rrweb-cssom": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", - "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", - "dev": true, - "license": "MIT" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -2147,13 +1885,6 @@ ], "license": "MIT" }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -2320,22 +2051,22 @@ "license": "MIT" }, "node_modules/tldts": { - "version": "6.1.86", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", - "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.30.tgz", + "integrity": "sha512-ELrFxuqsDdHUwoh0XxDbxuLD3Wnz49Z57IFvTtvWy1hJdcMZjXLIuonjilCiWHlT2GbE4Wlv1wKVTzDFnXH1aw==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^6.1.86" + "tldts-core": "^7.0.30" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "6.1.86", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", - "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "version": "7.0.30", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.30.tgz", + "integrity": "sha512-uiHN8PIB1VmWyS98eZYja4xzlYqeFZVjb4OuYlJQnZAuJhMw4PbKQOKgHKhBdJR3FE/t5mUQ1Kd80++B+qhD1Q==", "dev": true, "license": "MIT" }, @@ -2350,29 +2081,29 @@ } }, "node_modules/tough-cookie": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", - "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.1.tgz", + "integrity": "sha512-LktZQb3IeoUWB9lqR5EWTHgW/VTITCXg4D21M+lvybRVdylLrRMnqaIONLVb5mav8vM19m44HIcGq4qASeu2Qw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "tldts": "^6.1.32" + "tldts": "^7.0.5" }, "engines": { "node": ">=16" } }, "node_modules/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", "dev": true, "license": "MIT", "dependencies": { "punycode": "^2.3.1" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/tslib": { @@ -2395,6 +2126,16 @@ "node": ">=14.17" } }, + "node_modules/undici": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", @@ -2426,13 +2167,13 @@ } }, "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.1.tgz", + "integrity": "sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==", "dev": true, "license": "BSD-2-Clause", "engines": { - "node": ">=12" + "node": ">=20" } }, "node_modules/webpack-bundle-analyzer": { @@ -2508,64 +2249,29 @@ "node": ">=0.8.0" } }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-5.0.0.tgz", + "integrity": "sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-16.0.1.tgz", + "integrity": "sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" + "@exodus/bytes": "^1.11.0", + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.1" }, "engines": { - "node": ">=18" - } - }, - "node_modules/ws": { - "version": "8.20.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz", - "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, "node_modules/xml-name-validator": { diff --git a/frontend/package.json b/frontend/package.json index ad5654d8..745faa9b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -47,7 +47,7 @@ "@types/react-dom": "19.2.3", "@types/sockjs-client": "^1.5.4", "fast-check": "^3.23.0", - "jsdom": "^25.0.1", + "jsdom": "^29.1.1", "typescript": "6.0.3" }, "overrides": { From 24de824a2ae95fa8af74e3c0a0f4e246553cdb2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 23:23:25 +0000 Subject: [PATCH 04/26] chore(deps-dev): bump fast-check from 3.23.2 to 4.8.0 in /frontend Bumps [fast-check](https://github.com/dubzzz/fast-check/tree/HEAD/packages/fast-check) from 3.23.2 to 4.8.0. - [Release notes](https://github.com/dubzzz/fast-check/releases) - [Changelog](https://github.com/dubzzz/fast-check/blob/main/packages/fast-check/CHANGELOG.md) - [Commits](https://github.com/dubzzz/fast-check/commits/v4.8.0/packages/fast-check) --- updated-dependencies: - dependency-name: fast-check dependency-version: 4.8.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- frontend/package-lock.json | 33 +++++++++++++-------------------- frontend/package.json | 2 +- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2e77e36a..d7621580 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -27,7 +27,7 @@ "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "@types/sockjs-client": "^1.5.4", - "fast-check": "^3.23.0", + "fast-check": "^4.8.0", "jsdom": "^25.0.1", "typescript": "6.0.3" } @@ -182,7 +182,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -206,7 +205,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -870,7 +868,6 @@ "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "playwright": "1.57.0" }, @@ -909,7 +906,6 @@ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -1021,7 +1017,6 @@ "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1032,7 +1027,6 @@ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -1056,7 +1050,8 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/acorn": { "version": "8.16.0", @@ -1335,6 +1330,7 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.2.tgz", "integrity": "sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==", "license": "(MPL-2.0 OR Apache-2.0)", + "peer": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -1446,9 +1442,9 @@ } }, "node_modules/fast-check": { - "version": "3.23.2", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.23.2.tgz", - "integrity": "sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.8.0.tgz", + "integrity": "sha512-GOJ158CUMnN6cSahsv4+ExARvIDuzzinFjkp0E9WtiBa5zcVeLozVkWaE4IzFcc+Y48Wp1EDlUZsXRyAztQcSg==", "dev": true, "funding": [ { @@ -1462,10 +1458,10 @@ ], "license": "MIT", "dependencies": { - "pure-rand": "^6.1.0" + "pure-rand": "^8.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.17.0" } }, "node_modules/faye-websocket": { @@ -1501,7 +1497,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -1801,6 +1796,7 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", "license": "MIT", + "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -2000,7 +1996,6 @@ "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "playwright-core": "cli.js" }, @@ -2062,9 +2057,9 @@ } }, "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-8.4.0.tgz", + "integrity": "sha512-IoM8YF/jY0hiugFo/wOWqfmarlE6J0wc6fDK1PhftMk7MGhVZl88sZimmqBBFomLOCSmcCCpsfj7wXASCpvK9A==", "dev": true, "funding": [ { @@ -2089,7 +2084,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -2099,7 +2093,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, diff --git a/frontend/package.json b/frontend/package.json index ad5654d8..bd68fbf9 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -46,7 +46,7 @@ "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "@types/sockjs-client": "^1.5.4", - "fast-check": "^3.23.0", + "fast-check": "^4.8.0", "jsdom": "^25.0.1", "typescript": "6.0.3" }, From 468768fcc1b4aa35a30ee525e52f6274db3b92e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 23:52:42 +0000 Subject: [PATCH 05/26] chore(deps): update hashicorp/aws requirement from ~> 5.84 to ~> 6.45 Updates the requirements on [hashicorp/aws](https://github.com/hashicorp/terraform-provider-aws) to permit the latest version. Updates `hashicorp/aws` to 6.45.0 - [Release notes](https://github.com/hashicorp/terraform-provider-aws/releases) - [Changelog](https://github.com/hashicorp/terraform-provider-aws/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-provider-aws/compare/v5.84.0...v6.45.0) --- updated-dependencies: - dependency-name: hashicorp/aws dependency-version: 6.45.0 dependency-type: direct:production dependency-group: terraform-aws-providers ... Signed-off-by: dependabot[bot] --- deploy/terraform/aws/environments/dev/versions.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/terraform/aws/environments/dev/versions.tf b/deploy/terraform/aws/environments/dev/versions.tf index c64e13ef..8c119a6c 100644 --- a/deploy/terraform/aws/environments/dev/versions.tf +++ b/deploy/terraform/aws/environments/dev/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 5.84" + version = "~> 6.45" } } } From 19e5435a5f0b569a48f594e37c4b8162c1b89112 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 17 May 2026 23:57:02 +0000 Subject: [PATCH 06/26] chore(deps): update hashicorp/aws requirement from ~> 5.84 to ~> 6.45 Updates the requirements on [hashicorp/aws](https://github.com/hashicorp/terraform-provider-aws) to permit the latest version. Updates `hashicorp/aws` to 6.45.0 - [Release notes](https://github.com/hashicorp/terraform-provider-aws/releases) - [Changelog](https://github.com/hashicorp/terraform-provider-aws/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-provider-aws/compare/v5.84.0...v6.45.0) --- updated-dependencies: - dependency-name: hashicorp/aws dependency-version: 6.45.0 dependency-type: direct:production dependency-group: terraform-aws-providers ... Signed-off-by: dependabot[bot] --- deploy/terraform/aws/environments/staging/versions.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/terraform/aws/environments/staging/versions.tf b/deploy/terraform/aws/environments/staging/versions.tf index c64e13ef..8c119a6c 100644 --- a/deploy/terraform/aws/environments/staging/versions.tf +++ b/deploy/terraform/aws/environments/staging/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 5.84" + version = "~> 6.45" } } } From d7bbc2fade5511b748c10e6536838bad22b99d58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 00:30:20 +0000 Subject: [PATCH 07/26] chore(deps): update hashicorp/aws requirement from ~> 5.84 to ~> 6.45 Updates the requirements on [hashicorp/aws](https://github.com/hashicorp/terraform-provider-aws) to permit the latest version. Updates `hashicorp/aws` to 6.45.0 - [Release notes](https://github.com/hashicorp/terraform-provider-aws/releases) - [Changelog](https://github.com/hashicorp/terraform-provider-aws/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/terraform-provider-aws/compare/v5.84.0...v6.45.0) --- updated-dependencies: - dependency-name: hashicorp/aws dependency-version: 6.45.0 dependency-type: direct:production dependency-group: terraform-aws-providers ... Signed-off-by: dependabot[bot] --- deploy/terraform/aws/environments/prod/versions.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/terraform/aws/environments/prod/versions.tf b/deploy/terraform/aws/environments/prod/versions.tf index c64e13ef..8c119a6c 100644 --- a/deploy/terraform/aws/environments/prod/versions.tf +++ b/deploy/terraform/aws/environments/prod/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 5.84" + version = "~> 6.45" } } } From d3c2c5d471541fbebf5a2efd89d52e0834147e51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 00:32:41 +0000 Subject: [PATCH 08/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /api-gateway with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- api-gateway/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api-gateway/Dockerfile b/api-gateway/Dockerfile index 0064b1f2..10fade39 100644 --- a/api-gateway/Dockerfile +++ b/api-gateway/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=api-gateway COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=api-gateway ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From 5848baf9924c90127364e503a261f11e59a20d68 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 00:39:32 +0000 Subject: [PATCH 09/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /auth-service with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- auth-service/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/auth-service/Dockerfile b/auth-service/Dockerfile index 54b23d1a..1e741e6f 100644 --- a/auth-service/Dockerfile +++ b/auth-service/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=auth-service COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=auth-service ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From 36177a504720ff6947eff90ed1dd96da92f66955 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 00:40:09 +0000 Subject: [PATCH 10/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /user-service with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- user-service/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/user-service/Dockerfile b/user-service/Dockerfile index 90818cf1..833f5639 100644 --- a/user-service/Dockerfile +++ b/user-service/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=user-service COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=user-service ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From 7fd7434af03970e66bfbe22989a7df35f987277b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 00:47:34 +0000 Subject: [PATCH 11/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /company-service with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- company-service/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/company-service/Dockerfile b/company-service/Dockerfile index 8f78e2af..7ccbf57c 100644 --- a/company-service/Dockerfile +++ b/company-service/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=company-service COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=company-service ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From bd86c3582b98da31d5dd325d528591ac3d9311a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 00:48:02 +0000 Subject: [PATCH 12/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /job-service with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- job-service/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/job-service/Dockerfile b/job-service/Dockerfile index a6fdefd4..4c79a368 100644 --- a/job-service/Dockerfile +++ b/job-service/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=job-service COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=job-service ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From debd805415f4472a55510e3cc43ac739ad24c561 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 00:55:57 +0000 Subject: [PATCH 13/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /application-service with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- application-service/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application-service/Dockerfile b/application-service/Dockerfile index f11918d3..9e47d128 100644 --- a/application-service/Dockerfile +++ b/application-service/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=application-service COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=application-service ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From 084fbddc9fc1c690a1845104d5b6087c78d4451f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 00:56:35 +0000 Subject: [PATCH 14/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /notification-service with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- notification-service/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/notification-service/Dockerfile b/notification-service/Dockerfile index 3c2d53b1..35ab27ad 100644 --- a/notification-service/Dockerfile +++ b/notification-service/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=notification-service COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=notification-service ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From 60243247101e71319ce018f8ea4b23b12ce32d1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 01:04:51 +0000 Subject: [PATCH 15/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /audit-service with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- audit-service/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/audit-service/Dockerfile b/audit-service/Dockerfile index d729c982..3ed11681 100644 --- a/audit-service/Dockerfile +++ b/audit-service/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=audit-service COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=audit-service ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From 65a680e152b86aaf8d4b9a9ed20bb471c6c28616 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 01:05:21 +0000 Subject: [PATCH 16/26] chore(deps): bump node in /frontend in the frontend-base-images group Bumps the frontend-base-images group in /frontend with 1 update: node. Updates `node` from 24-alpine to 26-alpine --- updated-dependencies: - dependency-name: node dependency-version: 26-alpine dependency-type: direct:production dependency-group: frontend-base-images ... Signed-off-by: dependabot[bot] --- frontend/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 17b25c8c..64f0439a 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,9 +1,9 @@ -FROM node:24-alpine AS deps +FROM node:26-alpine AS deps WORKDIR /app COPY frontend/package*.json ./ RUN npm ci -FROM node:24-alpine AS builder +FROM node:26-alpine AS builder WORKDIR /app ARG NEXT_PUBLIC_API_BASE_URL=http://localhost:8080 ENV NEXT_TELEMETRY_DISABLED=1 @@ -12,7 +12,7 @@ COPY --from=deps /app/node_modules ./node_modules COPY frontend ./ RUN npm run build -FROM node:24-alpine AS runner +FROM node:26-alpine AS runner WORKDIR /app ARG SERVICE_NAME=frontend ARG BUILD_VERSION=0.4.0 From 05186dcd25cf5367daae22985fec17ef792dd146 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 01:05:28 +0000 Subject: [PATCH 17/26] chore(deps): bump the backend-base-images group Bumps the backend-base-images group in /ai-service with 2 updates: maven and eclipse-temurin. Updates `maven` from 3.9.12-eclipse-temurin-21 to 3.9.14-eclipse-temurin-25 Updates `eclipse-temurin` from 21-jre-alpine to 25-jre-alpine --- updated-dependencies: - dependency-name: maven dependency-version: 3.9.14-eclipse-temurin-25 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: backend-base-images - dependency-name: eclipse-temurin dependency-version: 25-jre-alpine dependency-type: direct:production dependency-group: backend-base-images ... Signed-off-by: dependabot[bot] --- ai-service/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ai-service/Dockerfile b/ai-service/Dockerfile index 29e8aefb..aa9b59bf 100644 --- a/ai-service/Dockerfile +++ b/ai-service/Dockerfile @@ -1,4 +1,4 @@ -FROM maven:3.9.12-eclipse-temurin-21 AS build +FROM maven:3.9.14-eclipse-temurin-25 AS build WORKDIR /workspace ARG SERVICE_NAME=ai-service COPY pom.xml . @@ -17,7 +17,7 @@ COPY common-lib/src common-lib/src COPY ${SERVICE_NAME}/src ${SERVICE_NAME}/src RUN mvn -B -T1 -pl ${SERVICE_NAME} -am package -DskipTests -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine ARG SERVICE_NAME=ai-service ARG BUILD_VERSION=0.4.0-SNAPSHOT ARG VCS_REF=local From 132e5906ab914ba8ec4c83431abe24a408771eaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 31 May 2026 23:09:22 +0000 Subject: [PATCH 18/26] chore(deps-dev): bump net.jqwik:jqwik from 1.9.2 to 1.10.1 Bumps [net.jqwik:jqwik](https://github.com/jqwik-team/jqwik) from 1.9.2 to 1.10.1. - [Release notes](https://github.com/jqwik-team/jqwik/releases) - [Commits](https://github.com/jqwik-team/jqwik/compare/1.9.2...1.10.1) --- updated-dependencies: - dependency-name: net.jqwik:jqwik dependency-version: 1.10.1 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- notification-service/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/notification-service/pom.xml b/notification-service/pom.xml index 53679553..641ea309 100644 --- a/notification-service/pom.xml +++ b/notification-service/pom.xml @@ -1,4 +1,4 @@ - + @@ -37,7 +37,7 @@ org.testcontainerskafkatest org.springframework.kafkaspring-kafka-testtest org.awaitilityawaitilitytest - net.jqwikjqwik1.9.2test + net.jqwikjqwik1.10.1test org.springframework.bootspring-boot-maven-plugin From bde7042e7e9158be4d534018b06287e7dec0170f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 7 Jun 2026 23:03:52 +0000 Subject: [PATCH 19/26] chore(deps): bump the test-tooling group across 1 directory with 2 updates Bumps the test-tooling group with 2 updates in the / directory: [org.testcontainers:testcontainers-bom](https://github.com/testcontainers/testcontainers-java) and [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco). Updates `org.testcontainers:testcontainers-bom` from 1.20.6 to 2.0.5 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.20.6...2.0.5) Updates `org.jacoco:jacoco-maven-plugin` from 0.8.14 to 0.8.15 - [Release notes](https://github.com/jacoco/jacoco/releases) - [Commits](https://github.com/jacoco/jacoco/compare/v0.8.14...v0.8.15) --- updated-dependencies: - dependency-name: org.testcontainers:testcontainers-bom dependency-version: 2.0.5 dependency-type: direct:production update-type: version-update:semver-major dependency-group: test-tooling - dependency-name: org.jacoco:jacoco-maven-plugin dependency-version: 0.8.15 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: test-tooling ... Signed-off-by: dependabot[bot] --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 16306a98..967a2520 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,4 @@ - + @@ -42,7 +42,7 @@ 1.84 0.12.6 2.8.9 - 1.20.6 + 2.0.5 1.6.3 1.4.1 0.35 @@ -112,7 +112,7 @@ org.jacoco jacoco-maven-plugin - 0.8.14 + 0.8.15 From 2411d3a54f511c36eceddb844437fa3c6e33e18c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Jun 2026 23:43:38 +0000 Subject: [PATCH 20/26] chore(deps): bump the actions group across 1 directory with 4 updates Bumps the actions group with 4 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [actions/upload-artifact](https://github.com/actions/upload-artifact), [ossf/scorecard-action](https://github.com/ossf/scorecard-action) and [gitleaks/gitleaks-action](https://github.com/gitleaks/gitleaks-action). Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v6...v7) Updates `actions/upload-artifact` from 6 to 7 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) Updates `ossf/scorecard-action` from 2.4.0 to 2.4.3 - [Release notes](https://github.com/ossf/scorecard-action/releases) - [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md) - [Commits](https://github.com/ossf/scorecard-action/compare/v2.4.0...v2.4.3) Updates `gitleaks/gitleaks-action` from 2 to 3 - [Release notes](https://github.com/gitleaks/gitleaks-action/releases) - [Commits](https://github.com/gitleaks/gitleaks-action/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: ossf/scorecard-action dependency-version: 2.4.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: actions - dependency-name: gitleaks/gitleaks-action dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] --- .github/workflows/ai-eval.yml | 6 +++--- .github/workflows/api-smoke.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/codeql.yml | 2 +- .github/workflows/dependabot-curation.yml | 4 ++-- .github/workflows/dependency-maintenance.yml | 4 ++-- .github/workflows/docker.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/e2e.yml | 8 ++++---- .github/workflows/performance.yml | 6 +++--- .github/workflows/release.yml | 4 ++-- .github/workflows/repository-governance.yml | 4 ++-- .github/workflows/scorecard.yml | 6 +++--- .github/workflows/security.yml | 20 ++++++++++---------- .github/workflows/terraform.yml | 2 +- 15 files changed, 39 insertions(+), 39 deletions(-) diff --git a/.github/workflows/ai-eval.yml b/.github/workflows/ai-eval.yml index c287c3aa..ae672881 100644 --- a/.github/workflows/ai-eval.yml +++ b/.github/workflows/ai-eval.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Validate compose file run: docker compose config --quiet @@ -27,7 +27,7 @@ jobs: - name: Upload AI eval report if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: ai-eval-summary path: reports/ai/eval-summary.json @@ -39,7 +39,7 @@ jobs: - name: Store compose logs if: failure() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: compose-ai-eval-log path: compose-ai-eval.log diff --git a/.github/workflows/api-smoke.yml b/.github/workflows/api-smoke.yml index 6cf1a719..55d5d85b 100644 --- a/.github/workflows/api-smoke.yml +++ b/.github/workflows/api-smoke.yml @@ -15,7 +15,7 @@ jobs: timeout-minutes: 35 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Validate compose file run: docker compose config --quiet @@ -30,7 +30,7 @@ jobs: - name: Store compose logs if: failure() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: compose-api-smoke-log path: compose-api-smoke.log diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 364d1be1..64f88811 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Java 21 uses: actions/setup-java@v5 @@ -77,7 +77,7 @@ jobs: - name: Upload test reports on failure if: failure() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: test-reports path: | diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 19fb5a20..ede4fa27 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -29,7 +29,7 @@ jobs: - javascript-typescript steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Java 21 if: matrix.language == 'java-kotlin' diff --git a/.github/workflows/dependabot-curation.yml b/.github/workflows/dependabot-curation.yml index 560a5bf4..b8061b8d 100644 --- a/.github/workflows/dependabot-curation.yml +++ b/.github/workflows/dependabot-curation.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Run curation shell: pwsh @@ -55,7 +55,7 @@ jobs: - name: Upload curation reports if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: dependabot-curation-reports path: | diff --git a/.github/workflows/dependency-maintenance.yml b/.github/workflows/dependency-maintenance.yml index c0c8db8e..f6006d0f 100644 --- a/.github/workflows/dependency-maintenance.yml +++ b/.github/workflows/dependency-maintenance.yml @@ -17,7 +17,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Generate inventory shell: pwsh @@ -26,7 +26,7 @@ jobs: run: ./scripts/dependabot-inventory.ps1 - name: Upload inventory - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: dependabot-inventory path: reports/dependabot/ diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 35e4c363..4bb44ba3 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -36,7 +36,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ec0dc452..834bc24f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -20,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Validate portfolio documentation shell: pwsh diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 67c184fb..95e16ce3 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Node.js uses: actions/setup-node@v6 @@ -54,7 +54,7 @@ jobs: - name: Upload Playwright preview report if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: playwright-preview-report path: | @@ -70,7 +70,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Node.js uses: actions/setup-node@v6 @@ -93,7 +93,7 @@ jobs: - name: Upload Playwright report if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: playwright-report path: frontend/playwright-report diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 4e71dd9c..2f565e6b 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -28,7 +28,7 @@ jobs: timeout-minutes: 40 steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Start stack and validate business flow shell: pwsh @@ -45,7 +45,7 @@ jobs: - name: Upload k6 summary if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: k6-role-based-suite-summary path: reports/k6/role-based-suite-summary.json @@ -57,7 +57,7 @@ jobs: - name: Store compose logs if: failure() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: compose-performance-smoke-log path: compose-performance-smoke.log diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ea1726e..950238a1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -44,7 +44,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 @@ -168,7 +168,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Create release from notes env: diff --git a/.github/workflows/repository-governance.yml b/.github/workflows/repository-governance.yml index ded743e2..fd3800bd 100644 --- a/.github/workflows/repository-governance.yml +++ b/.github/workflows/repository-governance.yml @@ -27,7 +27,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Dry-run repository governance if: ${{ inputs.mode == 'dry-run' }} @@ -92,7 +92,7 @@ jobs: - name: Upload governance reports if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: repository-governance-reports path: | diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b4003cb2..c601727c 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: persist-credentials: false @@ -30,7 +30,7 @@ jobs: run: mkdir -p security-reports - name: Run OpenSSF Scorecard - uses: ossf/scorecard-action@v2.4.0 + uses: ossf/scorecard-action@v2.4.3 with: results_file: security-reports/scorecard.sarif results_format: sarif @@ -38,7 +38,7 @@ jobs: - name: Upload Scorecard report if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: openssf-scorecard-report path: security-reports/scorecard.sarif diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 3552b836..36eb7406 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -22,12 +22,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: fetch-depth: 0 - name: Scan repository for secrets - uses: gitleaks/gitleaks-action@v2 + uses: gitleaks/gitleaks-action@v3 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITLEAKS_CONFIG: .gitleaks.toml @@ -37,7 +37,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Prepare reports directory run: mkdir -p security-reports @@ -56,7 +56,7 @@ jobs: - name: Upload Trivy filesystem report if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: trivy-filesystem-report path: security-reports/trivy-fs.txt @@ -70,7 +70,7 @@ jobs: actions: read steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Prepare reports directory run: mkdir -p security-reports @@ -83,7 +83,7 @@ jobs: output-file: security-reports/devhire-cloud-sbom.cdx.json - name: Upload SBOM - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: devhire-cloud-sbom path: security-reports/devhire-cloud-sbom.cdx.json @@ -94,7 +94,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Review dependency changes uses: actions/dependency-review-action@v5 @@ -116,7 +116,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Java 21 uses: actions/setup-java@v5 @@ -150,7 +150,7 @@ jobs: - frontend steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 @@ -206,7 +206,7 @@ jobs: - name: Upload image scan report if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: trivy-image-${{ matrix.service }} path: security-reports/trivy-image-${{ matrix.service }}.txt diff --git a/.github/workflows/terraform.yml b/.github/workflows/terraform.yml index bb999498..86c080f8 100644 --- a/.github/workflows/terraform.yml +++ b/.github/workflows/terraform.yml @@ -56,7 +56,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Terraform fmt validate lint and config scan shell: pwsh From 1e1309cb8033143ecc56fc22276d501ac73b85c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Jul 2026 23:04:17 +0000 Subject: [PATCH 21/26] chore(deps): bump org.bouncycastle:bcprov-jdk18on from 1.84 to 1.85 Bumps [org.bouncycastle:bcprov-jdk18on](https://github.com/bcgit/bc-java) from 1.84 to 1.85. - [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html) - [Commits](https://github.com/bcgit/bc-java/commits) --- updated-dependencies: - dependency-name: org.bouncycastle:bcprov-jdk18on dependency-version: '1.85' dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 16306a98..a8939e0b 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,4 @@ - + @@ -39,7 +39,7 @@ 4.1.133.Final 10.1.54 42.7.11 - 1.84 + 1.85 0.12.6 2.8.9 1.20.6 From 63527df342328dc01d65eba64bffbcad9826dae6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 Jul 2026 23:23:12 +0000 Subject: [PATCH 22/26] chore(deps): bump the frontend-platform group across 1 directory with 4 updates Bumps the frontend-platform group with 4 updates in the /frontend directory: [next](https://github.com/vercel/next.js), [react](https://github.com/facebook/react/tree/HEAD/packages/react), [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [typescript](https://github.com/microsoft/TypeScript). Updates `next` from 16.2.6 to 16.2.10 - [Release notes](https://github.com/vercel/next.js/releases) - [Commits](https://github.com/vercel/next.js/compare/v16.2.6...v16.2.10) Updates `react` from 19.2.5 to 19.2.7 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react) Updates `react-dom` from 19.2.5 to 19.2.7 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react-dom) Updates `typescript` from 6.0.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/commits) --- updated-dependencies: - dependency-name: next dependency-version: 16.2.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: frontend-platform - dependency-name: react dependency-version: 19.2.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: frontend-platform - dependency-name: react-dom dependency-version: 19.2.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: frontend-platform - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: frontend-platform ... Signed-off-by: dependabot[bot] --- frontend/package-lock.json | 508 +++++++++++++++++++++++++++++++------ frontend/package.json | 10 +- 2 files changed, 442 insertions(+), 76 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2e77e36a..bc0398a1 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -11,9 +11,9 @@ "@monaco-editor/react": "^4.7.0", "@stomp/stompjs": "^7.3.0", "lucide-react": "1.14.0", - "next": "16.2.6", - "react": "19.2.5", - "react-dom": "19.2.5", + "next": "16.2.10", + "react": "19.2.7", + "react-dom": "19.2.7", "sockjs-client": "^1.6.1" }, "devDependencies": { @@ -24,12 +24,12 @@ "@testing-library/react": "^16.3.0", "@types/jsdom": "^28.0.3", "@types/node": "24.10.2", - "@types/react": "19.2.14", + "@types/react": "19.2.17", "@types/react-dom": "19.2.3", "@types/sockjs-client": "^1.5.4", "fast-check": "^3.23.0", "jsdom": "^25.0.1", - "typescript": "6.0.3" + "typescript": "7.0.2" } }, "node_modules/@asamuzakjp/css-color": { @@ -182,7 +182,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -206,7 +205,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -731,15 +729,15 @@ } }, "node_modules/@next/env": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.6.tgz", - "integrity": "sha512-gd8HoHN4ufj73WmR3JmVolrpJR47ILK6LouP5xElPglaVxir6e1a7VzvTvDWkOoPXT9rkkTzyCxBu4yeZfZwcw==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.10.tgz", + "integrity": "sha512-zLPxg9M0MEHmygpj5OuxjQ+vHMiy/K7cSp74G8ecYolmgUWw0RwN02tF56npup/+qaI8JB97hQgS/r2Hb6QwVA==", "license": "MIT" }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.6.tgz", - "integrity": "sha512-ZJGkkcNfYgrrMkqOdZ7zoLa1TOy0qpcMfk/z4Mh/FKUz40gVO+HNQWqmLxf67Z5WB64DRp0dhEbyHfel+6sJUg==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.10.tgz", + "integrity": "sha512-v9IdJCa0H0mbo+8z5zwUpOk1Vj7RjkcI5uNYf5Ws1y6szf/p3Mzl9hLaST8SCt6L9h8NGnruZcd2+o0NTNwDhA==", "cpu": [ "arm64" ], @@ -753,9 +751,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.6.tgz", - "integrity": "sha512-v/YLBHIY132Ced3puBJ7YJKw1lqsCrgcNo2aRJlCEyQrrCeRJlvGlnmxhPxNQI3KE3N1DN5r9TPNPvka3nq5RQ==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.10.tgz", + "integrity": "sha512-17IS0jJRViROGmA9uGdNR8VPJpfbnaVG7E9qhso5jDLkmyd0lSDORWxbcKINzcFqzZqGwGtMSnrFRxBpuUYjLQ==", "cpu": [ "x64" ], @@ -769,12 +767,15 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.6.tgz", - "integrity": "sha512-RPOvqlYBbcQjkz9VQQDZ2T2bARIjXZV1KFlt+V2Mr6SW/e4I9fcKsaA0hdyf2FHoTlsV2xnBd5Y912rP/1Ce6w==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.10.tgz", + "integrity": "sha512-GRQRsRtuciNJvB54AvvuQTiq0oZtFwa1owQqtZD8wwnGpM2L39MV22kpI72YSXLKIyY40LC66EiLFv4PiicXxg==", "cpu": [ "arm64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -785,12 +786,15 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.6.tgz", - "integrity": "sha512-URUTu1+dMkxJsPFgm+OeEvq9wf5sujw0EvgYy80TDGHTSLTnIHeqb0Eu8A3sC95IRgjejQL+kC4mw+4yPxiAXA==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.10.tgz", + "integrity": "sha512-zkN9MQYS7UQBro+FnISUq1itaQjXI9xqISzuQ+2bc921NcJ1x4yPCqrn77tVN6/dOOXaaWVX3k6/bR07pPwK+A==", "cpu": [ "arm64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -801,12 +805,15 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.6.tgz", - "integrity": "sha512-DOj182mPV8G3UkrayLoREM5YEYI+Dk5wv7Ox9xl1fFibAELEsFD0lDPfHIeILlutMMfdyhlzYPELG3peuKaurw==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.10.tgz", + "integrity": "sha512-iCVJnwvrPYECvA6WM/7+oo+OiTvedIKLxtCLAZP4xZR3nXa1zmzZyLPbYCmWvpd4CvMYF1EMTafd0ii3DygLvA==", "cpu": [ "x64" ], + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -817,12 +824,15 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.6.tgz", - "integrity": "sha512-HKQ5SP/V/ub73UvF7n/zeJlxk2kLmtL7Wzrg4WfmkjmNos5onJ2tKu7yZOPdL18A6Svfn3max29ym+ry7NkK4g==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.10.tgz", + "integrity": "sha512-ov2g4H0dHY9bPoOU83m91hWT7Iq5qy13bUnyyshLU3HGR1Ownn0X9QpmDPc5iIUaahTp7f7LeGAhV4DSFtackw==", "cpu": [ "x64" ], + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -833,9 +843,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.6.tgz", - "integrity": "sha512-LZXpTlPyS5v7HhSmnvsLGP3iIYgYOBnc8r8ArlT55sGHV89bR2HlDdBjWQ+PY6SJMmk8TuVGFuxalnP3k/0Dwg==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.10.tgz", + "integrity": "sha512-DwAnhLX76HQiFFQNgWlcK+JzlnD1rZ+UK/WY0ZMI/deXpvgnesjNYrqcfo1JzBuz4Kf7o3brIBL0glI1junatA==", "cpu": [ "arm64" ], @@ -849,9 +859,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.6.tgz", - "integrity": "sha512-F0+4i0h9J6C4eE3EAPWsoCk7UW/dbzOjyzxY0qnDUOYFu6FFmdZ6l97/XdV3/Nz3VYyO7UWjyEJUXkGqcoXfMA==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.10.tgz", + "integrity": "sha512-0JXq3b85Jk9Jg4ntLUbXSPvoDw3gpZou7twuKdoFG2jOw635v7+IiXfTaa0TxVMyx78pUjnrVYwLgjKfX4e6/A==", "cpu": [ "x64" ], @@ -870,7 +880,6 @@ "integrity": "sha512-6TyEnHgd6SArQO8UO2OMTxshln3QMWBtPGrOCgs3wVEmQmwyuNtB10IZMfmYDE0riwNR1cu4q+pPcxMVtaG3TA==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "playwright": "1.57.0" }, @@ -909,7 +918,6 @@ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -1016,12 +1024,11 @@ } }, "node_modules/@types/react": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", - "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -1032,7 +1039,6 @@ "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -1056,7 +1062,348 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", "license": "MIT", - "optional": true + "optional": true, + "peer": true + }, + "node_modules/@typescript/typescript-aix-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", + "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", + "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-darwin-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", + "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", + "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-freebsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", + "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", + "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", + "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-loong64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", + "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-mips64el": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", + "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-ppc64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", + "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-riscv64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", + "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-s390x": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", + "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-linux-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", + "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", + "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-netbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", + "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", + "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-openbsd-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", + "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-sunos-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", + "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-arm64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", + "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/@typescript/typescript-win32-x64": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", + "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=16.20.0" + } }, "node_modules/acorn": { "version": "8.16.0", @@ -1335,6 +1682,7 @@ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.2.tgz", "integrity": "sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==", "license": "(MPL-2.0 OR Apache-2.0)", + "peer": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" } @@ -1501,7 +1849,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -1801,6 +2148,7 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", "license": "MIT", + "peer": true, "bin": { "marked": "bin/marked.js" }, @@ -1887,12 +2235,12 @@ } }, "node_modules/next": { - "version": "16.2.6", - "resolved": "https://registry.npmjs.org/next/-/next-16.2.6.tgz", - "integrity": "sha512-qOVgKJg1+At15NpeUP+eJgCHvTCgXsogweq87Ri/Ix7PkqQHg4sdaXmSFqKlgaIXE4kW0g25LE68W87UANlHtw==", + "version": "16.2.10", + "resolved": "https://registry.npmjs.org/next/-/next-16.2.10.tgz", + "integrity": "sha512-2som5AVXb3kE6Yjine3/mNbBayYF58eguBWIVVUdr1y/L426xyVEgYxgBG+1QC34P2x5E+tcDup6XkuOAX3dCA==", "license": "MIT", "dependencies": { - "@next/env": "16.2.6", + "@next/env": "16.2.10", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", @@ -1906,14 +2254,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.2.6", - "@next/swc-darwin-x64": "16.2.6", - "@next/swc-linux-arm64-gnu": "16.2.6", - "@next/swc-linux-arm64-musl": "16.2.6", - "@next/swc-linux-x64-gnu": "16.2.6", - "@next/swc-linux-x64-musl": "16.2.6", - "@next/swc-win32-arm64-msvc": "16.2.6", - "@next/swc-win32-x64-msvc": "16.2.6", + "@next/swc-darwin-arm64": "16.2.10", + "@next/swc-darwin-x64": "16.2.10", + "@next/swc-linux-arm64-gnu": "16.2.10", + "@next/swc-linux-arm64-musl": "16.2.10", + "@next/swc-linux-x64-gnu": "16.2.10", + "@next/swc-linux-x64-musl": "16.2.10", + "@next/swc-win32-arm64-msvc": "16.2.10", + "@next/swc-win32-x64-msvc": "16.2.10", "sharp": "^0.34.5" }, "peerDependencies": { @@ -2000,7 +2348,6 @@ "integrity": "sha512-agTcKlMw/mjBWOnD6kFZttAAGHgi/Nw0CZ2o6JqWSbMlI219lAFLZZCyqByTsvVAJq5XA5H8cA6PrvBRpBWEuQ==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "playwright-core": "cli.js" }, @@ -2085,26 +2432,24 @@ "license": "MIT" }, "node_modules/react": { - "version": "19.2.5", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.5.tgz", - "integrity": "sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==", + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.5", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz", - "integrity": "sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag==", + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^19.2.5" + "react": "^19.2.7" } }, "node_modules/react-is": { @@ -2382,17 +2727,38 @@ "license": "0BSD" }, "node_modules/typescript": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", + "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "tsc": "bin/tsc" }, "engines": { - "node": ">=14.17" + "node": ">=16.20.0" + }, + "optionalDependencies": { + "@typescript/typescript-aix-ppc64": "7.0.2", + "@typescript/typescript-darwin-arm64": "7.0.2", + "@typescript/typescript-darwin-x64": "7.0.2", + "@typescript/typescript-freebsd-arm64": "7.0.2", + "@typescript/typescript-freebsd-x64": "7.0.2", + "@typescript/typescript-linux-arm": "7.0.2", + "@typescript/typescript-linux-arm64": "7.0.2", + "@typescript/typescript-linux-loong64": "7.0.2", + "@typescript/typescript-linux-mips64el": "7.0.2", + "@typescript/typescript-linux-ppc64": "7.0.2", + "@typescript/typescript-linux-riscv64": "7.0.2", + "@typescript/typescript-linux-s390x": "7.0.2", + "@typescript/typescript-linux-x64": "7.0.2", + "@typescript/typescript-netbsd-arm64": "7.0.2", + "@typescript/typescript-netbsd-x64": "7.0.2", + "@typescript/typescript-openbsd-arm64": "7.0.2", + "@typescript/typescript-openbsd-x64": "7.0.2", + "@typescript/typescript-sunos-x64": "7.0.2", + "@typescript/typescript-win32-arm64": "7.0.2", + "@typescript/typescript-win32-x64": "7.0.2" } }, "node_modules/undici-types": { diff --git a/frontend/package.json b/frontend/package.json index ad5654d8..0b4fb7d3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -30,9 +30,9 @@ "@monaco-editor/react": "^4.7.0", "@stomp/stompjs": "^7.3.0", "lucide-react": "1.14.0", - "next": "16.2.6", - "react": "19.2.5", - "react-dom": "19.2.5", + "next": "16.2.10", + "react": "19.2.7", + "react-dom": "19.2.7", "sockjs-client": "^1.6.1" }, "devDependencies": { @@ -43,12 +43,12 @@ "@testing-library/react": "^16.3.0", "@types/jsdom": "^28.0.3", "@types/node": "24.10.2", - "@types/react": "19.2.14", + "@types/react": "19.2.17", "@types/react-dom": "19.2.3", "@types/sockjs-client": "^1.5.4", "fast-check": "^3.23.0", "jsdom": "^25.0.1", - "typescript": "6.0.3" + "typescript": "7.0.2" }, "overrides": { "dompurify": "3.4.2", From 00f501e40e233ec592a6a5391e60f909ffdf50a5 Mon Sep 17 00:00:00 2001 From: Nguyen Son Date: Wed, 15 Jul 2026 16:19:10 +0700 Subject: [PATCH 23/26] docs(readme): correct status and add topology --- README.md | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e60bb0c4..c7e4428d 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![Terraform](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/actions/workflows/terraform.yml/badge.svg)](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/actions/workflows/terraform.yml) [![Docs](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/actions/workflows/docs.yml/badge.svg)](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/actions/workflows/docs.yml) -DevHire Cloud is a production-engineering portfolio for a recruitment platform: Java 21, Spring Boot 3.5, Next.js, Kafka, OpenSearch, PostgreSQL, Redis, Docker, Kubernetes, Terraform, and a controlled Claude Haiku AI assistant. The repository is written for senior review: it emphasizes service boundaries, owned data, event reliability, observability, security, CI/CD, cloud readiness, and evidence that can be checked without trusting the README. +DevHire Cloud is a Java, systems, and DevOps learning project for a recruitment platform: Java 21, Spring Boot 3.5, Next.js, Kafka, OpenSearch, PostgreSQL, Redis, Docker, Kubernetes, Terraform, and a controlled Claude Haiku AI assistant. The repository documents service boundaries, owned data, event reliability, observability, security, CI/CD, and cloud-readiness evidence so reviewers can verify each claim against the code and supporting records. ## 30-Second Reviewer Brief @@ -26,7 +26,7 @@ DevHire Cloud is a production-engineering portfolio for a recruitment platform: | Current development cycle | `0.6.0-SNAPSHOT` release cut; next snapshot bump is a post-release maintenance step | | v0.6 Stitch app | Merged into `master`; Code Assessment Studio is the flagship candidate grading, employer review, and admin health workflow | | Default branch | `master`, protected and PR-governed | -| Dependabot queue | 0 open Dependabot PRs after the 2026-05-14 zero-noise apply; 20 stale/behind/risky PRs were commented, closed, and their remote branches pruned; no dependency PR was force-merged into the release | +| Dependency updates | [View the current Dependabot queue](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/pulls?q=is%3Apr+is%3Aopen+author%3Aapp%2Fdependabot); maintenance policy is documented in [docs/dependency-maintenance.md](docs/dependency-maintenance.md). | | v1 status | Roadmap and acceptance checklist only, not a released tag | ## Reviewer Quick Links @@ -48,6 +48,29 @@ DevHire Cloud is a production-engineering portfolio for a recruitment platform: | Cloud readiness | [docs/cloud-readiness-review.md](docs/cloud-readiness-review.md) | | Production scorecard | [docs/production-engineering-scorecard.md](docs/production-engineering-scorecard.md) | +### Simplified system topology + +This reviewer map groups related services for readability; it is not a complete protocol or event-edge diagram. + +```mermaid +flowchart LR + UI["Next.js frontend"] --> GW["Spring Cloud Gateway"] + GW --> ID["Auth + User"] + GW --> HIRE["Company + Job + Application"] + GW --> OPS["Notification + Audit"] + GW --> AI["Claude AI service"] + HIRE --> RUNNER["Assessment runner"] + HIRE <--> KAFKA[("Kafka + outbox")] + ID --> PG[("Service-owned PostgreSQL")] + HIRE --> PG + OPS --> PG + AI --> PG + HIRE --> SEARCH[("OpenSearch")] + ID --> REDIS[("Redis")] +``` + +[Review the detailed service boundaries and event flows](docs/architecture.md). + ## Architecture and Operations Proof | Layer | Proof in this repository | @@ -182,4 +205,4 @@ The full visual evidence set is machine-checked in [docs/evidence-manifest.json] ## Honest Scope -DevHire Cloud is a production-engineering portfolio, not a claim of live customer traffic. It does not claim external penetration testing, a production AWS account, or real customer data. Secrets are not committed; cloud apply remains a separate, credentialed operation. +DevHire Cloud is a learning project that practices production-engineering patterns, not a claim of live customer traffic. It does not claim external penetration testing, a production AWS account, or real customer data. Secrets are not committed; cloud apply remains a separate, credentialed operation. From 3bcce0b39a6e4b193b9ddc70ec85cadc9cb831ed Mon Sep 17 00:00:00 2001 From: Nguyen Son Date: Wed, 15 Jul 2026 18:35:03 +0700 Subject: [PATCH 24/26] fix(deps): complete coordinated platform migration --- .github/dependabot.yml | 4 + README.md | 2 +- ai-service/pom.xml | 22 +- .../AiConversationRepositoryIT.java | 8 +- .../error/GatewayExceptionHandler.java | 2 +- .../JwtAuthenticationGatewayFilterTest.java | 6 +- application-service/pom.xml | 10 +- .../repository/ApplicationRepositoryIT.java | 8 +- audit-service/pom.xml | 10 +- .../repository/AuditLogSpecifications.java | 8 +- .../repository/AuditLogRepositoryIT.java | 8 +- auth-service/pom.xml | 22 +- .../auth/repository/AuthRepositoryIT.java | 8 +- common-lib/pom.xml | 5 +- company-service/pom.xml | 10 +- .../repository/CompanyRepositoryIT.java | 8 +- .../aws/modules/container/versions.tf | 2 +- deploy/terraform/aws/modules/data/versions.tf | 2 +- deploy/terraform/aws/modules/eks/versions.tf | 2 +- .../terraform/aws/modules/network/versions.tf | 2 +- .../terraform/aws/modules/secrets/versions.tf | 2 +- docs/README_EN.md | 2 +- docs/README_JA.md | 2 +- docs/demo-script.md | 2 +- docs/dependency-maintenance.md | 9 +- docs/production-checklist.md | 2 +- frontend/e2e/code-assessment-flow.spec.ts | 4 + frontend/package-lock.json | 397 +----------------- frontend/package.json | 5 +- .../src/__tests__/hooks/useFocusTrap.test.ts | 8 +- .../eventSerialization.property.test.ts | 6 +- job-service/pom.xml | 10 +- .../job/repository/JobRepositoryIT.java | 8 +- notification-service/pom.xml | 12 +- .../CacheInvalidationIntegrationTest.java | 4 +- ...kaNotificationPipelineIntegrationTest.java | 8 +- .../repository/NotificationRepositoryIT.java | 8 +- pom.xml | 4 +- user-service/pom.xml | 10 +- .../repository/UserProfileRepositoryIT.java | 8 +- 40 files changed, 170 insertions(+), 490 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 38975fd5..367ce0d0 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -36,6 +36,10 @@ updates: labels: - portfolio-maintenance - needs-runtime-smoke + ignore: + - dependency-name: typescript + update-types: + - version-update:semver-major groups: frontend-platform: patterns: diff --git a/README.md b/README.md index c7e4428d..5908ac04 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![Terraform](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/actions/workflows/terraform.yml/badge.svg)](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/actions/workflows/terraform.yml) [![Docs](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/actions/workflows/docs.yml/badge.svg)](https://github.com/JasonTM17/DevHire_Cloud_Spring_Microservices/actions/workflows/docs.yml) -DevHire Cloud is a Java, systems, and DevOps learning project for a recruitment platform: Java 21, Spring Boot 3.5, Next.js, Kafka, OpenSearch, PostgreSQL, Redis, Docker, Kubernetes, Terraform, and a controlled Claude Haiku AI assistant. The repository documents service boundaries, owned data, event reliability, observability, security, CI/CD, and cloud-readiness evidence so reviewers can verify each claim against the code and supporting records. +DevHire Cloud is a Java, systems, and DevOps learning project for a recruitment platform: Java 21, Spring Boot 4.0, Next.js, Kafka, OpenSearch, PostgreSQL, Redis, Docker, Kubernetes, Terraform, and a controlled Claude Haiku AI assistant. The repository documents service boundaries, owned data, event reliability, observability, security, CI/CD, and cloud-readiness evidence so reviewers can verify each claim against the code and supporting records. ## 30-Second Reviewer Brief diff --git a/ai-service/pom.xml b/ai-service/pom.xml index 651fdcf3..676119a1 100644 --- a/ai-service/pom.xml +++ b/ai-service/pom.xml @@ -42,12 +42,12 @@ spring-boot-starter-jdbc - org.springframework.kafka - spring-kafka + org.springframework.boot + spring-boot-starter-kafka - org.flywaydb - flyway-core + org.springframework.boot + spring-boot-starter-flyway org.flywaydb @@ -84,14 +84,24 @@ spring-boot-starter-test test + + org.springframework.boot + spring-boot-starter-jdbc-test + test + + + org.springframework.boot + spring-boot-starter-flyway-test + test + org.testcontainers - postgresql + testcontainers-postgresql test org.testcontainers - junit-jupiter + testcontainers-junit-jupiter test diff --git a/ai-service/src/test/java/com/devhire/ai/repository/AiConversationRepositoryIT.java b/ai-service/src/test/java/com/devhire/ai/repository/AiConversationRepositoryIT.java index 103b57ba..ea60d2c6 100644 --- a/ai-service/src/test/java/com/devhire/ai/repository/AiConversationRepositoryIT.java +++ b/ai-service/src/test/java/com/devhire/ai/repository/AiConversationRepositoryIT.java @@ -6,13 +6,13 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import org.springframework.boot.test.autoconfigure.jdbc.JdbcTest; +import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; +import org.springframework.boot.jdbc.test.autoconfigure.JdbcTest; import org.springframework.context.annotation.Import; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -26,7 +26,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class AiConversationRepositoryIT { @Container - static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer<>("postgres:17-alpine"); + static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer("postgres:17-alpine"); @DynamicPropertySource static void datasource(DynamicPropertyRegistry registry) { diff --git a/api-gateway/src/main/java/com/devhire/gateway/error/GatewayExceptionHandler.java b/api-gateway/src/main/java/com/devhire/gateway/error/GatewayExceptionHandler.java index bf0fca13..93d6d63a 100644 --- a/api-gateway/src/main/java/com/devhire/gateway/error/GatewayExceptionHandler.java +++ b/api-gateway/src/main/java/com/devhire/gateway/error/GatewayExceptionHandler.java @@ -1,7 +1,7 @@ package com.devhire.gateway.error; import com.devhire.common.error.ErrorCode; -import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; +import org.springframework.boot.webflux.error.ErrorWebExceptionHandler; import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; diff --git a/api-gateway/src/test/java/com/devhire/gateway/security/JwtAuthenticationGatewayFilterTest.java b/api-gateway/src/test/java/com/devhire/gateway/security/JwtAuthenticationGatewayFilterTest.java index 6ded9ec9..e2bc8345 100644 --- a/api-gateway/src/test/java/com/devhire/gateway/security/JwtAuthenticationGatewayFilterTest.java +++ b/api-gateway/src/test/java/com/devhire/gateway/security/JwtAuthenticationGatewayFilterTest.java @@ -85,7 +85,7 @@ void publicAuthRouteStripsSpoofedIdentityHeaders() { filter.filter(exchange, chain).block(); - assertThat(downstreamExchange.get().getRequest().getHeaders()).doesNotContainKey(AppHeaders.USER_ID); + assertThat(downstreamExchange.get().getRequest().getHeaders().containsHeader(AppHeaders.USER_ID)).isFalse(); verifyNoInteractions(redisTemplate); } @@ -108,8 +108,8 @@ void publicCompanyReadsDoNotRequireJwtButStripSpoofedIdentityHeaders() { filter.filter(exchange, chain).block(); - assertThat(downstreamExchange.get().getRequest().getHeaders()).doesNotContainKey(AppHeaders.USER_ID); - assertThat(downstreamExchange.get().getRequest().getHeaders()).doesNotContainKey(AppHeaders.USER_ROLE); + assertThat(downstreamExchange.get().getRequest().getHeaders().containsHeader(AppHeaders.USER_ID)).isFalse(); + assertThat(downstreamExchange.get().getRequest().getHeaders().containsHeader(AppHeaders.USER_ROLE)).isFalse(); } verifyNoInteractions(redisTemplate); } diff --git a/application-service/pom.xml b/application-service/pom.xml index 2f6bc716..3a42e57a 100644 --- a/application-service/pom.xml +++ b/application-service/pom.xml @@ -17,8 +17,8 @@ org.springframework.bootspring-boot-starter-data-jpa org.springframework.bootspring-boot-starter-actuator org.springframework.cloudspring-cloud-starter-openfeign - org.springframework.kafkaspring-kafka - org.flywaydbflyway-core + org.springframework.bootspring-boot-starter-kafka + org.springframework.bootspring-boot-starter-flyway org.flywaydbflyway-database-postgresql org.postgresqlpostgresqlruntime org.springdocspringdoc-openapi-starter-webmvc-ui${springdoc.version} @@ -26,8 +26,10 @@ io.micrometermicrometer-tracing-bridge-otel io.opentelemetryopentelemetry-exporter-otlp org.springframework.bootspring-boot-starter-testtest - org.testcontainerspostgresqltest - org.testcontainersjunit-jupitertest + org.springframework.bootspring-boot-starter-data-jpa-testtest + org.springframework.bootspring-boot-starter-flyway-testtest + org.testcontainerstestcontainers-postgresqltest + org.testcontainerstestcontainers-junit-jupitertest org.springframework.bootspring-boot-maven-plugin diff --git a/application-service/src/test/java/com/devhire/application/repository/ApplicationRepositoryIT.java b/application-service/src/test/java/com/devhire/application/repository/ApplicationRepositoryIT.java index d2eca8b9..b42772e3 100644 --- a/application-service/src/test/java/com/devhire/application/repository/ApplicationRepositoryIT.java +++ b/application-service/src/test/java/com/devhire/application/repository/ApplicationRepositoryIT.java @@ -5,8 +5,8 @@ import com.devhire.application.entity.JobApplication; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; +import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.data.domain.PageRequest; import org.springframework.jdbc.core.JdbcTemplate; @@ -14,7 +14,7 @@ import org.springframework.test.context.DynamicPropertySource; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -28,7 +28,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class ApplicationRepositoryIT { @Container - static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer<>("postgres:17-alpine"); + static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer("postgres:17-alpine"); @DynamicPropertySource static void datasource(DynamicPropertyRegistry registry) { diff --git a/audit-service/pom.xml b/audit-service/pom.xml index d4ae8494..4cb94e2e 100644 --- a/audit-service/pom.xml +++ b/audit-service/pom.xml @@ -16,8 +16,8 @@ org.springframework.bootspring-boot-starter-validation org.springframework.bootspring-boot-starter-data-jpa org.springframework.bootspring-boot-starter-actuator - org.springframework.kafkaspring-kafka - org.flywaydbflyway-core + org.springframework.bootspring-boot-starter-kafka + org.springframework.bootspring-boot-starter-flyway org.flywaydbflyway-database-postgresql org.postgresqlpostgresqlruntime org.springdocspringdoc-openapi-starter-webmvc-ui${springdoc.version} @@ -25,8 +25,10 @@ io.micrometermicrometer-tracing-bridge-otel io.opentelemetryopentelemetry-exporter-otlp org.springframework.bootspring-boot-starter-testtest - org.testcontainerspostgresqltest - org.testcontainersjunit-jupitertest + org.springframework.bootspring-boot-starter-data-jpa-testtest + org.springframework.bootspring-boot-starter-flyway-testtest + org.testcontainerstestcontainers-postgresqltest + org.testcontainerstestcontainers-junit-jupitertest org.springframework.bootspring-boot-maven-plugin diff --git a/audit-service/src/main/java/com/devhire/audit/repository/AuditLogSpecifications.java b/audit-service/src/main/java/com/devhire/audit/repository/AuditLogSpecifications.java index 8d453fd0..d6fb8ea5 100644 --- a/audit-service/src/main/java/com/devhire/audit/repository/AuditLogSpecifications.java +++ b/audit-service/src/main/java/com/devhire/audit/repository/AuditLogSpecifications.java @@ -12,13 +12,13 @@ private AuditLogSpecifications() { } public static Specification actorId(UUID actorId) { - return actorId == null ? null : (root, query, criteriaBuilder) -> + return actorId == null ? Specification.unrestricted() : (root, query, criteriaBuilder) -> criteriaBuilder.equal(root.get("actorId"), actorId); } public static Specification action(String action) { if (action == null || action.isBlank()) { - return null; + return Specification.unrestricted(); } String normalized = action.toLowerCase(Locale.ROOT); return (root, query, criteriaBuilder) -> @@ -26,12 +26,12 @@ public static Specification action(String action) { } public static Specification occurredFrom(Instant from) { - return from == null ? null : (root, query, criteriaBuilder) -> + return from == null ? Specification.unrestricted() : (root, query, criteriaBuilder) -> criteriaBuilder.greaterThanOrEqualTo(root.get("occurredAt"), from); } public static Specification occurredTo(Instant to) { - return to == null ? null : (root, query, criteriaBuilder) -> + return to == null ? Specification.unrestricted() : (root, query, criteriaBuilder) -> criteriaBuilder.lessThanOrEqualTo(root.get("occurredAt"), to); } } diff --git a/audit-service/src/test/java/com/devhire/audit/repository/AuditLogRepositoryIT.java b/audit-service/src/test/java/com/devhire/audit/repository/AuditLogRepositoryIT.java index c25c1bea..e36583ef 100644 --- a/audit-service/src/test/java/com/devhire/audit/repository/AuditLogRepositoryIT.java +++ b/audit-service/src/test/java/com/devhire/audit/repository/AuditLogRepositoryIT.java @@ -3,12 +3,12 @@ import com.devhire.audit.entity.AuditLog; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; +import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.data.jpa.domain.Specification; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -22,7 +22,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class AuditLogRepositoryIT { @Container - static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer<>("postgres:17-alpine"); + static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer("postgres:17-alpine"); @DynamicPropertySource static void datasource(DynamicPropertyRegistry registry) { diff --git a/auth-service/pom.xml b/auth-service/pom.xml index 1477a7f1..61ff45bf 100644 --- a/auth-service/pom.xml +++ b/auth-service/pom.xml @@ -36,12 +36,12 @@ spring-boot-starter-data-redis - org.springframework.kafka - spring-kafka + org.springframework.boot + spring-boot-starter-kafka - org.flywaydb - flyway-core + org.springframework.boot + spring-boot-starter-flyway org.flywaydb @@ -95,6 +95,16 @@ spring-boot-starter-test test + + org.springframework.boot + spring-boot-starter-data-jpa-test + test + + + org.springframework.boot + spring-boot-starter-flyway-test + test + org.springframework.security spring-security-test @@ -102,12 +112,12 @@ org.testcontainers - postgresql + testcontainers-postgresql test org.testcontainers - junit-jupiter + testcontainers-junit-jupiter test diff --git a/auth-service/src/test/java/com/devhire/auth/repository/AuthRepositoryIT.java b/auth-service/src/test/java/com/devhire/auth/repository/AuthRepositoryIT.java index 2f78b9d1..3d3747a0 100644 --- a/auth-service/src/test/java/com/devhire/auth/repository/AuthRepositoryIT.java +++ b/auth-service/src/test/java/com/devhire/auth/repository/AuthRepositoryIT.java @@ -5,14 +5,14 @@ import com.devhire.common.security.UserRole; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; +import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import java.time.Instant; import java.util.UUID; @@ -25,7 +25,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class AuthRepositoryIT { @Container - static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer<>("postgres:17-alpine"); + static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer("postgres:17-alpine"); @DynamicPropertySource static void datasource(DynamicPropertyRegistry registry) { diff --git a/common-lib/pom.xml b/common-lib/pom.xml index 401cebfd..042923a8 100644 --- a/common-lib/pom.xml +++ b/common-lib/pom.xml @@ -51,10 +51,13 @@ com.fasterxml.jackson.core jackson-databind + + org.springframework.boot + spring-boot-jackson2 + com.fasterxml.jackson.datatype jackson-datatype-jsr310 - test org.springframework.boot diff --git a/company-service/pom.xml b/company-service/pom.xml index 20385742..c819cc1b 100644 --- a/company-service/pom.xml +++ b/company-service/pom.xml @@ -16,8 +16,8 @@ org.springframework.bootspring-boot-starter-validation org.springframework.bootspring-boot-starter-data-jpa org.springframework.bootspring-boot-starter-actuator - org.springframework.kafkaspring-kafka - org.flywaydbflyway-core + org.springframework.bootspring-boot-starter-kafka + org.springframework.bootspring-boot-starter-flyway org.flywaydbflyway-database-postgresql org.postgresqlpostgresqlruntime org.springdocspringdoc-openapi-starter-webmvc-ui${springdoc.version} @@ -25,8 +25,10 @@ io.micrometermicrometer-tracing-bridge-otel io.opentelemetryopentelemetry-exporter-otlp org.springframework.bootspring-boot-starter-testtest - org.testcontainerspostgresqltest - org.testcontainersjunit-jupitertest + org.springframework.bootspring-boot-starter-data-jpa-testtest + org.springframework.bootspring-boot-starter-flyway-testtest + org.testcontainerstestcontainers-postgresqltest + org.testcontainerstestcontainers-junit-jupitertest org.springframework.bootspring-boot-maven-plugin diff --git a/company-service/src/test/java/com/devhire/company/repository/CompanyRepositoryIT.java b/company-service/src/test/java/com/devhire/company/repository/CompanyRepositoryIT.java index ca38bf3c..644019de 100644 --- a/company-service/src/test/java/com/devhire/company/repository/CompanyRepositoryIT.java +++ b/company-service/src/test/java/com/devhire/company/repository/CompanyRepositoryIT.java @@ -4,13 +4,13 @@ import com.devhire.company.entity.CompanyStatus; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; +import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.data.domain.PageRequest; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -24,7 +24,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class CompanyRepositoryIT { @Container - static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer<>("postgres:17-alpine"); + static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer("postgres:17-alpine"); @DynamicPropertySource static void datasource(DynamicPropertyRegistry registry) { diff --git a/deploy/terraform/aws/modules/container/versions.tf b/deploy/terraform/aws/modules/container/versions.tf index eba66bdc..5c6a897f 100644 --- a/deploy/terraform/aws/modules/container/versions.tf +++ b/deploy/terraform/aws/modules/container/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 5.84" + version = "~> 6.45" } } } diff --git a/deploy/terraform/aws/modules/data/versions.tf b/deploy/terraform/aws/modules/data/versions.tf index eba66bdc..5c6a897f 100644 --- a/deploy/terraform/aws/modules/data/versions.tf +++ b/deploy/terraform/aws/modules/data/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 5.84" + version = "~> 6.45" } } } diff --git a/deploy/terraform/aws/modules/eks/versions.tf b/deploy/terraform/aws/modules/eks/versions.tf index eba66bdc..5c6a897f 100644 --- a/deploy/terraform/aws/modules/eks/versions.tf +++ b/deploy/terraform/aws/modules/eks/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 5.84" + version = "~> 6.45" } } } diff --git a/deploy/terraform/aws/modules/network/versions.tf b/deploy/terraform/aws/modules/network/versions.tf index eba66bdc..5c6a897f 100644 --- a/deploy/terraform/aws/modules/network/versions.tf +++ b/deploy/terraform/aws/modules/network/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 5.84" + version = "~> 6.45" } } } diff --git a/deploy/terraform/aws/modules/secrets/versions.tf b/deploy/terraform/aws/modules/secrets/versions.tf index eba66bdc..5c6a897f 100644 --- a/deploy/terraform/aws/modules/secrets/versions.tf +++ b/deploy/terraform/aws/modules/secrets/versions.tf @@ -4,7 +4,7 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "~> 5.84" + version = "~> 6.45" } } } diff --git a/docs/README_EN.md b/docs/README_EN.md index f1e36b60..d061efa0 100644 --- a/docs/README_EN.md +++ b/docs/README_EN.md @@ -1,6 +1,6 @@ # DevHire Cloud - Microservices Recruitment Platform -DevHire Cloud is a production-engineering portfolio for a recruitment platform: Java 21, Spring Boot 3.5, Next.js, Kafka, OpenSearch, PostgreSQL, Redis, Docker, Kubernetes, Terraform, and a controlled Claude Haiku AI assistant. The repository is written for senior review: it emphasizes service boundaries, owned data, event reliability, observability, security, CI/CD, cloud readiness, and evidence that can be checked without trusting the README. +DevHire Cloud is a production-engineering portfolio for a recruitment platform: Java 21, Spring Boot 4.0, Next.js, Kafka, OpenSearch, PostgreSQL, Redis, Docker, Kubernetes, Terraform, and a controlled Claude Haiku AI assistant. The repository is written for senior review: it emphasizes service boundaries, owned data, event reliability, observability, security, CI/CD, cloud readiness, and evidence that can be checked without trusting the README. ## 30-Second Reviewer Brief diff --git a/docs/README_JA.md b/docs/README_JA.md index 9db91fec..cf4bb7f4 100644 --- a/docs/README_JA.md +++ b/docs/README_JA.md @@ -1,6 +1,6 @@ # DevHire Cloud - Microservices Recruitment Platform -DevHire Cloud は、Java 21 / Spring Boot 3.5 で構築した採用プラットフォームの production engineering portfolio です。小規模な ITviec / LinkedIn Jobs のようなドメインを使い、明確な service boundary、service-owned database、Kafka/outbox、OpenSearch、observability、Docker/Kubernetes/Terraform、CI/CD、security evidence、Claude Haiku AI assistant を示します。 +DevHire Cloud は、Java 21 / Spring Boot 4.0 で構築した採用プラットフォームの production engineering portfolio です。小規模な ITviec / LinkedIn Jobs のようなドメインを使い、明確な service boundary、service-owned database、Kafka/outbox、OpenSearch、observability、Docker/Kubernetes/Terraform、CI/CD、security evidence、Claude Haiku AI assistant を示します。 ## Public Repository Status diff --git a/docs/demo-script.md b/docs/demo-script.md index 0c2d6ab2..3181475c 100644 --- a/docs/demo-script.md +++ b/docs/demo-script.md @@ -100,7 +100,7 @@ Show these files: Final message for recruiter: -DevHire Cloud demonstrates Java 21, Spring Boot 3.5, Spring Cloud Gateway, JWT security, service-owned databases, Flyway, Kafka/outbox, OpenSearch, Claude Haiku RAG assistant, Gmail SMTP hardening, observability, CI/CD, Docker, Kubernetes/Helm/GitOps, tests, and real frontend E2E smoke coverage. +DevHire Cloud demonstrates Java 21, Spring Boot 4.0, Spring Cloud Gateway, JWT security, service-owned databases, Flyway, Kafka/outbox, OpenSearch, Claude Haiku RAG assistant, Gmail SMTP hardening, observability, CI/CD, Docker, Kubernetes/Helm/GitOps, tests, and real frontend E2E smoke coverage. Cleanup after a recruiter demo: diff --git a/docs/dependency-maintenance.md b/docs/dependency-maintenance.md index f79c104d..91a6f1ae 100644 --- a/docs/dependency-maintenance.md +++ b/docs/dependency-maintenance.md @@ -10,11 +10,18 @@ DevHire Cloud keeps Dependabot enabled because dependency hygiene is part of the | Docker base images patch/minor | Batch by runtime family | Keeps image drift small without forcing many tiny releases. | | Maven patch/minor | Accept when tests and smoke gates pass | Backend dependency changes can affect contracts and runtime behavior. | | npm patch/minor | Accept with typecheck, build, and Playwright smoke | Frontend runtime changes are visible and should be screenshot-checked. | +| TypeScript major | Defer until the Next.js production build and compiler API are compatible | A standalone `tsc` pass is insufficient when the framework also loads the TypeScript compiler API. | | Terraform provider major | Defer until migration review | AWS provider major upgrades can change resources and state behavior. | | Node major | Defer until Docker/frontend compatibility review | Runtime major upgrades can affect Next.js build and image behavior. | | Spring platform major | Defer until compatibility matrix review | Spring Boot/Spring Cloud compatibility is a hard production constraint. | -## Current v0.6 Release-Readiness State +## 2026-07-15 Coordinated Integration Batch + +This maintenance window consolidates 23 remote branches into one reviewable change: 1 README correction and 22 Dependabot updates spanning GitHub Actions, Docker images, Maven, npm, and Terraform. Major platform changes were reviewed together because Spring Boot 4, Testcontainers 2, Node 26, and the AWS provider 6 line require compatibility fixes beyond a mechanical version bump. + +Local validation covered the full 12-module Maven reactor, 417 frontend tests, 22 property tests at 500 runs each, 52 Playwright scenarios across desktop and Pixel 7 projects, all three Terraform environments, documentation and repository audits, and an npm audit with zero known vulnerabilities. TypeScript remains on 6.0.3 because the current Next.js production build does not yet load the TypeScript 7 compiler API correctly; Dependabot ignores that major line until the framework boundary is compatible. Pull-request CI remains the final gate for the complete Docker matrix, CodeQL, secret scanning, SBOM generation, and filesystem scanning. + +## 2026-05 Release-Readiness Baseline The 2026-05-14 live GitHub scan originally found 20 Dependabot pull requests: 9 Docker, 1 GitHub Actions, 2 Maven, 4 npm/frontend, 3 Terraform, and 1 other. `scripts/dependabot-zero-noise.ps1 -Apply` was then run from an owner-authenticated shell. It found 0 clean merge candidates, commented on each PR, closed/deferred all 20 stale/behind/risky updates, and the remote Dependabot branches were pruned. No dependency PR was force-merged into the release. diff --git a/docs/production-checklist.md b/docs/production-checklist.md index 7a2fef0d..d8dfa8a7 100644 --- a/docs/production-checklist.md +++ b/docs/production-checklist.md @@ -1,6 +1,6 @@ # Production Portfolio Checklist -- Java 21 and Spring Boot 3.5.x multi-module build. +- Java 21 and Spring Boot 4.0.x multi-module build. - Spring Cloud Gateway with JWT validation, CORS, route security, and Redis rate limit. - Role-based authorization for Admin, Employer, and Candidate. - BCrypt password hashing. diff --git a/frontend/e2e/code-assessment-flow.spec.ts b/frontend/e2e/code-assessment-flow.spec.ts index 89591e67..e64d1493 100644 --- a/frontend/e2e/code-assessment-flow.spec.ts +++ b/frontend/e2e/code-assessment-flow.spec.ts @@ -660,6 +660,10 @@ async function routeAdminApi(page: Page) { } test.describe("LeetCode-style code assessment E2E", () => { + test.beforeEach(async ({ page }) => { + await page.clock.setFixedTime(new Date(NOW)); + }); + test("candidate runs custom visible input, submits Java, and never sees hidden payloads", async ({ page }) => { await routeCandidateCodeAssessmentApi(page); await login(page, "candidate"); diff --git a/frontend/package-lock.json b/frontend/package-lock.json index cba8c23a..1ff3216c 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -29,7 +29,8 @@ "@types/sockjs-client": "^1.5.4", "fast-check": "^4.8.0", "jsdom": "^29.1.1", - "typescript": "7.0.2" + "playwright-core": "1.60.0", + "typescript": "6.0.3" } }, "node_modules/@asamuzakjp/css-color": { @@ -1125,346 +1126,6 @@ "license": "MIT", "optional": true }, - "node_modules/@typescript/typescript-aix-ppc64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-aix-ppc64/-/typescript-aix-ppc64-7.0.2.tgz", - "integrity": "sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-darwin-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-arm64/-/typescript-darwin-arm64-7.0.2.tgz", - "integrity": "sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-darwin-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-darwin-x64/-/typescript-darwin-x64-7.0.2.tgz", - "integrity": "sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-freebsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-arm64/-/typescript-freebsd-arm64-7.0.2.tgz", - "integrity": "sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-freebsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-freebsd-x64/-/typescript-freebsd-x64-7.0.2.tgz", - "integrity": "sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-arm": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm/-/typescript-linux-arm-7.0.2.tgz", - "integrity": "sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-arm64/-/typescript-linux-arm64-7.0.2.tgz", - "integrity": "sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-loong64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-loong64/-/typescript-linux-loong64-7.0.2.tgz", - "integrity": "sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-mips64el": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-mips64el/-/typescript-linux-mips64el-7.0.2.tgz", - "integrity": "sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-ppc64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-ppc64/-/typescript-linux-ppc64-7.0.2.tgz", - "integrity": "sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-riscv64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-riscv64/-/typescript-linux-riscv64-7.0.2.tgz", - "integrity": "sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-s390x": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-s390x/-/typescript-linux-s390x-7.0.2.tgz", - "integrity": "sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-linux-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-linux-x64/-/typescript-linux-x64-7.0.2.tgz", - "integrity": "sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-netbsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-arm64/-/typescript-netbsd-arm64-7.0.2.tgz", - "integrity": "sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-netbsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-netbsd-x64/-/typescript-netbsd-x64-7.0.2.tgz", - "integrity": "sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-openbsd-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-arm64/-/typescript-openbsd-arm64-7.0.2.tgz", - "integrity": "sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-openbsd-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-openbsd-x64/-/typescript-openbsd-x64-7.0.2.tgz", - "integrity": "sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-sunos-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-sunos-x64/-/typescript-sunos-x64-7.0.2.tgz", - "integrity": "sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-win32-arm64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-arm64/-/typescript-win32-arm64-7.0.2.tgz", - "integrity": "sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16.20.0" - } - }, - "node_modules/@typescript/typescript-win32-x64": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@typescript/typescript-win32-x64/-/typescript-win32-x64-7.0.2.tgz", - "integrity": "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16.20.0" - } - }, "node_modules/acorn": { "version": "8.17.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", @@ -1678,9 +1339,9 @@ "license": "MIT" }, "node_modules/dompurify": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.2.tgz", - "integrity": "sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.12.tgz", + "integrity": "sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==", "license": "(MPL-2.0 OR Apache-2.0)", "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -2086,25 +1747,12 @@ } }, "node_modules/playwright-core": { - "version": "1.61.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.61.1.tgz", - "integrity": "sha512-h7Qlt6m4REp25qvIdvbDtVmD4LqVXfpRxhORv9L0jzETM05p4fuPJ3dKyuSXQxDSbXnmS79HAgi9589lGSpLkg==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "playwright-core": "cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/playwright/node_modules/playwright-core": { "version": "1.60.0", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", "devOptional": true, "license": "Apache-2.0", + "peer": true, "bin": { "playwright-core": "cli.js" }, @@ -2473,38 +2121,17 @@ "license": "0BSD" }, "node_modules/typescript": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-7.0.2.tgz", - "integrity": "sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { - "tsc": "bin/tsc" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=16.20.0" - }, - "optionalDependencies": { - "@typescript/typescript-aix-ppc64": "7.0.2", - "@typescript/typescript-darwin-arm64": "7.0.2", - "@typescript/typescript-darwin-x64": "7.0.2", - "@typescript/typescript-freebsd-arm64": "7.0.2", - "@typescript/typescript-freebsd-x64": "7.0.2", - "@typescript/typescript-linux-arm": "7.0.2", - "@typescript/typescript-linux-arm64": "7.0.2", - "@typescript/typescript-linux-loong64": "7.0.2", - "@typescript/typescript-linux-mips64el": "7.0.2", - "@typescript/typescript-linux-ppc64": "7.0.2", - "@typescript/typescript-linux-riscv64": "7.0.2", - "@typescript/typescript-linux-s390x": "7.0.2", - "@typescript/typescript-linux-x64": "7.0.2", - "@typescript/typescript-netbsd-arm64": "7.0.2", - "@typescript/typescript-netbsd-x64": "7.0.2", - "@typescript/typescript-openbsd-arm64": "7.0.2", - "@typescript/typescript-openbsd-x64": "7.0.2", - "@typescript/typescript-sunos-x64": "7.0.2", - "@typescript/typescript-win32-arm64": "7.0.2", - "@typescript/typescript-win32-x64": "7.0.2" + "node": ">=14.17" } }, "node_modules/undici": { diff --git a/frontend/package.json b/frontend/package.json index 120e0d4f..8d34e47a 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -48,10 +48,11 @@ "@types/sockjs-client": "^1.5.4", "fast-check": "^4.8.0", "jsdom": "^29.1.1", - "typescript": "7.0.2" + "playwright-core": "1.60.0", + "typescript": "6.0.3" }, "overrides": { - "dompurify": "3.4.2", + "dompurify": "3.4.12", "postcss": "8.5.10" } } diff --git a/frontend/src/__tests__/hooks/useFocusTrap.test.ts b/frontend/src/__tests__/hooks/useFocusTrap.test.ts index 58025b00..110f9ab5 100644 --- a/frontend/src/__tests__/hooks/useFocusTrap.test.ts +++ b/frontend/src/__tests__/hooks/useFocusTrap.test.ts @@ -44,10 +44,10 @@ describe('useFocusTrap - DOM behavior', () => { // Should find: btn1, input1, link1, div1 (4 elements) // Should NOT find: btn-disabled, div-neg assert.equal(focusable.length, 4); - assert.equal((focusable[0] as HTMLElement).id, 'btn1'); - assert.equal((focusable[1] as HTMLElement).id, 'input1'); - assert.equal((focusable[2] as HTMLElement).id, 'link1'); - assert.equal((focusable[3] as HTMLElement).id, 'div1'); + assert.deepEqual( + new Set(focusable.map((element) => (element as HTMLElement).id)), + new Set(['btn1', 'input1', 'link1', 'div1']) + ); }); it('Tab on last element should cycle to first (simulated keydown logic)', () => { diff --git a/frontend/src/__tests__/properties/eventSerialization.property.test.ts b/frontend/src/__tests__/properties/eventSerialization.property.test.ts index f76e710d..e8cd3972 100644 --- a/frontend/src/__tests__/properties/eventSerialization.property.test.ts +++ b/frontend/src/__tests__/properties/eventSerialization.property.test.ts @@ -28,7 +28,11 @@ const arbNotificationEvent = fc.record({ type: arbNotificationType, title: fc.string({ minLength: 1, maxLength: 100 }), body: fc.string({ minLength: 1, maxLength: 500 }), - createdAt: fc.date({ min: new Date("2020-01-01"), max: new Date("2030-01-01") }) + createdAt: fc.date({ + min: new Date("2020-01-01"), + max: new Date("2030-01-01"), + noInvalidDate: true, + }) .map((d) => d.toISOString()), read: fc.boolean(), sequenceNumber: fc.nat(), diff --git a/job-service/pom.xml b/job-service/pom.xml index 5dd2aa45..491a5417 100644 --- a/job-service/pom.xml +++ b/job-service/pom.xml @@ -17,8 +17,8 @@ org.springframework.bootspring-boot-starter-data-jpa org.springframework.bootspring-boot-starter-actuator org.springframework.cloudspring-cloud-starter-openfeign - org.springframework.kafkaspring-kafka - org.flywaydbflyway-core + org.springframework.bootspring-boot-starter-kafka + org.springframework.bootspring-boot-starter-flyway org.flywaydbflyway-database-postgresql org.postgresqlpostgresqlruntime org.springdocspringdoc-openapi-starter-webmvc-ui${springdoc.version} @@ -26,8 +26,10 @@ io.micrometermicrometer-tracing-bridge-otel io.opentelemetryopentelemetry-exporter-otlp org.springframework.bootspring-boot-starter-testtest - org.testcontainerspostgresqltest - org.testcontainersjunit-jupitertest + org.springframework.bootspring-boot-starter-data-jpa-testtest + org.springframework.bootspring-boot-starter-flyway-testtest + org.testcontainerstestcontainers-postgresqltest + org.testcontainerstestcontainers-junit-jupitertest org.springframework.bootspring-boot-maven-plugin diff --git a/job-service/src/test/java/com/devhire/job/repository/JobRepositoryIT.java b/job-service/src/test/java/com/devhire/job/repository/JobRepositoryIT.java index b75eaffe..d155bd2b 100644 --- a/job-service/src/test/java/com/devhire/job/repository/JobRepositoryIT.java +++ b/job-service/src/test/java/com/devhire/job/repository/JobRepositoryIT.java @@ -4,13 +4,13 @@ import com.devhire.job.entity.JobStatus; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; +import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.data.domain.PageRequest; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -28,7 +28,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class JobRepositoryIT { @Container - static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:17-alpine"); + static final PostgreSQLContainer postgres = new PostgreSQLContainer("postgres:17-alpine"); @Autowired private JobRepository jobRepository; diff --git a/notification-service/pom.xml b/notification-service/pom.xml index 641ea309..189f746c 100644 --- a/notification-service/pom.xml +++ b/notification-service/pom.xml @@ -19,8 +19,8 @@ org.springframework.bootspring-boot-starter-actuator org.springframework.bootspring-boot-starter-mail org.springframework.cloudspring-cloud-starter-openfeign - org.springframework.kafkaspring-kafka - org.flywaydbflyway-core + org.springframework.bootspring-boot-starter-kafka + org.springframework.bootspring-boot-starter-flyway org.flywaydbflyway-database-postgresql org.postgresqlpostgresqlruntime org.springdocspringdoc-openapi-starter-webmvc-ui${springdoc.version} @@ -32,9 +32,11 @@ io.jsonwebtokenjjwt-jackson${jjwt.version}runtime org.springframework.bootspring-boot-starter-data-redis org.springframework.bootspring-boot-starter-testtest - org.testcontainerspostgresqltest - org.testcontainersjunit-jupitertest - org.testcontainerskafkatest + org.springframework.bootspring-boot-starter-data-jpa-testtest + org.springframework.bootspring-boot-starter-flyway-testtest + org.testcontainerstestcontainers-postgresqltest + org.testcontainerstestcontainers-junit-jupitertest + org.testcontainerstestcontainers-kafkatest org.springframework.kafkaspring-kafka-testtest org.awaitilityawaitilitytest net.jqwikjqwik1.10.1test diff --git a/notification-service/src/test/java/com/devhire/notification/integration/CacheInvalidationIntegrationTest.java b/notification-service/src/test/java/com/devhire/notification/integration/CacheInvalidationIntegrationTest.java index 2f931e7a..7b72a8b9 100644 --- a/notification-service/src/test/java/com/devhire/notification/integration/CacheInvalidationIntegrationTest.java +++ b/notification-service/src/test/java/com/devhire/notification/integration/CacheInvalidationIntegrationTest.java @@ -12,7 +12,7 @@ import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.StringRedisTemplate; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.KafkaContainer; +import org.testcontainers.kafka.ConfluentKafkaContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; @@ -43,7 +43,7 @@ class CacheInvalidationIntegrationTest { .withExposedPorts(6379); @Container - static final KafkaContainer KAFKA = new KafkaContainer( + static final ConfluentKafkaContainer KAFKA = new ConfluentKafkaContainer( DockerImageName.parse("confluentinc/cp-kafka:7.6.0")); private LettuceConnectionFactory connectionFactory; diff --git a/notification-service/src/test/java/com/devhire/notification/integration/KafkaNotificationPipelineIntegrationTest.java b/notification-service/src/test/java/com/devhire/notification/integration/KafkaNotificationPipelineIntegrationTest.java index aa325988..a36b171a 100644 --- a/notification-service/src/test/java/com/devhire/notification/integration/KafkaNotificationPipelineIntegrationTest.java +++ b/notification-service/src/test/java/com/devhire/notification/integration/KafkaNotificationPipelineIntegrationTest.java @@ -16,8 +16,8 @@ import org.springframework.data.redis.listener.ChannelTopic; import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.KafkaContainer; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.kafka.ConfluentKafkaContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; @@ -47,11 +47,11 @@ class KafkaNotificationPipelineIntegrationTest { .withExposedPorts(6379); @Container - static final KafkaContainer KAFKA = new KafkaContainer( + static final ConfluentKafkaContainer KAFKA = new ConfluentKafkaContainer( DockerImageName.parse("confluentinc/cp-kafka:7.6.0")); @Container - static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer<>( + static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer( DockerImageName.parse("postgres:17-alpine")) .withDatabaseName("notification_test") .withUsername("test") diff --git a/notification-service/src/test/java/com/devhire/notification/repository/NotificationRepositoryIT.java b/notification-service/src/test/java/com/devhire/notification/repository/NotificationRepositoryIT.java index d8ec7ae8..95017e06 100644 --- a/notification-service/src/test/java/com/devhire/notification/repository/NotificationRepositoryIT.java +++ b/notification-service/src/test/java/com/devhire/notification/repository/NotificationRepositoryIT.java @@ -3,12 +3,12 @@ import com.devhire.notification.entity.Notification; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; +import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -22,7 +22,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class NotificationRepositoryIT { @Container - static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer<>("postgres:17-alpine"); + static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer("postgres:17-alpine"); @DynamicPropertySource static void datasource(DynamicPropertyRegistry registry) { diff --git a/pom.xml b/pom.xml index 81d49d5c..2ed8c6e8 100644 --- a/pom.xml +++ b/pom.xml @@ -36,12 +36,10 @@ 21 21 2025.1.1 - 4.1.133.Final - 10.1.54 42.7.11 1.85 0.12.6 - 2.8.9 + 3.0.3 2.0.5 1.6.3 1.4.1 diff --git a/user-service/pom.xml b/user-service/pom.xml index 8e21ac67..dbaba63a 100644 --- a/user-service/pom.xml +++ b/user-service/pom.xml @@ -16,8 +16,8 @@ org.springframework.bootspring-boot-starter-validation org.springframework.bootspring-boot-starter-data-jpa org.springframework.bootspring-boot-starter-actuator - org.springframework.kafkaspring-kafka - org.flywaydbflyway-core + org.springframework.bootspring-boot-starter-kafka + org.springframework.bootspring-boot-starter-flyway org.flywaydbflyway-database-postgresql org.postgresqlpostgresqlruntime org.springdocspringdoc-openapi-starter-webmvc-ui${springdoc.version} @@ -25,8 +25,10 @@ io.micrometermicrometer-tracing-bridge-otel io.opentelemetryopentelemetry-exporter-otlp org.springframework.bootspring-boot-starter-testtest - org.testcontainerspostgresqltest - org.testcontainersjunit-jupitertest + org.springframework.bootspring-boot-starter-data-jpa-testtest + org.springframework.bootspring-boot-starter-flyway-testtest + org.testcontainerstestcontainers-postgresqltest + org.testcontainerstestcontainers-junit-jupitertest org.springframework.bootspring-boot-maven-plugin diff --git a/user-service/src/test/java/com/devhire/user/repository/UserProfileRepositoryIT.java b/user-service/src/test/java/com/devhire/user/repository/UserProfileRepositoryIT.java index 949f01e3..ebb5c3f1 100644 --- a/user-service/src/test/java/com/devhire/user/repository/UserProfileRepositoryIT.java +++ b/user-service/src/test/java/com/devhire/user/repository/UserProfileRepositoryIT.java @@ -4,12 +4,12 @@ import com.devhire.user.entity.UserProfile; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; -import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest; +import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabase; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.DynamicPropertyRegistry; import org.springframework.test.context.DynamicPropertySource; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; @@ -23,7 +23,7 @@ @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) class UserProfileRepositoryIT { @Container - static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer<>("postgres:17-alpine"); + static final PostgreSQLContainer POSTGRES = new PostgreSQLContainer("postgres:17-alpine"); @DynamicPropertySource static void datasource(DynamicPropertyRegistry registry) { From d094d3fbdc5f7195dc2aabc5823973f898e63db4 Mon Sep 17 00:00:00 2001 From: Nguyen Son Date: Wed, 15 Jul 2026 18:52:46 +0700 Subject: [PATCH 25/26] fix(security): upgrade vulnerable platform libraries --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index 2ed8c6e8..6c9fb616 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,11 @@ 21 21 2025.1.1 + 2.21.4 + 3.1.4 + 4.2.15.Final + 11.0.22 + 4.0.6 42.7.11 1.85 0.12.6 From 0fcda3fdd4336f4d931568e6e2b54f7a3c9891cf Mon Sep 17 00:00:00 2001 From: Nguyen Son Date: Wed, 15 Jul 2026 19:05:11 +0700 Subject: [PATCH 26/26] fix(security): patch transitive file upload library --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 6c9fb616..9de1f1ed 100644 --- a/pom.xml +++ b/pom.xml @@ -41,6 +41,7 @@ 4.2.15.Final 11.0.22 4.0.6 + 1.6.0 42.7.11 1.85 0.12.6 @@ -74,6 +75,11 @@ bcprov-jdk18on ${bouncycastle.version} + + commons-fileupload + commons-fileupload + ${commons-fileupload.version} +