From f192fffb633128c6594acb1fad4184e781f7fa31 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 09:09:50 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=9D=99=E6=80=81?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=88=86=E6=9E=90=E5=B7=A5=E5=85=B7=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E5=92=8C=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/package-lock.json | 1722 ++++++++--------- frontend/package.json | 4 +- pom.xml | 139 ++ resources/quality/checkstyle/checkstyle.xml | 65 + resources/quality/checkstyle/suppressions.xml | 17 + resources/quality/pmd/pmd-ruleset.xml | 24 + resources/quality/spotbugs/exclude-filter.xml | 27 + ...\346\261\207\346\212\245\347\211\210.xlsx" | Bin 0 -> 40921 bytes 8 files changed, 1033 insertions(+), 965 deletions(-) create mode 100644 resources/quality/checkstyle/checkstyle.xml create mode 100644 resources/quality/checkstyle/suppressions.xml create mode 100644 resources/quality/pmd/pmd-ruleset.xml create mode 100644 resources/quality/spotbugs/exclude-filter.xml create mode 100644 "\351\235\231\346\200\201\345\267\245\345\205\267\350\260\203\347\240\224_\346\261\207\346\212\245\347\211\210.xlsx" diff --git a/frontend/package-lock.json b/frontend/package-lock.json index bd3b5243..f3578477 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -33,7 +33,7 @@ "react-hook-form": "^7.71.1", "react-markdown": "^9.0.1", "react-router-dom": "^6.26.2", - "react-syntax-highlighter": "^15.5.0", + "react-syntax-highlighter": "^16.1.1", "react-virtuoso": "^4.9.2", "recharts": "^3.7.0", "remark-gfm": "^4.0.0", @@ -61,7 +61,7 @@ "prettier": "^3.3.3", "tailwindcss": "^3.4.10", "typescript": "^5.5.4", - "vite": "^5.4.3" + "vite": "^8.0.8" } }, "node_modules/@alloc/quick-lru": { @@ -365,372 +365,38 @@ "node": ">=6.9.0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], + "node_modules/@emnapi/core": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", "dev": true, + "license": "MIT", "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], + "node_modules/@emnapi/runtime": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", "dev": true, + "license": "MIT", "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "tslib": "^2.4.0" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, + "license": "MIT", "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "tslib": "^2.4.0" } }, "node_modules/@eslint-community/eslint-utils": { @@ -784,20 +450,22 @@ } }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -875,20 +543,22 @@ } }, "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -961,6 +631,25 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -996,6 +685,16 @@ "node": ">= 8" } }, + "node_modules/@oxc-project/types": { + "version": "0.124.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, "node_modules/@radix-ui/number": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/@radix-ui/number/-/number-1.1.1.tgz", @@ -2126,336 +1825,268 @@ "node": ">=14.0.0" } }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "dev": true - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", - "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", - "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", - "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", - "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", - "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", - "cpu": [ - "arm64" ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", - "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", - "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", - "cpu": [ - "arm" ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", - "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", - "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", - "cpu": [ - "arm64" ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", - "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", - "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", - "cpu": [ - "loong64" ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", - "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", "cpu": [ - "loong64" + "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", - "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", - "cpu": [ - "ppc64" ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", - "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", - "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", - "cpu": [ - "riscv64" ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", - "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", - "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", - "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", - "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", - "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", - "cpu": [ - "x64" ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", - "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openharmony" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", - "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", - "cpu": [ - "arm64" ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", - "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", "cpu": [ - "ia32" + "wasm32" ], "dev": true, + "license": "MIT", "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.3" + }, + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", - "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", "cpu": [ - "x64" + "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", - "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true }, "node_modules/@standard-schema/spec": { "version": "1.1.0", @@ -2510,6 +2141,17 @@ "url": "https://github.com/sponsors/tannerlinsley" } }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -2656,6 +2298,12 @@ "undici-types": "~6.21.0" } }, + "node_modules/@types/prismjs": { + "version": "1.26.6", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.6.tgz", + "integrity": "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==", + "license": "MIT" + }, "node_modules/@types/prop-types": { "version": "15.7.15", "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.15.tgz", @@ -2930,10 +2578,11 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3225,13 +2874,14 @@ } }, "node_modules/axios": { - "version": "1.13.2", - "resolved": "https://registry.npmmirror.com/axios/-/axios-1.13.2.tgz", - "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz", + "integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==", + "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", - "proxy-from-env": "^1.1.0" + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", + "proxy-from-env": "^2.1.0" } }, "node_modules/bail": { @@ -3271,10 +2921,11 @@ } }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } @@ -3873,6 +3524,16 @@ "node": ">=6" } }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-node-es": { "version": "1.1.0", "resolved": "https://registry.npmmirror.com/detect-node-es/-/detect-node-es-1.1.0.tgz", @@ -4119,44 +3780,6 @@ "benchmarks" ] }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", @@ -4300,10 +3923,11 @@ } }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4322,10 +3946,11 @@ } }, "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4371,20 +3996,22 @@ } }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4603,21 +4230,23 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "dev": true, + "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -4847,20 +4476,22 @@ } }, "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5021,9 +4652,13 @@ } }, "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -5068,64 +4703,22 @@ } }, "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmmirror.com/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/hastscript/node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmmirror.com/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/hastscript/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmmirror.com/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - }, - "node_modules/hastscript/node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hastscript/node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmmirror.com/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hastscript/node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/highlight.js": { "version": "10.7.3", "resolved": "https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz", @@ -5700,112 +5293,373 @@ "set-function-name": "^2.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.4" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/jiti": { - "version": "1.21.7", - "resolved": "https://registry.npmmirror.com/jiti/-/jiti-1.21.7.tgz", - "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], "dev": true, - "bin": { - "jiti": "bin/jiti.js" + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "argparse": "^2.0.1" + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], "dev": true, - "bin": { - "json5": "lib/cli.js" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=4.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "json-buffer": "3.0.1" + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.8.0" + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/lilconfig": { @@ -6757,12 +6611,13 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, + "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -7131,9 +6986,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", "dev": true, "funding": [ { @@ -7149,6 +7004,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -7371,9 +7227,13 @@ } }, "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } }, "node_modules/punycode": { "version": "2.3.1", @@ -7617,16 +7477,20 @@ } }, "node_modules/react-syntax-highlighter": { - "version": "15.6.6", - "resolved": "https://registry.npmmirror.com/react-syntax-highlighter/-/react-syntax-highlighter-15.6.6.tgz", - "integrity": "sha512-DgXrc+AZF47+HvAPEmn7Ua/1p10jNoVZVI/LoPiYdtY+OM+/nG5yefLHKJwdKqY1adMuHFbeyBaG9j64ML7vTw==", + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-16.1.1.tgz", + "integrity": "sha512-PjVawBGy80C6YbC5DDZJeUjBmC7skaoEUdvfFQediQHgCL7aKyVHe57SaJGfQsloGDac+gCpTfRdtxzWWKmCXA==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.3.1", + "@babel/runtime": "^7.28.4", "highlight.js": "^10.4.1", "highlightjs-vue": "^1.0.0", "lowlight": "^1.17.0", "prismjs": "^1.30.0", - "refractor": "^3.6.0" + "refractor": "^5.0.0" + }, + "engines": { + "node": ">= 16.20.2" }, "peerDependencies": { "react": ">= 0.14.0" @@ -7727,111 +7591,21 @@ } }, "node_modules/refractor": { - "version": "3.6.0", - "resolved": "https://registry.npmmirror.com/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", - "dependencies": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/refractor/-/refractor-5.0.0.tgz", + "integrity": "sha512-QXOrHQF5jOpjjLfiNk5GFnWhRXvxjUVnlFxkeDmewR5sXkr3iM46Zo+CnRR8B+MDVqkULW4EcLVcRBNOPXHosw==", + "license": "MIT", "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" + "@types/hast": "^3.0.0", + "@types/prismjs": "^1.0.0", + "hastscript": "^9.0.0", + "parse-entities": "^4.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/refractor/node_modules/prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", - "engines": { - "node": ">=6" - } - }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -7971,49 +7745,46 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rollup": { - "version": "4.55.1", - "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.55.1.tgz", - "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", + "node_modules/rolldown": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.8" + "@oxc-project/types": "=0.124.0", + "@rolldown/pluginutils": "1.0.0-rc.15" }, "bin": { - "rollup": "dist/bin/rollup" + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.55.1", - "@rollup/rollup-android-arm64": "4.55.1", - "@rollup/rollup-darwin-arm64": "4.55.1", - "@rollup/rollup-darwin-x64": "4.55.1", - "@rollup/rollup-freebsd-arm64": "4.55.1", - "@rollup/rollup-freebsd-x64": "4.55.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", - "@rollup/rollup-linux-arm-musleabihf": "4.55.1", - "@rollup/rollup-linux-arm64-gnu": "4.55.1", - "@rollup/rollup-linux-arm64-musl": "4.55.1", - "@rollup/rollup-linux-loong64-gnu": "4.55.1", - "@rollup/rollup-linux-loong64-musl": "4.55.1", - "@rollup/rollup-linux-ppc64-gnu": "4.55.1", - "@rollup/rollup-linux-ppc64-musl": "4.55.1", - "@rollup/rollup-linux-riscv64-gnu": "4.55.1", - "@rollup/rollup-linux-riscv64-musl": "4.55.1", - "@rollup/rollup-linux-s390x-gnu": "4.55.1", - "@rollup/rollup-linux-x64-gnu": "4.55.1", - "@rollup/rollup-linux-x64-musl": "4.55.1", - "@rollup/rollup-openbsd-x64": "4.55.1", - "@rollup/rollup-openharmony-arm64": "4.55.1", - "@rollup/rollup-win32-arm64-msvc": "4.55.1", - "@rollup/rollup-win32-ia32-msvc": "4.55.1", - "@rollup/rollup-win32-x64-gnu": "4.55.1", - "@rollup/rollup-win32-x64-msvc": "4.55.1", - "fsevents": "~2.3.2" - } + "@rolldown/binding-android-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" + } + }, + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", + "dev": true, + "license": "MIT" }, "node_modules/run-parallel": { "version": "1.2.0", @@ -8635,10 +8406,11 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -9057,20 +8829,23 @@ } }, "node_modules/vite": { - "version": "5.4.21", - "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.21.tgz", - "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.8", + "rolldown": "1.0.0-rc.15", + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -9079,23 +8854,33 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, - "less": { + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { "optional": true }, - "lightningcss": { + "jiti": { + "optional": true + }, + "less": { "optional": true }, "sass": { @@ -9112,9 +8897,28 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", @@ -9230,14 +9034,6 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index ea26f7e3..95c5b33e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -36,7 +36,7 @@ "react-hook-form": "^7.71.1", "react-markdown": "^9.0.1", "react-router-dom": "^6.26.2", - "react-syntax-highlighter": "^15.5.0", + "react-syntax-highlighter": "^16.1.1", "react-virtuoso": "^4.9.2", "recharts": "^3.7.0", "remark-gfm": "^4.0.0", @@ -64,6 +64,6 @@ "prettier": "^3.3.3", "tailwindcss": "^3.4.10", "typescript": "^5.5.4", - "vite": "^5.4.3" + "vite": "^8.0.8" } } diff --git a/pom.xml b/pom.xml index d755b981..9ebaa549 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,21 @@ 2.3.5 4.12.0 2.22.1 + + 3.6.0 + 3.28.0 + 4.9.8.3 + 1.14.0 + 12.2.0 + + ${maven.multiModuleProjectDirectory}/resources/quality + ${quality.root}/checkstyle/checkstyle.xml + ${quality.root}/checkstyle/suppressions.xml + ${quality.root}/pmd/pmd-ruleset.xml + ${quality.root}/spotbugs/exclude-filter.xml + UTF-8 + UTF-8 + ${user.home}/.dependency-check-data @@ -218,6 +233,130 @@ + + + + org.apache.maven.plugins + maven-checkstyle-plugin + ${checkstyle.version} + + ${checkstyle.config} + checkstyle.suppressions.file=${checkstyle.suppressions} + true + false + false + false + xml + + + + checkstyle-verify + verify + + checkstyle + + + + + + + + org.apache.maven.plugins + maven-pmd-plugin + ${pmd.version} + + + ${pmd.ruleset} + + 17 + true + false + false + + + + pmd-verify + verify + + pmd + + + + + + + com.github.spotbugs + spotbugs-maven-plugin + ${spotbugs.plugin.version} + + + Max + + + Medium + + + 1024 + + + false + + + ${spotbugs.exclude} + + + true + + + true + + + + + com.h3xstream.findsecbugs + findsecbugs-plugin + ${findsecbugs.version} + + + + + + spotbugs-verify + verify + + spotbugs + + + + + + + + org.owasp + dependency-check-maven + ${dependency.check.version} + + HTML + 11 + true + ${dependency-check.data.dir} + ${env.NVD_API_KEY} + + false + false + false + false + + + + sca-aggregate + verify + + aggregate + + + + diff --git a/resources/quality/checkstyle/checkstyle.xml b/resources/quality/checkstyle/checkstyle.xml new file mode 100644 index 00000000..35cf3298 --- /dev/null +++ b/resources/quality/checkstyle/checkstyle.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/quality/checkstyle/suppressions.xml b/resources/quality/checkstyle/suppressions.xml new file mode 100644 index 00000000..df79ba6c --- /dev/null +++ b/resources/quality/checkstyle/suppressions.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/quality/pmd/pmd-ruleset.xml b/resources/quality/pmd/pmd-ruleset.xml new file mode 100644 index 00000000..257dee90 --- /dev/null +++ b/resources/quality/pmd/pmd-ruleset.xml @@ -0,0 +1,24 @@ + + + + + PMD ruleset for ragent, compatible with PMD 7. + + + + .*/target/.* + .*/generated-sources/.* + .*/generated-test-sources/.* + .*/frontend/.* + .*/docs/.* + + + + + + + + \ No newline at end of file diff --git a/resources/quality/spotbugs/exclude-filter.xml b/resources/quality/spotbugs/exclude-filter.xml new file mode 100644 index 00000000..9a652067 --- /dev/null +++ b/resources/quality/spotbugs/exclude-filter.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\351\235\231\346\200\201\345\267\245\345\205\267\350\260\203\347\240\224_\346\261\207\346\212\245\347\211\210.xlsx" "b/\351\235\231\346\200\201\345\267\245\345\205\267\350\260\203\347\240\224_\346\261\207\346\212\245\347\211\210.xlsx" new file mode 100644 index 0000000000000000000000000000000000000000..be97a56dffc5ca3b0b358fc3fb7038c41d88fece GIT binary patch literal 40921 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 yRG%lK4YFyQ}p; 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 c`8V@lp{gbV0vtg Date: Wed, 22 Apr 2026 09:17:13 +0800 Subject: [PATCH 02/18] =?UTF-8?q?=E6=B3=A8=E9=87=8Apom=E6=B5=8B=E8=AF=95we?= =?UTF-8?q?bhook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/pom.xml b/pom.xml index 9ebaa549..924f9ae6 100644 --- a/pom.xml +++ b/pom.xml @@ -235,29 +235,29 @@ - - org.apache.maven.plugins - maven-checkstyle-plugin - ${checkstyle.version} - - ${checkstyle.config} - checkstyle.suppressions.file=${checkstyle.suppressions} - true - false - false - false - xml - - - - checkstyle-verify - verify - - checkstyle - - - - + + + + + + + + + + + + + + + + + + + + + + + From ac725affe04c5391db1bf8231d88f6c5d176d3db Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 14:07:25 +0800 Subject: [PATCH 03/18] =?UTF-8?q?=E6=96=B0=E5=A2=9EgithubAction=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 .github diff --git a/.github b/.github new file mode 100644 index 00000000..eeb1c241 --- /dev/null +++ b/.github @@ -0,0 +1,99 @@ +name: Java Static Analysis + +on: + push: + branches: + - main + - chore/static-analysis + - develop + pull_request: + branches: + - main + - chore/static-analysis + - develop + workflow_dispatch: + +permissions: + contents: read + +jobs: + build-and-analyze: + runs-on: ubuntu-latest + + steps: + - name: Checkout source code + uses: actions/checkout@v6 + + - name: Set up JDK 17 with Maven cache + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: '17' + cache: maven + + - name: Show Java and Maven version + run: | + java -version + mvn -version + + - name: Clean and compile + run: mvn -B clean compile -DskipTests + + - name: Run unit tests + run: mvn -B test + + - name: Run Checkstyle + run: mvn -B checkstyle:checkstyle -Dfile.encoding=UTF-8 + + - name: Run PMD + run: mvn -B pmd:pmd + + - name: Run SpotBugs + Find Security Bugs + run: mvn -B spotbugs:spotbugs + + - name: Run OWASP Dependency-Check update + run: mvn -B org.owasp:dependency-check-maven:update-only -DassemblyAnalyzerEnabled=false + + - name: Run OWASP Dependency-Check scan + run: mvn -B dependency-check:check -DassemblyAnalyzerEnabled=false + + - name: Upload Checkstyle reports + uses: actions/upload-artifact@v4 + with: + name: checkstyle-reports + path: | + **/target/checkstyle-result.xml + **/target/site/checkstyle.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload PMD reports + uses: actions/upload-artifact@v4 + with: + name: pmd-reports + path: | + **/target/pmd.xml + **/target/site/pmd.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload SpotBugs reports + uses: actions/upload-artifact@v4 + with: + name: spotbugs-reports + path: | + **/target/spotbugsXml.xml + **/target/site/spotbugs.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload Dependency-Check reports + uses: actions/upload-artifact@v4 + with: + name: dependency-check-reports + path: | + **/target/dependency-check-report.html + **/target/dependency-check-report.xml + **/target/dependency-check-report.json + retention-days: 7 + if-no-files-found: warn \ No newline at end of file From 046505459d8bab1f2d629358d12b33ed4967417a Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 14:12:00 +0800 Subject: [PATCH 04/18] update --- .github | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github b/.github index eeb1c241..ba0836b5 100644 --- a/.github +++ b/.github @@ -5,12 +5,10 @@ on: branches: - main - chore/static-analysis - - develop pull_request: branches: - main - chore/static-analysis - - develop workflow_dispatch: permissions: From c9d73e633cb37a0ad6a07f1cc710a3cbc5ed944f Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 14:14:49 +0800 Subject: [PATCH 05/18] update pom of pmd --- pom.xml | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/pom.xml b/pom.xml index 924f9ae6..9ebaa549 100644 --- a/pom.xml +++ b/pom.xml @@ -235,29 +235,29 @@ - - - - - - - - - - - - - - - - - - - - - - - + + org.apache.maven.plugins + maven-checkstyle-plugin + ${checkstyle.version} + + ${checkstyle.config} + checkstyle.suppressions.file=${checkstyle.suppressions} + true + false + false + false + xml + + + + checkstyle-verify + verify + + checkstyle + + + + From e99acef61455a47d148a98b6a22fb5a3d5beff13 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 14:19:08 +0800 Subject: [PATCH 06/18] update github actions setting --- .github/workflows/java-static-analysis.yml | 99 ++++++++++++++++++++++ .github => .githubbak | 0 2 files changed, 99 insertions(+) create mode 100644 .github/workflows/java-static-analysis.yml rename .github => .githubbak (100%) diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml new file mode 100644 index 00000000..171120ea --- /dev/null +++ b/.github/workflows/java-static-analysis.yml @@ -0,0 +1,99 @@ +name: Java Static Analysis + +on: + push: + branches: + - chore/static-analysis + - master + - develop + pull_request: + branches: + - chore/static-analysis + - master + - develop + workflow_dispatch: + +permissions: + contents: read + +jobs: + build-and-analyze: + runs-on: ubuntu-latest + + steps: + - name: Checkout source code + uses: actions/checkout@v6 + + - name: Set up JDK 17 with Maven cache + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: '17' + cache: maven + + - name: Show Java and Maven version + run: | + java -version + mvn -version + + - name: Clean and compile + run: mvn -B clean compile -DskipTests + + - name: Run unit tests + run: mvn -B test + + - name: Run Checkstyle + run: mvn -B checkstyle:checkstyle -Dfile.encoding=UTF-8 + + - name: Run PMD + run: mvn -B pmd:pmd + + - name: Run SpotBugs + Find Security Bugs + run: mvn -B spotbugs:spotbugs + + - name: Run OWASP Dependency-Check update + run: mvn -B org.owasp:dependency-check-maven:update-only -DassemblyAnalyzerEnabled=false + + - name: Run OWASP Dependency-Check scan + run: mvn -B dependency-check:check -DassemblyAnalyzerEnabled=false + + - name: Upload Checkstyle reports + uses: actions/upload-artifact@v4 + with: + name: checkstyle-reports + path: | + **/target/checkstyle-result.xml + **/target/site/checkstyle.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload PMD reports + uses: actions/upload-artifact@v4 + with: + name: pmd-reports + path: | + **/target/pmd.xml + **/target/site/pmd.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload SpotBugs reports + uses: actions/upload-artifact@v4 + with: + name: spotbugs-reports + path: | + **/target/spotbugsXml.xml + **/target/site/spotbugs.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload Dependency-Check reports + uses: actions/upload-artifact@v4 + with: + name: dependency-check-reports + path: | + **/target/dependency-check-report.html + **/target/dependency-check-report.xml + **/target/dependency-check-report.json + retention-days: 7 + if-no-files-found: warn \ No newline at end of file diff --git a/.github b/.githubbak similarity index 100% rename from .github rename to .githubbak From d4c17ada226b0d3367d9a049d8feb706dea2bbd9 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 14:41:37 +0800 Subject: [PATCH 07/18] update maven-surefire-plugin --- pom.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 9ebaa549..52bdb1ff 100644 --- a/pom.xml +++ b/pom.xml @@ -207,9 +207,10 @@ org.apache.maven.plugins maven-surefire-plugin - - @{argLine} -javaagent:${org.mockito:mockito-core:jar} - + 3.5.4 + + + From 33bc36daecd9e7ade2354d9adf5c3b822e84dea5 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 14:50:00 +0800 Subject: [PATCH 08/18] update --- .github/workflows/java-static-analysis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml index 171120ea..350d329e 100644 --- a/.github/workflows/java-static-analysis.yml +++ b/.github/workflows/java-static-analysis.yml @@ -39,9 +39,6 @@ jobs: - name: Clean and compile run: mvn -B clean compile -DskipTests - - name: Run unit tests - run: mvn -B test - - name: Run Checkstyle run: mvn -B checkstyle:checkstyle -Dfile.encoding=UTF-8 From aece04e6763a804b82ef097562c8ad8182fd5433 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 14:56:41 +0800 Subject: [PATCH 09/18] update gitaction settion file --- .github/workflows/java-static-analysis.yml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml index 350d329e..87bccaa1 100644 --- a/.github/workflows/java-static-analysis.yml +++ b/.github/workflows/java-static-analysis.yml @@ -3,14 +3,10 @@ name: Java Static Analysis on: push: branches: - - chore/static-analysis - - master - - develop + - '**' pull_request: branches: - - chore/static-analysis - - master - - develop + - '**' workflow_dispatch: permissions: @@ -22,10 +18,10 @@ jobs: steps: - name: Checkout source code - uses: actions/checkout@v6 + uses: actions/checkout@v4 - name: Set up JDK 17 with Maven cache - uses: actions/setup-java@v5 + uses: actions/setup-java@v4 with: distribution: temurin java-version: '17' @@ -40,19 +36,19 @@ jobs: run: mvn -B clean compile -DskipTests - name: Run Checkstyle - run: mvn -B checkstyle:checkstyle -Dfile.encoding=UTF-8 + run: mvn -B checkstyle:checkstyle -DskipTests -Dfile.encoding=UTF-8 - name: Run PMD - run: mvn -B pmd:pmd + run: mvn -B pmd:pmd -DskipTests - name: Run SpotBugs + Find Security Bugs - run: mvn -B spotbugs:spotbugs + run: mvn -B spotbugs:spotbugs -DskipTests - name: Run OWASP Dependency-Check update - run: mvn -B org.owasp:dependency-check-maven:update-only -DassemblyAnalyzerEnabled=false + run: mvn -B org.owasp:dependency-check-maven:update-only -DskipTests -DassemblyAnalyzerEnabled=false - name: Run OWASP Dependency-Check scan - run: mvn -B dependency-check:check -DassemblyAnalyzerEnabled=false + run: mvn -B dependency-check:check -DskipTests -DassemblyAnalyzerEnabled=false - name: Upload Checkstyle reports uses: actions/upload-artifact@v4 From 84639e2377b6c6e9ea1105eaca2b929e58005306 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 15:05:32 +0800 Subject: [PATCH 10/18] udpate --- .../ai/ragent/framework/database/MyMetaObjectHandler.java | 2 +- .../exception/kb/VectorCollectionAlreadyExistsException.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/main/java/com/nageoffer/ai/ragent/framework/database/MyMetaObjectHandler.java b/framework/src/main/java/com/nageoffer/ai/ragent/framework/database/MyMetaObjectHandler.java index 930320f7..ec429ada 100644 --- a/framework/src/main/java/com/nageoffer/ai/ragent/framework/database/MyMetaObjectHandler.java +++ b/framework/src/main/java/com/nageoffer/ai/ragent/framework/database/MyMetaObjectHandler.java @@ -38,4 +38,4 @@ public void insertFill(MetaObject metaObject) { public void updateFill(MetaObject metaObject) { strictUpdateFill(metaObject, "updateTime", Date::new, Date.class); } -} \ No newline at end of file +} diff --git a/framework/src/main/java/com/nageoffer/ai/ragent/framework/exception/kb/VectorCollectionAlreadyExistsException.java b/framework/src/main/java/com/nageoffer/ai/ragent/framework/exception/kb/VectorCollectionAlreadyExistsException.java index 911b2255..3e4412c0 100644 --- a/framework/src/main/java/com/nageoffer/ai/ragent/framework/exception/kb/VectorCollectionAlreadyExistsException.java +++ b/framework/src/main/java/com/nageoffer/ai/ragent/framework/exception/kb/VectorCollectionAlreadyExistsException.java @@ -27,4 +27,4 @@ public class VectorCollectionAlreadyExistsException extends ServiceException { public VectorCollectionAlreadyExistsException(String collectionName) { super("向量集合已存在,禁止重复创建:" + collectionName); } -} \ No newline at end of file +} From 67732afd74cfa2305322fe511fe0568e7438e5db Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 15:15:24 +0800 Subject: [PATCH 11/18] update --- .github/workflows/java-static-analysis.yml | 66 +++------------------- 1 file changed, 7 insertions(+), 59 deletions(-) diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml index 87bccaa1..aaadd562 100644 --- a/.github/workflows/java-static-analysis.yml +++ b/.github/workflows/java-static-analysis.yml @@ -18,75 +18,23 @@ jobs: steps: - name: Checkout source code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up JDK 17 with Maven cache - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: temurin java-version: '17' cache: maven - - name: Show Java and Maven version + - name: Run Maven build and static analysis run: | - java -version - mvn -version + mvn clean verify -DskipTests - - name: Clean and compile - run: mvn -B clean compile -DskipTests - - - name: Run Checkstyle - run: mvn -B checkstyle:checkstyle -DskipTests -Dfile.encoding=UTF-8 - - - name: Run PMD - run: mvn -B pmd:pmd -DskipTests - - - name: Run SpotBugs + Find Security Bugs - run: mvn -B spotbugs:spotbugs -DskipTests - - - name: Run OWASP Dependency-Check update - run: mvn -B org.owasp:dependency-check-maven:update-only -DskipTests -DassemblyAnalyzerEnabled=false - - - name: Run OWASP Dependency-Check scan - run: mvn -B dependency-check:check -DskipTests -DassemblyAnalyzerEnabled=false - - - name: Upload Checkstyle reports - uses: actions/upload-artifact@v4 - with: - name: checkstyle-reports - path: | - **/target/checkstyle-result.xml - **/target/site/checkstyle.html - retention-days: 7 - if-no-files-found: warn - - - name: Upload PMD reports - uses: actions/upload-artifact@v4 - with: - name: pmd-reports - path: | - **/target/pmd.xml - **/target/site/pmd.html - retention-days: 7 - if-no-files-found: warn - - - name: Upload SpotBugs reports - uses: actions/upload-artifact@v4 - with: - name: spotbugs-reports - path: | - **/target/spotbugsXml.xml - **/target/site/spotbugs.html - retention-days: 7 - if-no-files-found: warn - - - name: Upload Dependency-Check reports + - name: Upload analysis reports uses: actions/upload-artifact@v4 with: - name: dependency-check-reports - path: | - **/target/dependency-check-report.html - **/target/dependency-check-report.xml - **/target/dependency-check-report.json + name: analysis-reports + path: target/*-report.xml # 确保你的报告路径正确 retention-days: 7 if-no-files-found: warn \ No newline at end of file From d690ebc7a8b022a951f803d1ac2d713817e9b2ce Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 15:19:24 +0800 Subject: [PATCH 12/18] update nvd api key --- .github/workflows/java-static-analysis.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml index aaadd562..e2dfa60b 100644 --- a/.github/workflows/java-static-analysis.yml +++ b/.github/workflows/java-static-analysis.yml @@ -27,6 +27,13 @@ jobs: java-version: '17' cache: maven + - name: Set NVD API Key + env: + NVD_API_KEY: "0574a531-3097-4bd4-8777-e72d99aa6bed" # 直接在这里设置环境变量 + run: | + echo "NVD_API_KEY is set" + # 这里可以使用 $NVD_API_KEY 作为环境变量 + - name: Run Maven build and static analysis run: | mvn clean verify -DskipTests @@ -35,6 +42,6 @@ jobs: uses: actions/upload-artifact@v4 with: name: analysis-reports - path: target/*-report.xml # 确保你的报告路径正确 + path: target/*-report.xml retention-days: 7 if-no-files-found: warn \ No newline at end of file From 9237a3e4184b5cfc7ef746f92cc31ccca3ab83bc Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 15:26:09 +0800 Subject: [PATCH 13/18] ignore dependency -check --- pom.xml | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/pom.xml b/pom.xml index 52bdb1ff..9fb36177 100644 --- a/pom.xml +++ b/pom.xml @@ -332,32 +332,32 @@ - - org.owasp - dependency-check-maven - ${dependency.check.version} - - HTML - 11 - true - ${dependency-check.data.dir} - ${env.NVD_API_KEY} - - false - false - false - false - - - - sca-aggregate - verify - - aggregate - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + From e364bd570dd0fc3eff8145235849788530c8ac43 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 15:33:55 +0800 Subject: [PATCH 14/18] update report path --- .github/workflows/java-static-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml index e2dfa60b..ddebe52c 100644 --- a/.github/workflows/java-static-analysis.yml +++ b/.github/workflows/java-static-analysis.yml @@ -42,6 +42,6 @@ jobs: uses: actions/upload-artifact@v4 with: name: analysis-reports - path: target/*-report.xml + path: target/reports/checkstyle.html # 修改为实际生成的 HTML 文件路径 retention-days: 7 if-no-files-found: warn \ No newline at end of file From b95267569fa55274300a7cf47f79088e37eadb25 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 16:42:56 +0800 Subject: [PATCH 15/18] update file --- .github/workflows/java-static-analysis.yml | 41 ++++++--- .githubbak | 97 ---------------------- pom.xml | 1 - 3 files changed, 29 insertions(+), 110 deletions(-) delete mode 100644 .githubbak diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml index ddebe52c..758c1f3a 100644 --- a/.github/workflows/java-static-analysis.yml +++ b/.github/workflows/java-static-analysis.yml @@ -27,21 +27,38 @@ jobs: java-version: '17' cache: maven - - name: Set NVD API Key - env: - NVD_API_KEY: "0574a531-3097-4bd4-8777-e72d99aa6bed" # 直接在这里设置环境变量 - run: | - echo "NVD_API_KEY is set" - # 这里可以使用 $NVD_API_KEY 作为环境变量 - - - name: Run Maven build and static analysis + - name: Run static analysis tools run: | mvn clean verify -DskipTests - - name: Upload analysis reports + - name: Upload Checkstyle HTML report uses: actions/upload-artifact@v4 with: - name: analysis-reports - path: target/reports/checkstyle.html # 修改为实际生成的 HTML 文件路径 + name: checkstyle-report-html + path: target/reports/checkstyle.html # 上传 Checkstyle HTML 格式报告 retention-days: 7 - if-no-files-found: warn \ No newline at end of file + if-no-files-found: warn + +# - name: Upload PMD report +# uses: actions/upload-artifact@v4 +# with: +# name: pmd-report +# path: target/pmd.xml # 确保 PMD 报告路径正确 +# retention-days: 7 +# if-no-files-found: warn +# +# - name: Upload SpotBugs report (XML) +# uses: actions/upload-artifact@v4 +# with: +# name: spotbugs-report-xml +# path: target/spotbugs/spotbugs-xml.xml # 确保 SpotBugs XML 报告路径正确 +# retention-days: 7 +# if-no-files-found: warn +# +# - name: Upload SpotBugs report (HTML) +# uses: actions/upload-artifact@v4 +# with: +# name: spotbugs-report-html +# path: target/spotbugs/spotbugs.html # 确保 SpotBugs HTML 报告路径正确 +# retention-days: 7 +# if-no-files-found: warn \ No newline at end of file diff --git a/.githubbak b/.githubbak deleted file mode 100644 index ba0836b5..00000000 --- a/.githubbak +++ /dev/null @@ -1,97 +0,0 @@ -name: Java Static Analysis - -on: - push: - branches: - - main - - chore/static-analysis - pull_request: - branches: - - main - - chore/static-analysis - workflow_dispatch: - -permissions: - contents: read - -jobs: - build-and-analyze: - runs-on: ubuntu-latest - - steps: - - name: Checkout source code - uses: actions/checkout@v6 - - - name: Set up JDK 17 with Maven cache - uses: actions/setup-java@v5 - with: - distribution: temurin - java-version: '17' - cache: maven - - - name: Show Java and Maven version - run: | - java -version - mvn -version - - - name: Clean and compile - run: mvn -B clean compile -DskipTests - - - name: Run unit tests - run: mvn -B test - - - name: Run Checkstyle - run: mvn -B checkstyle:checkstyle -Dfile.encoding=UTF-8 - - - name: Run PMD - run: mvn -B pmd:pmd - - - name: Run SpotBugs + Find Security Bugs - run: mvn -B spotbugs:spotbugs - - - name: Run OWASP Dependency-Check update - run: mvn -B org.owasp:dependency-check-maven:update-only -DassemblyAnalyzerEnabled=false - - - name: Run OWASP Dependency-Check scan - run: mvn -B dependency-check:check -DassemblyAnalyzerEnabled=false - - - name: Upload Checkstyle reports - uses: actions/upload-artifact@v4 - with: - name: checkstyle-reports - path: | - **/target/checkstyle-result.xml - **/target/site/checkstyle.html - retention-days: 7 - if-no-files-found: warn - - - name: Upload PMD reports - uses: actions/upload-artifact@v4 - with: - name: pmd-reports - path: | - **/target/pmd.xml - **/target/site/pmd.html - retention-days: 7 - if-no-files-found: warn - - - name: Upload SpotBugs reports - uses: actions/upload-artifact@v4 - with: - name: spotbugs-reports - path: | - **/target/spotbugsXml.xml - **/target/site/spotbugs.html - retention-days: 7 - if-no-files-found: warn - - - name: Upload Dependency-Check reports - uses: actions/upload-artifact@v4 - with: - name: dependency-check-reports - path: | - **/target/dependency-check-report.html - **/target/dependency-check-report.xml - **/target/dependency-check-report.json - retention-days: 7 - if-no-files-found: warn \ No newline at end of file diff --git a/pom.xml b/pom.xml index 9fb36177..a4c94329 100644 --- a/pom.xml +++ b/pom.xml @@ -207,7 +207,6 @@ org.apache.maven.plugins maven-surefire-plugin - 3.5.4 From 8156c239985cfc825a095c7fc55e895057f5de26 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 17:04:52 +0800 Subject: [PATCH 16/18] update github action --- .github/workflows/ava-static-analysis.yml | 89 ++++++++++++++++++++++ .github/workflows/java-static-analysis.yml | 64 ---------------- pom.xml | 52 ++++++------- 3 files changed, 115 insertions(+), 90 deletions(-) create mode 100644 .github/workflows/ava-static-analysis.yml delete mode 100644 .github/workflows/java-static-analysis.yml diff --git a/.github/workflows/ava-static-analysis.yml b/.github/workflows/ava-static-analysis.yml new file mode 100644 index 00000000..0a3fbaad --- /dev/null +++ b/.github/workflows/ava-static-analysis.yml @@ -0,0 +1,89 @@ +name: Java Static Analysis + +on: + push: + branches: + - '**' + pull_request: + branches: + - '**' + workflow_dispatch: + +permissions: + contents: read + +jobs: + build-and-analyze: + runs-on: ubuntu-latest + + steps: + - name: Checkout source code + uses: actions/checkout@v6 + + - name: Set up JDK 17 with Maven cache + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: '17' + cache: maven + + - name: Show Java and Maven version + run: | + java -version + mvn -version + + - name: Run static analysis tools + run: | + # 运行 Checkstyle + mvn checkstyle:checkstyle -DskipTests + + # 运行 PMD + mvn pmd:pmd -DskipTests + + # 运行 SpotBugs + Find Security Bugs + mvn spotbugs:spotbugs -DskipTests + + # 更新并扫描 OWASP Dependency-Check + mvn org.owasp:dependency-check-maven:update-only -DskipTests + mvn dependency-check:check -DskipTests + + - name: Upload Checkstyle reports + uses: actions/upload-artifact@v4 + with: + name: checkstyle-reports + path: | + target/checkstyle-result.xml + target/site/checkstyle.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload PMD reports + uses: actions/upload-artifact@v4 + with: + name: pmd-reports + path: | + target/pmd.xml + target/site/pmd.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload SpotBugs reports + uses: actions/upload-artifact@v4 + with: + name: spotbugs-reports + path: | + target/spotbugsXml.xml + target/site/spotbugs.html + retention-days: 7 + if-no-files-found: warn + + - name: Upload Dependency-Check reports + uses: actions/upload-artifact@v4 + with: + name: dependency-check-reports + path: | + target/dependency-check-report.html + target/dependency-check-report.xml + target/dependency-check-report.json + retention-days: 7 + if-no-files-found: warn \ No newline at end of file diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml deleted file mode 100644 index 758c1f3a..00000000 --- a/.github/workflows/java-static-analysis.yml +++ /dev/null @@ -1,64 +0,0 @@ -name: Java Static Analysis - -on: - push: - branches: - - '**' - pull_request: - branches: - - '**' - workflow_dispatch: - -permissions: - contents: read - -jobs: - build-and-analyze: - runs-on: ubuntu-latest - - steps: - - name: Checkout source code - uses: actions/checkout@v6 - - - name: Set up JDK 17 with Maven cache - uses: actions/setup-java@v5 - with: - distribution: temurin - java-version: '17' - cache: maven - - - name: Run static analysis tools - run: | - mvn clean verify -DskipTests - - - name: Upload Checkstyle HTML report - uses: actions/upload-artifact@v4 - with: - name: checkstyle-report-html - path: target/reports/checkstyle.html # 上传 Checkstyle HTML 格式报告 - retention-days: 7 - if-no-files-found: warn - -# - name: Upload PMD report -# uses: actions/upload-artifact@v4 -# with: -# name: pmd-report -# path: target/pmd.xml # 确保 PMD 报告路径正确 -# retention-days: 7 -# if-no-files-found: warn -# -# - name: Upload SpotBugs report (XML) -# uses: actions/upload-artifact@v4 -# with: -# name: spotbugs-report-xml -# path: target/spotbugs/spotbugs-xml.xml # 确保 SpotBugs XML 报告路径正确 -# retention-days: 7 -# if-no-files-found: warn -# -# - name: Upload SpotBugs report (HTML) -# uses: actions/upload-artifact@v4 -# with: -# name: spotbugs-report-html -# path: target/spotbugs/spotbugs.html # 确保 SpotBugs HTML 报告路径正确 -# retention-days: 7 -# if-no-files-found: warn \ No newline at end of file diff --git a/pom.xml b/pom.xml index a4c94329..3097edb5 100644 --- a/pom.xml +++ b/pom.xml @@ -331,32 +331,32 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + + org.owasp + dependency-check-maven + ${dependency.check.version} + + HTML + 11 + true + ${dependency-check.data.dir} + ${env.NVD_API_KEY} + + false + false + false + false + + + + sca-aggregate + verify + + aggregate + + + + From c2e752b95fef0bf3e0142d40d2383da26a7cce63 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 17:08:57 +0800 Subject: [PATCH 17/18] update file path last time --- .github/workflows/ava-static-analysis.yml | 59 ++++++++++++----------- pom.xml | 52 ++++++++++---------- 2 files changed, 58 insertions(+), 53 deletions(-) diff --git a/.github/workflows/ava-static-analysis.yml b/.github/workflows/ava-static-analysis.yml index 0a3fbaad..49344e29 100644 --- a/.github/workflows/ava-static-analysis.yml +++ b/.github/workflows/ava-static-analysis.yml @@ -18,72 +18,77 @@ jobs: steps: - name: Checkout source code - uses: actions/checkout@v6 + uses: actions/checkout@v4 - name: Set up JDK 17 with Maven cache - uses: actions/setup-java@v5 + uses: actions/setup-java@v4 with: distribution: temurin java-version: '17' cache: maven - - name: Show Java and Maven version + - name: Build and run static analysis + env: + NVD_API_KEY: ${{ secrets.NVD_API_KEY }} run: | - java -version - mvn -version + mvn clean verify -DskipTests - - name: Run static analysis tools + - name: Debug report files + if: always() run: | - # 运行 Checkstyle - mvn checkstyle:checkstyle -DskipTests - - # 运行 PMD - mvn pmd:pmd -DskipTests - - # 运行 SpotBugs + Find Security Bugs - mvn spotbugs:spotbugs -DskipTests - - # 更新并扫描 OWASP Dependency-Check - mvn org.owasp:dependency-check-maven:update-only -DskipTests - mvn dependency-check:check -DskipTests + echo "==== Checkstyle ====" + find . -type f \( -path "*/target/reports/checkstyle.html" -o -path "*/target/checkstyle-result.xml" \) | sort || true + + echo "==== PMD ====" + find . -type f \( -path "*/target/reports/pmd.html" -o -path "*/target/pmd.xml" \) | sort || true + + echo "==== SpotBugs ====" + find . -type f \( -path "*/target/site/spotbugs.html" -o -name "spotbugs.xml" -o -name "spotbugsXml.xml" \) | sort || true + + echo "==== Dependency-Check ====" + find . -type f -path "*/target/dependency-check-report.html" | sort || true - name: Upload Checkstyle reports + if: always() uses: actions/upload-artifact@v4 with: name: checkstyle-reports path: | - target/checkstyle-result.xml - target/site/checkstyle.html + **/target/reports/checkstyle.html + **/target/checkstyle-result.xml + **/target/checkstyle-checker.xml retention-days: 7 if-no-files-found: warn - name: Upload PMD reports + if: always() uses: actions/upload-artifact@v4 with: name: pmd-reports path: | - target/pmd.xml - target/site/pmd.html + **/target/reports/pmd.html + **/target/pmd.xml retention-days: 7 if-no-files-found: warn - name: Upload SpotBugs reports + if: always() uses: actions/upload-artifact@v4 with: name: spotbugs-reports path: | - target/spotbugsXml.xml - target/site/spotbugs.html + **/target/site/spotbugs.html + **/target/spotbugs.xml + **/target/spotbugsXml.xml retention-days: 7 if-no-files-found: warn - name: Upload Dependency-Check reports + if: always() uses: actions/upload-artifact@v4 with: name: dependency-check-reports path: | - target/dependency-check-report.html - target/dependency-check-report.xml - target/dependency-check-report.json + **/target/dependency-check-report.html retention-days: 7 if-no-files-found: warn \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3097edb5..a4c94329 100644 --- a/pom.xml +++ b/pom.xml @@ -331,32 +331,32 @@ - - org.owasp - dependency-check-maven - ${dependency.check.version} - - HTML - 11 - true - ${dependency-check.data.dir} - ${env.NVD_API_KEY} - - false - false - false - false - - - - sca-aggregate - verify - - aggregate - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + From 6422eb567adb25f7a23f8aa15ab477b2dc0fcf24 Mon Sep 17 00:00:00 2001 From: yangjian Date: Wed, 22 Apr 2026 17:16:07 +0800 Subject: [PATCH 18/18] =?UTF-8?q?=E6=9B=B4=E6=96=B0gitaction=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ava-static-analysis.yml | 94 ---------------------- .github/workflows/java-static-analysis.yml | 79 ++++++++++++++++++ 2 files changed, 79 insertions(+), 94 deletions(-) delete mode 100644 .github/workflows/ava-static-analysis.yml create mode 100644 .github/workflows/java-static-analysis.yml diff --git a/.github/workflows/ava-static-analysis.yml b/.github/workflows/ava-static-analysis.yml deleted file mode 100644 index 49344e29..00000000 --- a/.github/workflows/ava-static-analysis.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: Java Static Analysis - -on: - push: - branches: - - '**' - pull_request: - branches: - - '**' - workflow_dispatch: - -permissions: - contents: read - -jobs: - build-and-analyze: - runs-on: ubuntu-latest - - steps: - - name: Checkout source code - uses: actions/checkout@v4 - - - name: Set up JDK 17 with Maven cache - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: '17' - cache: maven - - - name: Build and run static analysis - env: - NVD_API_KEY: ${{ secrets.NVD_API_KEY }} - run: | - mvn clean verify -DskipTests - - - name: Debug report files - if: always() - run: | - echo "==== Checkstyle ====" - find . -type f \( -path "*/target/reports/checkstyle.html" -o -path "*/target/checkstyle-result.xml" \) | sort || true - - echo "==== PMD ====" - find . -type f \( -path "*/target/reports/pmd.html" -o -path "*/target/pmd.xml" \) | sort || true - - echo "==== SpotBugs ====" - find . -type f \( -path "*/target/site/spotbugs.html" -o -name "spotbugs.xml" -o -name "spotbugsXml.xml" \) | sort || true - - echo "==== Dependency-Check ====" - find . -type f -path "*/target/dependency-check-report.html" | sort || true - - - name: Upload Checkstyle reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: checkstyle-reports - path: | - **/target/reports/checkstyle.html - **/target/checkstyle-result.xml - **/target/checkstyle-checker.xml - retention-days: 7 - if-no-files-found: warn - - - name: Upload PMD reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: pmd-reports - path: | - **/target/reports/pmd.html - **/target/pmd.xml - retention-days: 7 - if-no-files-found: warn - - - name: Upload SpotBugs reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: spotbugs-reports - path: | - **/target/site/spotbugs.html - **/target/spotbugs.xml - **/target/spotbugsXml.xml - retention-days: 7 - if-no-files-found: warn - - - name: Upload Dependency-Check reports - if: always() - uses: actions/upload-artifact@v4 - with: - name: dependency-check-reports - path: | - **/target/dependency-check-report.html - retention-days: 7 - if-no-files-found: warn \ No newline at end of file diff --git a/.github/workflows/java-static-analysis.yml b/.github/workflows/java-static-analysis.yml new file mode 100644 index 00000000..af262c4e --- /dev/null +++ b/.github/workflows/java-static-analysis.yml @@ -0,0 +1,79 @@ +name: Java Static Analysis + +on: + push: + branches: + - '**' + pull_request: + branches: + - '**' + workflow_dispatch: + +permissions: + contents: read + +jobs: + build-and-analyze: + runs-on: ubuntu-latest + + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Set up JDK 17 with Maven cache + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' + cache: maven + + - name: Build and run static analysis + env: + NVD_API_KEY: ${{ secrets.NVD_API_KEY }} + run: | + mvn clean verify -DskipTests + + - name: Debug report files + if: always() + run: | + echo "==== reports dir ====" + find . -type d -path "*/target/reports" | sort || true + echo "==== site dir ====" + find . -type d -path "*/target/site" | sort || true + echo "==== report files ====" + find . -type f \( \ + -name "checkstyle.html" -o \ + -name "pmd.html" -o \ + -name "checkstyle-result.xml" -o \ + -name "pmd.xml" -o \ + -name "spotbugs.html" -o \ + -name "spotbugs.xml" -o \ + -name "spotbugsXml.xml" -o \ + -name "dependency-check-report.html" \ + \) | sort || true + + - name: Upload reports directories + if: always() + uses: actions/upload-artifact@v4 + with: + name: analysis-report-sites + path: | + **/target/reports/** + **/target/site/** + retention-days: 7 + if-no-files-found: warn + + - name: Upload XML and root HTML reports + if: always() + uses: actions/upload-artifact@v4 + with: + name: analysis-report-files + path: | + **/target/checkstyle-result.xml + **/target/checkstyle-checker.xml + **/target/pmd.xml + **/target/spotbugs.xml + **/target/spotbugsXml.xml + **/target/dependency-check-report.html + retention-days: 7 + if-no-files-found: warn \ No newline at end of file