From 325bfdb2ef7675d1fbe27e6ca418f8b7aa94436f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 04:56:07 +0000 Subject: [PATCH 01/14] Bump @antora/cli from 3.2.0-alpha.11 to 3.2.0-alpha.12 in /antora --- updated-dependencies: - dependency-name: "@antora/cli" dependency-version: 3.2.0-alpha.12 dependency-type: direct:production update-type: version-update:semver-patch ... See gh-50464 Signed-off-by: dependabot[bot] --- antora/package-lock.json | 101 +++++++++++++++++++++++++++++++++++---- antora/package.json | 2 +- 2 files changed, 92 insertions(+), 11 deletions(-) diff --git a/antora/package-lock.json b/antora/package-lock.json index 799e340df888..bb5bfe31d28d 100644 --- a/antora/package-lock.json +++ b/antora/package-lock.json @@ -6,7 +6,7 @@ "": { "dependencies": { "@antora/atlas-extension": "1.0.0-alpha.5", - "@antora/cli": "3.2.0-alpha.11", + "@antora/cli": "3.2.0-alpha.12", "@antora/site-generator": "3.2.0-alpha.11", "@asciidoctor/tabs": "1.0.0-beta.6", "@springio/antora-extensions": "1.14.11", @@ -45,15 +45,15 @@ } }, "node_modules/@antora/cli": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.2.0-alpha.11.tgz", - "integrity": "sha512-hyCVmJT/esg6raPFyR1aIpUuGwXbe/0cAGPlQ86Ag/m7CUP80mQEZaVN1NxyVOK/KmtF5E7qpNvksDetBtGvcw==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.2.0-alpha.12.tgz", + "integrity": "sha512-UaRcJBLpEas8kMVCJcZit41+/EMTS0HBHIYripf98HzyB3ljGYp8M6kMMvrO/YdHohMgF65aSjz6sSSrHYDpwg==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.2.0-alpha.11", - "@antora/playbook-builder": "3.2.0-alpha.11", + "@antora/logger": "3.2.0-alpha.12", + "@antora/playbook-builder": "3.2.0-alpha.12", "@antora/user-require-helper": "~3.0", - "commander": "~12.1" + "commander": "~13.1" }, "bin": { "antora": "bin/antora" @@ -62,6 +62,81 @@ "node": ">=18.0.0" } }, + "node_modules/@antora/cli/node_modules/@antora/logger": { + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.2.0-alpha.12.tgz", + "integrity": "sha512-feyaa9w79rKuQQ9A1HpLYHNrAVgo8Oc3J/Ptu6M9XCm/T7utNA79z8DyQWL4yQADrI64f52sZv9PpSAF7EVz8A==", + "license": "MPL-2.0", + "dependencies": { + "@antora/expand-path-helper": "~3.0", + "pino": "10.1.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@antora/cli/node_modules/@antora/playbook-builder": { + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.2.0-alpha.12.tgz", + "integrity": "sha512-mOLSX7Xr297Svt3UCka0ebPN9eKq2/2qZVwgflQXZruEMY6hl6sqey8tGYZhcINKYGcGEej4EXGj0R0u1xt0oA==", + "license": "MPL-2.0", + "dependencies": { + "@iarna/toml": "~2.2", + "convict": "~6.2", + "js-yaml": "~4.1", + "json5": "~2.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@antora/cli/node_modules/pino": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-10.1.0.tgz", + "integrity": "sha512-0zZC2ygfdqvqK8zJIr1e+wT1T/L+LF6qvqvbzEQ6tiMAoTqEVK9a1K3YRu8HEUvGEvNqZyPJTtb2sNIoTkB83w==", + "license": "MIT", + "dependencies": { + "@pinojs/redact": "^0.4.0", + "atomic-sleep": "^1.0.0", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^5.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/@antora/cli/node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", + "dependencies": { + "split2": "^4.0.0" + } + }, + "node_modules/@antora/cli/node_modules/process-warning": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, "node_modules/@antora/content-aggregator": { "version": "3.2.0-alpha.11", "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.2.0-alpha.11.tgz", @@ -395,6 +470,12 @@ "node": ">= 8" } }, + "node_modules/@pinojs/redact": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz", + "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==", + "license": "MIT" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -1090,9 +1171,9 @@ "license": "MIT" }, "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", "license": "MIT", "engines": { "node": ">=18" diff --git a/antora/package.json b/antora/package.json index 0298b502c883..e090df3752f9 100644 --- a/antora/package.json +++ b/antora/package.json @@ -3,7 +3,7 @@ "antora": "node npm/antora.js" }, "dependencies": { - "@antora/cli": "3.2.0-alpha.11", + "@antora/cli": "3.2.0-alpha.12", "@antora/site-generator": "3.2.0-alpha.11", "@antora/atlas-extension": "1.0.0-alpha.5", "@springio/antora-extensions": "1.14.11", From 6074f066002f346300fa487842a9dcbd8f1de908 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 May 2026 08:18:10 +0000 Subject: [PATCH 02/14] Bump @antora/site-generator in /antora --- updated-dependencies: - dependency-name: "@antora/site-generator" dependency-version: 3.2.0-alpha.12 dependency-type: direct:production update-type: version-update:semver-patch ... See gh-50463 Signed-off-by: dependabot[bot] --- antora/package-lock.json | 503 +++++++++++---------------------------- antora/package.json | 2 +- 2 files changed, 137 insertions(+), 368 deletions(-) diff --git a/antora/package-lock.json b/antora/package-lock.json index bb5bfe31d28d..1a14418ca91c 100644 --- a/antora/package-lock.json +++ b/antora/package-lock.json @@ -7,7 +7,7 @@ "dependencies": { "@antora/atlas-extension": "1.0.0-alpha.5", "@antora/cli": "3.2.0-alpha.12", - "@antora/site-generator": "3.2.0-alpha.11", + "@antora/site-generator": "3.2.0-alpha.12", "@asciidoctor/tabs": "1.0.0-beta.6", "@springio/antora-extensions": "1.14.11", "@springio/antora-xref-extension": "1.0.0-alpha.5", @@ -16,12 +16,12 @@ } }, "node_modules/@antora/asciidoc-loader": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.2.0-alpha.11.tgz", - "integrity": "sha512-P70cQvjAzovXOuvFrL6/h5Js/9pzdU9fxwK+kA6IGcwuQ2FOb50TEJ0Y291IcrMIEu8lbF7w/yxyDLqsZRr7Ng==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.2.0-alpha.12.tgz", + "integrity": "sha512-GVkVfbHGV+01uk2LCch75fbNdGWkXW8SPeydIEwpy1TZuM5bz6x8f+Ks9qO3Feb6DBgSWpAqj7TLmGtZNaIwZg==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.2.0-alpha.11", + "@antora/logger": "3.2.0-alpha.12", "@antora/user-require-helper": "~3.0", "@asciidoctor/core": "~2.2" }, @@ -62,95 +62,20 @@ "node": ">=18.0.0" } }, - "node_modules/@antora/cli/node_modules/@antora/logger": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.2.0-alpha.12.tgz", - "integrity": "sha512-feyaa9w79rKuQQ9A1HpLYHNrAVgo8Oc3J/Ptu6M9XCm/T7utNA79z8DyQWL4yQADrI64f52sZv9PpSAF7EVz8A==", - "license": "MPL-2.0", - "dependencies": { - "@antora/expand-path-helper": "~3.0", - "pino": "10.1.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@antora/cli/node_modules/@antora/playbook-builder": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.2.0-alpha.12.tgz", - "integrity": "sha512-mOLSX7Xr297Svt3UCka0ebPN9eKq2/2qZVwgflQXZruEMY6hl6sqey8tGYZhcINKYGcGEej4EXGj0R0u1xt0oA==", - "license": "MPL-2.0", - "dependencies": { - "@iarna/toml": "~2.2", - "convict": "~6.2", - "js-yaml": "~4.1", - "json5": "~2.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@antora/cli/node_modules/pino": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-10.1.0.tgz", - "integrity": "sha512-0zZC2ygfdqvqK8zJIr1e+wT1T/L+LF6qvqvbzEQ6tiMAoTqEVK9a1K3YRu8HEUvGEvNqZyPJTtb2sNIoTkB83w==", - "license": "MIT", - "dependencies": { - "@pinojs/redact": "^0.4.0", - "atomic-sleep": "^1.0.0", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^2.0.0", - "pino-std-serializers": "^7.0.0", - "process-warning": "^5.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.2.0", - "safe-stable-stringify": "^2.3.1", - "sonic-boom": "^4.0.1", - "thread-stream": "^3.0.0" - }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/@antora/cli/node_modules/pino-abstract-transport": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", - "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", - "license": "MIT", - "dependencies": { - "split2": "^4.0.0" - } - }, - "node_modules/@antora/cli/node_modules/process-warning": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", - "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "MIT" - }, "node_modules/@antora/content-aggregator": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.2.0-alpha.11.tgz", - "integrity": "sha512-3LH5Got0075nXbR3cVFG3mOcfzka+v/oqc55RGP6VOLGq5fOvE0cfi4auJIselQv6wzK2jGsiAzyInbDLWlk4w==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.2.0-alpha.12.tgz", + "integrity": "sha512-4JSK6u7ihbr5b4Jp3XFWYAUsn593OZvWFayrqmupcnLYcyooGjTDUqnO2UHDH9GLelZxLhlOaxTGBrovXF+kNQ==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", - "@antora/logger": "3.2.0-alpha.11", + "@antora/logger": "3.2.0-alpha.12", "@antora/user-require-helper": "~3.0", "braces": "~3.0", "cache-directory": "~2.0", "fast-glob": "~3.3", "hpagent": "~1.2", - "isomorphic-git": "~1.25", + "isomorphic-git": "~1.37", "js-yaml": "~4.1", "multi-progress": "~4.0", "picomatch": "~4.0", @@ -164,14 +89,14 @@ } }, "node_modules/@antora/content-classifier": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.2.0-alpha.11.tgz", - "integrity": "sha512-6TKNWGWdOJkop0hGYFgSLTdJjK1RJVlwuUye2n+fPGMJH2k3T53i3OIJxsQwoKhVkdA3n383tdsjsf+ptoJAmw==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.2.0-alpha.12.tgz", + "integrity": "sha512-CTGRxjKkd4wZKVXquz+B5ker3YeFakGUeNG4XLULxNis7WVi99b/SZoh00gMjHeftXqschx8JugwXNAiO7yz2w==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.2.0-alpha.11", - "@antora/logger": "3.2.0-alpha.11", - "mime-types": "~2.1", + "@antora/asciidoc-loader": "3.2.0-alpha.12", + "@antora/logger": "3.2.0-alpha.12", + "mime-types": "~3.0", "vinyl": "~3.0" }, "engines": { @@ -179,12 +104,12 @@ } }, "node_modules/@antora/document-converter": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.2.0-alpha.11.tgz", - "integrity": "sha512-yfjqxeXrTFY5EQMFk6I1ITZySgerwVcN/4G30dcrTTUUYZyjSospKuKwlnIr0qP+TUXf27ArzL5+Wpj8+X5XZQ==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.2.0-alpha.12.tgz", + "integrity": "sha512-fTAw3ohkM8Cj/kocX7oJj0njivtj2T/PJs4nv6nWnb87/Dceh+B7O9hS+qz5jwCwByx6HulE6bG9Uc+BgZFuww==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.2.0-alpha.11" + "@antora/asciidoc-loader": "3.2.0-alpha.12" }, "engines": { "node": ">=18.0.0" @@ -200,83 +125,80 @@ } }, "node_modules/@antora/file-publisher": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.2.0-alpha.11.tgz", - "integrity": "sha512-2XcyCR148aUCQsNPMBkBRD0SUBwpx1ZpgyshNnSuvE/cHP1pSkBjxMxqdsF8SZTL2za/k67Ge1vaTND5PZRMIw==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.2.0-alpha.12.tgz", + "integrity": "sha512-l74Ge+VkbflBRNkflJRtPcmQP0VchbhihUnmA9oj7y5bz+arLvFNFKL1zo0qllJ121VQE34fINheH0D68l9ilQ==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", "@antora/user-require-helper": "~3.0", "vinyl": "~3.0", - "yazl": "~2.5" + "yazl": "~3.3" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@antora/logger": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.2.0-alpha.11.tgz", - "integrity": "sha512-reiqsBqpllqRsuJhcPqbe7roOR3Ja+LfysTzyDzgrXS7liu5BexlwHCPOn9MqScT3A+fhUYajnck8t+w6+fcgQ==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.2.0-alpha.12.tgz", + "integrity": "sha512-feyaa9w79rKuQQ9A1HpLYHNrAVgo8Oc3J/Ptu6M9XCm/T7utNA79z8DyQWL4yQADrI64f52sZv9PpSAF7EVz8A==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", - "pino": "~9.2", - "pino-pretty": "~11.2", - "sonic-boom": "~4.0" + "pino": "10.1.0" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@antora/navigation-builder": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.2.0-alpha.11.tgz", - "integrity": "sha512-59+Uev7/Dk7/Is5EbL4DmsNJs/ju0MVZzb7qzRLu/3C5rRWZqG3l536Bb1/mStGfSbP6xHHSlzZWMjr7DZpCnw==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.2.0-alpha.12.tgz", + "integrity": "sha512-b/+UbU/u2EasQQTwznE4Yv5+eoNuTKpYn3YBlFDVt68WhXuIee+Gevzb38EnWBCn+XrPvWRV99ZE/ccCJBE5ng==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.2.0-alpha.11" + "@antora/asciidoc-loader": "3.2.0-alpha.12" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@antora/page-composer": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.2.0-alpha.11.tgz", - "integrity": "sha512-04JKTx5fui605PDh5HJPTmhDsMszwYST5xP6pXSpujEaeKCuHa6z9pmlxbesc9WYIkMqEdAXPrxtzXA/DdFpEA==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.2.0-alpha.12.tgz", + "integrity": "sha512-oGVhhPVo9FCwhfrEiGdzUjnA7cf1Yl4dyJd82fk+JakyhaifLxGgKmJazWn8CXs1OJUd7ImjkpX4vVAryTnlZw==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.2.0-alpha.11", - "handlebars": "~4.7", - "require-from-string": "~2.0" + "@antora/logger": "3.2.0-alpha.12", + "handlebars": "~4.7" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@antora/playbook-builder": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.2.0-alpha.11.tgz", - "integrity": "sha512-rI707tLA3sGigNTEaoQzCDBn1pIyQa35ktf7OAO2kTYcUF9eLwf8gU3u68BqTwdh4ewuFG2uvHDEx6/6pTciNQ==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.2.0-alpha.12.tgz", + "integrity": "sha512-mOLSX7Xr297Svt3UCka0ebPN9eKq2/2qZVwgflQXZruEMY6hl6sqey8tGYZhcINKYGcGEej4EXGj0R0u1xt0oA==", "license": "MPL-2.0", "dependencies": { "@iarna/toml": "~2.2", "convict": "~6.2", "js-yaml": "~4.1", - "json5": "~2.2", - "yargs-parser": "~20.2" + "json5": "~2.2" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@antora/redirect-producer": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.2.0-alpha.11.tgz", - "integrity": "sha512-kMjA79P+3tzd1Ao5MAygIBoZqSYRG6yn2/P4VUURw7IIwh/kAbqwgJVXTFTIAL0u6PuDsGWtrOnO+eteT7WpwQ==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.2.0-alpha.12.tgz", + "integrity": "sha512-K58XBU3NKsGMPeLRpk/J7PWR/8TMXjX/sgnUK4Yl/NjNh2uksKfsW/DLUV8ErXYaxT8l+1R8nAgBGRSpuBIUOQ==", "license": "MPL-2.0", "dependencies": { + "@antora/content-classifier": "3.2.0-alpha.12", "vinyl": "~3.0" }, "engines": { @@ -284,24 +206,24 @@ } }, "node_modules/@antora/site-generator": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.2.0-alpha.11.tgz", - "integrity": "sha512-m8CGC4dRxv3gUSK56p5KXHHEGOO6EOA8QlMi7gfiwtK/5+O/qRC6thJeet7zQPATuwESnpI1ASViHhOI2aSKpA==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.2.0-alpha.12.tgz", + "integrity": "sha512-iLt+3RRx0NgA2A2LEg6LLsfxXeb/yYQIvOkrlGJonnADsYhl4U+301Pns9VKLQURY7iUnjkvi7QJrLUb0cJftg==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.2.0-alpha.11", - "@antora/content-aggregator": "3.2.0-alpha.11", - "@antora/content-classifier": "3.2.0-alpha.11", - "@antora/document-converter": "3.2.0-alpha.11", - "@antora/file-publisher": "3.2.0-alpha.11", - "@antora/logger": "3.2.0-alpha.11", - "@antora/navigation-builder": "3.2.0-alpha.11", - "@antora/page-composer": "3.2.0-alpha.11", - "@antora/playbook-builder": "3.2.0-alpha.11", - "@antora/redirect-producer": "3.2.0-alpha.11", - "@antora/site-mapper": "3.2.0-alpha.11", - "@antora/site-publisher": "3.2.0-alpha.11", - "@antora/ui-loader": "3.2.0-alpha.11", + "@antora/asciidoc-loader": "3.2.0-alpha.12", + "@antora/content-aggregator": "3.2.0-alpha.12", + "@antora/content-classifier": "3.2.0-alpha.12", + "@antora/document-converter": "3.2.0-alpha.12", + "@antora/file-publisher": "3.2.0-alpha.12", + "@antora/logger": "3.2.0-alpha.12", + "@antora/navigation-builder": "3.2.0-alpha.12", + "@antora/page-composer": "3.2.0-alpha.12", + "@antora/playbook-builder": "3.2.0-alpha.12", + "@antora/redirect-producer": "3.2.0-alpha.12", + "@antora/site-mapper": "3.2.0-alpha.12", + "@antora/site-publisher": "3.2.0-alpha.12", + "@antora/ui-loader": "3.2.0-alpha.12", "@antora/user-require-helper": "~3.0" }, "engines": { @@ -309,12 +231,12 @@ } }, "node_modules/@antora/site-mapper": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.2.0-alpha.11.tgz", - "integrity": "sha512-CWvsfjVXSRbdGSN9UmGeiVJa+UDDSYLH15O5eKeEzvMp8mVXPVcSvWyW0h1js20ki+PNLlBqwP8O524v7/Mkzg==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.2.0-alpha.12.tgz", + "integrity": "sha512-JM9CeuAvqZZejcly64C8WOn2BbMh33iSxZCMyJdWuz1GjIEuI8y3CY0W1YcGNUQtEdEaBfmSArH2aMEz3c4vYg==", "license": "MPL-2.0", "dependencies": { - "@antora/content-classifier": "3.2.0-alpha.11", + "@antora/content-classifier": "3.2.0-alpha.12", "vinyl": "~3.0" }, "engines": { @@ -322,21 +244,21 @@ } }, "node_modules/@antora/site-publisher": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.2.0-alpha.11.tgz", - "integrity": "sha512-gxiPpQHioCp+y9xYPlJFl2yLnZhjb1Hzr+e4YgmDsc4KvOB+IGR4oGiaOhUfBb63X0VsKFHzv/uq2Mhohazj3Q==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.2.0-alpha.12.tgz", + "integrity": "sha512-gde53/tYRgTY8jqYnL1Yq1SmGhd0/+k8iooKBXONzpI6v9crWow4+RTEaGbjVKM0bMS0lBurs+0lyjLzpirUFw==", "license": "MPL-2.0", "dependencies": { - "@antora/file-publisher": "3.2.0-alpha.11" + "@antora/file-publisher": "3.2.0-alpha.12" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@antora/ui-loader": { - "version": "3.2.0-alpha.11", - "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.2.0-alpha.11.tgz", - "integrity": "sha512-LHK8wo9mlXg8RmumBW2yCwIZXXoNgcYUh5ln94vf46p8gnO4cm+5i8REa6JgFPIO95FGVVQlE4lRhr86I7GPgw==", + "version": "3.2.0-alpha.12", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.2.0-alpha.12.tgz", + "integrity": "sha512-SkrYKWyMubho7uakypMiHkoV9S+pU9PUxYchCl+FChQGY515LJn1ibOmsZVhcGtbYU1u+YgkBxcG/bujbm4Vfw==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", @@ -349,7 +271,7 @@ "should-proxy": "~1.0", "simple-get": "~4.0", "vinyl": "~3.0", - "yauzl": "~3.1" + "yauzl": "~3.3" }, "engines": { "node": ">=18.0.0" @@ -368,13 +290,13 @@ } }, "node_modules/@asciidoctor/core": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.8.tgz", - "integrity": "sha512-oozXk7ZO1RAd/KLFLkKOhqTcG4GO3CV44WwOFg2gMcCsqCUTarvMT7xERIoWW2WurKbB0/ce+98r01p8xPOlBw==", + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.9.tgz", + "integrity": "sha512-tIPRHo1T2SFmAm+j77cDsj0RuaszP7xJxsaVTTAF5CwKyTbazw9TnIVlpIWM5yWfIWAWcAZy92RcnPgMJwny1w==", "license": "MIT", "dependencies": { - "asciidoctor-opal-runtime": "0.3.3", - "unxhr": "1.0.1" + "asciidoctor-opal-runtime": "0.3.4", + "unxhr": "~1.2" }, "engines": { "node": ">=8.11", @@ -708,58 +630,18 @@ "license": "Python-2.0" }, "node_modules/asciidoctor-opal-runtime": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.3.tgz", - "integrity": "sha512-/CEVNiOia8E5BMO9FLooo+Kv18K4+4JBFRJp8vUy/N5dMRAg+fRNV4HA+o6aoSC79jVU/aT5XvUpxSxSsTS8FQ==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/asciidoctor-opal-runtime/-/asciidoctor-opal-runtime-0.3.4.tgz", + "integrity": "sha512-zqd6zn1LV+PZ69AP/kEbB00zuPHMIAJY3IX8+aZV+X1qOwatYvKGjsMmdMc5ApfhtkjZ4mYkqiTPJWnEnBiMJg==", "license": "MIT", "dependencies": { - "glob": "7.1.3", - "unxhr": "1.0.1" + "fast-glob": "~3.3", + "unxhr": "~1.2" }, "engines": { "node": ">=8.11" } }, - "node_modules/asciidoctor-opal-runtime/node_modules/brace-expansion": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", - "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/asciidoctor-opal-runtime/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/asciidoctor-opal-runtime/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/asciinema-player": { "version": "3.15.1", "resolved": "https://registry.npmjs.org/asciinema-player/-/asciinema-player-3.15.1.tgz", @@ -1164,12 +1046,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" - }, "node_modules/commander": { "version": "13.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", @@ -1265,15 +1141,6 @@ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", "license": "MIT" }, - "node_modules/dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/decompress": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", @@ -1632,12 +1499,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, - "node_modules/fast-copy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", - "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", - "license": "MIT" - }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", @@ -1660,21 +1521,6 @@ "node": ">=8.6.0" } }, - "node_modules/fast-redact": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", - "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "license": "MIT" - }, "node_modules/fast-xml-builder": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.2.0.tgz", @@ -2066,12 +1912,6 @@ "node": ">= 0.4" } }, - "node_modules/help-me": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", - "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", - "license": "MIT" - }, "node_modules/hpagent": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/hpagent/-/hpagent-1.2.0.tgz", @@ -2279,9 +2119,9 @@ "license": "ISC" }, "node_modules/isomorphic-git": { - "version": "1.25.10", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.25.10.tgz", - "integrity": "sha512-IxGiaKBwAdcgBXwIcxJU6rHLk+NrzYaaPKXXQffcA0GW3IUrQXdUPDXDo+hkGVcYruuz/7JlGBiuaeTCgIgivQ==", + "version": "1.37.9", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.37.9.tgz", + "integrity": "sha512-jmjEiXhaPQy27AcTwI6KYFXMhYq3RB5G7MKsFZ/J1oW7dMNOKW9rGi05LhD9Shl7lp15WyQ1cRrRdl0aE8yIhQ==", "license": "MIT", "dependencies": { "async-lock": "^1.4.1", @@ -2292,15 +2132,15 @@ "minimisted": "^2.0.0", "pako": "^1.0.10", "pify": "^4.0.1", - "readable-stream": "^3.4.0", - "sha.js": "^2.4.9", + "readable-stream": "^4.0.0", + "sha.js": "^2.4.12", "simple-get": "^4.0.1" }, "bin": { "isogit": "cli.cjs" }, "engines": { - "node": ">=12" + "node": ">=14.17" } }, "node_modules/isomorphic-git/node_modules/pify": { @@ -2312,20 +2152,6 @@ "node": ">=6" } }, - "node_modules/isomorphic-git/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -2341,15 +2167,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/js-yaml": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", @@ -2511,24 +2328,28 @@ } }, "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==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "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==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "^1.54.0" }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/mimic-response": { @@ -2797,17 +2618,17 @@ } }, "node_modules/pino": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.2.0.tgz", - "integrity": "sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-10.1.0.tgz", + "integrity": "sha512-0zZC2ygfdqvqK8zJIr1e+wT1T/L+LF6qvqvbzEQ6tiMAoTqEVK9a1K3YRu8HEUvGEvNqZyPJTtb2sNIoTkB83w==", "license": "MIT", "dependencies": { + "@pinojs/redact": "^0.4.0", "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.2.0", + "pino-abstract-transport": "^2.0.0", "pino-std-serializers": "^7.0.0", - "process-warning": "^3.0.0", + "process-warning": "^5.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", @@ -2819,40 +2640,14 @@ } }, "node_modules/pino-abstract-transport": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", "license": "MIT", "dependencies": { - "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, - "node_modules/pino-pretty": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.2.2.tgz", - "integrity": "sha512-2FnyGir8nAJAqD3srROdrF1J5BIcMT4nwj7hHSc60El6Uxlym00UbCCd8pYIterstVBFlMyF1yFV8XdGIPbj4A==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-copy": "^3.0.2", - "fast-safe-stringify": "^2.1.1", - "help-me": "^5.0.0", - "joycon": "^3.1.1", - "minimist": "^1.2.6", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^4.0.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^4.0.1", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, "node_modules/pino-std-serializers": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz", @@ -2884,9 +2679,19 @@ "license": "MIT" }, "node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], "license": "MIT" }, "node_modules/progress": { @@ -3006,15 +2811,6 @@ "node": ">= 10" } }, - "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==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -3077,12 +2873,6 @@ "node": ">=10" } }, - "node_modules/secure-json-parse": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", - "license": "BSD-3-Clause" - }, "node_modules/seek-bzip": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", @@ -3273,9 +3063,9 @@ } }, "node_modules/sonic-boom": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", - "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz", + "integrity": "sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" @@ -3430,18 +3220,6 @@ "is-natural-number": "^4.0.1" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/strnum": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.3.tgz", @@ -3675,9 +3453,9 @@ } }, "node_modules/unxhr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.0.1.tgz", - "integrity": "sha512-MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unxhr/-/unxhr-1.2.0.tgz", + "integrity": "sha512-6cGpm8NFXPD9QbSNx0cD2giy7teZ6xOkCUH3U89WKVkL9N9rBrWjlCwhR94Re18ZlAop4MOc3WU1M3Hv/bgpIw==", "license": "MIT", "engines": { "node": ">=8.11" @@ -3886,9 +3664,9 @@ } }, "node_modules/yauzl": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.1.3.tgz", - "integrity": "sha512-JCCdmlJJWv7L0q/KylOekyRaUrdEoUxWkWVcgorosTROCFWiS9p2NNPE9Yb91ak7b1N5SxAZEliWpspbZccivw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.3.1.tgz", + "integrity": "sha512-RNPCUkiE/ZgO4w8i9U5yDQVHaFDdnzaFANElRvpJteCspvmv2VqrRb9lvS6odVD+jqI/zDsxAHJVsafpcheVQQ==", "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", @@ -3908,21 +3686,12 @@ } }, "node_modules/yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-3.3.1.tgz", + "integrity": "sha512-BbETDVWG+VcMUle37k5Fqp//7SDOK2/1+T7X8TD96M3D9G8jK5VLUdQVdVjGi8im7FGkazX7kk5hkU8X4L5Bng==", "license": "MIT", "dependencies": { - "buffer-crc32": "~0.2.3" - } - }, - "node_modules/yazl/node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" + "buffer-crc32": "^1.0.0" } }, "node_modules/zip-stream": { diff --git a/antora/package.json b/antora/package.json index e090df3752f9..837448b82bce 100644 --- a/antora/package.json +++ b/antora/package.json @@ -4,7 +4,7 @@ }, "dependencies": { "@antora/cli": "3.2.0-alpha.12", - "@antora/site-generator": "3.2.0-alpha.11", + "@antora/site-generator": "3.2.0-alpha.12", "@antora/atlas-extension": "1.0.0-alpha.5", "@springio/antora-extensions": "1.14.11", "@springio/antora-xref-extension": "1.0.0-alpha.5", From 08194cfee7dd1167e5ba8ab85e7bdaffac45d4ca Mon Sep 17 00:00:00 2001 From: Daeho Kwon Date: Thu, 7 May 2026 02:47:32 +0900 Subject: [PATCH 03/14] Fall back to default SSL provider for unmapped SNI hostnames See gh-50301 Signed-off-by: Daeho Kwon --- .../embedded/netty/SslServerCustomizer.java | 14 ++-- .../netty/SslServerCustomizerTests.java | 75 +++++++++++++++++++ 2 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/netty/SslServerCustomizerTests.java diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/SslServerCustomizer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/SslServerCustomizer.java index ea80e03cb189..c9cc3276321f 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/SslServerCustomizer.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/SslServerCustomizer.java @@ -75,11 +75,15 @@ public HttpServer apply(HttpServer server) { } private void applySecurity(SslContextSpec spec) { - spec.sslContext(this.sslProvider.getSslContext()).setSniAsyncMappings((serverName, promise) -> { - SslProvider provider = (serverName != null) ? this.serverNameSslProviders.get(serverName) - : this.sslProvider; - return promise.setSuccess(provider); - }); + spec.sslContext(this.sslProvider.getSslContext()) + .setSniAsyncMappings((serverName, promise) -> promise.setSuccess(getSslProvider(serverName))); + } + + SslProvider getSslProvider(String serverName) { + if (serverName == null) { + return this.sslProvider; + } + return this.serverNameSslProviders.getOrDefault(serverName, this.sslProvider); } void updateSslBundle(String serverName, SslBundle sslBundle) { diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/netty/SslServerCustomizerTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/netty/SslServerCustomizerTests.java new file mode 100644 index 000000000000..3f15dca11c73 --- /dev/null +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/embedded/netty/SslServerCustomizerTests.java @@ -0,0 +1,75 @@ +/* + * Copyright 2012-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.web.embedded.netty; + +import java.util.Collections; +import java.util.Map; + +import org.junit.jupiter.api.Test; +import reactor.netty.tcp.SslProvider; + +import org.springframework.boot.ssl.SslBundle; +import org.springframework.boot.ssl.pem.PemSslStoreBundle; +import org.springframework.boot.ssl.pem.PemSslStoreDetails; +import org.springframework.boot.testsupport.classpath.resources.WithPackageResources; +import org.springframework.boot.web.server.Ssl; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Tests for {@link SslServerCustomizer}. + * + * @author Daeho Kwon + */ +class SslServerCustomizerTests { + + @Test + @WithPackageResources({ "1.key", "1.crt", "2.key", "2.crt" }) + void getSslProviderReturnsMappedProviderForKnownServerName() { + SslBundle defaultBundle = createBundle("1.key", "1.crt"); + SslBundle mappedBundle = createBundle("2.key", "2.crt"); + SslServerCustomizer customizer = new SslServerCustomizer(null, Ssl.ClientAuth.NONE, defaultBundle, + Map.of("mapped.example", mappedBundle)); + SslProvider mapped = customizer.getSslProvider("mapped.example"); + assertThat(mapped).isNotNull().isNotSameAs(customizer.getSslProvider(null)); + } + + @Test + @WithPackageResources({ "1.key", "1.crt", "2.key", "2.crt" }) + void getSslProviderFallsBackToDefaultWhenServerNameIsUnmapped() { + SslBundle defaultBundle = createBundle("1.key", "1.crt"); + SslBundle mappedBundle = createBundle("2.key", "2.crt"); + SslServerCustomizer customizer = new SslServerCustomizer(null, Ssl.ClientAuth.NONE, defaultBundle, + Map.of("mapped.example", mappedBundle)); + assertThat(customizer.getSslProvider("unmapped.example")).isSameAs(customizer.getSslProvider(null)); + } + + @Test + @WithPackageResources({ "1.key", "1.crt" }) + void getSslProviderReturnsDefaultWhenServerNameIsNull() { + SslBundle defaultBundle = createBundle("1.key", "1.crt"); + SslServerCustomizer customizer = new SslServerCustomizer(null, Ssl.ClientAuth.NONE, defaultBundle, + Collections.emptyMap()); + assertThat(customizer.getSslProvider(null)).isNotNull(); + } + + private static SslBundle createBundle(String key, String certificate) { + return SslBundle.of(new PemSslStoreBundle( + new PemSslStoreDetails(null, "classpath:" + certificate, "classpath:" + key), null)); + } + +} From 8221bdb9d4cedd3a5cef5d7ba2d476ccc1aa69c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 29 May 2026 10:54:06 +0200 Subject: [PATCH 04/14] Polish "Fall back to default SSL provider for unmapped SNI hostnames" See gh-50301 --- .../boot/web/embedded/netty/SslServerCustomizer.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/SslServerCustomizer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/SslServerCustomizer.java index c9cc3276321f..e8a62685fbe4 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/SslServerCustomizer.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/embedded/netty/SslServerCustomizer.java @@ -80,10 +80,8 @@ private void applySecurity(SslContextSpec spec) { } SslProvider getSslProvider(String serverName) { - if (serverName == null) { - return this.sslProvider; - } - return this.serverNameSslProviders.getOrDefault(serverName, this.sslProvider); + return (serverName != null) ? this.serverNameSslProviders.getOrDefault(serverName, this.sslProvider) + : this.sslProvider; } void updateSslBundle(String serverName, SslBundle sslBundle) { From 7cf7d23f9db732165d83d98e857156ffb129bd2b Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 29 May 2026 09:55:37 +0100 Subject: [PATCH 05/14] Upgrade to MongoDB 5.8.0 Closes gh-50608 --- platform/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/spring-boot-dependencies/build.gradle b/platform/spring-boot-dependencies/build.gradle index 6024148fe40b..c77954e2dcc4 100644 --- a/platform/spring-boot-dependencies/build.gradle +++ b/platform/spring-boot-dependencies/build.gradle @@ -1658,7 +1658,7 @@ bom { releaseNotes("https://github.com/mockito/mockito/releases/tag/v{version}") } } - library("MongoDB", "5.7.0") { + library("MongoDB", "5.8.0") { alignWith { version { of "org.mongodb:mongodb-driver-core" From cfc1e899765141b43e8bb08e692573e404ae29ed Mon Sep 17 00:00:00 2001 From: igormukhin <618760+igormukhin@users.noreply.github.com> Date: Wed, 13 May 2026 18:02:09 +0200 Subject: [PATCH 06/14] Treat empty RabbitMQ SSL bundle as unset See gh-50429 Signed-off-by: igormukhin <618760+igormukhin@users.noreply.github.com> --- .../boot/autoconfigure/amqp/RabbitProperties.java | 2 +- .../boot/autoconfigure/amqp/RabbitPropertiesTests.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java index f7ebb20ef336..89009ecbe81f 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java @@ -474,7 +474,7 @@ public Boolean getEnabled() { * @see #getEnabled() () */ public boolean determineEnabled() { - boolean defaultEnabled = Boolean.TRUE.equals(getEnabled()) || this.bundle != null; + boolean defaultEnabled = Boolean.TRUE.equals(getEnabled()) || StringUtils.hasText(this.bundle); if (CollectionUtils.isEmpty(RabbitProperties.this.parsedAddresses)) { return defaultEnabled; } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitPropertiesTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitPropertiesTests.java index 54bfb6985bf9..df69eca39eae 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitPropertiesTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitPropertiesTests.java @@ -335,6 +335,12 @@ void determineSslEnabledIsTrueWhenBundleIsSetAndNoAddresses() { assertThat(this.properties.getSsl().determineEnabled()).isTrue(); } + @Test + void determineSslEnabledIsFalseWhenBundleIsEmpty() { + this.properties.getSsl().setBundle(""); + assertThat(this.properties.getSsl().determineEnabled()).isFalse(); + } + @Test void propertiesUseConsistentDefaultValues() { ConnectionFactory connectionFactory = new ConnectionFactory(); From 3c5309ba716e94ca1a396c079acb4fc8d4c29245 Mon Sep 17 00:00:00 2001 From: Kapil-chn7 Date: Tue, 5 May 2026 02:23:59 +0530 Subject: [PATCH 07/14] Clarify dependency requirement for Bean Validation support See gh-50290 Signed-off-by: Kapil-chn7 --- .../docs/antora/modules/reference/pages/io/validation.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/validation.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/validation.adoc index 98c7dbda5375..d0a83add5ca2 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/validation.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/validation.adoc @@ -1,7 +1,7 @@ [[io.validation]] = Validation -The method validation feature supported by Bean Validation 1.1 is automatically enabled as long as a JSR-303 implementation (such as Hibernate validator) is on the classpath. +The method validation feature supported by Bean Validation 1.1 is automatically enabled as long as a JSR-303 implementation (such as Hibernate Validator, typically provided by adding `spring-boot-starter-validation`) is on the classpath. This lets bean methods be annotated with `jakarta.validation` constraints on their parameters and/or on their return value. Target classes with such annotated methods need to be annotated with the javadoc:org.springframework.validation.annotation.Validated[format=annotation] annotation at the type level for their methods to be searched for inline constraint annotations. @@ -14,4 +14,4 @@ This allows you to use xref:features/internationalization.adoc[your application' Once the parameters have been resolved, message interpolation is completed using Bean Validation's default interpolator. To customize the javadoc:jakarta.validation.Configuration[] used to build the javadoc:jakarta.validation.ValidatorFactory[], define a javadoc:org.springframework.boot.autoconfigure.validation.ValidationConfigurationCustomizer[] bean. -When multiple customizer beans are defined, they are called in order based on their javadoc:org.springframework.core.annotation.Order[format=annotation] annotation or javadoc:org.springframework.core.Ordered[] implementation. +When multiple customizer beans are defined, they are called in order based on their javadoc:org.springframework.core.annotation.Order[format=annotation] annotation or javadoc:org.springframework.core.Ordered[] implementation. \ No newline at end of file From 091b0f3c4176b0b701d07eb2dfb91c62d08e625b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 29 May 2026 11:40:33 +0200 Subject: [PATCH 08/14] Polish "Clarify dependency requirement for Bean Validation support" See gh-50290 --- .../docs/antora/modules/reference/pages/io/validation.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/validation.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/validation.adoc index d0a83add5ca2..8982860bfa10 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/validation.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/validation.adoc @@ -1,7 +1,7 @@ [[io.validation]] = Validation -The method validation feature supported by Bean Validation 1.1 is automatically enabled as long as a JSR-303 implementation (such as Hibernate Validator, typically provided by adding `spring-boot-starter-validation`) is on the classpath. +The method validation feature supported by Bean Validation 1.1 is automatically enabled as long as a JSR-303 implementation (such as Hibernate Validator, typically provided by `spring-boot-starter-validation`) is on the classpath. This lets bean methods be annotated with `jakarta.validation` constraints on their parameters and/or on their return value. Target classes with such annotated methods need to be annotated with the javadoc:org.springframework.validation.annotation.Validated[format=annotation] annotation at the type level for their methods to be searched for inline constraint annotations. @@ -14,4 +14,4 @@ This allows you to use xref:features/internationalization.adoc[your application' Once the parameters have been resolved, message interpolation is completed using Bean Validation's default interpolator. To customize the javadoc:jakarta.validation.Configuration[] used to build the javadoc:jakarta.validation.ValidatorFactory[], define a javadoc:org.springframework.boot.autoconfigure.validation.ValidationConfigurationCustomizer[] bean. -When multiple customizer beans are defined, they are called in order based on their javadoc:org.springframework.core.annotation.Order[format=annotation] annotation or javadoc:org.springframework.core.Ordered[] implementation. \ No newline at end of file +When multiple customizer beans are defined, they are called in order based on their javadoc:org.springframework.core.annotation.Order[format=annotation] annotation or javadoc:org.springframework.core.Ordered[] implementation. From 155b02f0e3b4e39c4a3bf0f55b918f794884125b Mon Sep 17 00:00:00 2001 From: Dmytro Nosan Date: Fri, 15 May 2026 12:31:40 +0200 Subject: [PATCH 09/14] Use new Maven Resolver API for ModifiedClassPathClassLoader Replace deprecated Maven Resolver components with `RepositorySystemSupplier`. See gh-50447 Signed-off-by: Dmytro Nosan --- .../spring-boot-parent/build.gradle | 3 +- .../spring-boot-test-support/build.gradle | 7 +- .../ModifiedClassPathClassLoader.java | 66 +++++++++---------- 3 files changed, 35 insertions(+), 41 deletions(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index dc023b253be2..850fe4b2a626 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -150,13 +150,14 @@ bom { ] } } - library("Maven Resolver", "1.9.23") { + library("Maven Resolver", "1.9.27") { group("org.apache.maven.resolver") { modules = [ "maven-resolver-api", "maven-resolver-connector-basic", "maven-resolver-impl", "maven-resolver-spi", + "maven-resolver-supplier", "maven-resolver-transport-file", "maven-resolver-transport-http", "maven-resolver-util" diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle index d0e574e17c6e..b9bf109325d8 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle @@ -37,12 +37,7 @@ dependencies { compileOnly("org.springframework.data:spring-data-redis") implementation("jakarta.inject:jakarta.inject-api") - implementation("org.apache.maven.resolver:maven-resolver-connector-basic") - implementation("org.apache.maven.resolver:maven-resolver-impl") - implementation("org.apache.maven:maven-resolver-provider") { - exclude(group: "javax.inject", module: "javax.inject") - } - implementation("org.apache.maven.resolver:maven-resolver-transport-http") { + implementation("org.apache.maven.resolver:maven-resolver-supplier") { exclude group: "org.slf4j", module: "jcl-over-slf4j" } implementation("org.assertj:assertj-core") diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/ModifiedClassPathClassLoader.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/ModifiedClassPathClassLoader.java index c6df949673ad..dea467e46702 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/ModifiedClassPathClassLoader.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/ModifiedClassPathClassLoader.java @@ -42,16 +42,13 @@ import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.collection.CollectRequest; -import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory; import org.eclipse.aether.graph.Dependency; import org.eclipse.aether.repository.LocalRepository; import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.resolution.ArtifactResult; import org.eclipse.aether.resolution.DependencyRequest; import org.eclipse.aether.resolution.DependencyResult; -import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; -import org.eclipse.aether.spi.connector.transport.TransporterFactory; -import org.eclipse.aether.transport.http.HttpTransporterFactory; +import org.eclipse.aether.supplier.RepositorySystemSupplier; import org.springframework.core.annotation.MergedAnnotation; import org.springframework.core.annotation.MergedAnnotations; @@ -242,41 +239,42 @@ private static List getAdditionalUrls(List annotations) private static List resolveCoordinates(String[] coordinates) { Exception latestFailure = null; - RepositorySystem repositorySystem = createRepositorySystem(); - DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); - session.setSystemProperties(System.getProperties()); - LocalRepository localRepository = new LocalRepository(System.getProperty("user.home") + "/.m2/repository"); - RemoteRepository remoteRepository = new RemoteRepository.Builder("central", "default", - "https://repo.maven.apache.org/maven2") - .build(); - session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(session, localRepository)); - for (int i = 0; i < MAX_RESOLUTION_ATTEMPTS; i++) { - CollectRequest collectRequest = new CollectRequest(null, Arrays.asList(remoteRepository)); - collectRequest.setDependencies(createDependencies(coordinates)); - DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, null); - try { - DependencyResult result = repositorySystem.resolveDependencies(session, dependencyRequest); - List resolvedArtifacts = new ArrayList<>(); - for (ArtifactResult artifact : result.getArtifactResults()) { - resolvedArtifacts.add(artifact.getArtifact().getFile().toURI().toURL()); + RepositorySystem repositorySystem = new RepositorySystemSupplier().get(); + try { + DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); + session.setSystemProperties(System.getProperties()); + LocalRepository localRepository = new LocalRepository(System.getProperty("user.home") + "/.m2/repository"); + RemoteRepository remoteRepository = new RemoteRepository.Builder("central", "default", + "https://repo.maven.apache.org/maven2") + .build(); + session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(session, localRepository)); + for (int i = 0; i < MAX_RESOLUTION_ATTEMPTS; i++) { + CollectRequest collectRequest = new CollectRequest(null, Arrays.asList(remoteRepository)); + collectRequest.setDependencies(createDependencies(coordinates)); + DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, null); + try { + DependencyResult result = repositorySystem.resolveDependencies(session, dependencyRequest); + List resolvedArtifacts = new ArrayList<>(); + for (ArtifactResult artifact : result.getArtifactResults()) { + resolvedArtifacts.add(artifact.getArtifact().getFile().toURI().toURL()); + } + return resolvedArtifacts; + } + catch (Exception ex) { + latestFailure = ex; } - return resolvedArtifacts; + } + throw new IllegalStateException("Resolution failed after " + MAX_RESOLUTION_ATTEMPTS + " attempts", + latestFailure); + } + finally { + try { + repositorySystem.shutdown(); } catch (Exception ex) { - latestFailure = ex; + // Ignore } } - throw new IllegalStateException("Resolution failed after " + MAX_RESOLUTION_ATTEMPTS + " attempts", - latestFailure); - } - - @SuppressWarnings("deprecation") - private static RepositorySystem createRepositorySystem() { - org.eclipse.aether.impl.DefaultServiceLocator serviceLocator = MavenRepositorySystemUtils.newServiceLocator(); - serviceLocator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class); - serviceLocator.addService(TransporterFactory.class, HttpTransporterFactory.class); - RepositorySystem repositorySystem = serviceLocator.getService(RepositorySystem.class); - return repositorySystem; } private static List createDependencies(String[] allCoordinates) { From ae3222d5e04d6847cc24b0dd228485de49b83de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 29 May 2026 11:57:42 +0200 Subject: [PATCH 10/14] Polish "Use new Maven Resolver API for ModifiedClassPathClassLoader" See gh-50447 --- .../classpath/ModifiedClassPathClassLoader.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/ModifiedClassPathClassLoader.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/ModifiedClassPathClassLoader.java index dea467e46702..fedbcb8b8897 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/ModifiedClassPathClassLoader.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/ModifiedClassPathClassLoader.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.Function; import java.util.jar.Attributes; import java.util.jar.JarFile; import java.util.regex.Pattern; @@ -238,9 +239,8 @@ private static List getAdditionalUrls(List annotations) } private static List resolveCoordinates(String[] coordinates) { - Exception latestFailure = null; - RepositorySystem repositorySystem = new RepositorySystemSupplier().get(); - try { + return doWithRepositorySystem((repositorySystem) -> { + Exception latestFailure = null; DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession(); session.setSystemProperties(System.getProperties()); LocalRepository localRepository = new LocalRepository(System.getProperty("user.home") + "/.m2/repository"); @@ -266,10 +266,17 @@ private static List resolveCoordinates(String[] coordinates) { } throw new IllegalStateException("Resolution failed after " + MAX_RESOLUTION_ATTEMPTS + " attempts", latestFailure); + }); + } + + private static T doWithRepositorySystem(Function repositorySystem) { + RepositorySystem rs = new RepositorySystemSupplier().get(); + try { + return repositorySystem.apply(rs); } finally { try { - repositorySystem.shutdown(); + rs.shutdown(); } catch (Exception ex) { // Ignore From 8a28cefd08d6e09f0d2075290ecace154a04ed0a Mon Sep 17 00:00:00 2001 From: Sebastien Tardif Date: Fri, 15 May 2026 10:58:37 -0700 Subject: [PATCH 11/14] Restore interrupt flag in ProcessRunner on InterruptedException ProcessRunner.waitForProcess and ReaderThread.toString catch InterruptedException without restoring the thread interrupt flag. This prevents callers higher up the stack from detecting the interruption. Every other InterruptedException handler in the codebase restores the flag; these two were the only omissions. Add Thread.currentThread().interrupt() before re-throwing or returning in both catch blocks. Also chain the original exception as the cause in waitForProcess for debuggability. See gh-50451 Signed-off-by: Sebastien Tardif --- .../boot/docker/compose/core/ProcessRunner.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/core/ProcessRunner.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/core/ProcessRunner.java index b4cd4c0c2b7c..567b9df1a15a 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/core/ProcessRunner.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/core/ProcessRunner.java @@ -122,7 +122,8 @@ private int waitForProcess(Process process) { return process.waitFor(); } catch (InterruptedException ex) { - throw new IllegalStateException("Interrupted waiting for %s".formatted(process)); + Thread.currentThread().interrupt(); + throw new IllegalStateException("Interrupted waiting for %s".formatted(process), ex); } } @@ -174,6 +175,7 @@ public String toString() { return this.output.toString(); } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); return null; } } From 8786f37f2a9d86c153abc9ef7f5bd42b2ec0d9c1 Mon Sep 17 00:00:00 2001 From: SJLIM Date: Wed, 27 May 2026 23:18:54 +0900 Subject: [PATCH 12/14] Fix typos in documentation See gh-50593 Signed-off-by: SJLIM --- .../appendix/pages/deprecated-application-properties/index.adoc | 2 +- .../antora/modules/gradle-plugin/pages/getting-started.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/deprecated-application-properties/index.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/deprecated-application-properties/index.adoc index c0aa05ec2ade..46c66045e94a 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/deprecated-application-properties/index.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/deprecated-application-properties/index.adoc @@ -3,7 +3,7 @@ = Deprecated Application Properties The following deprecated properties can be specified inside your `application.properties` file, inside your `application.yaml` file, or as command line switches. -Support for these properties will be removed in a future release and should you should migrate away from them. +Support for these properties will be removed in a future release and you should migrate away from them. [TIP] ==== diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/getting-started.adoc b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/getting-started.adoc index 5e923ee0d1e2..995bb857fc8a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/getting-started.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/getting-started.adoc @@ -6,7 +6,7 @@ To get started with the plugin it needs to be applied to your project. ifeval::["{build-type}" == "commercial"] The plugin is published to the Spring Commercial repository. You will have to configure your build to access this repository. -This is usual done through a local artifact repository that mirrors the content of the Spring Commercial repository. +This is usually done through a local artifact repository that mirrors the content of the Spring Commercial repository. Alternatively, while it is not recommended, the Spring Commercial repository can also be accessed directly. In either case, see https://docs.vmware.com/en/Tanzu-Spring-Runtime/Commercial/Tanzu-Spring-Runtime/spring-enterprise-subscription.html[the Tanzu Spring Runtime documentation] for further details. From a862a087ee6bbd6d031fa9bc427fc178d84e19e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 29 May 2026 12:33:38 +0200 Subject: [PATCH 13/14] Polish "Fix typos in documentation" See gh-50593 --- .../antora/modules/tutorial/pages/first-application/index.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/tutorial/pages/first-application/index.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/tutorial/pages/first-application/index.adoc index 04fa52682ced..513e64cb8a2f 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/tutorial/pages/first-application/index.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/tutorial/pages/first-application/index.adoc @@ -132,7 +132,7 @@ endif::[] ifeval::["{build-type}" == "commercial"] You will also have to configure your build to access the Spring Commercial repository. -This is usual done through a local artifact repository that mirrors the content of the Spring Commercial repository. +This is usually done through a local artifact repository that mirrors the content of the Spring Commercial repository. Alternatively, while it is not recommended, the Spring Commercial repository can also be accessed directly. In either case, see https://docs.vmware.com/en/Tanzu-Spring-Runtime/Commercial/Tanzu-Spring-Runtime/spring-enterprise-subscription.html[the Tanzu Spring Runtime documentation] for further details. From c0d4ebc3a58dddc9f59ec10ce8de6b5f7980c1e4 Mon Sep 17 00:00:00 2001 From: Dmytro Nosan Date: Thu, 28 May 2026 10:59:08 +0200 Subject: [PATCH 14/14] Remove the use of Optional from Data Neo4j repository examples See gh-50600 Signed-off-by: Dmytro Nosan --- .../docs/data/nosql/neo4j/repositories/CityRepository.java | 4 +--- .../boot/docs/data/nosql/neo4j/repositories/CityRepository.kt | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.java index 8e1fd5d2403c..6082de18e174 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.java @@ -16,12 +16,10 @@ package org.springframework.boot.docs.data.nosql.neo4j.repositories; -import java.util.Optional; - import org.springframework.data.neo4j.repository.Neo4jRepository; public interface CityRepository extends Neo4jRepository { - Optional findOneByNameAndState(String name, String state); + City findOneByNameAndState(String name, String state); } diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.kt index 6b67e005e5b3..5a619218675b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.kt @@ -17,11 +17,10 @@ package org.springframework.boot.docs.data.nosql.neo4j.repositories import org.springframework.data.neo4j.repository.Neo4jRepository -import java.util.Optional interface CityRepository : Neo4jRepository { - fun findOneByNameAndState(name: String?, state: String?): Optional? + fun findOneByNameAndState(name: String?, state: String?): City? }