From 28963eb419e9a1707157929fe546dc44d1ef771e Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Tue, 14 Apr 2026 15:29:58 +0800 Subject: [PATCH 01/14] fix(plugin-search): fix search index race condition on pageUpdated, close #888 (#889) --- .../src/node/prepareSearchIndex.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/plugins/plugin-search/src/node/prepareSearchIndex.ts b/plugins/plugin-search/src/node/prepareSearchIndex.ts index 8b871173..6c90a48f 100644 --- a/plugins/plugin-search/src/node/prepareSearchIndex.ts +++ b/plugins/plugin-search/src/node/prepareSearchIndex.ts @@ -165,6 +165,14 @@ export async function prepareSearchIndex({ } } +let updateQueue = Promise.resolve() + +async function queueUpdateIndexFile({ page, isSearchable, searchOptions }: UpdateSearchIndexOptions) { + updateQueue = updateQueue + .then(() => indexFile(page, searchOptions, isSearchable)) + return updateQueue +} + /** * Handle search index update when a page is modified. * @@ -187,7 +195,8 @@ export async function onSearchIndexUpdated( if (isSearchable && !isSearchable(page)) return - await indexFile(page, searchOptions, isSearchable) + // FIXME: onPageUpdated 存在竞态问题,当前使用异步队列避免 + await queueUpdateIndexFile({ page, isSearchable, searchOptions }) await writeTemp(app) } @@ -297,8 +306,11 @@ async function indexFile(page: Page, options: SearchIndexOptions['searchOptions' ${page.contentRendered}` const sections = splitPageIntoSections(html) - if (cache && cache.length) - index.removeAll(cache) + try { + if (cache && cache.length) + index.removeAll(cache) + } + catch {} // add sections to the locale index for await (const section of sections) { From 0677f6749e4b29577e07cc4881a516a3d41f6e92 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Tue, 14 Apr 2026 15:31:38 +0800 Subject: [PATCH 02/14] chore: update deps to latest --- package.json | 2 +- pnpm-lock.yaml | 2448 +++++++++++++++++++++++++------------------ pnpm-workspace.yaml | 52 +- 3 files changed, 1448 insertions(+), 1054 deletions(-) diff --git a/package.json b/package.json index de543ecc..256ce1ae 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@typescript-eslint/types": "catalog:peer", "@typescript-eslint/utils": "catalog:peer", "@xmldom/xmldom": ">=0.9.9", - "baseline-browser-mapping": "^2.10.13", + "baseline-browser-mapping": "^2.10.18", "chokidar": "catalog:prod", "esbuild": "catalog:prod", "lodash": ">=4.18.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b9b5ff2..3501bfce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,11 +16,11 @@ catalogs: specifier: ^0.1.1 version: 0.1.1 '@pengzhanbo/eslint-config-vue': - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.3.0 + version: 2.3.0 '@pengzhanbo/stylelint-config': - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.3.0 + version: 2.3.0 '@simonwep/pickr': specifier: ^1.9.1 version: 1.9.1 @@ -40,11 +40,11 @@ catalogs: specifier: ^1.2.5 version: 1.2.5 '@types/node': - specifier: ^25.5.0 - version: 25.5.0 + specifier: ^25.6.0 + version: 25.6.0 '@types/picomatch': - specifier: ^4.0.2 - version: 4.0.2 + specifier: ^4.0.3 + version: 4.0.3 '@types/qrcode': specifier: ^1.5.6 version: 1.5.6 @@ -58,8 +58,8 @@ catalogs: specifier: ^1.18.8 version: 1.18.8 '@vitest/coverage-v8': - specifier: ^4.1.2 - version: 4.1.2 + specifier: ^4.1.4 + version: 4.1.4 bumpp: specifier: ^11.0.1 version: 11.0.1 @@ -73,8 +73,8 @@ catalogs: specifier: ^8.3.1 version: 8.3.1 cpx2: - specifier: ^8.0.0 - version: 8.0.0 + specifier: ^8.0.2 + version: 8.0.2 cross-env: specifier: 7.0.3 version: 7.0.3 @@ -82,8 +82,8 @@ catalogs: specifier: ^3.3.0 version: 3.3.0 eslint: - specifier: ^10.1.0 - version: 10.1.0 + specifier: ^10.2.0 + version: 10.2.0 http-server: specifier: ^14.1.1 version: 14.1.1 @@ -109,14 +109,14 @@ catalogs: specifier: ^1.2.8 version: 1.2.8 postcss: - specifier: ^8.5.8 - version: 8.5.8 + specifier: ^8.5.9 + version: 8.5.9 rimraf: specifier: ^6.1.3 version: 6.1.3 stylelint: - specifier: ^17.6.0 - version: 17.6.0 + specifier: ^17.7.0 + version: 17.7.0 stylus: specifier: ^0.64.0 version: 0.64.0 @@ -124,21 +124,21 @@ catalogs: specifier: ^7.0.0 version: 7.0.0 tsdown: - specifier: ^0.21.7 - version: 0.21.7 + specifier: ^0.21.8 + version: 0.21.8 typescript: - specifier: ^5.9.3 - version: 5.9.3 + specifier: ^6.0.2 + version: 6.0.2 vitest: - specifier: ^4.1.2 - version: 4.1.2 + specifier: ^4.1.4 + version: 4.1.4 wait-on: - specifier: ^9.0.4 - version: 9.0.4 + specifier: ^9.0.5 + version: 9.0.5 peer: '@iconify/json': - specifier: ^2.2.458 - version: 2.2.458 + specifier: ^2.2.462 + version: 2.2.462 '@mathjax/src': specifier: ^4.1.1 version: 4.1.1 @@ -152,11 +152,11 @@ catalogs: specifier: ^5.1.1 version: 5.1.1 gsap: - specifier: ^3.14.2 - version: 3.14.2 + specifier: ^3.15.0 + version: 3.15.0 hls.js: - specifier: ^1.6.15 - version: 1.6.15 + specifier: ^1.6.16 + version: 1.6.16 mpegts.js: specifier: 1.7.3 version: 1.7.3 @@ -164,8 +164,8 @@ catalogs: specifier: ^1.0.11 version: 1.0.11 pinyin-pro: - specifier: ^3.28.0 - version: 3.28.0 + specifier: ^3.28.1 + version: 3.28.1 postprocessing: specifier: ^6.39.0 version: 6.39.0 @@ -173,8 +173,8 @@ catalogs: specifier: ^0.29.3 version: 0.29.3 sass: - specifier: ^1.98.0 - version: 1.98.0 + specifier: ^1.99.0 + version: 1.99.0 swiper: specifier: ^12.1.3 version: 12.1.3 @@ -255,14 +255,14 @@ catalogs: specifier: ^4.1.1 version: 4.1.1 katex: - specifier: ^0.16.44 - version: 0.16.44 + specifier: ^0.16.45 + version: 0.16.45 local-pkg: specifier: ^1.1.2 version: 1.1.2 lru-cache: - specifier: ^11.2.7 - version: 11.2.7 + specifier: ^11.3.5 + version: 11.3.5 mark.js: specifier: ^8.11.1 version: 8.11.1 @@ -318,8 +318,8 @@ catalogs: specifier: ^1.12.2 version: 1.12.2 vue: - specifier: ^3.5.31 - version: 3.5.31 + specifier: ^3.5.32 + version: 3.5.32 vuepress: '@vuepress/bundler-vite': specifier: 2.0.0-rc.28 @@ -396,18 +396,18 @@ overrides: '@eslint-community/eslint-utils': ^4.9.1 '@shikijs/core': ^4.0.2 '@shikijs/twoslash': ^4.0.2 - '@typescript-eslint/types': ^8.58.0 - '@typescript-eslint/utils': ^8.58.0 + '@typescript-eslint/types': ^8.58.2 + '@typescript-eslint/utils': ^8.58.2 '@xmldom/xmldom': '>=0.9.9' - baseline-browser-mapping: ^2.10.13 + baseline-browser-mapping: ^2.10.18 chokidar: 5.0.0 - esbuild: ^0.27.5 + esbuild: ^0.28.0 lodash: '>=4.18.1' lodash-es: '>=4.18.1' - sass-embedded: ^1.98.0 + sass-embedded: ^1.99.0 shiki: ^4.0.2 tmp: '>=0.2.5' - vite: ^8.0.3 + vite: ^8.0.8 vue-router: ^5.0.4 patchedDependencies: @@ -421,16 +421,16 @@ importers: devDependencies: '@commitlint/cli': specifier: catalog:dev - version: 20.5.0(@types/node@25.5.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3) + version: 20.5.0(@types/node@25.6.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.2) '@commitlint/config-conventional': specifier: catalog:dev version: 20.5.0 '@pengzhanbo/eslint-config-vue': specifier: catalog:dev - version: 2.2.0(@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/rule-tester@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3))(@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.31)(eslint@10.1.0(jiti@2.6.1))(globals@17.4.0)(typescript@5.9.3)(vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3))) + version: 2.3.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0)(typescript@6.0.2)(vitest@4.1.4) '@pengzhanbo/stylelint-config': specifier: catalog:dev - version: 2.2.0(stylelint@17.6.0(typescript@5.9.3)) + version: 2.3.0(stylelint@17.7.0(typescript@6.0.2)) '@types/js-yaml': specifier: catalog:dev version: 4.0.9 @@ -442,10 +442,10 @@ importers: version: 1.2.5 '@types/node': specifier: catalog:dev - version: 25.5.0 + version: 25.6.0 '@types/picomatch': specifier: catalog:dev - version: 4.0.2 + version: 4.0.3 '@types/qrcode': specifier: catalog:dev version: 1.5.6 @@ -460,13 +460,13 @@ importers: version: 1.18.8 '@vitest/coverage-v8': specifier: catalog:dev - version: 4.1.2(vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3))) + version: 4.1.4(vitest@4.1.4) bumpp: specifier: catalog:dev version: 11.0.1 commitizen: specifier: catalog:dev - version: 4.3.1(@types/node@25.5.0)(typescript@5.9.3) + version: 4.3.1(@types/node@25.6.0)(typescript@6.0.2) conventional-changelog: specifier: catalog:dev version: 7.2.0(conventional-commits-filter@5.0.0) @@ -475,16 +475,16 @@ importers: version: 8.3.1 cpx2: specifier: catalog:dev - version: 8.0.0 + version: 8.0.2 cross-env: specifier: catalog:dev version: 7.0.3 cz-conventional-changelog: specifier: catalog:dev - version: 3.3.0(@types/node@25.5.0)(typescript@5.9.3) + version: 3.3.0(@types/node@25.6.0)(typescript@6.0.2) eslint: specifier: catalog:dev - version: 10.1.0(jiti@2.6.1) + version: 10.2.0(jiti@2.6.1) husky: specifier: catalog:dev version: 9.1.7 @@ -505,16 +505,16 @@ importers: version: 1.2.8 postcss: specifier: catalog:dev - version: 8.5.8 + version: 8.5.9 rimraf: specifier: catalog:dev version: 6.1.3 sass-embedded: - specifier: ^1.98.0 - version: 1.98.0 + specifier: ^1.99.0 + version: 1.99.0 stylelint: specifier: catalog:dev - version: 17.6.0(typescript@5.9.3) + version: 17.7.0(typescript@6.0.2) stylus: specifier: catalog:dev version: 0.64.0 @@ -523,16 +523,16 @@ importers: version: 7.0.0 tsdown: specifier: catalog:dev - version: 0.21.7(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(synckit@0.11.12)(typescript@5.9.3) + version: 0.21.8(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12)(typescript@6.0.2) typescript: specifier: catalog:dev - version: 5.9.3 + version: 6.0.2 vitest: specifier: catalog:dev - version: 4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)) + version: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3)) wait-on: specifier: catalog:dev - version: 9.0.4 + version: 9.0.5 cli: dependencies: @@ -565,7 +565,7 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.458 + version: 2.2.462 '@lunariajs/core': specifier: catalog:dev version: 0.1.1 @@ -574,10 +574,10 @@ importers: version: 1.9.1 '@vuepress/bundler-vite': specifier: catalog:vuepress - version: 2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3) + version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) '@vuepress/shiki-twoslash': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) chart.js: specifier: catalog:prod version: 4.5.1 @@ -613,10 +613,10 @@ importers: version: 0.183.2 vue: specifier: catalog:prod - version: 3.5.31(typescript@5.9.3) + version: 3.5.32(typescript@6.0.2) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) vuepress-theme-plume: specifier: workspace:* version: link:../theme @@ -629,19 +629,19 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.458 + version: 2.2.462 '@vuepress/bundler-vite': specifier: catalog:vuepress - version: 2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3) + version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) http-server: specifier: catalog:dev version: 14.1.1 vue: specifier: catalog:prod - version: 3.5.31(typescript@5.9.3) + version: 3.5.32(typescript@6.0.2) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) vuepress-theme-plume: specifier: workspace:* version: link:../../theme @@ -650,19 +650,19 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.458 + version: 2.2.462 '@vuepress/bundler-vite': specifier: catalog:vuepress - version: 2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3) + version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) http-server: specifier: catalog:dev version: 14.1.1 vue: specifier: catalog:prod - version: 3.5.31(typescript@5.9.3) + version: 3.5.32(typescript@6.0.2) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) vuepress-theme-plume: specifier: workspace:* version: link:../../theme @@ -671,7 +671,7 @@ importers: dependencies: vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) plugins/plugin-md-power: dependencies: @@ -701,16 +701,16 @@ importers: version: 3.3.1 '@vuepress/helper': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vueuse/core': specifier: catalog:prod - version: 14.2.1(vue@3.5.31(typescript@5.9.3)) + version: 14.2.1(vue@3.5.32(typescript@6.0.2)) chokidar: specifier: 5.0.0 version: 5.0.0 esbuild: - specifier: ^0.27.5 - version: 0.27.5 + specifier: ^0.28.0 + version: 0.28.0 image-size: specifier: catalog:prod version: 2.0.2 @@ -722,7 +722,7 @@ importers: version: 1.1.2 lru-cache: specifier: catalog:prod - version: 11.2.7 + version: 11.3.5 markdown-it: specifier: catalog:dev version: 14.1.1 @@ -746,10 +746,10 @@ importers: version: 1.5.4 sass: specifier: catalog:peer - version: 1.98.0 + version: 1.99.0 sass-embedded: - specifier: ^1.98.0 - version: 1.98.0 + specifier: ^1.99.0 + version: 1.99.0 shiki: specifier: ^4.0.2 version: 4.0.2 @@ -764,10 +764,10 @@ importers: version: 1.12.2 vue: specifier: catalog:prod - version: 3.5.31(typescript@5.9.3) + version: 3.5.32(typescript@6.0.2) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) devDependencies: '@types/markdown-it': specifier: catalog:dev @@ -780,7 +780,7 @@ importers: version: 5.1.1(@svta/cml-cta@1.0.1(@svta/cml-structured-field-values@1.0.1(@svta/cml-utils@1.0.1))(@svta/cml-utils@1.0.1))(@svta/cml-structured-field-values@1.0.1(@svta/cml-utils@1.0.1))(@svta/cml-utils@1.0.1) hls.js: specifier: catalog:peer - version: 1.6.15 + version: 1.6.16 mpegts.js: specifier: catalog:peer version: 1.7.3 @@ -789,13 +789,13 @@ importers: dependencies: '@vuepress/helper': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vueuse/core': specifier: catalog:prod - version: 14.2.1(vue@3.5.31(typescript@5.9.3)) + version: 14.2.1(vue@3.5.32(typescript@6.0.2)) '@vueuse/integrations': specifier: catalog:prod - version: 14.2.1(axios@1.14.0)(change-case@5.4.4)(focus-trap@8.0.1)(qrcode@1.5.4)(vue@3.5.31(typescript@5.9.3)) + version: 14.2.1(axios@1.15.0)(change-case@5.4.4)(focus-trap@8.0.1)(qrcode@1.5.4)(vue@3.5.32(typescript@6.0.2)) chokidar: specifier: 5.0.0 version: 5.0.0 @@ -813,10 +813,10 @@ importers: version: 7.0.4 vue: specifier: catalog:prod - version: 3.5.31(typescript@5.9.3) + version: 3.5.32(typescript@6.0.2) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) theme: dependencies: @@ -825,7 +825,7 @@ importers: version: 3.1.0 '@iconify/vue': specifier: catalog:prod - version: 5.0.0(vue@3.5.31(typescript@5.9.3)) + version: 5.0.0(vue@3.5.32(typescript@6.0.2)) '@mathjax/src': specifier: catalog:peer version: 4.1.1 @@ -840,70 +840,70 @@ importers: version: link:../plugins/plugin-search '@vuepress/helper': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-cache': specifier: catalog:vuepress - version: 2.0.0-rc.128(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-comment': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-copy-code': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-docsearch': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-git': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-llms': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-markdown-chart': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(chart.js@4.5.1)(echarts@6.0.0)(flowchart.ts@3.0.1)(markdown-it@14.1.1)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.14.0)(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(chart.js@4.5.1)(echarts@6.0.0)(flowchart.ts@3.0.1)(markdown-it@14.1.1)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.14.0)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-markdown-hint': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-markdown-image': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-markdown-include': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-markdown-math': specifier: catalog:vuepress - version: 2.0.0-rc.128(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(katex@0.16.44)(markdown-it@14.1.1)(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(katex@0.16.45)(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-nprogress': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-photo-swipe': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-reading-time': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-replace-assets': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-seo': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-shiki': specifier: catalog:vuepress - version: 2.0.0-rc.128(cd2bb975d2b671018e4b2e90813d99a7) + version: 2.0.0-rc.128(1a953f9f9b1b95ecc511dafb0398021a) '@vuepress/plugin-sitemap': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/plugin-watermark': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vuepress/shiki-twoslash': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) '@vueuse/core': specifier: catalog:prod - version: 14.2.1(vue@3.5.31(typescript@5.9.3)) + version: 14.2.1(vue@3.5.32(typescript@6.0.2)) chokidar: specifier: 5.0.0 version: 5.0.0 @@ -911,8 +911,8 @@ importers: specifier: catalog:prod version: 1.11.20 esbuild: - specifier: ^0.27.5 - version: 0.27.5 + specifier: ^0.28.0 + version: 0.28.0 gray-matter: specifier: catalog:prod version: 4.0.3 @@ -924,7 +924,7 @@ importers: version: 4.1.1 katex: specifier: catalog:prod - version: 0.16.44 + version: 0.16.45 local-pkg: specifier: catalog:prod version: 1.1.2 @@ -942,32 +942,32 @@ importers: version: 4.0.4 vue: specifier: catalog:prod - version: 3.5.31(typescript@5.9.3) + version: 3.5.32(typescript@6.0.2) vue-router: specifier: ^5.0.4 - version: 5.0.4(@vue/compiler-sfc@3.5.31)(vue@3.5.31(typescript@5.9.3)) + version: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) vuepress-plugin-md-power: specifier: workspace:* version: link:../plugins/plugin-md-power devDependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.458 + version: 2.2.462 '@pinyin-pro/data': specifier: catalog:peer version: 1.3.1 gsap: specifier: catalog:peer - version: 3.14.2 + version: 3.15.0 ogl: specifier: catalog:peer version: 1.0.11 pinyin-pro: specifier: catalog:peer - version: 3.28.0 + version: 3.28.1 postprocessing: specifier: catalog:peer version: 6.39.0(three@0.183.2) @@ -1210,11 +1210,11 @@ packages: '@docsearch/js@4.6.2': resolution: {integrity: sha512-qj1yoxl3y4GKoK7+VM6fq/rQqPnvUmg3IKzJ9x0VzN14QVzdB/SG/J6VfV1BWT5RcPUFxIcVwoY1fwHM2fSRRw==} - '@e18e/eslint-plugin@0.2.0': - resolution: {integrity: sha512-mXgODVwhuDjTJ+UT+XSvmMmCidtGKfrV5nMIv1UtpWex2pYLsIM3RSpT8HWIMAebS9qANbXPKlSX4BE7ZvuCgA==} + '@e18e/eslint-plugin@0.3.0': + resolution: {integrity: sha512-hHgfpxsrZ2UYHcicA+tGZnmk19uJTaye9VH79O+XS8R4ona2Hx3xjhXghclNW58uXMk3xXlbYEOMr8thsoBmWg==} peerDependencies: eslint: ^9.0.0 || ^10.0.0 - oxlint: ^1.41.0 + oxlint: ^1.55.0 peerDependenciesMeta: eslint: optional: true @@ -1224,12 +1224,21 @@ packages: '@emnapi/core@1.9.1': resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==} + '@emnapi/core@1.9.2': + resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} + '@emnapi/runtime@1.9.1': resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==} + '@emnapi/runtime@1.9.2': + resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==} + '@emnapi/wasi-threads@1.2.0': resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} + '@emnapi/wasi-threads@1.2.1': + resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@es-joy/jsdoccomment@0.84.0': resolution: {integrity: sha512-0xew1CxOam0gV5OMjh2KjFQZsKL2bByX1+q4j3E73MpYIdyUxcZb/xQct9ccUb+ve5KGUYbCUxyPnYB7RbuP+w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -1242,158 +1251,158 @@ packages: resolution: {integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==} engines: {node: '>=10'} - '@esbuild/aix-ppc64@0.27.5': - resolution: {integrity: sha512-nGsF/4C7uzUj+Nj/4J+Zt0bYQ6bz33Phz8Lb2N80Mti1HjGclTJdXZ+9APC4kLvONbjxN1zfvYNd8FEcbBK/MQ==} + '@esbuild/aix-ppc64@0.28.0': + resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.27.5': - resolution: {integrity: sha512-Oeghq+XFgh1pUGd1YKs4DDoxzxkoUkvko+T/IVKwlghKLvvjbGFB3ek8VEDBmNvqhwuL0CQS3cExdzpmUyIrgA==} + '@esbuild/android-arm64@0.28.0': + resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.27.5': - resolution: {integrity: sha512-Cv781jd0Rfj/paoNrul1/r4G0HLvuFKYh7C9uHZ2Pl8YXstzvCyyeWENTFR9qFnRzNMCjXmsulZuvosDg10Mog==} + '@esbuild/android-arm@0.28.0': + resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.27.5': - resolution: {integrity: sha512-nQD7lspbzerlmtNOxYMFAGmhxgzn8Z7m9jgFkh6kpkjsAhZee1w8tJW3ZlW+N9iRePz0oPUDrYrXidCPSImD0Q==} + '@esbuild/android-x64@0.28.0': + resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.27.5': - resolution: {integrity: sha512-I+Ya/MgC6rr8oRWGRDF3BXDfP8K1BVUggHqN6VI2lUZLdDi1IM1v2cy0e3lCPbP+pVcK3Tv8cgUhHse1kaNZZw==} + '@esbuild/darwin-arm64@0.28.0': + resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.27.5': - resolution: {integrity: sha512-MCjQUtC8wWJn/pIPM7vQaO69BFgwPD1jriEdqwTCKzWjGgkMbcg+M5HzrOhPhuYe1AJjXlHmD142KQf+jnYj8A==} + '@esbuild/darwin-x64@0.28.0': + resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.27.5': - resolution: {integrity: sha512-X6xVS+goSH0UelYXnuf4GHLwpOdc8rgK/zai+dKzBMnncw7BTQIwquOodE7EKvY2UVUetSqyAfyZC1D+oqLQtg==} + '@esbuild/freebsd-arm64@0.28.0': + resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.5': - resolution: {integrity: sha512-233X1FGo3a8x1ekLB6XT69LfZ83vqz+9z3TSEQCTYfMNY880A97nr81KbPcAMl9rmOFp11wO0dP+eB18KU/Ucg==} + '@esbuild/freebsd-x64@0.28.0': + resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.27.5': - resolution: {integrity: sha512-euKkilsNOv7x/M1NKsx5znyprbpsRFIzTV6lWziqJch7yWYayfLtZzDxDTl+LSQDJYAjd9TVb/Kt5UKIrj2e4A==} + '@esbuild/linux-arm64@0.28.0': + resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.27.5': - resolution: {integrity: sha512-0wkVrYHG4sdCCN/bcwQ7yYMXACkaHc3UFeaEOwSVW6e5RycMageYAFv+JS2bKLwHyeKVUvtoVH+5/RHq0fgeFw==} + '@esbuild/linux-arm@0.28.0': + resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.27.5': - resolution: {integrity: sha512-hVRQX4+P3MS36NxOy24v/Cdsimy/5HYePw+tmPqnNN1fxV0bPrFWR6TMqwXPwoTM2VzbkA+4lbHWUKDd5ZDA/w==} + '@esbuild/linux-ia32@0.28.0': + resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.27.5': - resolution: {integrity: sha512-mKqqRuOPALI8nDzhOBmIS0INvZOOFGGg5n1osGIXAx8oersceEbKd4t1ACNTHM3sJBXGFAlEgqM+svzjPot+ZQ==} + '@esbuild/linux-loong64@0.28.0': + resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.27.5': - resolution: {integrity: sha512-EE/QXH9IyaAj1qeuIV5+/GZkBTipgGO782Ff7Um3vPS9cvLhJJeATy4Ggxikz2inZ46KByamMn6GqtqyVjhenA==} + '@esbuild/linux-mips64el@0.28.0': + resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.27.5': - resolution: {integrity: sha512-0V2iF1RGxBf1b7/BjurA5jfkl7PtySjom1r6xOK2q9KWw/XCpAdtB6KNMO+9xx69yYfSCRR9FE0TyKfHA2eQMw==} + '@esbuild/linux-ppc64@0.28.0': + resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.27.5': - resolution: {integrity: sha512-rYxThBx6G9HN6tFNuvB/vykeLi4VDsm5hE5pVwzqbAjZEARQrWu3noZSfbEnPZ/CRXP3271GyFk/49up2W190g==} + '@esbuild/linux-riscv64@0.28.0': + resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.27.5': - resolution: {integrity: sha512-uEP2q/4qgd8goEUc4QIdU/1P2NmEtZ/zX5u3OpLlCGhJIuBIv0s0wr7TB2nBrd3/A5XIdEkkS5ZLF0ULuvaaYQ==} + '@esbuild/linux-s390x@0.28.0': + resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.27.5': - resolution: {integrity: sha512-+Gq47Wqq6PLOOZuBzVSII2//9yyHNKZLuwfzCemqexqOQCSz0zy0O26kIzyp9EMNMK+nZ0tFHBZrCeVUuMs/ew==} + '@esbuild/linux-x64@0.28.0': + resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.27.5': - resolution: {integrity: sha512-3F/5EG8VHfN/I+W5cO1/SV2H9Q/5r7vcHabMnBqhHK2lTWOh3F8vixNzo8lqxrlmBtZVFpW8pmITHnq54+Tq4g==} + '@esbuild/netbsd-arm64@0.28.0': + resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.5': - resolution: {integrity: sha512-28t+Sj3CPN8vkMOlZotOmDgilQwVvxWZl7b8rxpn73Tt/gCnvrHxQUMng4uu3itdFvrtba/1nHejvxqz8xgEMA==} + '@esbuild/netbsd-x64@0.28.0': + resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.27.5': - resolution: {integrity: sha512-Doz/hKtiuVAi9hMsBMpwBANhIZc8l238U2Onko3t2xUp8xtM0ZKdDYHMnm/qPFVthY8KtxkXaocwmMh6VolzMA==} + '@esbuild/openbsd-arm64@0.28.0': + resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.5': - resolution: {integrity: sha512-WfGVaa1oz5A7+ZFPkERIbIhKT4olvGl1tyzTRaB5yoZRLqC0KwaO95FeZtOdQj/oKkjW57KcVF944m62/0GYtA==} + '@esbuild/openbsd-x64@0.28.0': + resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.27.5': - resolution: {integrity: sha512-Xh+VRuh6OMh3uJ0JkCjI57l+DVe7VRGBYymen8rFPnTVgATBwA6nmToxM2OwTlSvrnWpPKkrQUj93+K9huYC6A==} + '@esbuild/openharmony-arm64@0.28.0': + resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.27.5': - resolution: {integrity: sha512-aC1gpJkkaUADHuAdQfuVTnqVUTLqqUNhAvEwHwVWcnVVZvNlDPGA0UveZsfXJJ9T6k9Po4eHi3c02gbdwO3g6w==} + '@esbuild/sunos-x64@0.28.0': + resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.27.5': - resolution: {integrity: sha512-0UNx2aavV0fk6UpZcwXFLztA2r/k9jTUa7OW7SAea1VYUhkug99MW1uZeXEnPn5+cHOd0n8myQay6TlFnBR07w==} + '@esbuild/win32-arm64@0.28.0': + resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.27.5': - resolution: {integrity: sha512-5nlJ3AeJWCTSzR7AEqVjT/faWyqKU86kCi1lLmxVqmNR+j4HrYdns+eTGjS/vmrzCIe8inGQckUadvS0+JkKdQ==} + '@esbuild/win32-ia32@0.28.0': + resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.27.5': - resolution: {integrity: sha512-PWypQR+d4FLfkhBIV+/kHsUELAnMpx1bRvvsn3p+/sAERbnCzFrtDRG2Xw5n+2zPxBK2+iaP+vetsRl4Ti7WgA==} + '@esbuild/win32-x64@0.28.0': + resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -1423,38 +1432,42 @@ packages: eslint: optional: true - '@eslint/config-array@0.23.3': - resolution: {integrity: sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==} + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/config-helpers@0.5.3': resolution: {integrity: sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@0.17.0': - resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.5.5': + resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/core@1.1.1': resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/markdown@7.5.1': - resolution: {integrity: sha512-R8uZemG9dKTbru/DQRPblbJyXpObwKzo8rv1KYGGuPUPtjM4LXBYM9q5CIZAComzZupws3tWbDwam5AFpPLyJQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/object-schema@3.0.3': - resolution: {integrity: sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==} + '@eslint/core@1.2.1': + resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/plugin-kit@0.4.1': - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/markdown@8.0.1': + resolution: {integrity: sha512-WWKmld/EyNdEB8GMq7JMPX1SDWgyJAM1uhtCi5ySrqYQM4HQjmg11EX/q3ZpnpRXHfdccFtli3NBvvGaYjWyQw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/plugin-kit@0.6.1': resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/plugin-kit@0.7.1': + resolution: {integrity: sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@floating-ui/core@1.7.5': resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} @@ -1503,8 +1516,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@iconify/json@2.2.458': - resolution: {integrity: sha512-YcJx5EjyRU3O+qpYNjx0BX/Uewxao9uSF0gd9Xa+d8YzCGGbMXosaANQ5aQV/lptnToqpu/PDTQ1c883GhvGRA==} + '@iconify/json@2.2.462': + resolution: {integrity: sha512-QyVED2ObaVWKgNZu3ikcCyK63GgZ6voobyJrNgTAyoI5xRXff0VHs2UxvWYvqqBJNaPGNqEQDmcJWo7uHdWOkg==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -1521,10 +1534,6 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@isaacs/cliui@9.0.0': - resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} - engines: {node: '>=18'} - '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1932,6 +1941,12 @@ packages: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 + '@napi-rs/wasm-runtime@1.1.3': + resolution: {integrity: sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1954,6 +1969,9 @@ packages: '@oxc-project/types@0.123.0': resolution: {integrity: sha512-YtECP/y8Mj1lSHiUWGSRzy/C6teUKlS87dEfuVKT09LgQbUsBW1rNg+MiJ4buGu3yuADV60gbIvo9/HplA56Ew==} + '@oxc-project/types@0.124.0': + resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} @@ -2042,12 +2060,12 @@ packages: resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} - '@pengzhanbo/eslint-config-vue@2.2.0': - resolution: {integrity: sha512-BzwxDJ0vXbhr+U9bb/PAmxXUo/S/C4v6jO/CHbfkfLr8Vvo+AYuLtUs4dAS0rpzrn47ei24SaebynTd+l0cLQQ==} + '@pengzhanbo/eslint-config-vue@2.3.0': + resolution: {integrity: sha512-5cvdTPPakel/Q/WyGnhALc90coXYRkoUH3VSRfJGQtxLUboj5/yjASTgzOWeSbDmhFEo79mDEJD6Ai6Xo2t3dA==} peerDependencies: '@prettier/plugin-xml': ^3.4.2 - '@unocss/eslint-plugin': ^66.6.6 - eslint: ^10.0.3 + '@unocss/eslint-plugin': ^66.6.7 + eslint: ^10.1.0 eslint-plugin-format: ^2.0.1 eslint-plugin-tailwindcss: ^3.18.2 peerDependenciesMeta: @@ -2060,24 +2078,23 @@ packages: eslint-plugin-tailwindcss: optional: true - '@pengzhanbo/eslint-config@2.2.0': - resolution: {integrity: sha512-DVwXAkcuzrOrTug7oRqygSRT8hREEFw79LCVaJRRn5YOpAJudD4TiZCZGfaxLG75Yh05vRClctGDL8gp5YAuOQ==} + '@pengzhanbo/eslint-config@2.3.0': + resolution: {integrity: sha512-Be4kXZDxCufjRIdeNSNk5U2J+2A5ET4QMr+/M68f4RQRIiS/w4PstrL86vUqCoufTn6wsl4RFIfZBiI48nuQMw==} peerDependencies: - '@angular-eslint/eslint-plugin': ^21.3.0 - '@angular-eslint/eslint-plugin-template': ^21.3.0 - '@angular-eslint/template-parser': ^21.3.0 - '@eslint-react/eslint-plugin': ^2.13.0 - '@next/eslint-plugin-next': ^16.1.6 + '@angular-eslint/eslint-plugin': ^21.3.1 + '@angular-eslint/eslint-plugin-template': ^21.3.1 + '@angular-eslint/template-parser': ^21.3.1 + '@eslint-react/eslint-plugin': ^4.2.3 + '@next/eslint-plugin-next': ^16.2.2 '@prettier/plugin-xml': ^3.4.2 - '@unocss/eslint-plugin': ^66.6.6 - astro-eslint-parser: ^1.3.0 - eslint: ^10.0.3 + '@unocss/eslint-plugin': ^66.6.7 + astro-eslint-parser: ^1.4.0 + eslint: ^10.1.0 eslint-plugin-astro: ^1.6.0 eslint-plugin-format: ^2.0.1 - eslint-plugin-react-hooks: ^7.0.1 eslint-plugin-react-refresh: ^0.5.2 eslint-plugin-solid: ^0.14.5 - eslint-plugin-svelte: ^3.15.2 + eslint-plugin-svelte: ^3.17.0 eslint-plugin-tailwindcss: ^3.18.2 eslint-plugin-vue: ^10.8.0 eslint-plugin-vuejs-accessibility: ^2.4.1 @@ -2107,8 +2124,6 @@ packages: optional: true eslint-plugin-format: optional: true - eslint-plugin-react-hooks: - optional: true eslint-plugin-react-refresh: optional: true eslint-plugin-solid: @@ -2130,10 +2145,10 @@ packages: vue-eslint-parser: optional: true - '@pengzhanbo/stylelint-config@2.2.0': - resolution: {integrity: sha512-8ZMCK+0ZrCs6ZVoAA6biyEpSkDRsCWt5Y0uef2bRuJ/iGhmnWwISDO3/b24c2KoXj16GLGiDn/YUuDVB2kcisQ==} + '@pengzhanbo/stylelint-config@2.3.0': + resolution: {integrity: sha512-5cSzEE23OetHAscH6Y5rI1oeLnO67LxqDon/AYYmSETqTImeCv++yIrKLw66eX+vs2sPTfRh9aUaH0AS4lLnaw==} peerDependencies: - stylelint: ^17.4.0 + stylelint: ^17.6.0 '@pengzhanbo/utils@3.3.1': resolution: {integrity: sha512-rVmmTdeQs+gdk5XboXG7gv4LSLnCceZ9l9Z1v/P+zScOpwPYn6mSVukPtRC22234rXC/13AZV2gZ3ZDvNmP9XA==} @@ -2164,6 +2179,12 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': resolution: {integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2176,6 +2197,12 @@ packages: cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.12': resolution: {integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2188,6 +2215,12 @@ packages: cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.0.0-rc.15': + resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': resolution: {integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2200,6 +2233,12 @@ packages: cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': resolution: {integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2212,6 +2251,12 @@ packages: cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2226,6 +2271,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': resolution: {integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2240,6 +2292,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2254,6 +2313,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': resolution: {integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2268,6 +2334,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': resolution: {integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2282,6 +2355,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': resolution: {integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2296,6 +2376,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': resolution: {integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2308,6 +2395,12 @@ packages: cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': resolution: {integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==} engines: {node: '>=14.0.0'} @@ -2318,6 +2411,11 @@ packages: engines: {node: '>=14.0.0'} cpu: [wasm32] + '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': resolution: {integrity: sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2330,6 +2428,12 @@ packages: cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': resolution: {integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2342,12 +2446,21 @@ packages: cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-rc.12': resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==} '@rolldown/pluginutils@1.0.0-rc.13': resolution: {integrity: sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA==} + '@rolldown/pluginutils@1.0.0-rc.15': + resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} + '@rolldown/pluginutils@1.0.0-rc.2': resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==} @@ -2678,6 +2791,9 @@ packages: '@types/jsonfile@6.1.4': resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + '@types/katex@0.16.8': + resolution: {integrity: sha512-trgaNyfU+Xh2Tc+ABIb44a5AYUpicB3uwirOioeOkNPPbmgRNtcWyDeeFRzjPZENO9Vq8gvVqfhaaXWLlevVwg==} + '@types/less@3.0.8': resolution: {integrity: sha512-Gjm4+H9noDJgu5EdT3rUw5MhPBag46fiOy27BefvWkNL8mlZnKnCaVVVTLKj6RYXed9b62CPKnPav9govyQDzA==} @@ -2708,12 +2824,18 @@ packages: '@types/node@25.5.0': resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} + '@types/node@25.6.0': + resolution: {integrity: sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} '@types/picomatch@4.0.2': resolution: {integrity: sha512-qHHxQ+P9PysNEGbALT8f8YOSHW0KJu6l2xU8DYY0fu/EmGxXdVnuTLvFUvBgPJMSqXq29SYHveejeAha+4AYgA==} + '@types/picomatch@4.0.3': + resolution: {integrity: sha512-iG0T6+nYJ9FAPmx9SsUlnwcq1ZVRuCXcVEvWnntoPlrOpwtSTKNDC9uVAxTsC3PUvJ+99n4RpAcNgBbHX3JSnQ==} + '@types/qrcode@1.5.6': resolution: {integrity: sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==} @@ -2780,6 +2902,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/project-service@8.58.2': + resolution: {integrity: sha512-Cq6UfpZZk15+r87BkIh5rDpi38W4b+Sjnb8wQCPPDDweS/LRCFjCyViEbzHk5Ck3f2QDfgmlxqSa7S7clDtlfg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/rule-tester@8.58.0': resolution: {integrity: sha512-a/J72Cxeo5ug5sbey7+Dcna6tMBc4Z4eYwBEKM6MVuBqbxnROpLm8yn/j00lPZc75joPZJVR5oiTZxbK95zp+w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2790,12 +2918,22 @@ packages: resolution: {integrity: sha512-W1Lur1oF50FxSnNdGp3Vs6P+yBRSmZiw4IIjEeYxd8UQJwhUF0gDgDD/W/Tgmh73mxgEU3qX0Bzdl/NGuSPEpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.58.2': + resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/tsconfig-utils@8.58.0': resolution: {integrity: sha512-doNSZEVJsWEu4htiVC+PR6NpM+pa+a4ClH9INRWOWCUzMst/VA9c4gXq92F8GUD1rwhNvRLkgjfYtFXegXQF7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/tsconfig-utils@8.58.2': + resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/type-utils@8.58.0': resolution: {integrity: sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2803,8 +2941,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.58.0': - resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} + '@typescript-eslint/types@8.58.2': + resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.58.0': @@ -2813,8 +2951,14 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.58.0': - resolution: {integrity: sha512-RfeSqcFeHMHlAWzt4TBjWOAtoW9lnsAGiP3GbaX9uVgTYYrMbVnGONEfUCiSss+xMHFl+eHZiipmA8WkQ7FuNA==} + '@typescript-eslint/typescript-estree@8.58.2': + resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <6.1.0' + + '@typescript-eslint/utils@8.58.2': + resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2824,6 +2968,10 @@ packages: resolution: {integrity: sha512-XJ9UD9+bbDo4a4epraTwG3TsNPeiB9aShrUneAVXy8q4LuwowN+qu89/6ByLMINqvIMeI9H9hOHQtg/ijrYXzQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.58.2': + resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/vfs@1.6.4': resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} peerDependencies: @@ -2839,14 +2987,14 @@ packages: resolution: {integrity: sha512-bL3AxKuQySfk1iGcBsQnoRVexTPJq0Z/ixFVM8OhVJAP6ZXXXLtM7NFKWhLl30Kg7uTBqIaPXbh+nuQCuBDedg==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: - vite: ^8.0.3 + vite: ^8.0.8 vue: ^3.2.25 - '@vitest/coverage-v8@4.1.2': - resolution: {integrity: sha512-sPK//PHO+kAkScb8XITeB1bf7fsk85Km7+rt4eeuRR3VS1/crD47cmV5wicisJmjNdfeokTZwjMk4Mj2d58Mgg==} + '@vitest/coverage-v8@4.1.4': + resolution: {integrity: sha512-x7FptB5oDruxNPDNY2+S8tCh0pcq7ymCe1gTHcsp733jYjrJl8V1gMUlVysuCD9Kz46Xz9t1akkv08dPcYDs1w==} peerDependencies: - '@vitest/browser': 4.1.2 - vitest: 4.1.2 + '@vitest/browser': 4.1.4 + vitest: 4.1.4 peerDependenciesMeta: '@vitest/browser': optional: true @@ -2867,34 +3015,34 @@ packages: vitest: optional: true - '@vitest/expect@4.1.2': - resolution: {integrity: sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==} + '@vitest/expect@4.1.4': + resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==} - '@vitest/mocker@4.1.2': - resolution: {integrity: sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==} + '@vitest/mocker@4.1.4': + resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==} peerDependencies: msw: ^2.4.9 - vite: ^8.0.3 + vite: ^8.0.8 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@4.1.2': - resolution: {integrity: sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==} + '@vitest/pretty-format@4.1.4': + resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==} - '@vitest/runner@4.1.2': - resolution: {integrity: sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==} + '@vitest/runner@4.1.4': + resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==} - '@vitest/snapshot@4.1.2': - resolution: {integrity: sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==} + '@vitest/snapshot@4.1.4': + resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==} - '@vitest/spy@4.1.2': - resolution: {integrity: sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==} + '@vitest/spy@4.1.4': + resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==} - '@vitest/utils@4.1.2': - resolution: {integrity: sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==} + '@vitest/utils@4.1.4': + resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==} '@volar/language-core@2.4.28': resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==} @@ -2917,15 +3065,27 @@ packages: '@vue/compiler-core@3.5.31': resolution: {integrity: sha512-k/ueL14aNIEy5Onf0OVzR8kiqF/WThgLdFhxwa4e/KF/0qe38IwIdofoSWBTvvxQOesaz6riAFAUaYjoF9fLLQ==} + '@vue/compiler-core@3.5.32': + resolution: {integrity: sha512-4x74Tbtqnda8s/NSD6e1Dr5p1c8HdMU5RWSjMSUzb8RTcUQqevDCxVAitcLBKT+ie3o0Dl9crc/S/opJM7qBGQ==} + '@vue/compiler-dom@3.5.31': resolution: {integrity: sha512-BMY/ozS/xxjYqRFL+tKdRpATJYDTTgWSo0+AJvJNg4ig+Hgb0dOsHPXvloHQ5hmlivUqw1Yt2pPIqp4e0v1GUw==} + '@vue/compiler-dom@3.5.32': + resolution: {integrity: sha512-ybHAu70NtiEI1fvAUz3oXZqkUYEe5J98GjMDpTGl5iHb0T15wQYLR4wE3h9xfuTNA+Cm2f4czfe8B4s+CCH57Q==} + '@vue/compiler-sfc@3.5.31': resolution: {integrity: sha512-M8wpPgR9UJ8MiRGjppvx9uWJfLV7A/T+/rL8s/y3QG3u0c2/YZgff3d6SuimKRIhcYnWg5fTfDMlz2E6seUW8Q==} + '@vue/compiler-sfc@3.5.32': + resolution: {integrity: sha512-8UYUYo71cP/0YHMO814TRZlPuUUw3oifHuMR7Wp9SNoRSrxRQnhMLNlCeaODNn6kNTJsjFoQ/kqIj4qGvya4Xg==} + '@vue/compiler-ssr@3.5.31': resolution: {integrity: sha512-h0xIMxrt/LHOvJKMri+vdYT92BrK3HFLtDqq9Pr/lVVfE4IyKZKvWf0vJFW10Yr6nX02OR4MkJwI0c1HDa1hog==} + '@vue/compiler-ssr@3.5.32': + resolution: {integrity: sha512-Gp4gTs22T3DgRotZ8aA/6m2jMR+GMztvBXUBEUOYOcST+giyGWJ4WvFd7QLHBkzTxkfOt8IELKNdpzITLbA2rw==} + '@vue/devtools-api@8.1.1': resolution: {integrity: sha512-bsDMJ07b3GN1puVwJb/fyFnj/U2imyswK5UQVLZwVl7O05jDrt6BHxeG5XffmOOdasOj/bOmIjxJvGPxU7pcqw==} @@ -2938,23 +3098,26 @@ packages: '@vue/language-core@3.2.6': resolution: {integrity: sha512-xYYYX3/aVup576tP/23sEUpgiEnujrENaoNRbaozC1/MA9I6EGFQRJb4xrt/MmUCAGlxTKL2RmT8JLTPqagCkg==} - '@vue/reactivity@3.5.31': - resolution: {integrity: sha512-DtKXxk9E/KuVvt8VxWu+6Luc9I9ETNcqR1T1oW1gf02nXaZ1kuAx58oVu7uX9XxJR0iJCro6fqBLw9oSBELo5g==} + '@vue/reactivity@3.5.32': + resolution: {integrity: sha512-/ORasxSGvZ6MN5gc+uE364SxFdJ0+WqVG0CENXaGW58TOCdrAW76WWaplDtECeS1qphvtBZtR+3/o1g1zL4xPQ==} - '@vue/runtime-core@3.5.31': - resolution: {integrity: sha512-AZPmIHXEAyhpkmN7aWlqjSfYynmkWlluDNPHMCZKFHH+lLtxP/30UJmoVhXmbDoP1Ng0jG0fyY2zCj1PnSSA6Q==} + '@vue/runtime-core@3.5.32': + resolution: {integrity: sha512-pDrXCejn4UpFDFmMd27AcJEbHaLemaE5o4pbb7sLk79SRIhc6/t34BQA7SGNgYtbMnvbF/HHOftYBgFJtUoJUQ==} - '@vue/runtime-dom@3.5.31': - resolution: {integrity: sha512-xQJsNRmGPeDCJq/u813tyonNgWBFjzfVkBwDREdEWndBnGdHLHgkwNBQxLtg4zDrzKTEcnikUy1UUNecb3lJ6g==} + '@vue/runtime-dom@3.5.32': + resolution: {integrity: sha512-1CDVv7tv/IV13V8Nip1k/aaObVbWqRlVCVezTwx3K07p7Vxossp5JU1dcPNhJk3w347gonIUT9jQOGutyJrSVQ==} - '@vue/server-renderer@3.5.31': - resolution: {integrity: sha512-GJuwRvMcdZX/CriUnyIIOGkx3rMV3H6sOu0JhdKbduaeCji6zb60iOGMY7tFoN24NfsUYoFBhshZtGxGpxO4iA==} + '@vue/server-renderer@3.5.32': + resolution: {integrity: sha512-IOjm2+JQwRFS7W28HNuJeXQle9KdZbODFY7hFGVtnnghF51ta20EWAZJHX+zLGtsHhaU6uC9BGPV52KVpYryMQ==} peerDependencies: - vue: 3.5.31 + vue: 3.5.32 '@vue/shared@3.5.31': resolution: {integrity: sha512-nBxuiuS9Lj5bPkPbWogPUnjxxWpkRniX7e5UBQDWl6Fsf4roq9wwV+cR7ezQ4zXswNvPIlsdj1slcLB7XCsRAw==} + '@vue/shared@3.5.32': + resolution: {integrity: sha512-ksNyrmRQzWJJ8n3cRDuSF7zNNontuJg1YHnmWRJd2AMu8Ij2bqwiiri2lH5rHtYPZjj4STkNcgcmiQqlOjiYGg==} + '@vuepress/bundler-vite@2.0.0-rc.28': resolution: {integrity: sha512-Z/XuPeJb6ibOIWXQDIquarDkrd9ZgHqxvxpYWvjuT9r8EbXSjq7yFKjCo1s+576otB3lB5K99bT0PDrVUKAGgw==} @@ -3359,8 +3522,8 @@ packages: resolution: {integrity: sha512-byD6KPdvo72y/wj2T/4zGEvvlis+PsZsn/yPS3pEO+sFpcrqRpX/TJCxvVaEsNeMrfQbCr7w163YqoD9IYwHXw==} engines: {node: '>=4'} - axios@1.14.0: - resolution: {integrity: sha512-3Y8yrqLSwjuzpXuZ0oIYZ/XGgLwUIBU3uLvbcpb0pidD9ctpShJd43KSlEEkVQg6DS0G9NKyzOvBfUtDKEyHvQ==} + axios@1.15.0: + resolution: {integrity: sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -3379,8 +3542,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.13: - resolution: {integrity: sha512-BL2sTuHOdy0YT1lYieUxTw/QMtPBC3pmlJC6xk8BBYVv6vcw3SGdKemQ+Xsx9ik2F/lYDO9tqsFQH1r9PFuHKw==} + baseline-browser-mapping@2.10.18: + resolution: {integrity: sha512-VSnGQAOLtP5mib/DPyg2/t+Tlv65NTBz83BJBJvmLVHHuKJVaDOBvJJykiT5TR++em5nfAySPccDZDa4oSrn8A==} engines: {node: '>=6.0.0'} hasBin: true @@ -3742,8 +3905,8 @@ packages: typescript: optional: true - cpx2@8.0.0: - resolution: {integrity: sha512-RxD9jrSVNSOmfcbiPlr3XnKbUKH9K1w2HCv0skczUKhsZTueiDBecxuaSAKQkYSLQaGVA4ZQJZlTj5hVNNEvKg==} + cpx2@8.0.2: + resolution: {integrity: sha512-exLFEIh8XgWthEtrEq8hs+S6jxM5ZHpjQnRH6D7VU+2uAYS3amLSVOUSuirfx3HeN7WBCq+xFygHpt7l+gQtUA==} engines: {node: ^20.0.0 || >=22.0.0, npm: '>=10'} hasBin: true @@ -3960,9 +4123,9 @@ packages: dayjs@1.11.20: resolution: {integrity: sha512-YbwwqR/uYpeoP4pu043q+LTDLFBLApUP6VxRihdfNTqu4ubqMlGDLd6ErXhEgsyvY0K6nCs7nggYumAN+9uEuQ==} - debounce@2.2.0: - resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} - engines: {node: '>=18'} + debounce@3.0.0: + resolution: {integrity: sha512-64byRbF0/AirwbuHqB3/ZpMG9/nckDa6ZA0yd6UnaQNwbbemCOwvz2sL5sjXLHhZHADyiwLm0M5qMhltUUx+TA==} + engines: {node: '>=20'} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -4000,6 +4163,9 @@ packages: defu@6.1.6: resolution: {integrity: sha512-f8mefEW4WIVg4LckePx3mALjQSPQgFlg9U8yaPdlsbdYcHQyj9n2zL2LJEA52smeYxOvmd/nB7TpMtHGMTHcug==} + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + delaunator@5.1.0: resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} @@ -4074,9 +4240,6 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -4172,8 +4335,8 @@ packages: es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} - esbuild@0.27.5: - resolution: {integrity: sha512-zdQoHBjuDqKsvV5OPaWansOwfSQ0Js+Uj9J85TBvj3bFW1JjWTSULMRwdQAc8qMeIScbClxeMK0jlrtB9linhA==} + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} engines: {node: '>=18'} hasBin: true @@ -4233,7 +4396,7 @@ packages: peerDependencies: '@typescript-eslint/rule-tester': '*' '@typescript-eslint/typescript-estree': '*' - '@typescript-eslint/utils': ^8.58.0 + '@typescript-eslint/utils': ^8.58.2 eslint: '*' eslint-plugin-depend@1.5.0: @@ -4255,11 +4418,11 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-import-lite@0.5.2: - resolution: {integrity: sha512-XvfdWOC5dSLEI9krIPRlNmKSI2ViIE9pVylzfV9fCq0ZpDaNeUk6o0wZv0OzN83QdadgXp1NsY0qjLINxwYCsw==} + eslint-plugin-import-lite@0.6.0: + resolution: {integrity: sha512-80vevx2A7i3H7n1/6pqDO8cc5wRz6OwLDvIyVl9UflBV1N1f46e9Ihzi65IOLYoSxM6YykK2fTw1xm0Ixx6aTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=9.0.0' + eslint: ^9.0.0 || ^10.0.0 eslint-plugin-jsdoc@62.9.0: resolution: {integrity: sha512-PY7/X4jrVgoIDncUmITlUqK546Ltmx/Pd4Hdsu4CvSjryQZJI2mEV4vrdMufyTetMiZ5taNSqvK//BTgVUlNkA==} @@ -4289,8 +4452,8 @@ packages: resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@5.7.0: - resolution: {integrity: sha512-WRHj7OZS/INutQ/gKN5C1ZGnMhkQ3oKZQAA2I7rl5yM8keBtSd9oj/qlJaHuwh5873FhMPqYlttcadF0YsTN7g==} + eslint-plugin-perfectionist@5.8.0: + resolution: {integrity: sha512-k8uIptWIxkUclonCFGyDzgYs9NI+Qh0a7cUXS3L7IYZDEsjXuimFBVbxXPQQngWqMiaxJRwbtYB4smMGMqF+cw==} engines: {node: ^20.0.0 || >=22.0.0} peerDependencies: eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 @@ -4312,8 +4475,8 @@ packages: peerDependencies: eslint: '>=9.38.0' - eslint-plugin-unicorn@63.0.0: - resolution: {integrity: sha512-Iqecl9118uQEXYh7adylgEmGfkn5es3/mlQTLLkd4pXkIk9CTGrAbeUux+YljSa2ohXCBmQQ0+Ej1kZaFgcfkA==} + eslint-plugin-unicorn@64.0.0: + resolution: {integrity: sha512-rNZwalHh8i0UfPlhNwg5BTUO1CMdKNmjqe+TgzOTZnpKoi8VBgsW7u9qCHIdpxEzZ1uwrJrPF0uRb7l//K38gA==} engines: {node: ^20.10.0 || >=21.0.0} peerDependencies: eslint: '>=9.38.0' @@ -4376,8 +4539,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.1.0: - resolution: {integrity: sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==} + eslint@10.2.0: + resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -4690,12 +4853,6 @@ packages: deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - glob@11.1.0: - resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} - engines: {node: 20 || >=22} - deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - hasBin: true - glob@13.0.6: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} @@ -4728,10 +4885,6 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.5.0: - resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} - engines: {node: '>=18'} - globals@17.4.0: resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} engines: {node: '>=18'} @@ -4761,8 +4914,8 @@ packages: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} - gsap@3.14.2: - resolution: {integrity: sha512-P8/mMxVLU7o4+55+1TCnQrPmgjPKnwkzkXOK1asnR9Jg2lna4tEY5qBJjMmAaOBDDZWtlRjBXjLa0w53G/uBLA==} + gsap@3.15.0: + resolution: {integrity: sha512-dMW4CWBTUK1AEEDeZc1g4xpPGIrSf9fJF960qbTZmN/QwZIWY5wgliS6JWl9/25fpTGJrMRtSjGtOmPnfjZB+A==} hachure-fill@0.5.2: resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} @@ -4846,8 +4999,8 @@ packages: resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} engines: {node: '>=12.0.0'} - hls.js@1.6.15: - resolution: {integrity: sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==} + hls.js@1.6.16: + resolution: {integrity: sha512-VSIRpLfRwlAAdGL4wiTucx2ScRipo0ed1FBatWkyt832jC4CReKstga6yIhYVwGu9LOBjuX9wzmRMeQdBJtzEA==} homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} @@ -4928,10 +5081,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@6.0.2: - resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} - engines: {node: '>= 4'} - ignore@7.0.5: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} @@ -5195,10 +5344,6 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@4.2.3: - resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} - engines: {node: 20 || >=22} - jiti@1.21.7: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true @@ -5279,6 +5424,10 @@ packages: resolution: {integrity: sha512-EkxoDTk8ufHqHlf9QxGwcxeLkWRR3iOuYfRpfORgYfqc8s13bgb+YtRY59NK5ZpRaCwq1kqA6a5lpX8C/eLphQ==} hasBin: true + katex@0.16.45: + resolution: {integrity: sha512-pQpZbdBu7wCTmQUh7ufPmLr0pFoObnGUoL/yhtwJDgmmQpbkg/0HSVti25Fu4rmd1oCR6NGWe9vqTWuWv3GcNA==} + hasBin: true + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -5500,6 +5649,10 @@ packages: resolution: {integrity: sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==} engines: {node: 20 || >=22} + lru-cache@11.3.5: + resolution: {integrity: sha512-NxVFwLAnrd9i7KUBxC4DrUhmgjzOs+1Qm50D3oF1/oL+r1NpZ4gA7xvG0/zJ8evR7zIKn4vLf7qTNduWFtCrRw==} + engines: {node: 20 || >=22} + magic-string-ast@1.0.3: resolution: {integrity: sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==} engines: {node: '>=20.19.0'} @@ -5624,6 +5777,9 @@ packages: mdast-util-gfm@3.1.0: resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-math@3.0.0: + resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} + mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} @@ -5698,6 +5854,9 @@ packages: micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + micromark-extension-math@3.1.0: + resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} + micromark-factory-destination@2.0.1: resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} @@ -6079,8 +6238,8 @@ packages: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pinyin-pro@3.28.0: - resolution: {integrity: sha512-mMRty6RisoyYNphJrTo3pnvp3w8OMZBrXm9YSWkxhAfxKj1KZk2y8T2PDIZlDDRsvZ0No+Hz6FI4sZpA6Ey25g==} + pinyin-pro@3.28.1: + resolution: {integrity: sha512-oqz8ulwRgtUXRi0vbqEfGNly19zpyCxYrjhkk5TibGcgSW6eNwS5woajCXRwqURi8Ehc2yOFTiB4uNoZ+NJOnA==} pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -6175,6 +6334,10 @@ packages: resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.9: + resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} + engines: {node: ^10 || ^12 || >=14} + postprocessing@6.39.0: resolution: {integrity: sha512-/G6JY8hs426lcto/pBZlnFSkyEo1fHsh4gy7FPJtq1SaSUOzJgDW6f6f1K/+aMOYzK/eQEefyOb3++jPPIUeDA==} peerDependencies: @@ -6384,6 +6547,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.0.0-rc.15: + resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + roughjs@4.6.6: resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} @@ -6421,125 +6589,125 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass-embedded-all-unknown@1.98.0: - resolution: {integrity: sha512-6n4RyK7/1mhdfYvpP3CClS3fGoYqDvRmLClCESS6I7+SAzqjxvGG6u5Fo+cb1nrPNbbilgbM4QKdgcgWHO9NCA==} + sass-embedded-all-unknown@1.99.0: + resolution: {integrity: sha512-qPIRG8Uhjo6/OKyAKixTnwMliTz+t9K6Duk0mx5z+K7n0Ts38NSJz2sjDnc7cA/8V9Lb3q09H38dZ1CLwD+ssw==} cpu: ['!arm', '!arm64', '!riscv64', '!x64'] - sass-embedded-android-arm64@1.98.0: - resolution: {integrity: sha512-M9Ra98A6vYJHpwhoC/5EuH1eOshQ9ZyNwC8XifUDSbRl/cGeQceT1NReR9wFj3L7s1pIbmes1vMmaY2np0uAKQ==} + sass-embedded-android-arm64@1.99.0: + resolution: {integrity: sha512-fNHhdnP23yqqieCbAdym4N47AleSwjbNt6OYIYx4DdACGdtERjQB4iOX/TaKsW034MupfF7SjnAAK8w7Ptldtg==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [android] - sass-embedded-android-arm@1.98.0: - resolution: {integrity: sha512-LjGiMhHgu7VL1n7EJxTCre1x14bUsWd9d3dnkS2rku003IWOI/fxc7OXgaKagoVzok1kv09rzO3vFXJR5ZeONQ==} + sass-embedded-android-arm@1.99.0: + resolution: {integrity: sha512-EHvJ0C7/VuP78Qr6f8gIUVUmCqIorEQpw2yp3cs3SMg02ZuumlhjXvkTcFBxHmFdFR23vTNk1WnhY6QSeV1nFQ==} engines: {node: '>=14.0.0'} cpu: [arm] os: [android] - sass-embedded-android-riscv64@1.98.0: - resolution: {integrity: sha512-WPe+0NbaJIZE1fq/RfCZANMeIgmy83x4f+SvFOG7LhUthHpZWcOcrPTsCKKmN3xMT3iw+4DXvqTYOCYGRL3hcQ==} + sass-embedded-android-riscv64@1.99.0: + resolution: {integrity: sha512-4zqDFRvgGDTL5vTHuIhRxUpXFoh0Cy7Gm5Ywk19ASd8Settmd14YdPRZPmMxfgS1GH292PofV1fq1ifiSEJWBw==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [android] - sass-embedded-android-x64@1.98.0: - resolution: {integrity: sha512-zrD25dT7OHPEgLWuPEByybnIfx4rnCtfge4clBgjZdZ3lF6E7qNLRBtSBmoFflh6Vg0RlEjJo5VlpnTMBM5MQQ==} + sass-embedded-android-x64@1.99.0: + resolution: {integrity: sha512-Uk53k/dGYt04RjOL4gFjZ0Z9DH9DKh8IA8WsXUkNqsxerAygoy3zqRBS2zngfE9K2jiOM87q+1R1p87ory9oQQ==} engines: {node: '>=14.0.0'} cpu: [x64] os: [android] - sass-embedded-darwin-arm64@1.98.0: - resolution: {integrity: sha512-cgr1z9rBnCdMf8K+JabIaYd9Rag2OJi5mjq08XJfbJGMZV/TA6hFJCLGkr5/+ZOn4/geTM5/3aSfQ8z5EIJAOg==} + sass-embedded-darwin-arm64@1.99.0: + resolution: {integrity: sha512-u61/7U3IGLqoO6gL+AHeiAtlTPFwJK1+964U8gp45ZN0hzh1yrARf5O1mivXv8NnNgJvbG2wWJbiNZP0lG/lTg==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [darwin] - sass-embedded-darwin-x64@1.98.0: - resolution: {integrity: sha512-OLBOCs/NPeiMqTdOrMFbVHBQFj19GS3bSVSxIhcCq16ZyhouUkYJEZjxQgzv9SWA2q6Ki8GCqp4k6jMeUY9dcA==} + sass-embedded-darwin-x64@1.99.0: + resolution: {integrity: sha512-j/kkk/NcXdIameLezSfXjgCiBkVcA+G60AXrX768/3g0miK1g7M9dj7xOhCb1i7/wQeiEI3rw2LLuO63xRIn4A==} engines: {node: '>=14.0.0'} cpu: [x64] os: [darwin] - sass-embedded-linux-arm64@1.98.0: - resolution: {integrity: sha512-axOE3t2MTBwCtkUCbrdM++Gj0gC0fdHJPrgzQ+q1WUmY9NoNMGqflBtk5mBZaWUeha2qYO3FawxCB8lctFwCtw==} + sass-embedded-linux-arm64@1.99.0: + resolution: {integrity: sha512-btNcFpItcB56L40n8hDeL7sRSMLDXQ56nB5h2deddJx1n60rpKSElJmkaDGHtpkrY+CTtDRV0FZDjHeTJddYew==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] libc: glibc - sass-embedded-linux-arm@1.98.0: - resolution: {integrity: sha512-03baQZCxVyEp8v1NWBRlzGYrmVT/LK7ZrHlF1piscGiGxwfdxoLXVuxsylx3qn/dD/4i/rh7Bzk7reK1br9jvQ==} + sass-embedded-linux-arm@1.99.0: + resolution: {integrity: sha512-d4IjJZrX2+AwB2YCy1JySwdptJECNP/WfAQLUl8txI3ka8/d3TUI155GtelnoZUkio211PwIeFvvAeZ9RXPQnw==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] libc: glibc - sass-embedded-linux-musl-arm64@1.98.0: - resolution: {integrity: sha512-LeqNxQA8y4opjhe68CcFvMzCSrBuJqYVFbwElEj9bagHXQHTp9xVPJRn6VcrC+0VLEDq13HVXMv7RslIuU0zmA==} + sass-embedded-linux-musl-arm64@1.99.0: + resolution: {integrity: sha512-Hi2bt/IrM5P4FBKz6EcHAlniwfpoz9mnTdvSd58y+avA3SANM76upIkAdSayA8ZGwyL3gZokru1AKDPF9lJDNw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [linux] libc: musl - sass-embedded-linux-musl-arm@1.98.0: - resolution: {integrity: sha512-OBkjTDPYR4hSaueOGIM6FDpl9nt/VZwbSRpbNu9/eEJcxE8G/vynRugW8KRZmCFjPy8j/jkGBvvS+k9iOqKV3g==} + sass-embedded-linux-musl-arm@1.99.0: + resolution: {integrity: sha512-2gvHOupgIw3ytatXT4nFUow71LFbuOZPEwG+HUzcNQDH8ue4Ez8cr03vsv5MDv3lIjOKcXwDvWD980t18MwkoQ==} engines: {node: '>=14.0.0'} cpu: [arm] os: [linux] libc: musl - sass-embedded-linux-musl-riscv64@1.98.0: - resolution: {integrity: sha512-7w6hSuOHKt8FZsmjRb3iGSxEzM87fO9+M8nt5JIQYMhHTj5C+JY/vcske0v715HCVj5e1xyTnbGXf8FcASeAIw==} + sass-embedded-linux-musl-riscv64@1.99.0: + resolution: {integrity: sha512-mKqGvVaJ9rHMqyZsF0kikQe4NO0f4osb67+X6nLhBiVDKvyazQHJ3zJQreNefIE36yL2sjHIclSB//MprzaQDg==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] libc: musl - sass-embedded-linux-musl-x64@1.98.0: - resolution: {integrity: sha512-QikNyDEJOVqPmxyCFkci8ZdCwEssdItfjQFJB+D+Uy5HFqcS5Lv3d3GxWNX/h1dSb23RPyQdQc267ok5SbEyJw==} + sass-embedded-linux-musl-x64@1.99.0: + resolution: {integrity: sha512-huhgOMmOc30r7CH7qbRbT9LerSEGSnWuS4CYNOskr9BvNeQp4dIneFufNRGZ7hkOAxUM8DglxIZJN/cyAT95Ew==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] libc: musl - sass-embedded-linux-riscv64@1.98.0: - resolution: {integrity: sha512-E7fNytc/v4xFBQKzgzBddV/jretA4ULAPO6XmtBiQu4zZBdBozuSxsQLe2+XXeb0X4S2GIl72V7IPABdqke/vA==} + sass-embedded-linux-riscv64@1.99.0: + resolution: {integrity: sha512-mevFPIFAVhrH90THifxLfOntFmHtcEKOcdWnep2gJ0X4DVva4AiVIRlQe/7w9JFx5+gnDRE1oaJJkzuFUuYZsA==} engines: {node: '>=14.0.0'} cpu: [riscv64] os: [linux] libc: glibc - sass-embedded-linux-x64@1.98.0: - resolution: {integrity: sha512-VsvP0t/uw00mMNPv3vwyYKUrFbqzxQHnRMO+bHdAMjvLw4NFf6mscpym9Bzf+NXwi1ZNKnB6DtXjmcpcvqFqYg==} + sass-embedded-linux-x64@1.99.0: + resolution: {integrity: sha512-9k7IkULqIZdCIVt4Mboryt6vN8Mjmm3EhI1P3mClU5y5i3wLK5ExC3cbVWk047KsID/fvB1RLslqghXJx5BoxA==} engines: {node: '>=14.0.0'} cpu: [x64] os: [linux] libc: glibc - sass-embedded-unknown-all@1.98.0: - resolution: {integrity: sha512-C4MMzcAo3oEDQnW7L8SBgB9F2Fq5qHPnaYTZRMOH3Mp/7kM4OooBInXpCiiFjLnjY95hzP4KyctVx0uYR6MYlQ==} + sass-embedded-unknown-all@1.99.0: + resolution: {integrity: sha512-P7MxiUtL/XzGo3PX0CaB8lNNEFLQWKikPA8pbKytx9ZCLZSDkt2NJcdAbblB/sqMs4AV3EK2NadV8rI/diq3xg==} os: ['!android', '!darwin', '!linux', '!win32'] - sass-embedded-win32-arm64@1.98.0: - resolution: {integrity: sha512-nP/10xbAiPbhQkMr3zQfXE4TuOxPzWRQe1Hgbi90jv2R4TbzbqQTuZVOaJf7KOAN4L2Bo6XCTRjK5XkVnwZuwQ==} + sass-embedded-win32-arm64@1.99.0: + resolution: {integrity: sha512-8whpsW7S+uO8QApKfQuc36m3P9EISzbVZOgC79goob4qGy09u8Gz/rYvw8h1prJDSjltpHGhOzBE6LDz7WvzVw==} engines: {node: '>=14.0.0'} cpu: [arm64] os: [win32] - sass-embedded-win32-x64@1.98.0: - resolution: {integrity: sha512-/lbrVsfbcbdZQ5SJCWcV0NVPd6YRs+FtAnfedp4WbCkO/ZO7Zt/58MvI4X2BVpRY/Nt5ZBo1/7v2gYcQ+J4svQ==} + sass-embedded-win32-x64@1.99.0: + resolution: {integrity: sha512-ipuOv1R2K4MHeuCEAZGpuUbAgma4gb0sdacyrTjJtMOy/OY9UvWfVlwErdB09KIkp4fPDpQJDJfvYN6bC8jeNg==} engines: {node: '>=14.0.0'} cpu: [x64] os: [win32] - sass-embedded@1.98.0: - resolution: {integrity: sha512-Do7u6iRb6K+lrllcTkB1BXcHwOxcKe3rEfOF/GcCLE2w3WpddakRAosJOHFUR37DpsvimQXEt5abs3NzUjEIqg==} + sass-embedded@1.99.0: + resolution: {integrity: sha512-gF/juR1aX02lZHkvwxdF80SapkQeg2fetoDF6gIQkNbSw5YEUFspMkyGTjPjgZSgIHuZpy+Wz4PlebKnLXMjdg==} engines: {node: '>=16.0.0'} hasBin: true - sass@1.98.0: - resolution: {integrity: sha512-+4N/u9dZ4PrgzGgPlKnaaRQx64RO0JBKs9sDhQ2pLgN6JQZ25uPQZKQYaBJU48Kd5BxgXoJ4e09Dq7nMcOUW3A==} + sass@1.99.0: + resolution: {integrity: sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==} engines: {node: '>=14.0.0'} hasBin: true @@ -6846,8 +7014,8 @@ packages: peerDependencies: stylelint: ^16.8.2 || ^17.0.0 - stylelint@17.6.0: - resolution: {integrity: sha512-tokrsMIVAR9vAQ/q3UVEr7S0dGXCi7zkCezPRnS2kqPUulvUh5Vgfwngrk4EoAoW7wnrThqTdnTFN5Ra7CaxIg==} + stylelint@17.7.0: + resolution: {integrity: sha512-n/+4RheCRl+cecGnF+S/Adz59iCRaK9BVznJYB+a7GOksfwNzjiOPnYv17pTO0HgRse9IiqbMtekGNhOb2tVYQ==} engines: {node: '>=20.19.0'} hasBin: true @@ -6935,10 +7103,18 @@ packages: resolution: {integrity: sha512-u9r3uZC0bdpGOXtlxUIdwf9pkmvhqJdrVCH9fapQtgy/OeTTMZ1nqH7agtvEfmGui6e1XxjcdrlxvxJvc3sMqw==} engines: {node: '>=18'} + tinyexec@1.1.1: + resolution: {integrity: sha512-VKS/ZaQhhkKFMANmAOhhXVoIfBXblQxGX1myCQ2faQrfmobMftXeJPcZGp0gS07ocvGJWDLZGyOZDadDBqYIJg==} + engines: {node: '>=18'} + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.16: + resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} + engines: {node: '>=12.0.0'} + tinyrainbow@3.1.0: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} @@ -7005,14 +7181,14 @@ packages: tsconfig-vuepress@7.0.0: resolution: {integrity: sha512-P3EoKacv1UWp5X30/huXjxUinnj8rl4FcTS29nW4TANflkvoh7JDDiXp2c/Tmcy7Ex4N+3exjr/BjPn7Jadnew==} - tsdown@0.21.7: - resolution: {integrity: sha512-ukKIxKQzngkWvOYJAyptudclkm4VQqbjq+9HF5K5qDO8GJsYtMh8gIRwicbnZEnvFPr6mquFwYAVZ8JKt3rY2g==} + tsdown@0.21.8: + resolution: {integrity: sha512-rHDIER4JU5owYTWptvyDk6pwfA5lCft1P+11HLGeF0uj0CB7vopFvr/E8QOaRmegeyHIEsu4+03j7ysvdgBAVA==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.21.7 - '@tsdown/exe': 0.21.7 + '@tsdown/css': 0.21.8 + '@tsdown/exe': 0.21.8 '@vitejs/devtools': '*' publint: ^0.3.0 typescript: ^5.0.0 || ^6.0.0 @@ -7076,8 +7252,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript@5.9.3: - resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + typescript@6.0.2: + resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} engines: {node: '>=14.17'} hasBin: true @@ -7115,6 +7291,9 @@ packages: undici-types@7.18.2: resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici-types@7.19.2: + resolution: {integrity: sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==} + undici@6.24.1: resolution: {integrity: sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==} engines: {node: '>=18.17'} @@ -7140,6 +7319,9 @@ packages: unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + unist-util-remove@4.0.0: resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==} @@ -7212,18 +7394,18 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@8.0.3: - resolution: {integrity: sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==} + vite@8.0.8: + resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 '@vitejs/devtools': ^0.1.0 - esbuild: ^0.27.5 + esbuild: ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 sass: ^1.70.0 - sass-embedded: ^1.98.0 + sass-embedded: ^1.99.0 stylus: '>=0.54.8' sugarss: ^5.0.0 terser: ^5.16.0 @@ -7255,21 +7437,23 @@ packages: yaml: optional: true - vitest@4.1.2: - resolution: {integrity: sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==} + vitest@4.1.4: + resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.2 - '@vitest/browser-preview': 4.1.2 - '@vitest/browser-webdriverio': 4.1.2 - '@vitest/ui': 4.1.2 + '@vitest/browser-playwright': 4.1.4 + '@vitest/browser-preview': 4.1.4 + '@vitest/browser-webdriverio': 4.1.4 + '@vitest/coverage-istanbul': 4.1.4 + '@vitest/coverage-v8': 4.1.4 + '@vitest/ui': 4.1.4 happy-dom: '*' jsdom: '*' - vite: ^8.0.3 + vite: ^8.0.8 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -7283,6 +7467,10 @@ packages: optional: true '@vitest/browser-webdriverio': optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true '@vitest/ui': optional: true happy-dom: @@ -7336,8 +7524,8 @@ packages: pinia: optional: true - vue@3.5.31: - resolution: {integrity: sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==} + vue@3.5.32: + resolution: {integrity: sha512-vM4z4Q9tTafVfMAK7IVzmxg34rSzTFMyIe0UUEijUCkn9+23lj0WRfA83dg7eQZIUlgOSGrkViIaCfqSAUXsMw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -7358,8 +7546,8 @@ packages: '@vuepress/bundler-webpack': optional: true - wait-on@9.0.4: - resolution: {integrity: sha512-k8qrgfwrPVJXTeFY8tl6BxVHiclK11u72DVKhpybHfUL/K6KM4bdyK9EhIVYGytB5MJe/3lq4Tf0hrjM+pvJZQ==} + wait-on@9.0.5: + resolution: {integrity: sha512-qgnbHDfDTRIp73ANEJNRW/7kn8CrDUcvZz18xotJQku/P4saTGkbIzvnMZebPmVvVNUiRq1qWAPyqCH+W4H8KA==} engines: {node: '>=20.0.0'} hasBin: true @@ -7639,11 +7827,11 @@ snapshots: fast-wrap-ansi: 0.1.6 sisteransi: 1.0.5 - '@commitlint/cli@20.5.0(@types/node@25.5.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3)': + '@commitlint/cli@20.5.0(@types/node@25.6.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.2)': dependencies: '@commitlint/format': 20.5.0 '@commitlint/lint': 20.5.0 - '@commitlint/load': 20.5.0(@types/node@25.5.0)(typescript@5.9.3) + '@commitlint/load': 20.5.0(@types/node@25.6.0)(typescript@6.0.2) '@commitlint/read': 20.5.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) '@commitlint/types': 20.5.0 tinyexec: 1.0.4 @@ -7692,14 +7880,14 @@ snapshots: '@commitlint/rules': 20.5.0 '@commitlint/types': 20.5.0 - '@commitlint/load@20.5.0(@types/node@25.5.0)(typescript@5.9.3)': + '@commitlint/load@20.5.0(@types/node@25.6.0)(typescript@6.0.2)': dependencies: '@commitlint/config-validator': 20.5.0 '@commitlint/execute-rule': 20.0.0 '@commitlint/resolve-extends': 20.5.0 '@commitlint/types': 20.5.0 - cosmiconfig: 9.0.1(typescript@5.9.3) - cosmiconfig-typescript-loader: 6.2.0(@types/node@25.5.0)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3) + cosmiconfig: 9.0.1(typescript@6.0.2) + cosmiconfig-typescript-loader: 6.2.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@6.0.2))(typescript@6.0.2) is-plain-obj: 4.1.0 lodash.mergewith: 4.6.2 picocolors: 1.1.1 @@ -7796,11 +7984,11 @@ snapshots: '@docsearch/js@4.6.2': {} - '@e18e/eslint-plugin@0.2.0(eslint@10.1.0(jiti@2.6.1))': + '@e18e/eslint-plugin@0.3.0(eslint@10.2.0(jiti@2.6.1))': dependencies: - eslint-plugin-depend: 1.5.0(eslint@10.1.0(jiti@2.6.1)) + eslint-plugin-depend: 1.5.0(eslint@10.2.0(jiti@2.6.1)) optionalDependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) '@emnapi/core@1.9.1': dependencies: @@ -7808,20 +7996,36 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/core@1.9.2': + dependencies: + '@emnapi/wasi-threads': 1.2.1 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.9.1': dependencies: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.9.2': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.2.0': dependencies: tslib: 2.8.1 optional: true + '@emnapi/wasi-threads@1.2.1': + dependencies: + tslib: 2.8.1 + optional: true + '@es-joy/jsdoccomment@0.84.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/types': 8.58.2 comment-parser: 1.4.5 esquery: 1.7.0 jsdoc-type-pratt-parser: 7.1.1 @@ -7829,113 +8033,113 @@ snapshots: '@es-joy/jsdoccomment@0.86.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/types': 8.58.2 comment-parser: 1.4.6 esquery: 1.7.0 jsdoc-type-pratt-parser: 7.2.0 '@es-joy/resolve.exports@1.2.0': {} - '@esbuild/aix-ppc64@0.27.5': + '@esbuild/aix-ppc64@0.28.0': optional: true - '@esbuild/android-arm64@0.27.5': + '@esbuild/android-arm64@0.28.0': optional: true - '@esbuild/android-arm@0.27.5': + '@esbuild/android-arm@0.28.0': optional: true - '@esbuild/android-x64@0.27.5': + '@esbuild/android-x64@0.28.0': optional: true - '@esbuild/darwin-arm64@0.27.5': + '@esbuild/darwin-arm64@0.28.0': optional: true - '@esbuild/darwin-x64@0.27.5': + '@esbuild/darwin-x64@0.28.0': optional: true - '@esbuild/freebsd-arm64@0.27.5': + '@esbuild/freebsd-arm64@0.28.0': optional: true - '@esbuild/freebsd-x64@0.27.5': + '@esbuild/freebsd-x64@0.28.0': optional: true - '@esbuild/linux-arm64@0.27.5': + '@esbuild/linux-arm64@0.28.0': optional: true - '@esbuild/linux-arm@0.27.5': + '@esbuild/linux-arm@0.28.0': optional: true - '@esbuild/linux-ia32@0.27.5': + '@esbuild/linux-ia32@0.28.0': optional: true - '@esbuild/linux-loong64@0.27.5': + '@esbuild/linux-loong64@0.28.0': optional: true - '@esbuild/linux-mips64el@0.27.5': + '@esbuild/linux-mips64el@0.28.0': optional: true - '@esbuild/linux-ppc64@0.27.5': + '@esbuild/linux-ppc64@0.28.0': optional: true - '@esbuild/linux-riscv64@0.27.5': + '@esbuild/linux-riscv64@0.28.0': optional: true - '@esbuild/linux-s390x@0.27.5': + '@esbuild/linux-s390x@0.28.0': optional: true - '@esbuild/linux-x64@0.27.5': + '@esbuild/linux-x64@0.28.0': optional: true - '@esbuild/netbsd-arm64@0.27.5': + '@esbuild/netbsd-arm64@0.28.0': optional: true - '@esbuild/netbsd-x64@0.27.5': + '@esbuild/netbsd-x64@0.28.0': optional: true - '@esbuild/openbsd-arm64@0.27.5': + '@esbuild/openbsd-arm64@0.28.0': optional: true - '@esbuild/openbsd-x64@0.27.5': + '@esbuild/openbsd-x64@0.28.0': optional: true - '@esbuild/openharmony-arm64@0.27.5': + '@esbuild/openharmony-arm64@0.28.0': optional: true - '@esbuild/sunos-x64@0.27.5': + '@esbuild/sunos-x64@0.28.0': optional: true - '@esbuild/win32-arm64@0.27.5': + '@esbuild/win32-arm64@0.28.0': optional: true - '@esbuild/win32-ia32@0.27.5': + '@esbuild/win32-ia32@0.28.0': optional: true - '@esbuild/win32-x64@0.27.5': + '@esbuild/win32-x64@0.28.0': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@10.1.0(jiti@2.6.1))': + '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@10.2.0(jiti@2.6.1))': dependencies: escape-string-regexp: 4.0.0 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) ignore: 7.0.5 - '@eslint-community/eslint-utils@4.9.1(eslint@10.1.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))': dependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/compat@2.0.3(eslint@10.1.0(jiti@2.6.1))': + '@eslint/compat@2.0.3(eslint@10.2.0(jiti@2.6.1))': dependencies: '@eslint/core': 1.1.1 optionalDependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) - '@eslint/config-array@0.23.3': + '@eslint/config-array@0.23.5': dependencies: - '@eslint/object-schema': 3.0.3 + '@eslint/object-schema': 3.0.5 debug: 4.4.3 minimatch: 10.2.5 transitivePeerDependencies: @@ -7945,40 +8149,46 @@ snapshots: dependencies: '@eslint/core': 1.1.1 - '@eslint/core@0.17.0': + '@eslint/config-helpers@0.5.5': dependencies: - '@types/json-schema': 7.0.15 + '@eslint/core': 1.2.1 '@eslint/core@1.1.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/markdown@7.5.1': + '@eslint/core@1.2.1': dependencies: - '@eslint/core': 0.17.0 - '@eslint/plugin-kit': 0.4.1 + '@types/json-schema': 7.0.15 + + '@eslint/markdown@8.0.1': + dependencies: + '@eslint/core': 1.1.1 + '@eslint/plugin-kit': 0.6.1 github-slugger: 2.0.0 mdast-util-from-markdown: 2.0.3 mdast-util-frontmatter: 2.0.1 mdast-util-gfm: 3.1.0 + mdast-util-math: 3.0.0 micromark-extension-frontmatter: 2.0.0 micromark-extension-gfm: 3.0.0 + micromark-extension-math: 3.1.0 micromark-util-normalize-identifier: 2.0.1 transitivePeerDependencies: - supports-color - '@eslint/object-schema@3.0.3': {} - - '@eslint/plugin-kit@0.4.1': - dependencies: - '@eslint/core': 0.17.0 - levn: 0.4.1 + '@eslint/object-schema@3.0.5': {} '@eslint/plugin-kit@0.6.1': dependencies: '@eslint/core': 1.1.1 levn: 0.4.1 + '@eslint/plugin-kit@0.7.1': + dependencies: + '@eslint/core': 1.2.1 + levn: 0.4.1 + '@floating-ui/core@1.7.5': dependencies: '@floating-ui/utils': 0.2.11 @@ -8020,7 +8230,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@iconify/json@2.2.458': + '@iconify/json@2.2.462': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -8033,10 +8243,10 @@ snapshots: '@iconify/types': 2.0.0 mlly: 1.8.2 - '@iconify/vue@5.0.0(vue@3.5.31(typescript@5.9.3))': + '@iconify/vue@5.0.0(vue@3.5.32(typescript@6.0.2))': dependencies: '@iconify/types': 2.0.0 - vue: 3.5.31(typescript@5.9.3) + vue: 3.5.32(typescript@6.0.2) '@isaacs/cliui@8.0.2': dependencies: @@ -8047,8 +8257,6 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@isaacs/cliui@9.0.0': {} - '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -8359,13 +8567,13 @@ snapshots: optionalDependencies: markdown-it: 14.1.1 - '@mdit/plugin-katex-slim@0.26.2(katex@0.16.44)(markdown-it@14.1.1)': + '@mdit/plugin-katex-slim@0.26.2(katex@0.16.45)(markdown-it@14.1.1)': dependencies: '@mdit/helper': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-tex': 0.24.2(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 optionalDependencies: - katex: 0.16.44 + katex: 0.16.45 markdown-it: 14.1.1 '@mdit/plugin-mark@0.23.2(markdown-it@14.1.1)': @@ -8442,6 +8650,20 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true + '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@tybys/wasm-util': 0.10.1 + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -8460,6 +8682,8 @@ snapshots: '@oxc-project/types@0.123.0': {} + '@oxc-project/types@0.124.0': {} + '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -8521,14 +8745,14 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.6 optional: true - '@pengzhanbo/eslint-config-vue@2.2.0(@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/rule-tester@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3))(@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.31)(eslint@10.1.0(jiti@2.6.1))(globals@17.4.0)(typescript@5.9.3)(vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)))': + '@pengzhanbo/eslint-config-vue@2.3.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0)(typescript@6.0.2)(vitest@4.1.4)': dependencies: - '@pengzhanbo/eslint-config': 2.2.0(@typescript-eslint/rule-tester@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3))(@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1))))(eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.1.0(jiti@2.6.1))(globals@17.4.0))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.31)(eslint@10.1.0(jiti@2.6.1)))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)))(vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1))) - eslint: 10.1.0(jiti@2.6.1) - eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1))) - eslint-plugin-vuejs-accessibility: 2.5.0(eslint@10.1.0(jiti@2.6.1))(globals@17.4.0) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.31)(eslint@10.1.0(jiti@2.6.1)) - vue-eslint-parser: 10.4.0(eslint@10.1.0(jiti@2.6.1)) + '@pengzhanbo/eslint-config': 2.3.0(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))))(eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)(vitest@4.1.4)(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))) + eslint: 10.2.0(jiti@2.6.1) + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))) + eslint-plugin-vuejs-accessibility: 2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@10.2.0(jiti@2.6.1)) transitivePeerDependencies: - '@angular-eslint/eslint-plugin' - '@angular-eslint/eslint-plugin-template' @@ -8544,7 +8768,6 @@ snapshots: - '@vue/compiler-sfc' - astro-eslint-parser - eslint-plugin-astro - - eslint-plugin-react-hooks - eslint-plugin-react-refresh - eslint-plugin-solid - eslint-plugin-svelte @@ -8557,46 +8780,46 @@ snapshots: - typescript - vitest - '@pengzhanbo/eslint-config@2.2.0(@typescript-eslint/rule-tester@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3))(@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1))))(eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.1.0(jiti@2.6.1))(globals@17.4.0))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.31)(eslint@10.1.0(jiti@2.6.1)))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)))(vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1)))': + '@pengzhanbo/eslint-config@2.3.0(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))))(eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)(vitest@4.1.4)(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1)))': dependencies: '@antfu/install-pkg': 1.1.0 - '@e18e/eslint-plugin': 0.2.0(eslint@10.1.0(jiti@2.6.1)) - '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@10.1.0(jiti@2.6.1)) - '@eslint/markdown': 7.5.1 - '@stylistic/eslint-plugin': 5.10.0(eslint@10.1.0(jiti@2.6.1)) - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@vitest/eslint-plugin': 1.6.14(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3))) - eslint: 10.1.0(jiti@2.6.1) - eslint-config-flat-gitignore: 2.3.0(eslint@10.1.0(jiti@2.6.1)) + '@e18e/eslint-plugin': 0.3.0(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint/markdown': 8.0.1 + '@stylistic/eslint-plugin': 5.10.0(eslint@10.2.0(jiti@2.6.1)) + '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@vitest/eslint-plugin': 1.6.14(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)(vitest@4.1.4) + eslint: 10.2.0(jiti@2.6.1) + eslint-config-flat-gitignore: 2.3.0(eslint@10.2.0(jiti@2.6.1)) eslint-flat-config-utils: 3.1.0 - eslint-merge-processors: 2.0.0(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-antfu: 3.2.2(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3))(@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-erasable-syntax-only: 0.4.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-import-lite: 0.5.2(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-jsdoc: 62.9.0(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-jsonc: 3.1.2(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-n: 17.24.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + eslint-merge-processors: 2.0.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-antfu: 3.2.2(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-erasable-syntax-only: 0.4.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + eslint-plugin-import-lite: 0.6.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-jsdoc: 62.9.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-jsonc: 3.1.2(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-n: 17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 5.7.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-pnpm: 1.6.0(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-regexp: 3.1.0(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-toml: 1.3.1(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-unicorn: 63.0.0(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1)) - eslint-plugin-vuejs-accessibility: 2.5.0(eslint@10.1.0(jiti@2.6.1))(globals@17.4.0) - eslint-plugin-yml: 3.3.1(eslint@10.1.0(jiti@2.6.1)) + eslint-plugin-perfectionist: 5.8.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + eslint-plugin-pnpm: 1.6.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-regexp: 3.1.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-toml: 1.3.1(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-unicorn: 64.0.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-vuejs-accessibility: 2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0) + eslint-plugin-yml: 3.3.1(eslint@10.2.0(jiti@2.6.1)) globals: 17.4.0 local-pkg: 1.1.2 parse-gitignore: 2.0.0 toml-eslint-parser: 1.0.3 yaml-eslint-parser: 2.0.0 optionalDependencies: - eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1))) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.31)(eslint@10.1.0(jiti@2.6.1)) - vue-eslint-parser: 10.4.0(eslint@10.1.0(jiti@2.6.1)) + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@10.2.0(jiti@2.6.1)) transitivePeerDependencies: - '@eslint/json' - '@typescript-eslint/rule-tester' @@ -8607,22 +8830,22 @@ snapshots: - typescript - vitest - '@pengzhanbo/stylelint-config@2.2.0(stylelint@17.6.0(typescript@5.9.3))': + '@pengzhanbo/stylelint-config@2.3.0(stylelint@17.7.0(typescript@6.0.2))': dependencies: '@pengzhanbo/utils': 3.3.1 - '@stylelint-types/stylelint-order': 7.0.1(stylelint-define-config@17.5.0(stylelint@17.6.0(typescript@5.9.3)))(stylelint@17.6.0(typescript@5.9.3)) - '@stylelint-types/stylelint-scss': 7.0.0(stylelint-define-config@17.5.0(stylelint@17.6.0(typescript@5.9.3)))(stylelint@17.6.0(typescript@5.9.3)) - '@stylelint-types/stylelint-stylistic': 5.0.0(stylelint-define-config@17.5.0(stylelint@17.6.0(typescript@5.9.3)))(stylelint@17.6.0(typescript@5.9.3)) - '@stylistic/stylelint-plugin': 5.1.0(stylelint@17.6.0(typescript@5.9.3)) + '@stylelint-types/stylelint-order': 7.0.1(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2)) + '@stylelint-types/stylelint-scss': 7.0.0(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2)) + '@stylelint-types/stylelint-stylistic': 5.0.0(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2)) + '@stylistic/stylelint-plugin': 5.1.0(stylelint@17.7.0(typescript@6.0.2)) local-pkg: 1.1.2 - postcss: 8.5.8 + postcss: 8.5.9 postcss-html: 1.8.1 - stylelint: 17.6.0(typescript@5.9.3) - stylelint-config-html: 1.1.0(postcss-html@1.8.1)(stylelint@17.6.0(typescript@5.9.3)) - stylelint-config-standard: 40.0.0(stylelint@17.6.0(typescript@5.9.3)) - stylelint-config-standard-scss: 17.0.0(postcss@8.5.8)(stylelint@17.6.0(typescript@5.9.3)) - stylelint-define-config: 17.5.0(stylelint@17.6.0(typescript@5.9.3)) - stylelint-order: 8.1.1(stylelint@17.6.0(typescript@5.9.3)) + stylelint: 17.7.0(typescript@6.0.2) + stylelint-config-html: 1.1.0(postcss-html@1.8.1)(stylelint@17.7.0(typescript@6.0.2)) + stylelint-config-standard: 40.0.0(stylelint@17.7.0(typescript@6.0.2)) + stylelint-config-standard-scss: 17.0.0(postcss@8.5.9)(stylelint@17.7.0(typescript@6.0.2)) + stylelint-define-config: 17.5.0(stylelint@17.7.0(typescript@6.0.2)) + stylelint-order: 8.1.1(stylelint@17.7.0(typescript@6.0.2)) '@pengzhanbo/utils@3.3.1': {} @@ -8643,75 +8866,111 @@ snapshots: '@rolldown/binding-android-arm64@1.0.0-rc.13': optional: true + '@rolldown/binding-android-arm64@1.0.0-rc.15': + optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.12': optional: true '@rolldown/binding-darwin-arm64@1.0.0-rc.13': optional: true + '@rolldown/binding-darwin-arm64@1.0.0-rc.15': + optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.12': optional: true '@rolldown/binding-darwin-x64@1.0.0-rc.13': optional: true + '@rolldown/binding-darwin-x64@1.0.0-rc.15': + optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.12': optional: true '@rolldown/binding-freebsd-x64@1.0.0-rc.13': optional: true + '@rolldown/binding-freebsd-x64@1.0.0-rc.15': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': optional: true + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': + optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': optional: true + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': + optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': optional: true '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': optional: true + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': + optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.13': optional: true + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': + optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-rc.13': optional: true + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': + optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': optional: true + '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': + optional: true + '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)': + '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -8724,22 +8983,37 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) optional: true + '@rolldown/binding-wasm32-wasi@1.0.0-rc.15': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': optional: true + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': + optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': optional: true + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': + optional: true + '@rolldown/pluginutils@1.0.0-rc.12': {} '@rolldown/pluginutils@1.0.0-rc.13': {} + '@rolldown/pluginutils@1.0.0-rc.15': {} + '@rolldown/pluginutils@1.0.0-rc.2': {} '@shikijs/core@4.0.2': @@ -8780,12 +9054,12 @@ snapshots: '@shikijs/core': 4.0.2 '@shikijs/types': 4.0.2 - '@shikijs/twoslash@4.0.2(typescript@5.9.3)': + '@shikijs/twoslash@4.0.2(typescript@6.0.2)': dependencies: '@shikijs/core': 4.0.2 '@shikijs/types': 4.0.2 - twoslash: 0.3.6(typescript@5.9.3) - typescript: 5.9.3 + twoslash: 0.3.6(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -8815,44 +9089,44 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@stylelint-types/stylelint-order@7.0.1(stylelint-define-config@17.5.0(stylelint@17.6.0(typescript@5.9.3)))(stylelint@17.6.0(typescript@5.9.3))': + '@stylelint-types/stylelint-order@7.0.1(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2))': dependencies: - stylelint-define-config: 17.5.0(stylelint@17.6.0(typescript@5.9.3)) + stylelint-define-config: 17.5.0(stylelint@17.7.0(typescript@6.0.2)) optionalDependencies: - stylelint: 17.6.0(typescript@5.9.3) + stylelint: 17.7.0(typescript@6.0.2) - '@stylelint-types/stylelint-scss@7.0.0(stylelint-define-config@17.5.0(stylelint@17.6.0(typescript@5.9.3)))(stylelint@17.6.0(typescript@5.9.3))': + '@stylelint-types/stylelint-scss@7.0.0(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2))': dependencies: - stylelint-define-config: 17.5.0(stylelint@17.6.0(typescript@5.9.3)) + stylelint-define-config: 17.5.0(stylelint@17.7.0(typescript@6.0.2)) optionalDependencies: - stylelint: 17.6.0(typescript@5.9.3) + stylelint: 17.7.0(typescript@6.0.2) - '@stylelint-types/stylelint-stylistic@5.0.0(stylelint-define-config@17.5.0(stylelint@17.6.0(typescript@5.9.3)))(stylelint@17.6.0(typescript@5.9.3))': + '@stylelint-types/stylelint-stylistic@5.0.0(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2))': dependencies: - stylelint-define-config: 17.5.0(stylelint@17.6.0(typescript@5.9.3)) + stylelint-define-config: 17.5.0(stylelint@17.7.0(typescript@6.0.2)) optionalDependencies: - stylelint: 17.6.0(typescript@5.9.3) + stylelint: 17.7.0(typescript@6.0.2) - '@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1))': + '@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) - '@typescript-eslint/types': 8.58.0 - eslint: 10.1.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@typescript-eslint/types': 8.58.2 + eslint: 10.2.0(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 picomatch: 4.0.4 - '@stylistic/stylelint-plugin@5.1.0(stylelint@17.6.0(typescript@5.9.3))': + '@stylistic/stylelint-plugin@5.1.0(stylelint@17.7.0(typescript@6.0.2))': dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 style-search: 0.1.0 - stylelint: 17.6.0(typescript@5.9.3) + stylelint: 17.7.0(typescript@6.0.2) '@svta/cml-608@1.0.1': {} @@ -9084,6 +9358,8 @@ snapshots: dependencies: '@types/node': 25.5.0 + '@types/katex@0.16.8': {} + '@types/less@3.0.8': {} '@types/linkify-it@5.0.0': {} @@ -9115,13 +9391,19 @@ snapshots: dependencies: undici-types: 7.18.2 + '@types/node@25.6.0': + dependencies: + undici-types: 7.19.2 + '@types/normalize-package-data@2.4.4': {} '@types/picomatch@4.0.2': {} + '@types/picomatch@4.0.3': {} + '@types/qrcode@1.5.6': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.6.0 '@types/qs@6.15.0': {} @@ -9131,7 +9413,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 24.12.0 + '@types/node': 25.5.0 '@types/send@1.2.1': dependencies: @@ -9146,7 +9428,7 @@ snapshots: '@types/stylus@0.48.43': dependencies: - '@types/node': 25.5.0 + '@types/node': 25.6.0 '@types/three@0.183.1': dependencies: @@ -9168,50 +9450,59 @@ snapshots: '@types/webxr@0.5.24': {} - '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/type-utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/type-utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) '@typescript-eslint/visitor-keys': 8.58.0 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3 - eslint: 10.1.0(jiti@2.6.1) - typescript: 5.9.3 + eslint: 10.2.0(jiti@2.6.1) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.0(typescript@6.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.2) + '@typescript-eslint/types': 8.58.2 debug: 4.4.3 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/project-service@8.58.2(typescript@6.0.2)': dependencies: - '@typescript-eslint/parser': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) + '@typescript-eslint/types': 8.58.2 + debug: 4.4.3 + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) ajv: 6.14.0 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.7.4 @@ -9221,62 +9512,91 @@ snapshots: '@typescript-eslint/scope-manager@8.58.0': dependencies: - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/types': 8.58.2 '@typescript-eslint/visitor-keys': 8.58.0 - '@typescript-eslint/tsconfig-utils@8.58.0(typescript@5.9.3)': + '@typescript-eslint/scope-manager@8.58.2': dependencies: - typescript: 5.9.3 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 - '@typescript-eslint/type-utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.58.0(typescript@6.0.2)': dependencies: - '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + typescript: 6.0.2 + + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.2)': + dependencies: + typescript: 6.0.2 + + '@typescript-eslint/type-utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) debug: 4.4.3 - eslint: 10.1.0(jiti@2.6.1) - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + eslint: 10.2.0(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.58.0': {} + '@typescript-eslint/types@8.58.2': {} - '@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.0(typescript@6.0.2)': dependencies: - '@typescript-eslint/project-service': 8.58.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@5.9.3) - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/project-service': 8.58.0(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.2) + '@typescript-eslint/types': 8.58.2 '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 tinyglobby: 0.2.15 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/types': 8.58.0 - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - eslint: 10.1.0(jiti@2.6.1) - typescript: 5.9.3 + '@typescript-eslint/project-service': 8.58.2(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/visitor-keys': 8.58.2 + debug: 4.4.3 + minimatch: 10.2.5 + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.5.0(typescript@6.0.2) + typescript: 6.0.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) + eslint: 10.2.0(jiti@2.6.1) + typescript: 6.0.2 transitivePeerDependencies: - supports-color '@typescript-eslint/visitor-keys@8.58.0': dependencies: - '@typescript-eslint/types': 8.58.0 + '@typescript-eslint/types': 8.58.2 eslint-visitor-keys: 5.0.1 - '@typescript/vfs@1.6.4(typescript@5.9.3)': + '@typescript-eslint/visitor-keys@8.58.2': + dependencies: + '@typescript-eslint/types': 8.58.2 + eslint-visitor-keys: 5.0.1 + + '@typescript/vfs@1.6.4(typescript@6.0.2)': dependencies: debug: 4.4.3 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -9287,16 +9607,16 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - '@vitejs/plugin-vue@6.0.5(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.5(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.2))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 - vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3) - vue: 3.5.31(typescript@5.9.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3) + vue: 3.5.32(typescript@6.0.2) - '@vitest/coverage-v8@4.1.2(vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)))': + '@vitest/coverage-v8@4.1.4(vitest@4.1.4)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.2 + '@vitest/utils': 4.1.4 ast-v8-to-istanbul: 1.0.0 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -9305,58 +9625,58 @@ snapshots: obug: 2.1.1 std-env: 4.0.0 tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)) + vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3)) - '@vitest/eslint-plugin@1.6.14(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)))': + '@vitest/eslint-plugin@1.6.14(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)(vitest@4.1.4)': dependencies: '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.1.0(jiti@2.6.1) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + eslint: 10.2.0(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - typescript: 5.9.3 - vitest: 4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)) + '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + typescript: 6.0.2 + vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color - '@vitest/expect@4.1.2': + '@vitest/expect@4.1.4': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.2 - '@vitest/utils': 4.1.2 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.2(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3))': + '@vitest/mocker@4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3))': dependencies: - '@vitest/spy': 4.1.2 + '@vitest/spy': 4.1.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3) - '@vitest/pretty-format@4.1.2': + '@vitest/pretty-format@4.1.4': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.2': + '@vitest/runner@4.1.4': dependencies: - '@vitest/utils': 4.1.2 + '@vitest/utils': 4.1.4 pathe: 2.0.3 - '@vitest/snapshot@4.1.2': + '@vitest/snapshot@4.1.4': dependencies: - '@vitest/pretty-format': 4.1.2 - '@vitest/utils': 4.1.2 + '@vitest/pretty-format': 4.1.4 + '@vitest/utils': 4.1.4 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.2': {} + '@vitest/spy@4.1.4': {} - '@vitest/utils@4.1.2': + '@vitest/utils@4.1.4': dependencies: - '@vitest/pretty-format': 4.1.2 + '@vitest/pretty-format': 4.1.4 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -9370,7 +9690,7 @@ snapshots: dependencies: katex: 0.16.44 - '@vue-macros/common@3.1.2(vue@3.5.31(typescript@5.9.3))': + '@vue-macros/common@3.1.2(vue@3.5.32(typescript@6.0.2))': dependencies: '@vue/compiler-sfc': 3.5.31 ast-kit: 2.2.0 @@ -9378,7 +9698,7 @@ snapshots: magic-string-ast: 1.0.3 unplugin-utils: 0.3.1 optionalDependencies: - vue: 3.5.31(typescript@5.9.3) + vue: 3.5.32(typescript@6.0.2) '@vue/compiler-core@3.5.31': dependencies: @@ -9388,11 +9708,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.1 + '@vue/compiler-core@3.5.32': + dependencies: + '@babel/parser': 7.29.2 + '@vue/shared': 3.5.32 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + '@vue/compiler-dom@3.5.31': dependencies: '@vue/compiler-core': 3.5.31 '@vue/shared': 3.5.31 + '@vue/compiler-dom@3.5.32': + dependencies: + '@vue/compiler-core': 3.5.32 + '@vue/shared': 3.5.32 + '@vue/compiler-sfc@3.5.31': dependencies: '@babel/parser': 7.29.2 @@ -9405,11 +9738,28 @@ snapshots: postcss: 8.5.8 source-map-js: 1.2.1 + '@vue/compiler-sfc@3.5.32': + dependencies: + '@babel/parser': 7.29.2 + '@vue/compiler-core': 3.5.32 + '@vue/compiler-dom': 3.5.32 + '@vue/compiler-ssr': 3.5.32 + '@vue/shared': 3.5.32 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.8 + source-map-js: 1.2.1 + '@vue/compiler-ssr@3.5.31': dependencies: '@vue/compiler-dom': 3.5.31 '@vue/shared': 3.5.31 + '@vue/compiler-ssr@3.5.32': + dependencies: + '@vue/compiler-dom': 3.5.32 + '@vue/shared': 3.5.32 + '@vue/devtools-api@8.1.1': dependencies: '@vue/devtools-kit': 8.1.1 @@ -9433,36 +9783,38 @@ snapshots: path-browserify: 1.0.1 picomatch: 4.0.4 - '@vue/reactivity@3.5.31': + '@vue/reactivity@3.5.32': dependencies: - '@vue/shared': 3.5.31 + '@vue/shared': 3.5.32 - '@vue/runtime-core@3.5.31': + '@vue/runtime-core@3.5.32': dependencies: - '@vue/reactivity': 3.5.31 - '@vue/shared': 3.5.31 + '@vue/reactivity': 3.5.32 + '@vue/shared': 3.5.32 - '@vue/runtime-dom@3.5.31': + '@vue/runtime-dom@3.5.32': dependencies: - '@vue/reactivity': 3.5.31 - '@vue/runtime-core': 3.5.31 - '@vue/shared': 3.5.31 + '@vue/reactivity': 3.5.32 + '@vue/runtime-core': 3.5.32 + '@vue/shared': 3.5.32 csstype: 3.2.3 - '@vue/server-renderer@3.5.31(vue@3.5.31(typescript@5.9.3))': + '@vue/server-renderer@3.5.32(vue@3.5.32(typescript@6.0.2))': dependencies: - '@vue/compiler-ssr': 3.5.31 - '@vue/shared': 3.5.31 - vue: 3.5.31(typescript@5.9.3) + '@vue/compiler-ssr': 3.5.32 + '@vue/shared': 3.5.32 + vue: 3.5.32(typescript@6.0.2) '@vue/shared@3.5.31': {} - '@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3)': + '@vue/shared@3.5.32': {} + + '@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3)': dependencies: - '@vitejs/plugin-vue': 6.0.5(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3))(vue@3.5.31(typescript@5.9.3)) - '@vuepress/bundlerutils': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) - '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) - '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) + '@vitejs/plugin-vue': 6.0.5(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.2)) + '@vuepress/bundlerutils': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 autoprefixer: 10.4.27(postcss@8.5.8) @@ -9470,12 +9822,10 @@ snapshots: postcss: 8.5.8 postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3) rolldown: 1.0.0-rc.13 - vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3) - vue: 3.5.31(typescript@5.9.3) - vue-router: 5.0.4(@vue/compiler-sfc@3.5.31)(vue@3.5.31(typescript@5.9.3)) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3) + vue: 3.5.32(typescript@6.0.2) + vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - '@pinia/colada' - '@types/node' - '@vitejs/devtools' @@ -9494,14 +9844,14 @@ snapshots: - typescript - yaml - '@vuepress/bundlerutils@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3)': + '@vuepress/bundlerutils@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2)': dependencies: - '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) - '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) + '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 - vue: 3.5.31(typescript@5.9.3) - vue-router: 5.0.4(@vue/compiler-sfc@3.5.31)(vue@3.5.31(typescript@5.9.3)) + vue: 3.5.32(typescript@6.0.2) + vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' @@ -9509,15 +9859,15 @@ snapshots: - supports-color - typescript - '@vuepress/cli@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3)': + '@vuepress/cli@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2)': dependencies: - '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) + '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 cac: 7.0.0 chokidar: 5.0.0 envinfo: 7.21.0 - esbuild: 0.27.5 + esbuild: 0.28.0 transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' @@ -9525,26 +9875,26 @@ snapshots: - supports-color - typescript - '@vuepress/client@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3)': + '@vuepress/client@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2)': dependencies: '@vue/devtools-api': 8.1.1 '@vue/devtools-kit': 8.1.1 '@vuepress/shared': 2.0.0-rc.28 - vue: 3.5.31(typescript@5.9.3) - vue-router: 5.0.4(@vue/compiler-sfc@3.5.31)(vue@3.5.31(typescript@5.9.3)) + vue: 3.5.32(typescript@6.0.2) + vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' - pinia - typescript - '@vuepress/core@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3)': + '@vuepress/core@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2)': dependencies: - '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) + '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) '@vuepress/markdown': 2.0.0-rc.28 '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 - vue: 3.5.31(typescript@5.9.3) + vue: 3.5.32(typescript@6.0.2) transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' @@ -9552,26 +9902,26 @@ snapshots: - supports-color - typescript - '@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: '@vue/shared': 3.5.31 - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) cheerio: 1.2.0 fflate: 0.8.2 gray-matter: 4.0.3 - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) optionalDependencies: - '@vuepress/bundler-vite': 2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3) + '@vuepress/bundler-vite': 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) transitivePeerDependencies: - typescript - '@vuepress/highlighter-helper@2.0.0-rc.128(40c08aaaba09bbf30481474206d87a72)': + '@vuepress/highlighter-helper@2.0.0-rc.128(@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))))(@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.2)))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) optionalDependencies: - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) '@vuepress/markdown@2.0.0-rc.28': dependencies: @@ -9594,68 +9944,68 @@ snapshots: transitivePeerDependencies: - supports-color - '@vuepress/plugin-cache@2.0.0-rc.128(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-cache@2.0.0-rc.128(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: ci-info: 4.4.0 lru-cache: 11.2.7 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) - '@vuepress/plugin-comment@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-comment@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) giscus: 1.6.0 - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-copy-code@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-copy-code@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-docsearch@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-docsearch@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: '@docsearch/css': 4.6.2 '@docsearch/js': 4.6.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) ts-debounce: 4.0.0 - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-git@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-git@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) rehype-parse: 9.0.1 rehype-sanitize: 6.0.0 rehype-stringify: 10.0.1 unified: 11.0.5 - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-llms@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-llms@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: '@types/mdast': 4.0.4 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) byte-size: 9.0.1 gray-matter: 4.0.3 mdast-util-from-markdown: 2.0.3 @@ -9664,7 +10014,7 @@ snapshots: tokenx: 1.3.0 unist-util-remove: 4.0.0 unist-util-visit: 5.1.0 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@75lb/nature' - '@vuepress/bundler-vite' @@ -9672,14 +10022,14 @@ snapshots: - supports-color - typescript - '@vuepress/plugin-markdown-chart@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(chart.js@4.5.1)(echarts@6.0.0)(flowchart.ts@3.0.1)(markdown-it@14.1.1)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.14.0)(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-markdown-chart@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(chart.js@4.5.1)(echarts@6.0.0)(flowchart.ts@3.0.1)(markdown-it@14.1.1)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.14.0)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: '@mdit/plugin-container': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-plantuml': 0.24.2(markdown-it@14.1.1) - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) optionalDependencies: chart.js: 4.5.1 echarts: 6.0.0 @@ -9694,14 +10044,14 @@ snapshots: - markdown-it - typescript - '@vuepress/plugin-markdown-hint@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-markdown-hint@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: '@mdit/plugin-alert': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-container': 0.23.2(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' @@ -9709,44 +10059,44 @@ snapshots: - typescript - vue - '@vuepress/plugin-markdown-image@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-markdown-image@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: '@mdit/plugin-figure': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-img-lazyload': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-img-mark': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-img-size': 0.23.2(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - markdown-it - typescript - '@vuepress/plugin-markdown-include@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-markdown-include@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: '@mdit/plugin-include': 0.23.2(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - markdown-it - typescript - '@vuepress/plugin-markdown-math@2.0.0-rc.128(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(katex@0.16.44)(markdown-it@14.1.1)(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-markdown-math@2.0.0-rc.128(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(katex@0.16.45)(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@mdit/plugin-katex-slim': 0.26.2(katex@0.16.44)(markdown-it@14.1.1) + '@mdit/plugin-katex-slim': 0.26.2(katex@0.16.45)(markdown-it@14.1.1) '@mdit/plugin-mathjax-slim': 0.26.2(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) optionalDependencies: '@mathjax/src': 4.1.1 - katex: 0.16.44 + katex: 0.16.45 transitivePeerDependencies: - '@mathjax/mathjax-newcm-font' - '@vuepress/bundler-vite' @@ -9754,91 +10104,91 @@ snapshots: - markdown-it - typescript - '@vuepress/plugin-nprogress@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-nprogress@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-photo-swipe@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-photo-swipe@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) photoswipe: 5.4.4 - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-reading-time@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-reading-time@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-replace-assets@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-replace-assets@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) magic-string: 0.30.21 unplugin: 3.0.0 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-seo@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-seo@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-shiki@2.0.0-rc.128(cd2bb975d2b671018e4b2e90813d99a7)': + '@vuepress/plugin-shiki@2.0.0-rc.128(1a953f9f9b1b95ecc511dafb0398021a)': dependencies: '@shikijs/transformers': 4.0.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vuepress/highlighter-helper': 2.0.0-rc.128(40c08aaaba09bbf30481474206d87a72) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vuepress/highlighter-helper': 2.0.0-rc.128(@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))))(@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.2)))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) nanoid: 5.1.7 shiki: 4.0.2 synckit: 0.11.12 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) optionalDependencies: - '@vuepress/shiki-twoslash': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + '@vuepress/shiki-twoslash': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - '@vueuse/core' - typescript - '@vuepress/plugin-sitemap@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-sitemap@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) sitemap: 9.0.1 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-watermark@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/plugin-watermark@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) watermark-js-plus: 1.6.3 transitivePeerDependencies: - '@vuepress/bundler-vite' @@ -9849,18 +10199,18 @@ snapshots: dependencies: '@mdit-vue/types': 3.0.2 - '@vuepress/shiki-twoslash@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)))': + '@vuepress/shiki-twoslash@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': dependencies: - '@shikijs/twoslash': 4.0.2(typescript@5.9.3) - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3))) - floating-vue: 5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.31(typescript@5.9.3)) + '@shikijs/twoslash': 4.0.2(typescript@6.0.2) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + floating-vue: 5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.32(typescript@6.0.2)) mdast-util-from-markdown: 2.0.3 mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.1 - twoslash: 0.3.6(typescript@5.9.3) - twoslash-vue: 0.3.6(typescript@5.9.3) - vue: 3.5.31(typescript@5.9.3) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)) + twoslash: 0.3.6(typescript@6.0.2) + twoslash-vue: 0.3.6(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.2) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) transitivePeerDependencies: - '@nuxt/kit' - '@vuepress/bundler-vite' @@ -9886,29 +10236,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@vueuse/core@14.2.1(vue@3.5.31(typescript@5.9.3))': + '@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.2))': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 14.2.1 - '@vueuse/shared': 14.2.1(vue@3.5.31(typescript@5.9.3)) - vue: 3.5.31(typescript@5.9.3) + '@vueuse/shared': 14.2.1(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.2) - '@vueuse/integrations@14.2.1(axios@1.14.0)(change-case@5.4.4)(focus-trap@8.0.1)(qrcode@1.5.4)(vue@3.5.31(typescript@5.9.3))': + '@vueuse/integrations@14.2.1(axios@1.15.0)(change-case@5.4.4)(focus-trap@8.0.1)(qrcode@1.5.4)(vue@3.5.32(typescript@6.0.2))': dependencies: - '@vueuse/core': 14.2.1(vue@3.5.31(typescript@5.9.3)) - '@vueuse/shared': 14.2.1(vue@3.5.31(typescript@5.9.3)) - vue: 3.5.31(typescript@5.9.3) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + '@vueuse/shared': 14.2.1(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.2) optionalDependencies: - axios: 1.14.0 + axios: 1.15.0 change-case: 5.4.4 focus-trap: 8.0.1 qrcode: 1.5.4 '@vueuse/metadata@14.2.1': {} - '@vueuse/shared@14.2.1(vue@3.5.31(typescript@5.9.3))': + '@vueuse/shared@14.2.1(vue@3.5.32(typescript@6.0.2))': dependencies: - vue: 3.5.31(typescript@5.9.3) + vue: 3.5.32(typescript@6.0.2) '@webgpu/types@0.1.69': {} @@ -10071,7 +10421,7 @@ snapshots: axe-core@4.11.2: {} - axios@1.14.0: + axios@1.15.0: dependencies: follow-redirects: 1.15.11 form-data: 4.0.5 @@ -10089,7 +10439,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.13: {} + baseline-browser-mapping@2.10.18: {} basic-auth@2.0.1: dependencies: @@ -10139,7 +10489,7 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.13 + baseline-browser-mapping: 2.10.18 caniuse-lite: 1.0.30001784 electron-to-chromium: 1.5.331 node-releases: 2.0.37 @@ -10366,10 +10716,10 @@ snapshots: comment-parser@1.4.6: {} - commitizen@4.3.1(@types/node@25.5.0)(typescript@5.9.3): + commitizen@4.3.1(@types/node@25.6.0)(typescript@6.0.2): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@25.5.0)(typescript@5.9.3) + cz-conventional-changelog: 3.3.0(@types/node@25.6.0)(typescript@6.0.2) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -10462,39 +10812,33 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@6.2.0(@types/node@25.5.0)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3): + cosmiconfig-typescript-loader@6.2.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@6.0.2))(typescript@6.0.2): dependencies: - '@types/node': 25.5.0 - cosmiconfig: 9.0.1(typescript@5.9.3) + '@types/node': 25.6.0 + cosmiconfig: 9.0.1(typescript@6.0.2) jiti: 2.6.1 - typescript: 5.9.3 + typescript: 6.0.2 - cosmiconfig@9.0.1(typescript@5.9.3): + cosmiconfig@9.0.1(typescript@6.0.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.2 - cpx2@8.0.0: + cpx2@8.0.2: dependencies: - debounce: 2.2.0 - debug: 4.4.3 - duplexer: 0.1.2 - fs-extra: 11.3.4 - glob: 11.1.0 + debounce: 3.0.0 + glob: 13.0.6 glob2base: 0.0.12 - ignore: 6.0.2 + ignore: 7.0.5 minimatch: 10.2.5 p-map: 7.0.4 resolve: 1.22.11 - safe-buffer: 5.2.1 shell-quote: 1.8.3 subarg: 1.0.0 - transitivePeerDependencies: - - supports-color cross-env@7.0.3: dependencies: @@ -10539,16 +10883,16 @@ snapshots: cytoscape@3.33.1: {} - cz-conventional-changelog@3.3.0(@types/node@25.5.0)(typescript@5.9.3): + cz-conventional-changelog@3.3.0(@types/node@25.6.0)(typescript@6.0.2): dependencies: chalk: 2.4.2 - commitizen: 4.3.1(@types/node@25.5.0)(typescript@5.9.3) + commitizen: 4.3.1(@types/node@25.6.0)(typescript@6.0.2) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 20.5.0(@types/node@25.5.0)(typescript@5.9.3) + '@commitlint/load': 20.5.0(@types/node@25.6.0)(typescript@6.0.2) transitivePeerDependencies: - '@types/node' - typescript @@ -10770,7 +11114,7 @@ snapshots: dayjs@1.11.20: {} - debounce@2.2.0: {} + debounce@3.0.0: {} debug@4.4.3: dependencies: @@ -10804,6 +11148,8 @@ snapshots: defu@6.1.6: {} + defu@6.1.7: {} + delaunator@5.1.0: dependencies: robust-predicates: 3.0.3 @@ -10864,8 +11210,6 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - duplexer@0.1.2: {} - eastasianwidth@0.2.0: {} echarts@6.0.0: @@ -11000,34 +11344,34 @@ snapshots: es6-promise@4.2.8: {} - esbuild@0.27.5: + esbuild@0.28.0: optionalDependencies: - '@esbuild/aix-ppc64': 0.27.5 - '@esbuild/android-arm': 0.27.5 - '@esbuild/android-arm64': 0.27.5 - '@esbuild/android-x64': 0.27.5 - '@esbuild/darwin-arm64': 0.27.5 - '@esbuild/darwin-x64': 0.27.5 - '@esbuild/freebsd-arm64': 0.27.5 - '@esbuild/freebsd-x64': 0.27.5 - '@esbuild/linux-arm': 0.27.5 - '@esbuild/linux-arm64': 0.27.5 - '@esbuild/linux-ia32': 0.27.5 - '@esbuild/linux-loong64': 0.27.5 - '@esbuild/linux-mips64el': 0.27.5 - '@esbuild/linux-ppc64': 0.27.5 - '@esbuild/linux-riscv64': 0.27.5 - '@esbuild/linux-s390x': 0.27.5 - '@esbuild/linux-x64': 0.27.5 - '@esbuild/netbsd-arm64': 0.27.5 - '@esbuild/netbsd-x64': 0.27.5 - '@esbuild/openbsd-arm64': 0.27.5 - '@esbuild/openbsd-x64': 0.27.5 - '@esbuild/openharmony-arm64': 0.27.5 - '@esbuild/sunos-x64': 0.27.5 - '@esbuild/win32-arm64': 0.27.5 - '@esbuild/win32-ia32': 0.27.5 - '@esbuild/win32-x64': 0.27.5 + '@esbuild/aix-ppc64': 0.28.0 + '@esbuild/android-arm': 0.28.0 + '@esbuild/android-arm64': 0.28.0 + '@esbuild/android-x64': 0.28.0 + '@esbuild/darwin-arm64': 0.28.0 + '@esbuild/darwin-x64': 0.28.0 + '@esbuild/freebsd-arm64': 0.28.0 + '@esbuild/freebsd-x64': 0.28.0 + '@esbuild/linux-arm': 0.28.0 + '@esbuild/linux-arm64': 0.28.0 + '@esbuild/linux-ia32': 0.28.0 + '@esbuild/linux-loong64': 0.28.0 + '@esbuild/linux-mips64el': 0.28.0 + '@esbuild/linux-ppc64': 0.28.0 + '@esbuild/linux-riscv64': 0.28.0 + '@esbuild/linux-s390x': 0.28.0 + '@esbuild/linux-x64': 0.28.0 + '@esbuild/netbsd-arm64': 0.28.0 + '@esbuild/netbsd-x64': 0.28.0 + '@esbuild/openbsd-arm64': 0.28.0 + '@esbuild/openbsd-x64': 0.28.0 + '@esbuild/openharmony-arm64': 0.28.0 + '@esbuild/sunos-x64': 0.28.0 + '@esbuild/win32-arm64': 0.28.0 + '@esbuild/win32-ia32': 0.28.0 + '@esbuild/win32-x64': 0.28.0 escalade@3.2.0: {} @@ -11037,72 +11381,72 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@10.1.0(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.2.0(jiti@2.6.1)): dependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) semver: 7.7.4 - eslint-config-flat-gitignore@2.3.0(eslint@10.1.0(jiti@2.6.1)): + eslint-config-flat-gitignore@2.3.0(eslint@10.2.0(jiti@2.6.1)): dependencies: - '@eslint/compat': 2.0.3(eslint@10.1.0(jiti@2.6.1)) - eslint: 10.1.0(jiti@2.6.1) + '@eslint/compat': 2.0.3(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.0(jiti@2.6.1) eslint-flat-config-utils@3.1.0: dependencies: '@eslint/config-helpers': 0.5.3 pathe: 2.0.3 - eslint-json-compat-utils@0.2.3(eslint@10.1.0(jiti@2.6.1))(jsonc-eslint-parser@3.1.0): + eslint-json-compat-utils@0.2.3(eslint@10.2.0(jiti@2.6.1))(jsonc-eslint-parser@3.1.0): dependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) esquery: 1.7.0 jsonc-eslint-parser: 3.1.0 - eslint-merge-processors@2.0.0(eslint@10.1.0(jiti@2.6.1)): + eslint-merge-processors@2.0.0(eslint@10.2.0(jiti@2.6.1)): dependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-antfu@3.2.2(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-antfu@3.2.2(eslint@10.2.0(jiti@2.6.1)): dependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.58.0(typescript@5.9.3))(@typescript-eslint/utils@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1)): dependencies: '@es-joy/jsdoccomment': 0.84.0 - '@typescript-eslint/rule-tester': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.58.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.1.0(jiti@2.6.1) + '@typescript-eslint/rule-tester': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-depend@1.5.0(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-depend@1.5.0(eslint@10.2.0(jiti@2.6.1)): dependencies: empathic: 2.0.0 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) module-replacements: 2.11.0 semver: 7.7.4 - eslint-plugin-erasable-syntax-only@0.4.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-erasable-syntax-only@0.4.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): dependencies: - '@typescript-eslint/parser': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) cached-factory: 0.1.0 - eslint: 10.1.0(jiti@2.6.1) - typescript: 5.9.3 + eslint: 10.2.0(jiti@2.6.1) + typescript: 6.0.2 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.2.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - eslint: 10.1.0(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@10.1.0(jiti@2.6.1)) + eslint: 10.2.0(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-import-lite@0.5.2(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-import-lite@0.6.0(eslint@10.2.0(jiti@2.6.1)): dependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-jsdoc@62.9.0(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-jsdoc@62.9.0(eslint@10.2.0(jiti@2.6.1)): dependencies: '@es-joy/jsdoccomment': 0.86.0 '@es-joy/resolve.exports': 1.2.0 @@ -11110,7 +11454,7 @@ snapshots: comment-parser: 1.4.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 @@ -11122,22 +11466,22 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@3.1.2(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-jsonc@3.1.2(eslint@10.2.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) '@eslint/core': 1.1.1 '@eslint/plugin-kit': 0.6.1 '@ota-meshi/ast-token-store': 0.3.0 diff-sequences: 29.6.3 - eslint: 10.1.0(jiti@2.6.1) - eslint-json-compat-utils: 0.2.3(eslint@10.1.0(jiti@2.6.1))(jsonc-eslint-parser@3.1.0) + eslint: 10.2.0(jiti@2.6.1) + eslint-json-compat-utils: 0.2.3(eslint@10.2.0(jiti@2.6.1))(jsonc-eslint-parser@3.1.0) jsonc-eslint-parser: 3.1.0 natural-compare: 1.4.0 synckit: 0.11.12 transitivePeerDependencies: - '@eslint/json' - eslint-plugin-jsx-a11y@6.10.2(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@10.2.0(jiti@2.6.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -11147,7 +11491,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -11156,36 +11500,36 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-n@17.24.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-n@17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) enhanced-resolve: 5.20.1 - eslint: 10.1.0(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@10.1.0(jiti@2.6.1)) + eslint: 10.2.0(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.2.0(jiti@2.6.1)) get-tsconfig: 4.13.7 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 semver: 7.7.4 - ts-declaration-location: 1.0.7(typescript@5.9.3) + ts-declaration-location: 1.0.7(typescript@6.0.2) transitivePeerDependencies: - typescript eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@5.7.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-perfectionist@5.8.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): dependencies: - '@typescript-eslint/utils': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 10.1.0(jiti@2.6.1) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + eslint: 10.2.0(jiti@2.6.1) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-pnpm@1.6.0(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-pnpm@1.6.0(eslint@10.2.0(jiti@2.6.1)): dependencies: empathic: 2.0.0 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) jsonc-eslint-parser: 3.1.0 pathe: 2.0.3 pnpm-workspace-yaml: 1.6.0 @@ -11193,39 +11537,39 @@ snapshots: yaml: 2.8.3 yaml-eslint-parser: 2.0.0 - eslint-plugin-regexp@3.1.0(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-regexp@3.1.0(eslint@10.2.0(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.6 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) jsdoc-type-pratt-parser: 7.2.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-toml@1.3.1(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-toml@1.3.1(eslint@10.2.0(jiti@2.6.1)): dependencies: '@eslint/core': 1.1.1 '@eslint/plugin-kit': 0.6.1 '@ota-meshi/ast-token-store': 0.3.0 debug: 4.4.3 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) toml-eslint-parser: 1.0.3 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@63.0.0(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-unicorn@64.0.0(eslint@10.2.0(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) change-case: 5.4.4 ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.49.0 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) find-up-simple: 1.0.1 - globals: 16.5.0 + globals: 17.4.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 jsesc: 3.1.0 @@ -11235,36 +11579,36 @@ snapshots: semver: 7.7.4 strip-indent: 4.1.1 - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1)): dependencies: - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.1.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.1.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1))): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) - eslint: 10.1.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.0(jiti@2.6.1) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 7.1.1 semver: 7.7.4 - vue-eslint-parser: 10.4.0(eslint@10.1.0(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@10.2.0(jiti@2.6.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 5.10.0(eslint@10.1.0(jiti@2.6.1)) - '@typescript-eslint/parser': 8.58.0(eslint@10.1.0(jiti@2.6.1))(typescript@5.9.3) + '@stylistic/eslint-plugin': 5.10.0(eslint@10.2.0(jiti@2.6.1)) + '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.1.0(jiti@2.6.1))(globals@17.4.0): + eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0): dependencies: aria-query: 5.3.2 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) globals: 17.4.0 - vue-eslint-parser: 10.4.0(eslint@10.1.0(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@10.2.0(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-plugin-yml@3.3.1(eslint@10.1.0(jiti@2.6.1)): + eslint-plugin-yml@3.3.1(eslint@10.2.0(jiti@2.6.1)): dependencies: '@eslint/core': 1.1.1 '@eslint/plugin-kit': 0.6.1 @@ -11272,16 +11616,16 @@ snapshots: debug: 4.4.3 diff-sequences: 29.6.3 escape-string-regexp: 5.0.0 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) natural-compare: 1.4.0 yaml-eslint-parser: 2.0.0 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.31)(eslint@10.1.0(jiti@2.6.1)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)): dependencies: - '@vue/compiler-sfc': 3.5.31 - eslint: 10.1.0(jiti@2.6.1) + '@vue/compiler-sfc': 3.5.32 + eslint: 10.2.0(jiti@2.6.1) eslint-scope@9.1.2: dependencies: @@ -11296,14 +11640,14 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.1.0(jiti@2.6.1): + eslint@10.2.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.1.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.23.3 - '@eslint/config-helpers': 0.5.3 - '@eslint/core': 1.1.1 - '@eslint/plugin-kit': 0.6.1 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.5.5 + '@eslint/core': 1.2.1 + '@eslint/plugin-kit': 0.7.1 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 @@ -11494,11 +11838,11 @@ snapshots: flatted@3.4.2: {} - floating-vue@5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.31(typescript@5.9.3)): + floating-vue@5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.32(typescript@6.0.2)): dependencies: '@floating-ui/dom': 1.1.1 - vue: 3.5.31(typescript@5.9.3) - vue-resize: 2.0.0-alpha.1(vue@3.5.31(typescript@5.9.3)) + vue: 3.5.32(typescript@6.0.2) + vue-resize: 2.0.0-alpha.1(vue@3.5.32(typescript@6.0.2)) flowchart.ts@3.0.1: dependencies: @@ -11641,15 +11985,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@11.1.0: - dependencies: - foreground-child: 3.3.1 - jackspeak: 4.2.3 - minimatch: 10.2.5 - minipass: 7.1.3 - package-json-from-dist: 1.0.1 - path-scurry: 2.0.2 - glob@13.0.6: dependencies: minimatch: 10.2.5 @@ -11695,8 +12030,6 @@ snapshots: globals@15.15.0: {} - globals@16.5.0: {} - globals@17.4.0: {} globalthis@1.0.4: @@ -11728,7 +12061,7 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 - gsap@3.14.2: {} + gsap@3.15.0: {} hachure-fill@0.5.2: {} @@ -11835,7 +12168,7 @@ snapshots: highlight.js@11.11.1: {} - hls.js@1.6.15: {} + hls.js@1.6.16: {} homedir-polyfill@1.0.3: dependencies: @@ -11929,8 +12262,6 @@ snapshots: ignore@5.3.2: {} - ignore@6.0.2: {} - ignore@7.0.5: {} image-size@0.5.5: @@ -12174,10 +12505,6 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jackspeak@4.2.3: - dependencies: - '@isaacs/cliui': 9.0.0 - jiti@1.21.7: {} jiti@2.6.1: {} @@ -12250,6 +12577,10 @@ snapshots: dependencies: commander: 8.3.0 + katex@0.16.45: + dependencies: + commander: 8.3.0 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -12461,6 +12792,8 @@ snapshots: lru-cache@11.2.7: {} + lru-cache@11.3.5: {} + magic-string-ast@1.0.3: dependencies: magic-string: 0.30.21 @@ -12661,6 +12994,18 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-math@3.0.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + longest-streak: 3.1.0 + mdast-util-from-markdown: 2.0.3 + mdast-util-to-markdown: 2.1.2 + unist-util-remove-position: 5.0.0 + transitivePeerDependencies: + - supports-color + mdast-util-phrasing@4.1.0: dependencies: '@types/mdast': 4.0.4 @@ -12835,6 +13180,16 @@ snapshots: micromark-util-combine-extensions: 2.0.1 micromark-util-types: 2.0.2 + micromark-extension-math@3.1.0: + dependencies: + '@types/katex': 0.16.8 + devlop: 1.1.0 + katex: 0.16.44 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 @@ -13251,7 +13606,7 @@ snapshots: pify@4.0.1: optional: true - pinyin-pro@3.28.0: {} + pinyin-pro@3.28.1: {} pkg-types@1.3.1: dependencies: @@ -13293,8 +13648,8 @@ snapshots: dependencies: htmlparser2: 8.0.2 js-tokens: 9.0.1 - postcss: 8.5.8 - postcss-safe-parser: 6.0.0(postcss@8.5.8) + postcss: 8.5.9 + postcss-safe-parser: 6.0.0(postcss@8.5.9) postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3): dependencies: @@ -13308,26 +13663,26 @@ snapshots: postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@6.0.0(postcss@8.5.8): + postcss-safe-parser@6.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-safe-parser@7.0.1(postcss@8.5.8): + postcss-safe-parser@7.0.1(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 - postcss-scss@4.0.9(postcss@8.5.8): + postcss-scss@4.0.9(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sorting@10.0.0(postcss@8.5.8): + postcss-sorting@10.0.0(postcss@8.5.9): dependencies: - postcss: 8.5.8 + postcss: 8.5.9 postcss-value-parser@4.2.0: {} @@ -13337,6 +13692,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.9: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postprocessing@6.39.0(three@0.183.2): dependencies: three: 0.183.2 @@ -13530,7 +13891,7 @@ snapshots: robust-predicates@3.0.3: {} - rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1))(typescript@5.9.3): + rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.15)(typescript@6.0.2): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 @@ -13542,13 +13903,13 @@ snapshots: get-tsconfig: 4.13.7 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + rolldown: 1.0.0-rc.15 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - oxc-resolver - rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1): + rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2): dependencies: '@oxc-project/types': 0.122.0 '@rolldown/pluginutils': 1.0.0-rc.12 @@ -13565,7 +13926,7 @@ snapshots: '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.12 '@rolldown/binding-linux-x64-musl': 1.0.0-rc.12 '@rolldown/binding-openharmony-arm64': 1.0.0-rc.12 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.12 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.12 transitivePeerDependencies: @@ -13593,6 +13954,27 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.13 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.13 + rolldown@1.0.0-rc.15: + dependencies: + '@oxc-project/types': 0.124.0 + '@rolldown/pluginutils': 1.0.0-rc.15 + optionalDependencies: + '@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 + roughjs@4.6.6: dependencies: hachure-fill: 0.5.2 @@ -13637,65 +14019,65 @@ snapshots: safer-buffer@2.1.2: {} - sass-embedded-all-unknown@1.98.0: + sass-embedded-all-unknown@1.99.0: dependencies: - sass: 1.98.0 + sass: 1.99.0 optional: true - sass-embedded-android-arm64@1.98.0: + sass-embedded-android-arm64@1.99.0: optional: true - sass-embedded-android-arm@1.98.0: + sass-embedded-android-arm@1.99.0: optional: true - sass-embedded-android-riscv64@1.98.0: + sass-embedded-android-riscv64@1.99.0: optional: true - sass-embedded-android-x64@1.98.0: + sass-embedded-android-x64@1.99.0: optional: true - sass-embedded-darwin-arm64@1.98.0: + sass-embedded-darwin-arm64@1.99.0: optional: true - sass-embedded-darwin-x64@1.98.0: + sass-embedded-darwin-x64@1.99.0: optional: true - sass-embedded-linux-arm64@1.98.0: + sass-embedded-linux-arm64@1.99.0: optional: true - sass-embedded-linux-arm@1.98.0: + sass-embedded-linux-arm@1.99.0: optional: true - sass-embedded-linux-musl-arm64@1.98.0: + sass-embedded-linux-musl-arm64@1.99.0: optional: true - sass-embedded-linux-musl-arm@1.98.0: + sass-embedded-linux-musl-arm@1.99.0: optional: true - sass-embedded-linux-musl-riscv64@1.98.0: + sass-embedded-linux-musl-riscv64@1.99.0: optional: true - sass-embedded-linux-musl-x64@1.98.0: + sass-embedded-linux-musl-x64@1.99.0: optional: true - sass-embedded-linux-riscv64@1.98.0: + sass-embedded-linux-riscv64@1.99.0: optional: true - sass-embedded-linux-x64@1.98.0: + sass-embedded-linux-x64@1.99.0: optional: true - sass-embedded-unknown-all@1.98.0: + sass-embedded-unknown-all@1.99.0: dependencies: - sass: 1.98.0 + sass: 1.99.0 optional: true - sass-embedded-win32-arm64@1.98.0: + sass-embedded-win32-arm64@1.99.0: optional: true - sass-embedded-win32-x64@1.98.0: + sass-embedded-win32-x64@1.99.0: optional: true - sass-embedded@1.98.0: + sass-embedded@1.99.0: dependencies: '@bufbuild/protobuf': 2.11.0 colorjs.io: 0.5.2 @@ -13705,26 +14087,26 @@ snapshots: sync-child-process: 1.0.2 varint: 6.0.0 optionalDependencies: - sass-embedded-all-unknown: 1.98.0 - sass-embedded-android-arm: 1.98.0 - sass-embedded-android-arm64: 1.98.0 - sass-embedded-android-riscv64: 1.98.0 - sass-embedded-android-x64: 1.98.0 - sass-embedded-darwin-arm64: 1.98.0 - sass-embedded-darwin-x64: 1.98.0 - sass-embedded-linux-arm: 1.98.0 - sass-embedded-linux-arm64: 1.98.0 - sass-embedded-linux-musl-arm: 1.98.0 - sass-embedded-linux-musl-arm64: 1.98.0 - sass-embedded-linux-musl-riscv64: 1.98.0 - sass-embedded-linux-musl-x64: 1.98.0 - sass-embedded-linux-riscv64: 1.98.0 - sass-embedded-linux-x64: 1.98.0 - sass-embedded-unknown-all: 1.98.0 - sass-embedded-win32-arm64: 1.98.0 - sass-embedded-win32-x64: 1.98.0 + sass-embedded-all-unknown: 1.99.0 + sass-embedded-android-arm: 1.99.0 + sass-embedded-android-arm64: 1.99.0 + sass-embedded-android-riscv64: 1.99.0 + sass-embedded-android-x64: 1.99.0 + sass-embedded-darwin-arm64: 1.99.0 + sass-embedded-darwin-x64: 1.99.0 + sass-embedded-linux-arm: 1.99.0 + sass-embedded-linux-arm64: 1.99.0 + sass-embedded-linux-musl-arm: 1.99.0 + sass-embedded-linux-musl-arm64: 1.99.0 + sass-embedded-linux-musl-riscv64: 1.99.0 + sass-embedded-linux-musl-x64: 1.99.0 + sass-embedded-linux-riscv64: 1.99.0 + sass-embedded-linux-x64: 1.99.0 + sass-embedded-unknown-all: 1.99.0 + sass-embedded-win32-arm64: 1.99.0 + sass-embedded-win32-x64: 1.99.0 - sass@1.98.0: + sass@1.99.0: dependencies: chokidar: 5.0.0 immutable: 5.1.5 @@ -14009,49 +14391,49 @@ snapshots: style-search@0.1.0: {} - stylelint-config-html@1.1.0(postcss-html@1.8.1)(stylelint@17.6.0(typescript@5.9.3)): + stylelint-config-html@1.1.0(postcss-html@1.8.1)(stylelint@17.7.0(typescript@6.0.2)): dependencies: postcss-html: 1.8.1 - stylelint: 17.6.0(typescript@5.9.3) + stylelint: 17.7.0(typescript@6.0.2) - stylelint-config-recommended-scss@17.0.0(postcss@8.5.8)(stylelint@17.6.0(typescript@5.9.3)): + stylelint-config-recommended-scss@17.0.0(postcss@8.5.9)(stylelint@17.7.0(typescript@6.0.2)): dependencies: - postcss-scss: 4.0.9(postcss@8.5.8) - stylelint: 17.6.0(typescript@5.9.3) - stylelint-config-recommended: 18.0.0(stylelint@17.6.0(typescript@5.9.3)) - stylelint-scss: 7.0.0(stylelint@17.6.0(typescript@5.9.3)) + postcss-scss: 4.0.9(postcss@8.5.9) + stylelint: 17.7.0(typescript@6.0.2) + stylelint-config-recommended: 18.0.0(stylelint@17.7.0(typescript@6.0.2)) + stylelint-scss: 7.0.0(stylelint@17.7.0(typescript@6.0.2)) optionalDependencies: - postcss: 8.5.8 + postcss: 8.5.9 - stylelint-config-recommended@18.0.0(stylelint@17.6.0(typescript@5.9.3)): + stylelint-config-recommended@18.0.0(stylelint@17.7.0(typescript@6.0.2)): dependencies: - stylelint: 17.6.0(typescript@5.9.3) + stylelint: 17.7.0(typescript@6.0.2) - stylelint-config-standard-scss@17.0.0(postcss@8.5.8)(stylelint@17.6.0(typescript@5.9.3)): + stylelint-config-standard-scss@17.0.0(postcss@8.5.9)(stylelint@17.7.0(typescript@6.0.2)): dependencies: - stylelint: 17.6.0(typescript@5.9.3) - stylelint-config-recommended-scss: 17.0.0(postcss@8.5.8)(stylelint@17.6.0(typescript@5.9.3)) - stylelint-config-standard: 40.0.0(stylelint@17.6.0(typescript@5.9.3)) + stylelint: 17.7.0(typescript@6.0.2) + stylelint-config-recommended-scss: 17.0.0(postcss@8.5.9)(stylelint@17.7.0(typescript@6.0.2)) + stylelint-config-standard: 40.0.0(stylelint@17.7.0(typescript@6.0.2)) optionalDependencies: - postcss: 8.5.8 + postcss: 8.5.9 - stylelint-config-standard@40.0.0(stylelint@17.6.0(typescript@5.9.3)): + stylelint-config-standard@40.0.0(stylelint@17.7.0(typescript@6.0.2)): dependencies: - stylelint: 17.6.0(typescript@5.9.3) - stylelint-config-recommended: 18.0.0(stylelint@17.6.0(typescript@5.9.3)) + stylelint: 17.7.0(typescript@6.0.2) + stylelint-config-recommended: 18.0.0(stylelint@17.7.0(typescript@6.0.2)) - stylelint-define-config@17.5.0(stylelint@17.6.0(typescript@5.9.3)): + stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)): dependencies: csstype: 3.2.3 - stylelint: 17.6.0(typescript@5.9.3) + stylelint: 17.7.0(typescript@6.0.2) - stylelint-order@8.1.1(stylelint@17.6.0(typescript@5.9.3)): + stylelint-order@8.1.1(stylelint@17.7.0(typescript@6.0.2)): dependencies: - postcss: 8.5.8 - postcss-sorting: 10.0.0(postcss@8.5.8) - stylelint: 17.6.0(typescript@5.9.3) + postcss: 8.5.9 + postcss-sorting: 10.0.0(postcss@8.5.9) + stylelint: 17.7.0(typescript@6.0.2) - stylelint-scss@7.0.0(stylelint@17.6.0(typescript@5.9.3)): + stylelint-scss@7.0.0(stylelint@17.7.0(typescript@6.0.2)): dependencies: css-tree: 3.2.1 is-plain-object: 5.0.0 @@ -14061,9 +14443,9 @@ snapshots: postcss-resolve-nested-selector: 0.1.6 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - stylelint: 17.6.0(typescript@5.9.3) + stylelint: 17.7.0(typescript@6.0.2) - stylelint@17.6.0(typescript@5.9.3): + stylelint@17.7.0(typescript@6.0.2): dependencies: '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) @@ -14073,7 +14455,7 @@ snapshots: '@csstools/selector-resolve-nested': 4.0.0(postcss-selector-parser@7.1.1) '@csstools/selector-specificity': 6.0.0(postcss-selector-parser@7.1.1) colord: 2.9.3 - cosmiconfig: 9.0.1(typescript@5.9.3) + cosmiconfig: 9.0.1(typescript@6.0.2) css-functions-list: 3.3.3 css-tree: 3.2.1 debug: 4.4.3 @@ -14092,8 +14474,8 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.8 - postcss-safe-parser: 7.0.1(postcss@8.5.8) + postcss: 8.5.9 + postcss-safe-parser: 7.0.1(postcss@8.5.9) postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 string-width: 8.2.0 @@ -14180,11 +14562,18 @@ snapshots: tinyexec@1.0.4: {} + tinyexec@1.1.1: {} + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + tinyglobby@0.2.16: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + tinyrainbow@3.1.0: {} tm-grammars@1.31.15: {} @@ -14218,41 +14607,41 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.5.0(typescript@5.9.3): + ts-api-utils@2.5.0(typescript@6.0.2): dependencies: - typescript: 5.9.3 + typescript: 6.0.2 ts-debounce@4.0.0: {} - ts-declaration-location@1.0.7(typescript@5.9.3): + ts-declaration-location@1.0.7(typescript@6.0.2): dependencies: picomatch: 4.0.4 - typescript: 5.9.3 + typescript: 6.0.2 ts-dedent@2.2.0: {} tsconfig-vuepress@7.0.0: {} - tsdown@0.21.7(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(synckit@0.11.12)(typescript@5.9.3): + tsdown@0.21.8(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12)(typescript@6.0.2): dependencies: ansis: 4.2.0 cac: 7.0.0 - defu: 6.1.6 + defu: 6.1.7 empathic: 2.0.0 hookable: 6.1.0 import-without-cache: 0.2.5 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) - rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1))(typescript@5.9.3) + rolldown: 1.0.0-rc.15 + rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.15)(typescript@6.0.2) semver: 7.7.4 - tinyexec: 1.0.4 - tinyglobby: 0.2.15 + tinyexec: 1.1.1 + tinyglobby: 0.2.16 tree-kill: 1.2.2 unconfig-core: 7.5.0 - unrun: 0.2.34(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(synckit@0.11.12) + unrun: 0.2.34(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12) optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -14268,20 +14657,20 @@ snapshots: twoslash-protocol@0.3.6: {} - twoslash-vue@0.3.6(typescript@5.9.3): + twoslash-vue@0.3.6(typescript@6.0.2): dependencies: '@vue/language-core': 3.2.6 - twoslash: 0.3.6(typescript@5.9.3) + twoslash: 0.3.6(typescript@6.0.2) twoslash-protocol: 0.3.6 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color - twoslash@0.3.6(typescript@5.9.3): + twoslash@0.3.6(typescript@6.0.2): dependencies: - '@typescript/vfs': 1.6.4(typescript@5.9.3) + '@typescript/vfs': 1.6.4(typescript@6.0.2) twoslash-protocol: 0.3.6 - typescript: 5.9.3 + typescript: 6.0.2 transitivePeerDependencies: - supports-color @@ -14324,7 +14713,7 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript@5.9.3: {} + typescript@6.0.2: {} ua-parser-js@1.0.41: {} @@ -14361,6 +14750,8 @@ snapshots: undici-types@7.18.2: {} + undici-types@7.19.2: {} + undici@6.24.1: {} undici@7.24.7: {} @@ -14389,6 +14780,11 @@ snapshots: dependencies: '@types/unist': 3.0.3 + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.1.0 + unist-util-remove@4.0.0: dependencies: '@types/unist': 3.0.3 @@ -14423,9 +14819,9 @@ snapshots: picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - unrun@0.2.34(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(synckit@0.11.12): + unrun@0.2.34(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12): dependencies: - rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + rolldown: 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) optionalDependencies: synckit: 0.11.12 transitivePeerDependencies: @@ -14472,36 +14868,33 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3): + vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 postcss: 8.5.8 - rolldown: 1.0.0-rc.12(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1) + rolldown: 1.0.0-rc.15 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 25.5.0 - esbuild: 0.27.5 + '@types/node': 25.6.0 + esbuild: 0.28.0 fsevents: 2.3.3 jiti: 2.6.1 less: 4.6.4 - sass: 1.98.0 - sass-embedded: 1.98.0 + sass: 1.99.0 + sass-embedded: 1.99.0 stylus: 0.64.0 yaml: 2.8.3 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - vitest@4.1.2(@types/node@25.5.0)(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)): + vitest@4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3)): dependencies: - '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(vite@8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3)) - '@vitest/pretty-format': 4.1.2 - '@vitest/runner': 4.1.2 - '@vitest/snapshot': 4.1.2 - '@vitest/spy': 4.1.2 - '@vitest/utils': 4.1.2 + '@vitest/expect': 4.1.4 + '@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3)) + '@vitest/pretty-format': 4.1.4 + '@vitest/runner': 4.1.4 + '@vitest/snapshot': 4.1.4 + '@vitest/spy': 4.1.4 + '@vitest/utils': 4.1.4 es-module-lexer: 2.0.0 expect-type: 1.3.0 magic-string: 0.30.21 @@ -14513,10 +14906,11 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 8.0.3(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(yaml@2.8.3) + vite: 8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 25.5.0 + '@types/node': 25.6.0 + '@vitest/coverage-v8': 4.1.4(vitest@4.1.4) transitivePeerDependencies: - msw @@ -14537,10 +14931,10 @@ snapshots: vscode-uri@3.1.0: {} - vue-eslint-parser@10.4.0(eslint@10.1.0(jiti@2.6.1)): + vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1)): dependencies: debug: 4.4.3 - eslint: 10.1.0(jiti@2.6.1) + eslint: 10.2.0(jiti@2.6.1) eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 espree: 11.2.0 @@ -14549,14 +14943,14 @@ snapshots: transitivePeerDependencies: - supports-color - vue-resize@2.0.0-alpha.1(vue@3.5.31(typescript@5.9.3)): + vue-resize@2.0.0-alpha.1(vue@3.5.32(typescript@6.0.2)): dependencies: - vue: 3.5.31(typescript@5.9.3) + vue: 3.5.32(typescript@6.0.2) - vue-router@5.0.4(@vue/compiler-sfc@3.5.31)(vue@3.5.31(typescript@5.9.3)): + vue-router@5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)): dependencies: '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.31(typescript@5.9.3)) + '@vue-macros/common': 3.1.2(vue@3.5.32(typescript@6.0.2)) '@vue/devtools-api': 8.1.1 ast-walker-scope: 0.8.3 chokidar: 5.0.0 @@ -14571,32 +14965,32 @@ snapshots: tinyglobby: 0.2.15 unplugin: 3.0.0 unplugin-utils: 0.3.1 - vue: 3.5.31(typescript@5.9.3) + vue: 3.5.32(typescript@6.0.2) yaml: 2.8.3 optionalDependencies: - '@vue/compiler-sfc': 3.5.31 + '@vue/compiler-sfc': 3.5.32 - vue@3.5.31(typescript@5.9.3): + vue@3.5.32(typescript@6.0.2): dependencies: - '@vue/compiler-dom': 3.5.31 - '@vue/compiler-sfc': 3.5.31 - '@vue/runtime-dom': 3.5.31 - '@vue/server-renderer': 3.5.31(vue@3.5.31(typescript@5.9.3)) - '@vue/shared': 3.5.31 + '@vue/compiler-dom': 3.5.32 + '@vue/compiler-sfc': 3.5.32 + '@vue/runtime-dom': 3.5.32 + '@vue/server-renderer': 3.5.32(vue@3.5.32(typescript@6.0.2)) + '@vue/shared': 3.5.32 optionalDependencies: - typescript: 5.9.3 + typescript: 6.0.2 - vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(@vuepress/bundler-vite@2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3))(typescript@5.9.3)(vue@3.5.31(typescript@5.9.3)): + vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)): dependencies: - '@vuepress/cli': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) - '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) - '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.31)(typescript@5.9.3) + '@vuepress/cli': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) '@vuepress/markdown': 2.0.0-rc.28 '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 - vue: 3.5.31(typescript@5.9.3) + vue: 3.5.32(typescript@6.0.2) optionalDependencies: - '@vuepress/bundler-vite': 2.0.0-rc.28(@emnapi/core@1.9.1)(@emnapi/runtime@1.9.1)(@types/node@25.5.0)(@vue/compiler-sfc@3.5.31)(esbuild@0.27.5)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.98.0)(sass@1.98.0)(stylus@0.64.0)(typescript@5.9.3)(yaml@2.8.3) + '@vuepress/bundler-vite': 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' @@ -14604,9 +14998,9 @@ snapshots: - supports-color - typescript - wait-on@9.0.4: + wait-on@9.0.5: dependencies: - axios: 1.14.0 + axios: 1.15.0 joi: 18.1.2 lodash: 4.18.1 minimist: 1.2.8 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 77be3e66..f9edca34 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -24,29 +24,29 @@ catalogs: '@commitlint/cli': ^20.5.0 '@commitlint/config-conventional': ^20.5.0 '@lunariajs/core': ^0.1.1 - '@pengzhanbo/eslint-config-vue': ^2.2.0 - '@pengzhanbo/stylelint-config': ^2.2.0 + '@pengzhanbo/eslint-config-vue': ^2.3.0 + '@pengzhanbo/stylelint-config': ^2.3.0 '@simonwep/pickr': ^1.9.1 '@types/express': ^5.0.6 '@types/js-yaml': ^4.0.9 '@types/less': ^3.0.8 '@types/markdown-it': ^14.1.2 '@types/minimist': ^1.2.5 - '@types/node': ^25.5.0 - '@types/picomatch': ^4.0.2 + '@types/node': ^25.6.0 + '@types/picomatch': ^4.0.3 '@types/qrcode': ^1.5.6 '@types/stylus': ^0.48.43 '@types/three': ^0.183.1 '@types/webpack-env': ^1.18.8 - '@vitest/coverage-v8': ^4.1.2 + '@vitest/coverage-v8': ^4.1.4 bumpp: ^11.0.1 commitizen: ^4.3.1 conventional-changelog: ^7.2.0 conventional-changelog-angular: ^8.3.1 - cpx2: ^8.0.0 + cpx2: ^8.0.2 cross-env: 7.0.3 cz-conventional-changelog: ^3.3.0 - eslint: ^10.1.0 + eslint: ^10.2.0 http-server: ^14.1.1 husky: ^9.1.7 less: ^4.6.4 @@ -55,34 +55,34 @@ catalogs: memfs: ^4.57.1 mermaid: ^11.14.0 minimist: ^1.2.8 - postcss: ^8.5.8 + postcss: ^8.5.9 rimraf: ^6.1.3 - stylelint: ^17.6.0 + stylelint: ^17.7.0 stylus: ^0.64.0 tsconfig-vuepress: ^7.0.0 - tsdown: ^0.21.7 - typescript: ^5.9.3 - vite: ^8.0.3 - vitest: ^4.1.2 - wait-on: ^9.0.4 + tsdown: ^0.21.8 + typescript: ^6.0.2 + vite: ^8.0.8 + vitest: ^4.1.4 + wait-on: ^9.0.5 peer: '@eslint-community/eslint-utils': ^4.9.1 - '@iconify/json': ^2.2.458 + '@iconify/json': ^2.2.462 '@mathjax/src': ^4.1.1 '@pinyin-pro/data': ^1.3.1 - '@typescript-eslint/types': ^8.58.0 - '@typescript-eslint/utils': ^8.58.0 + '@typescript-eslint/types': ^8.58.2 + '@typescript-eslint/utils': ^8.58.2 artplayer: ^5.4.0 dashjs: ^5.1.1 - gsap: ^3.14.2 - hls.js: ^1.6.15 + gsap: ^3.15.0 + hls.js: ^1.6.16 mpegts.js: 1.7.3 ogl: ^1.0.11 - pinyin-pro: ^3.28.0 + pinyin-pro: ^3.28.1 postprocessing: ^6.39.0 pyodide: ^0.29.3 - sass: ^1.98.0 - sass-embedded: ^1.98.0 + sass: ^1.99.0 + sass-embedded: ^1.99.0 swiper: ^12.1.3 three: ^0.183.2 prod: @@ -104,7 +104,7 @@ catalogs: chokidar: 5.0.0 dayjs: ^1.11.20 echarts: ^6.0.0 - esbuild: ^0.27.5 + esbuild: ^0.28.0 flowchart.ts: ^3.0.1 focus-trap: ^8.0.1 gray-matter: ^4.0.3 @@ -112,9 +112,9 @@ catalogs: hash-wasm: ^4.12.0 image-size: ^2.0.2 js-yaml: ^4.1.1 - katex: ^0.16.44 + katex: ^0.16.45 local-pkg: ^1.1.2 - lru-cache: ^11.2.7 + lru-cache: ^11.3.5 mark.js: ^8.11.1 markdown-it-cjk-friendly: ^2.0.2 markdown-it-container: ^4.0.0 @@ -134,7 +134,7 @@ catalogs: sort-package-json: ^3.6.1 tm-grammars: ^1.31.15 tm-themes: ^1.12.2 - vue: ^3.5.31 + vue: ^3.5.32 vue-router: ^5.0.4 vuepress: '@vuepress/bundler-vite': 2.0.0-rc.28 From 1329051536a7c3fc178e86e74470884478573b6b Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Tue, 14 Apr 2026 15:36:15 +0800 Subject: [PATCH 03/14] chore: tweak --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 256ce1ae..e196ee85 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-theme-plume-monorepo", "type": "module", - "version": "1.0.0-rc.192", + "version": "1.0.0-rc.193", "private": true, "packageManager": "pnpm@10.33.0", "author": "pengzhanbo (https://github.com/pengzhanbo/)", From e11c7a8fcd3634df5ced7f4fc4edcc930fcd0ba6 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Tue, 14 Apr 2026 15:37:37 +0800 Subject: [PATCH 04/14] build: publish v1.0.0-rc.194 --- CHANGELOG.md | 7 +++++++ cli/package.json | 2 +- package.json | 2 +- plugins/plugin-fonts/package.json | 2 +- plugins/plugin-md-power/package.json | 2 +- plugins/plugin-search/package.json | 2 +- theme/package.json | 2 +- 7 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eed1d2f4..bffb44c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-rc.194](https://github.com/pengzhanbo/vuepress-theme-plume/compare/v1.0.0-rc.193...v1.0.0-rc.194) (2026-04-14) + + +### Bug Fixes + +* **plugin-search:** fix search index race condition on pageUpdated, close [#888](https://github.com/pengzhanbo/vuepress-theme-plume/issues/888) ([#889](https://github.com/pengzhanbo/vuepress-theme-plume/issues/889)) ([28963eb](https://github.com/pengzhanbo/vuepress-theme-plume/commit/28963eb419e9a1707157929fe546dc44d1ef771e)) + # [1.0.0-rc.193](https://github.com/pengzhanbo/vuepress-theme-plume/compare/v1.0.0-rc.193...v1.0.0-rc.192) (2026-04-02) ### Bug Fixes diff --git a/cli/package.json b/cli/package.json index 891b1f72..81da4bfa 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-vuepress-theme-plume", "type": "module", - "version": "1.0.0-rc.193", + "version": "1.0.0-rc.194", "description": "The cli for create vuepress-theme-plume's project", "author": "pengzhanbo (https://github.com/pengzhanbo/)", "license": "MIT", diff --git a/package.json b/package.json index e196ee85..b3f069f9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-theme-plume-monorepo", "type": "module", - "version": "1.0.0-rc.193", + "version": "1.0.0-rc.194", "private": true, "packageManager": "pnpm@10.33.0", "author": "pengzhanbo (https://github.com/pengzhanbo/)", diff --git a/plugins/plugin-fonts/package.json b/plugins/plugin-fonts/package.json index ea0a7f96..66dd35cf 100644 --- a/plugins/plugin-fonts/package.json +++ b/plugins/plugin-fonts/package.json @@ -1,7 +1,7 @@ { "name": "@vuepress-plume/plugin-fonts", "type": "module", - "version": "1.0.0-rc.193", + "version": "1.0.0-rc.194", "description": "The Plugin for VuePress 2 - fonts", "author": "pengzhanbo ", "license": "MIT", diff --git a/plugins/plugin-md-power/package.json b/plugins/plugin-md-power/package.json index 288193c4..2bfdad40 100644 --- a/plugins/plugin-md-power/package.json +++ b/plugins/plugin-md-power/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-plugin-md-power", "type": "module", - "version": "1.0.0-rc.193", + "version": "1.0.0-rc.194", "description": "The Plugin for VuePress 2 - markdown power", "author": "pengzhanbo ", "license": "MIT", diff --git a/plugins/plugin-search/package.json b/plugins/plugin-search/package.json index 8b51feca..cb77cdd1 100644 --- a/plugins/plugin-search/package.json +++ b/plugins/plugin-search/package.json @@ -1,7 +1,7 @@ { "name": "@vuepress-plume/plugin-search", "type": "module", - "version": "1.0.0-rc.193", + "version": "1.0.0-rc.194", "description": "The Plugin for VuePress 2 - local search", "author": "pengzhanbo ", "license": "MIT", diff --git a/theme/package.json b/theme/package.json index 18b6e8b2..c1544000 100644 --- a/theme/package.json +++ b/theme/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-theme-plume", "type": "module", - "version": "1.0.0-rc.193", + "version": "1.0.0-rc.194", "description": "A Blog&Document Theme for VuePress 2.0", "author": "pengzhanbo (https://github.com/pengzhanbo/)", "license": "MIT", From bfd0c8409c4c55c82f6c55d681f6b3eaafeaddfb Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sat, 18 Apr 2026 17:01:41 +0800 Subject: [PATCH 05/14] feat(plugin-md-power): compat obsidian official markdown syntax (#890) * feat(plugin-md-power): compat obsidian official markdown syntax * chore: tweak * chore: tweak * chore: tweak * chore: tweak --- cli/package.json | 4 +- docs/.vuepress/collections/en/theme-guide.ts | 1 + docs/.vuepress/collections/zh/theme-guide.ts | 1 + docs/.vuepress/theme.ts | 1 + docs/en/guide/markdown/obsidian.md | 338 +++++++++++++ docs/guide/markdown/obsidian.md | 335 +++++++++++++ docs/tsconfig.json | 1 + eslint.config.js | 2 + .../__test__/obsidianCommentPlugin.spec.ts | 72 +++ .../__test__/obsidianEmbedLinkComplex.spec.ts | 446 ++++++++++++++++++ .../__test__/obsidianEmbedLinkPlugin.spec.ts | 124 +++++ .../__test__/obsidianPlugin.spec.ts | 75 +++ .../__test__/obsidianWikiLinkPlugin.spec.ts | 218 +++++++++ plugins/plugin-md-power/package.json | 1 + .../src/node/embed/video/artPlayer.ts | 4 +- .../src/node/obsidian/README.md | 9 + .../src/node/obsidian/comment.ts | 117 +++++ .../src/node/obsidian/embedLink.ts | 301 ++++++++++++ .../src/node/obsidian/index.ts | 27 ++ .../src/node/obsidian/wikiLink.ts | 155 ++++++ plugins/plugin-md-power/src/node/plugin.ts | 2 + .../plugin-md-power/src/node/utils/slugify.ts | 26 + .../plugin-md-power/src/shared/obsidian.ts | 5 + plugins/plugin-md-power/src/shared/pdf.ts | 2 +- plugins/plugin-md-power/src/shared/plugin.ts | 8 + pnpm-lock.yaml | 3 + theme/src/client/components/VPLink.vue | 13 +- theme/src/client/composables/link.ts | 6 +- .../features/components/PageContextMenu.vue | 6 + theme/src/node/detector/fields.ts | 1 + tsconfig.json | 1 - 31 files changed, 2295 insertions(+), 10 deletions(-) create mode 100644 docs/en/guide/markdown/obsidian.md create mode 100644 docs/guide/markdown/obsidian.md create mode 100644 plugins/plugin-md-power/__test__/obsidianCommentPlugin.spec.ts create mode 100644 plugins/plugin-md-power/__test__/obsidianEmbedLinkComplex.spec.ts create mode 100644 plugins/plugin-md-power/__test__/obsidianEmbedLinkPlugin.spec.ts create mode 100644 plugins/plugin-md-power/__test__/obsidianPlugin.spec.ts create mode 100644 plugins/plugin-md-power/__test__/obsidianWikiLinkPlugin.spec.ts create mode 100644 plugins/plugin-md-power/src/node/obsidian/README.md create mode 100644 plugins/plugin-md-power/src/node/obsidian/comment.ts create mode 100644 plugins/plugin-md-power/src/node/obsidian/embedLink.ts create mode 100644 plugins/plugin-md-power/src/node/obsidian/index.ts create mode 100644 plugins/plugin-md-power/src/node/obsidian/wikiLink.ts create mode 100644 plugins/plugin-md-power/src/node/utils/slugify.ts create mode 100644 plugins/plugin-md-power/src/shared/obsidian.ts diff --git a/cli/package.json b/cli/package.json index 81da4bfa..69b0cad1 100644 --- a/cli/package.json +++ b/cli/package.json @@ -40,8 +40,8 @@ "sort-package-json": "catalog:prod" }, "plume-deps": { - "vuepress": "2.0.0-rc.26", - "vue": "^3.5.26", + "vuepress": "2.0.0-rc.28", + "vue": "^3.5.32", "http-server": "^14.1.1", "typescript": "^5.9.3" }, diff --git a/docs/.vuepress/collections/en/theme-guide.ts b/docs/.vuepress/collections/en/theme-guide.ts index d33acca9..6f2522b5 100644 --- a/docs/.vuepress/collections/en/theme-guide.ts +++ b/docs/.vuepress/collections/en/theme-guide.ts @@ -69,6 +69,7 @@ export const themeGuide: ThemeCollectionItem = defineCollection({ 'chat', 'include', 'env', + 'obsidian', ], }, { diff --git a/docs/.vuepress/collections/zh/theme-guide.ts b/docs/.vuepress/collections/zh/theme-guide.ts index f0ee78fb..a8d8fdb4 100644 --- a/docs/.vuepress/collections/zh/theme-guide.ts +++ b/docs/.vuepress/collections/zh/theme-guide.ts @@ -69,6 +69,7 @@ export const themeGuide: ThemeCollectionItem = defineCollection({ 'chat', 'include', 'env', + 'obsidian', ], }, { diff --git a/docs/.vuepress/theme.ts b/docs/.vuepress/theme.ts index 5753c251..7202c2f3 100644 --- a/docs/.vuepress/theme.ts +++ b/docs/.vuepress/theme.ts @@ -58,6 +58,7 @@ export const theme: Theme = plumeTheme({ jsfiddle: true, demo: true, encrypt: true, + obsidian: true, npmTo: ['pnpm', 'yarn', 'npm'], repl: { go: true, diff --git a/docs/en/guide/markdown/obsidian.md b/docs/en/guide/markdown/obsidian.md new file mode 100644 index 00000000..d321c219 --- /dev/null +++ b/docs/en/guide/markdown/obsidian.md @@ -0,0 +1,338 @@ +--- +title: Obsidian Compatibility +icon: simple-icons:obsidian +createTime: 2026/04/17 21:56:55 +permalink: /en/guide/markdown/obsidian/ +--- + +## Overview + +The theme provides compatibility support for Obsidian's official Markdown extension syntax through the `vuepress-plugin-md-power` plugin, +enabling Obsidian users to write documentation using familiar syntax. + +Currently supported Obsidian extension syntax includes: + +- [Wiki Links](#wiki-links) - Syntax for inter-page linking +- [Embeds](#embeds) - Embed content from other files into the current page +- [Comments](#comments) - Add comments visible only during editing + +::: warning No plans to support extension syntax provided by Obsidian's third-party community plugins +::: + +## Wiki Links + +Wiki Links are syntax for linking to other notes in Obsidian. + +### Syntax + +```md +[[filename]] +[[filename#heading]] +[[filename#heading#subheading]] +[[filename|alias]] +[[filename#heading|alias]] +``` + +### Filename Search Rules + +When using Wiki Links, filenames are matched according to the following rules: + +**Match Priority:** + +1. **Page Title** - Priority matching against page titles +2. **Full Path** - Exact match against file paths +3. **Fuzzy Match** - Match filenames at the end of paths + +**Path Resolution Rules:** + +- **Relative paths** (starting with `.`): Resolved relative to the current file's directory +- **Absolute paths** (not starting with `.`): Searched throughout the document tree, with shortest path taking precedence +- **Directory form** (ending with `/`): Matches `README.md` or `index.html` within that directory + +**Example:** + +Assuming the following document structure: + +```txt +docs/ +├── README.md (title: "Home") +├── guide/ +│ ├── README.md (title: "Guide") +│ └── markdown/ +│ └── obsidian.md +``` + +In `docs/guide/markdown/obsidian.md`: + +| Syntax | Match Result | +| ------------ | ------------------------------------------------------- | +| `[[Home]]` | Matches `docs/README.md` (via title) | +| `[[Guide]]` | Matches `docs/guide/README.md` (via title) | +| `[[./]]` | Matches `docs/guide/markdown/README.md` (relative path) | +| `[[../]]` | Matches `docs/guide/README.md` (parent directory) | +| `[[guide/]]` | Matches `docs/guide/README.md` (directory form) | + +### Examples + +**External Links:** + +**Input:** + +```md +[[https://example.com|External Link]] +``` + +**Output:** + +[[https://example.com|External Link]] + +--- + +**Internal Anchor Links:** + +**Input:** + +```md +[[QR Code]] +[[npm-to]] +[[guide/markdown/math]] +[[#Wiki Links]] +[[file-tree#configuration]] +``` + +**Output:** + +[[QR Code]] + +[[npm-to]] + +[[guide/markdown/math]] + +[[#Wiki Links]] + +[[file-tree#configuration]] + +[Obsidian Official - **Wiki Links**](https://obsidian.md/en/help/links){.readmore} + +## Embeds + +The embed syntax allows you to insert other file resources into the current page. + +### Syntax + +```md +![[filename]] +![[filename#heading]] +![[filename#heading#subheading]] +``` + +Filename search rules are the same as [Wiki Links](#filename-search-rules). + +::: info Resources starting with `/` or having no path prefix like `./` are loaded from the `public` directory +::: + +### Image Embeds + +**Syntax:** + +```md +![[image.png]] +![[image.png|300]] +![[image.png|300x200]] +``` + +Supported formats: `jpg`, `jpeg`, `png`, `gif`, `avif`, `webp`, `svg`, `bmp`, `ico`, `tiff`, `apng`, `jfif`, `pjpeg`, `pjp`, `xbm` + +**Input:** + +```md +![[images/custom-hero.jpg]] +``` + +**Output:** + +![[images/custom-hero.jpg]] + +### PDF Embeds + +> [!NOTE] +> PDF embeds require the `markdown.pdf` plugin to be enabled for proper functionality. + +**Syntax:** + +```md +![[document.pdf]] +![[document.pdf#page=1]] +![[document.pdf#page=1#height=300]] +``` + +--- + +### Audio Embeds + +> [!note] +> Audio embeds require the file path to be correct and the file to exist in the document directory. + +**Input:** + +```md +![[audio.mp3]] +``` + +**Output:** + +![[https://publish-01.obsidian.md/access/cf01a21839823cd6cbe18031acf708c0/Attachments/audio/Excerpt%20from%20Mother%20of%20All%20Demos%20(1968).ogg]] + +Supported formats: `mp3`, `flac`, `wav`, `ogg`, `opus`, `webm`, `acc` + +--- + +### Video Embeds + +> [!note] +> Video embeds require the `markdown.artPlayer` plugin to be enabled for proper functionality. + +**Input:** + +```md +![[video.mp4]] +``` + +**Output:** + +![[https://artplayer.org/assets/sample/video.mp4]] + +Supported formats: `mp4`, `webm`, `mov`, etc. + +--- + +### Content Fragment Embeds + +Content fragments under a specified heading can be embedded using `#heading`: + +**Input:** + +```md +![[my-note]] +![[my-note#heading-one]] +![[my-note#heading-one#subheading]] +``` + +[Obsidian Official - Embeds](https://obsidian.md/en/help/embeds){.readmore} +[Obsidian Official - File Formats](https://obsidian.md/en/help/file-formats){.readmore} + +## Comments + +Content wrapped in `%%` is treated as a comment and will not be rendered on the page. + +### Syntax + +**Inline Comments:** + +```md +This is an %%inline comment%% example. +``` + +**Block Comments:** + +```md +%% +This is a block comment. +It can span multiple lines. +%% +``` + +### Examples + +**Inline Comments:** + +**Input:** + +```md +This is an %%inline comment%% example. +``` + +**Output:** + +This is an %%inline comment%% example. + +--- + +**Block Comments:** + +**Input:** + +```md +Content before the comment + +%% +This is a block comment. + +It can span multiple lines. +%% + +Content after the comment +``` + +**Output:** + +Content before the comment + +%% +This is a block comment. + +It can span multiple lines. +%% + +Content after the comment + +> Related Documentation: [Obsidian Official - Comments](https://obsidian.md/en/help/syntax#%E6%B3%A8%E9%87%8B) + +## Configuration + +You can enable or disable these plugins in the theme configuration: + +```ts title=".vuepress/config.ts" +export default defineUserConfig({ + theme: plumeTheme({ + plugins: { + mdPower: { + // Obsidian compatibility plugin configuration + obsidian: { + wikiLink: true, // Wiki Links + embedLink: true, // Embeds + comment: true, // Comments + }, + pdf: true, // PDF embed functionality + artPlayer: true, // Video embed functionality + } + } + }) +}) +``` + +### Configuration Options + +:::: field-group + +::: field name="wikiLink" type="boolean" default="true" optional +Enable Wiki Links syntax +::: + +::: field name="embedLink" type="boolean" default="true" optional +Enable embed content syntax +::: + +::: field name="comment" type="boolean" default="true" optional +Enable comment syntax +::: + +:::: + +## Notes + +- These plugins provide **compatibility support** and do not fully implement all of Obsidian's functionality +- Some Obsidian-specific features (such as the graph view for internal links, bidirectional links, etc.) are outside the scope of this support +- When embedding content, the embedded page also participates in the theme's build process +- PDF embeds require the `pdf` plugin to be enabled simultaneously +- Video embeds require the `artPlayer` plugin to be enabled simultaneously diff --git a/docs/guide/markdown/obsidian.md b/docs/guide/markdown/obsidian.md new file mode 100644 index 00000000..3033a34e --- /dev/null +++ b/docs/guide/markdown/obsidian.md @@ -0,0 +1,335 @@ +--- +title: Obsidian 兼容 +icon: simple-icons:obsidian +createTime: 2026/04/17 21:56:55 +permalink: /guide/markdown/obsidian/ +--- + +## 概述 + +主题通过 `vuepress-plugin-md-power` 插件提供对 Obsidian 官方 Markdown 扩展语法的兼容性支持,使 Obsidian 用户能够以熟悉的语法撰写文档。 + +当前已支持的 Obsidian 扩展语法包括: + +- [Wiki 链接](#wiki-链接) - 页面间相互链接的语法 +- [嵌入内容](#嵌入内容) - 将其他文件内容嵌入到当前页面 +- [注释](#注释) - 添加仅在编辑时可见的注释 + +::: warning 不计划对 obsidian 社区的第三方插件提供的扩展语法进行支持 +::: + +## Wiki 链接 + +Wiki 链接是 Obsidian 中用于链接到其他笔记的语法。 + +### 语法 + +```md +[[文件名]] +[[文件名#标题]] +[[文件名#标题#子标题]] +[[文件名|别名]] +[[文件名#标题|别名]] +``` + +### 文件名搜索规则 + +当使用 Wiki 链接时,文件名会按照以下规则进行搜索匹配: + +**匹配优先级:** + +1. **页面标题** - 优先匹配页面的标题 +2. **完整路径** - 精确匹配文件路径 +3. **模糊匹配** - 匹配路径结尾的文件名 + +**路径解析规则:** + +- **相对路径**(以 `.` 开头):相对于当前文件所在目录解析 +- **绝对路径**(不以 `.` 开头):在整个文档树中搜索,优先匹配最短路径 +- **目录形式**(以 `/` 结尾):匹配该目录下的 `README.md` 或 `index.html` + +**示例:** + +假设文档结构如下: + +```txt +docs/ +├── README.md (title: "首页") +├── guide/ +│ ├── README.md (title: "指南") +│ └── markdown/ +│ └── obsidian.md +``` + +在 `docs/guide/markdown/obsidian.md` 中: + +| 语法 | 匹配结果 | +| ------------ | ------------------------------------------------ | +| `[[首页]]` | 匹配 `docs/README.md`(通过标题) | +| `[[指南]]` | 匹配 `docs/guide/README.md`(通过标题) | +| `[[./]]` | 匹配 `docs/guide/markdown/README.md`(相对路径) | +| `[[../]]` | 匹配 `docs/guide/README.md`(上级目录) | +| `[[guide/]]` | 匹配 `docs/guide/README.md`(目录形式) | + +### 示例 + +**外部链接:** + +**输入:** + +```md +[[https://example.com|外部链接]] +``` + +**输出:** + +[[https://example.com|外部链接]] + +**内部锚点链接:** + +**输入:** + +```md +[[二维码]] +[[npm-to]] +[[guide/markdown/math]] +[[#Wiki 链接]] +[[file-tree#配置]] +``` + +**输出:** + +[[二维码]] + +[[npm-to]] + +[[guide/markdown/math]] + +[[#Wiki 链接]] + +[[file-tree#配置]] + +[Obsidian 官方 - **Wiki Links**](https://obsidian.md/zh/help/links){.readmore} + +## 嵌入内容 + +嵌入语法允许你将其他文件资源插入到当前页面中。 + +### 语法 + +```md +![[文件名]] +![[文件名#标题]] +![[文件名#标题#子标题]] +``` + +文件名搜索规则与 [Wiki 链接](#文件名搜索规则) 相同。 + +::: info 以 `/` 开头或 无路径前缀如 `./` 形式的,从 `public` 目录中加载资源 +::: + +### 图片嵌入 + +**语法:** + +```md +![[image.png]] +![[image.png|300]] +![[image.png|300x200]] +``` + +支持格式:`jpg`, `jpeg`, `png`, `gif`, `avif`, `webp`, `svg`, `bmp`, `ico`, `tiff`, `apng`, `jfif`, `pjpeg`, `pjp`, `xbm` + +**输入:** + +```md +![[images/custom-hero.jpg]] +``` + +**输出:** + +![[images/custom-hero.jpg]] + +### PDF 嵌入 + +> [!NOTE] +> PDF 嵌入需要启用 `markdown.pdf` 插件才能正常工作。 + +**语法:** + +```md +![[document.pdf]] +![[document.pdf#page=1]] +![[document.pdf#page=1#height=300]] +``` + +--- + +### 音频嵌入 + +> [!note] +> 音频嵌入需要确保文件路径正确,文件存在于文档目录中。 + +**输入:** + +```md +![[audio.mp3]] +``` + +**输出:** + +![[https://publish-01.obsidian.md/access/cf01a21839823cd6cbe18031acf708c0/Attachments/audio/Excerpt%20from%20Mother%20of%20All%20Demos%20(1968).ogg]] + +支持格式:`mp3`, `flac`, `wav`, `ogg`, `opus`, `webm`, `acc` + +--- + +### 视频嵌入 + +> [!note] +> 视频嵌入需要启用 `markdown.artPlayer` 插件才能正常工作。 + +**输入:** + +```md +![[video.mp4]] +``` + +**输出:** + +![[https://artplayer.org/assets/sample/video.mp4]] + +支持格式:`mp4`, `webm`, `mov` 等 + +--- + +### 内容片段嵌入 + +通过 `#标题` 可以嵌入指定标题下的内容片段: + +**输入:** + +```md +![[我的笔记]] +![[我的笔记#标题一]] +![[我的笔记#标题一#子标题]] +``` + +[Obsidian 官方 - 插入文件](https://obsidian.md/zh/help/embeds){.readmore} +[Obsidian 官方 - 文件格式](https://obsidian.md/zh/help/file-formats){.readmore} + +## 注释 + +使用 `%%` 包裹的内容会被当作注释,不会渲染到页面中。 + +### 语法 + +**行内注释:** + +```md +这是一个 %%行内注释%% 示例。 +``` + +**块级注释:** + +```md +%% +这是一个块级注释。 +可以跨越多行。 +%% +``` + +### 示例 + +**行内注释:** + +**输入:** + +```md +这是一个 %%行内注释%% 示例。 +``` + +**输出:** + +这是一个 %%行内注释%% 示例。 + +--- + +**块级注释:** + +**输入:** + +```md +注释之前的内容 + +%% +这是一个块级注释。 + +可以跨越多行。 +%% + +注释之后的内容 +``` + +**输出:** + +注释之前的内容 + +%% +这是一个块级注释。 + +可以跨越多行。 +%% + +注释之后的内容 + +[Obsidian 官方 - 注释](https://obsidian.md/zh/help/syntax#%E6%B3%A8%E9%87%8A){.readmore} + +## 配置 + +你可以在主题配置中启用或禁用这些插件: + +```ts title=".vuepress/config.ts" +export default defineUserConfig({ + theme: plumeTheme({ + plugins: { + mdPower: { + // Obsidian 兼容插件配置 + obsidian: { + wikiLink: true, // Wiki 链接 + embedLink: true, // 嵌入内容 + comment: true, // 注释 + }, + pdf: true, // PDF 嵌入功能 + artPlayer: true, // 视频嵌入功能 + } + } + }) +}) +``` + +### 配置项 + +:::: field-group + +::: field name="wikiLink" type="boolean" default="true" optional +启用 Wiki 链接语法 +::: + +::: field name="embedLink" type="boolean" default="true" optional +启用嵌入内容语法 +::: + +::: field name="comment" type="boolean" default="true" optional +启用注释语法 +::: + +:::: + +## 注意事项 + +- 这些插件提供的是 **兼容性支持**,并非完全实现 Obsidian 的全部功能 +- 部分 Obsidian 特有的功能(如内部链接的图谱视图、双向链接等)不在支持范围内 +- 嵌入内容时,被嵌入的页面也会参与主题的构建过程 +- PDF 嵌入需要同时启用 `pdf` 插件 +- 视频嵌入需要同时启用 `artPlayer` 插件 diff --git a/docs/tsconfig.json b/docs/tsconfig.json index fb07c0c9..a5bf43aa 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -2,6 +2,7 @@ "extends": "../tsconfig.base.json", "compilerOptions": { "baseUrl": ".", + "ignoreDeprecations": "6.0", "paths": { "~/themes/*": ["./.vuepress/themes/*"], "~/components/*": ["./.vuepress/themes/components/*"], diff --git a/eslint.config.js b/eslint.config.js index fee0c4ba..dd467cb5 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -10,6 +10,8 @@ export default config({ 'skills', 'docs/snippet/code-block.snippet.md', 'docs/snippet/whitespace.snippet.md', + 'docs/en/guide/markdown/obsidian.md', + 'docs/guide/markdown/obsidian.md', ], globals: { __VUEPRESS_VERSION__: 'readonly', diff --git a/plugins/plugin-md-power/__test__/obsidianCommentPlugin.spec.ts b/plugins/plugin-md-power/__test__/obsidianCommentPlugin.spec.ts new file mode 100644 index 00000000..1c00c1e6 --- /dev/null +++ b/plugins/plugin-md-power/__test__/obsidianCommentPlugin.spec.ts @@ -0,0 +1,72 @@ +import MarkdownIt from 'markdown-it' +import { describe, expect, it } from 'vitest' +import { commentPlugin } from '../src/node/obsidian/comment.js' + +describe('commentPlugin', () => { + const md = new MarkdownIt().use(commentPlugin) + + it('should ignore inline comment', () => { + const result = md.render('This is %%inline comment%% text.') + expect(result).not.toContain('inline comment') + expect(result).toContain('This is text.') + }) + + it('should ignore block comment', () => { + const result = md.render(`%% block comment %% +more text`) + expect(result).not.toContain('block comment') + expect(result).toContain('more text') + }) + + it('should handle multi-line block comment', () => { + const result = md.render(`%% +This is a block comment +spanning multiple lines +%% + +This is after.`) + expect(result).not.toContain('block comment') + expect(result).not.toContain('spanning multiple lines') + expect(result).toContain('This is after.') + }) + + it('should handle comment at start of line', () => { + const result = md.render('%%comment%% start') + expect(result).toContain('start') + expect(result).not.toContain('comment') + }) + + it('should handle empty comment', () => { + const result = md.render('%%%%') + expect(result).toBeDefined() + }) + + it('should not treat single % as comment', () => { + const result = md.render('50% off') + expect(result).toContain('50%') + expect(result).not.toContain('%%') + }) + + it('should handle nested content after comment', () => { + const result = md.render(`%% +block comment +%% + +## Heading + +paragraph`) + expect(result).toContain(' { + const result = md.render('%%incomplete') + expect(result).toContain('%%incomplete') + }) + + it('should not parse single opening percent', () => { + const result = md.render('% test') + expect(result).toContain('% test') + }) +}) diff --git a/plugins/plugin-md-power/__test__/obsidianEmbedLinkComplex.spec.ts b/plugins/plugin-md-power/__test__/obsidianEmbedLinkComplex.spec.ts new file mode 100644 index 00000000..54e50377 --- /dev/null +++ b/plugins/plugin-md-power/__test__/obsidianEmbedLinkComplex.spec.ts @@ -0,0 +1,446 @@ +import type { App } from 'vuepress' +import type { MarkdownEnv } from 'vuepress/markdown' +import MarkdownIt from 'markdown-it' +import { describe, expect, it, vi } from 'vitest' +import { embedLinkPlugin } from '../src/node/obsidian/embedLink.js' + +function createMockApp(pages: App['pages'] = []): App { + return { + pages, + } as App +} + +function createMockEnv(filePathRelative = 'test.md'): MarkdownEnv { + return { + filePathRelative, + base: '/', + links: [], + importedFiles: [], + } +} + +function createMarkdownWithMockRules() { + return MarkdownIt({ html: true }).use((md) => { + md.block.ruler.before('code', 'import_code', () => false) + md.renderer.rules.import_code = () => '' + }) +} + +vi.mock('gray-matter', () => ({ + default: vi.fn(content => ({ + content: content.replace(/^---[\s\S]*?---\n?/, ''), + data: {}, + })), +})) + +describe('embedLinkPlugin - internal markdown embed', () => { + it('should embed entire markdown file when no heading specified', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Introduction + +This is the guide content. + +## Getting Started + +Step 1, Step 2, Step 3. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide]]', createMockEnv('test.md')) + expect(result).toContain(' { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Introduction + +This is intro. + +## Getting Started + +Steps for getting started. + +## Advanced + +Advanced content. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide#Getting Started]]', createMockEnv('test.md')) + expect(result).toContain('Steps for getting started') + expect(result).not.toContain('Advanced content') + }) + + it('should embed nested heading content', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Introduction + +## Installation + +### Prerequisites + +Software requirements. + +### Download + +Download links. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide#Installation#Download]]', createMockEnv('test.md')) + expect(result).toContain('Download links') + expect(result).not.toContain('Prerequisites') + }) + + it('should handle heading with id syntax', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Introduction {#intro} + +Intro content. + +## Getting Started {#getting-started} + +Start content. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide#Getting Started]]', createMockEnv('test.md')) + expect(result).toContain('Start content') + }) + + it('should preserve container blocks within embedded content', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Introduction + +::: warning +This is a warning block. +::: + +Some text. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide]]', createMockEnv('test.md')) + expect(result).toContain('::: warning') + expect(result).toContain('This is a warning block') + }) + + it('should return empty string when heading not found', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Introduction + +Content. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide#NonExistent]]', createMockEnv('test.md')) + expect(result.trim()).toBe('') + }) + + it('should add importedFiles to env when embedding', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `# Guide\n\nContent.`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const env = createMockEnv('test.md') + md.render('![[Guide]]', env) + expect(env.importedFiles).toContain('docs/guide.md') + }) + + it('should handle heading with special characters', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Guide (中文) {#zh} + +Chinese content. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide#Guide (中文)]]', createMockEnv('test.md')) + expect(result).toContain('Chinese content') + }) + + it('should handle heading with class syntax', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Introduction {.intro .basic} + +Intro content. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide#Introduction]]', createMockEnv('test.md')) + expect(result).toContain('Intro content') + }) + + it('should handle multiple consecutive container blocks', async () => { + const mockPage = { + path: '/docs/guide/', + filePathRelative: 'docs/guide.md', + title: 'Guide', + content: `--- +title: Guide +--- + +# Section + +::: info +Info block. +::: + +::: warning +Warning block. +::: + +More text. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Guide#Section]]', createMockEnv('test.md')) + expect(result).toContain('Info block') + expect(result).toContain('Warning block') + expect(result).toContain('More text') + }) + + it('should handle frontmatter in embedded file', async () => { + const mockPage = { + path: '/docs/page/', + filePathRelative: 'docs/page.md', + title: 'Page', + content: `--- +title: Actual Title +author: Test Author +--- + +# Actual Title + +Page content. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Page]]', createMockEnv('test.md')) + expect(result).toContain('Page content') + expect(result).not.toContain('author') + }) +}) + +describe('extractContentByHeadings', () => { + it('should return full content when no headings specified', async () => { + const mockPage = { + path: '/docs/page/', + filePathRelative: 'docs/page.md', + title: 'Page', + content: `# Title\n\nContent here.`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Page]]', createMockEnv('test.md')) + expect(result).toContain('Content here') + }) + + it('should restart heading search when encountering same text at lower level', async () => { + const mockPage = { + path: '/docs/page/', + filePathRelative: 'docs/page.md', + title: 'Page', + content: `--- +--- + +# Section + +## Subsection + +Subsection content. + +# Section + +## Another + +Another content. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Page#Section#Another]]', createMockEnv('test.md')) + expect(result).toContain('Another content') + expect(result).not.toContain('Subsection content') + }) + + it('should reset search when encountering different heading at lower level', async () => { + const mockPage = { + path: '/docs/page/', + filePathRelative: 'docs/page.md', + title: 'Page', + content: `--- +--- + +# Section + +## Subsection + +Subsection content. + +# Other + +## Content + +Other content. +`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + // Search for "Section#Content" - after matching "Section" and failing to find "Content" + // under "Subsection" (which is level 2 > 1), we encounter "Other" at level 1 + // heading.level (1) <= currentLevel (2), and "Other" !== "Section" + // So we enter the else branch at lines 268-270: headingPointer = 0, currentLevel = 0 + const result = md.render('![[Page#Section#Content]]', createMockEnv('test.md')) + expect(result.trim()).toBe('') + }) + + it('should extract content between sibling headings', async () => { + const mockPage = { + path: '/docs/page/', + filePathRelative: 'docs/page.md', + title: 'Page', + content: `# Title\n\nIntro.\n\n## Section1\n\nSection 1 content.\n\n## Section2\n\nSection 2 content.\n`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Page#Section1]]', createMockEnv('test.md')) + expect(result).toContain('Section 1 content') + expect(result).not.toContain('Section 2 content') + }) + + it('should handle deep nested headings', async () => { + const mockPage = { + path: '/docs/page/', + filePathRelative: 'docs/page.md', + title: 'Page', + content: `# H1\n\n## H2a\n\n### H3a\n\nH3a content.\n\n### H3b\n\nH3b content.\n\n## H2b\n\nH2b content.\n`, + markdownEnv: { base: '/' }, + } + + const mockApp = createMockApp([mockPage] as unknown as App['pages']) + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + const result = md.render('![[Page#H2a#H3b]]', createMockEnv('test.md')) + expect(result).toContain('H3b content') + expect(result).not.toContain('H3a content') + }) +}) diff --git a/plugins/plugin-md-power/__test__/obsidianEmbedLinkPlugin.spec.ts b/plugins/plugin-md-power/__test__/obsidianEmbedLinkPlugin.spec.ts new file mode 100644 index 00000000..1dd7a227 --- /dev/null +++ b/plugins/plugin-md-power/__test__/obsidianEmbedLinkPlugin.spec.ts @@ -0,0 +1,124 @@ +import type { App } from 'vuepress' +import type { MarkdownEnv } from 'vuepress/markdown' +import MarkdownIt from 'markdown-it' +import { describe, expect, it } from 'vitest' +import { embedLinkPlugin } from '../src/node/obsidian/embedLink.js' + +function createMockApp(pages: App['pages'] = []): App { + return { + pages, + } as App +} + +function createMockEnv(filePathRelative = 'test.md'): MarkdownEnv { + return { + filePathRelative, + base: '/', + links: [], + importedFiles: [], + } +} + +function createMarkdownWithMockRules() { + return MarkdownIt({ html: true }).use((md) => { + md.block.ruler.before('code', 'import_code', () => false) + md.renderer.rules.import_code = () => '' + }) +} + +describe('embedLinkPlugin', () => { + const mockApp = createMockApp() + const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) + + it('should render image embed', () => { + const result = md.render('![[image.png]]') + expect(result).toContain(' { + const result = md.render('![[image.png|300]]') + expect(result).toContain(' { + const result = md.render('![[image.png|300x200]]') + expect(result).toContain(' { + const result = md.render('![[audio.mp3]]') + expect(result).toContain(' { + const result = md.render('![[video.mp4]]') + expect(result).toContain(' { + const result = md.render('![[document.pdf]]') + expect(result).toContain(' { + const result = md.render('![[document.pdf#page=1]]') + expect(result).toContain('page="1"') + }) + + it('should render external http link as anchor', () => { + const result = md.render('![[https://example.com/file]]') + expect(result).toContain(' { + const env = createMockEnv('docs/page.md') + const result = md.render('![[./image.png]]', env) + expect(result).toContain(' { + const result = md.render('![[/images/cover.jpg]]') + expect(result).toContain(' { + const result = md.render('![[file.unknown]]') + expect(result).toContain(' { + const result = md.render('![[image.png]') + expect(result).toContain('![[image.png]') + }) + + it('should render markdown file embed as link when page not found', () => { + const result = md.render('![[nonexistent.md]]') + expect(result).toContain(' { + const result = md.render('![[nonexistent.md#heading1#heading2]]') + expect(result).toContain(' { + const result = md.render('![[]]') + expect(result).toContain('![[]]') + }) +}) diff --git a/plugins/plugin-md-power/__test__/obsidianPlugin.spec.ts b/plugins/plugin-md-power/__test__/obsidianPlugin.spec.ts new file mode 100644 index 00000000..2b754e0a --- /dev/null +++ b/plugins/plugin-md-power/__test__/obsidianPlugin.spec.ts @@ -0,0 +1,75 @@ +import type { App } from 'vuepress' +import MarkdownIt from 'markdown-it' +import { describe, expect, it } from 'vitest' +import { obsidianPlugin } from '../src/node/obsidian/index.js' + +function createMockApp(pages: App['pages'] = []): App { + return { + pages, + } as App +} + +function createMarkdownWithMockRules() { + return MarkdownIt({ html: true }).use((md) => { + md.block.ruler.before('code', 'import_code', () => false) + md.renderer.rules.import_code = () => '' + }) +} + +describe('obsidianPlugin', () => { + it('should enable all plugins by default', () => { + const md = createMarkdownWithMockRules() + const mockApp = createMockApp([{ path: '/', filePathRelative: 'README.md', title: 'Home' }] as unknown as App['pages']) + obsidianPlugin(md, mockApp, {}) + + const embedResult = md.render('![[image.png]]') + expect(embedResult).toContain(' { + const md = createMarkdownWithMockRules() + const mockApp = createMockApp() + obsidianPlugin(md, mockApp, { obsidian: { wikiLink: false } }) + + const wikiResult = md.render('[[Page]]') + expect(wikiResult).not.toContain(' { + const md = createMarkdownWithMockRules() + const mockApp = createMockApp() + obsidianPlugin(md, mockApp, { obsidian: false }) + + const result = md.render('![[image.png]]') + expect(result).not.toContain(' { + const md = createMarkdownWithMockRules() + const mockApp = createMockApp() + obsidianPlugin(md, mockApp, { obsidian: { embedLink: false } }) + + const result = md.render('![[image.png]]') + expect(result).not.toContain(' { + const md = createMarkdownWithMockRules() + const mockApp = createMockApp() + obsidianPlugin(md, mockApp, { obsidian: { comment: false } }) + + const embedResult = md.render('![[image.png]]') + expect(embedResult).toContain(' { + const mockApp = createMockApp([ + { + path: '/docs/getting-started/', + filePathRelative: 'docs/getting-started/README.md', + title: 'Getting Started', + }, + { + path: '/docs/guide/intro/', + filePathRelative: 'docs/guide/intro.md', + title: 'Introduction', + }, + { + path: '/api/utils/', + filePathRelative: 'api/utils.md', + title: 'Utils', + }, + ] as App['pages']) + + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin, mockApp) + + it('should render internal wiki link to existing page', () => { + const env = createMockEnv('docs/page.md') + const result = md.render('[[Getting Started]]', env) + expect(result).toContain(' { + const env = createMockEnv('docs/page.md') + const result = md.render('[[Getting Started|Quick Start]]', env) + expect(result).toContain(' { + const env = createMockEnv('docs/page.md') + const result = md.render('[[Introduction#Installation]]', env) + expect(result).toContain(' { + const env = createMockEnv('docs/page.md') + const result = md.render('[[Introduction#Installation|Install Guide]]', env) + expect(result).toContain(' { + const result = md.render('[[https://example.com]]') + expect(result).toContain(' { + const result = md.render('[[https://example.com|Example Site]]') + expect(result).toContain('>Example Site<') + expect(result).toContain('href="https://example.com"') + }) + + it('should render external link with heading and alias', () => { + const result = md.render('[[https://example.com/page#section|Go to Section]]') + expect(result).toContain('>Go to Section<') + expect(result).toContain('href="https://example.com/page#section"') + }) + + it('should render external link with heading but no alias', () => { + const result = md.render('[[https://example.com/page#section]]') + expect(result).toContain('href="https://example.com/page#section"') + expect(result).toContain('https://example.com/page > section') + }) + + it('should render internal hash link for empty filename', () => { + const env = createMockEnv('docs/page.md') + const result = md.render('[[#anchor]]', env) + expect(result).toContain(' { + const env = createMockEnv('docs/page.md') + const result = md.render('[[#anchor|Back to Top]]', env) + expect(result).toContain('>Back to Top<') + expect(result).toContain('href="#anchor"') + }) + + it('should render internal hash link with titles but no alias', () => { + const env = createMockEnv('docs/page.md') + const result = md.render('[[#anchor1#anchor2]]', env) + expect(result).toContain('href="#anchor2"') + expect(result).toContain('> anchor1 > anchor2') + }) + + it('should render relative path wiki link as anchor when not found', () => { + const env = createMockEnv('docs/page.md') + const result = md.render('[[../api/other.md]]', env) + expect(result).toContain(' { + const env = createMockEnv('docs/page.md') + const result = md.render('[[../api/other.md|View API]]', env) + expect(result).toContain('>View API<') + expect(result).toContain('href="/api/other.md"') + }) + + it('should render relative path wiki link with heading but no alias', () => { + const env = createMockEnv('docs/page.md') + const result = md.render('[[../api/other.md#section]]', env) + expect(result).toContain('href="/api/other.md#section"') + expect(result).toContain('../api/other.md > section') + }) + + it('should add to links array in env', () => { + const env = createMockEnv('docs/page.md') + md.render('[[Utils]]', env) + expect(env.links).toBeDefined() + expect(env.links!.length).toBeGreaterThan(0) + }) + + it('should not parse wiki link without closing bracket', () => { + const result = md.render('[[Page') + expect(result).toContain('[[Page') + }) + + it('should not parse empty wiki link', () => { + const result = md.render('[[]]') + expect(result).toContain('[[]]') + }) +}) + +describe('findFirstPage', () => { + const mockApp = createMockApp([ + { path: '/', filePathRelative: 'README.md', title: 'Home' }, + { path: '/docs/guide/', filePathRelative: 'docs/guide/README.md', title: 'Guide' }, + { path: '/docs/api/', filePathRelative: 'docs/api.md', title: 'API' }, + { path: '/docs/config/', filePathRelative: 'docs/config/index.md', title: 'Config' }, + ] as App['pages']) + + it('should find page by exact title', () => { + const result = findFirstPage(mockApp, 'Guide', 'any/path.md') + expect(result?.title).toBe('Guide') + }) + + it('should find page by exact file path', () => { + const result = findFirstPage(mockApp, 'docs/api.md', 'any/path.md') + expect(result?.title).toBe('API') + }) + + it('should find page by exact title with path-like name', () => { + const result = findFirstPage(mockApp, 'docs/config/index', 'any/path.md') + expect(result?.title).toBe('Config') + }) + + it('should find folder index by trailing slash', () => { + const result = findFirstPage(mockApp, 'docs/guide/', 'any/path.md') + expect(result?.title).toBe('Guide') + }) + + it('should find page without extension', () => { + const result = findFirstPage(mockApp, 'docs/api', 'any/path.md') + expect(result?.title).toBe('API') + }) + + it('should find page by fuzzy match with folder path ending in slash', () => { + const app = createMockApp([ + { path: '/docs/features/', filePathRelative: 'docs/features/README.md', title: 'Features' }, + ] as App['pages']) + const result = findFirstPage(app, 'docs/features/', 'any/path.md') + expect(result?.title).toBe('Features') + }) + + it('should find page by fuzzy match ending with index.html', () => { + const app = createMockApp([ + { path: '/docs/guide/', filePathRelative: 'docs/guide/index.html', title: 'Guide' }, + ] as App['pages']) + const result = findFirstPage(app, 'docs/guide/', 'any/path.md') + expect(result?.title).toBe('Guide') + }) + + it('should return undefined when page not found', () => { + const result = findFirstPage(mockApp, 'nonexistent', 'any/path.md') + expect(result).toBeUndefined() + }) + + it('should find page by data.title fallback', () => { + const app = createMockApp([ + { path: '/test/', filePathRelative: 'test.md', data: { title: 'Data Title' } }, + ] as unknown as App['pages']) + const result = findFirstPage(app, 'Data Title', 'any/path.md') + expect(result?.path).toBe('/test/') + }) +}) diff --git a/plugins/plugin-md-power/package.json b/plugins/plugin-md-power/package.json index 2bfdad40..6ebe4e03 100644 --- a/plugins/plugin-md-power/package.json +++ b/plugins/plugin-md-power/package.json @@ -97,6 +97,7 @@ "@vuepress/helper": "catalog:vuepress", "@vueuse/core": "catalog:prod", "chokidar": "catalog:prod", + "gray-matter": "catalog:prod", "image-size": "catalog:prod", "local-pkg": "catalog:prod", "lru-cache": "catalog:prod", diff --git a/plugins/plugin-md-power/src/node/embed/video/artPlayer.ts b/plugins/plugin-md-power/src/node/embed/video/artPlayer.ts index 91389d13..03181b06 100644 --- a/plugins/plugin-md-power/src/node/embed/video/artPlayer.ts +++ b/plugins/plugin-md-power/src/node/embed/video/artPlayer.ts @@ -18,7 +18,7 @@ const installed = { mpegtsjs: isPackageExists('mpegts.js'), } -const SUPPORTED_VIDEO_TYPES = ['mp4', 'mp3', 'webm', 'ogg', 'mpd', 'dash', 'm3u8', 'hls', 'ts', 'flv'] +export const SUPPORTED_VIDEO_TYPES = ['mp4', 'mp3', 'webm', 'ogg', 'mpd', 'dash', 'm3u8', 'hls', 'ts', 'flv', 'mkv', 'mov', 'ogv'] export const artPlayerPlugin: PluginWithOptions = (md) => { createEmbedRuleBlock(md, { @@ -51,7 +51,7 @@ export const artPlayerPlugin: PluginWithOptions = (md) => { }) } -function checkSupportType(type?: string) { +export function checkSupportType(type?: string) { if (!type) return diff --git a/plugins/plugin-md-power/src/node/obsidian/README.md b/plugins/plugin-md-power/src/node/obsidian/README.md new file mode 100644 index 00000000..8fa0f6f2 --- /dev/null +++ b/plugins/plugin-md-power/src/node/obsidian/README.md @@ -0,0 +1,9 @@ +# 说明 + +兼容部分 obsidian 的 markdown 扩展语法。 + +**仅计划支持 obsidian 的官方扩展语法**。 + +- [x] wikiLink: `[[文件名]]` `[[文件名#标题]]` `[[文件名#标题#标题]]` `[[文件名#标题|别名]]` +- [x] embedLink: `![[文件名]]` `![[文件名#标题]]` `![[文件名#标题#标题]]` +- [x] comment: `%%注释%%` diff --git a/plugins/plugin-md-power/src/node/obsidian/comment.ts b/plugins/plugin-md-power/src/node/obsidian/comment.ts new file mode 100644 index 00000000..ab2b0944 --- /dev/null +++ b/plugins/plugin-md-power/src/node/obsidian/comment.ts @@ -0,0 +1,117 @@ +/** + * comment 是 obsidian 提供的注释语法。使用 `%%` 包裹文本来添加注释, 注释仅在编辑模式中可见。 + * 在此兼容实现中,被 `%%` 包裹的内容,将会直接被忽略,不渲染到页面中。 + * + * ```markdown + * 这是一个 %%行内%% 注释。 + * + * %% + * 这是一个块级注释 + * 可以跨越多行 + * %% + * ``` + * + * @see - https://obsidian.md/zh/help/syntax#%E6%B3%A8%E9%87%8A + */ + +import type { Markdown } from 'vuepress/markdown' + +export function commentPlugin(md: Markdown): void { + md.inline.ruler.before( + 'html_inline', + 'obsidian_inline_comment', + (state, silent) => { + let found = false + const max = state.posMax + const start = state.pos + if ( + state.src.charCodeAt(start) !== 0x25 // % + || state.src.charCodeAt(start + 1) !== 0x25 // % + ) { + return false + } + /* istanbul ignore if -- @preserve */ + if (silent) + return false + + // - %%%% + if (max - start < 5) + return false + + state.pos = start + 2 + + // 查找 %% + while (state.pos < max) { + if (state.src.charCodeAt(state.pos) === 0x25 + && state.src.charCodeAt(state.pos + 1) === 0x25) { + found = true + break + } + + state.md.inline.skipToken(state) + } + + if (!found || start + 2 === state.pos) { + state.pos = start + return false + } + // found! + state.posMax = state.pos + state.pos = start + 2 + + const token = state.push('obsidian_inline_comment', '', 0) + token.content = state.src.slice(start + 2, state.pos) + token.markup = '%%' + token.map = [start, state.pos + 2] + + state.pos = state.posMax + 2 + state.posMax = max + return true + }, + ) + + md.block.ruler.before( + 'html_block', + 'obsidian_block_comment', + (state, startLine, endLine, silent) => { + const start = state.bMarks[startLine] + state.tShift[startLine] + // check starts with %% + if (state.src.charCodeAt(start) !== 0x25 // % + || state.src.charCodeAt(start + 1) !== 0x25 // % + ) { + return false + } + /* istanbul ignore if -- @preserve */ + if (silent) + return true + + let line = startLine + let content = '' + let found = false + // 查找 %% + while (++line < endLine) { + if (state.src.slice(state.bMarks[line], state.eMarks[line]).trim() === '%%') { + found = true + break + } + + content += `${state.src.slice(state.bMarks[line], state.eMarks[line])}\n` + } + + if (!found) + return false + + const token = state.push('obsidian_block_comment', '', 0) + token.content = content + token.markup = '%%' + token.map = [startLine, line + 1] + + state.line = line + 1 + + return true + }, + ) + + md.renderer.rules.obsidian_inline_comment = () => '' + md.renderer.rules.obsidian_block_comment = () => '' +} diff --git a/plugins/plugin-md-power/src/node/obsidian/embedLink.ts b/plugins/plugin-md-power/src/node/obsidian/embedLink.ts new file mode 100644 index 00000000..ac551218 --- /dev/null +++ b/plugins/plugin-md-power/src/node/obsidian/embedLink.ts @@ -0,0 +1,301 @@ +/** + * Embed Link 是属于 obsidian 官方扩展的 markdown 语法 + * + * - ![[文件名]] ![[文件名#标题]] ![[文件名#标题#标题]] + * - ![[资源链接]]: + * - ![[图片]] ![[图片|width]] ![[图片|widthxheight]] + * - ![[pdf]] ![[pdf#page=1#height=300]] + * - ![[音频]] + * - ![[视频]] + * + * @see - https://obsidian.md/zh/help/embeds + * @see - https://obsidian.md/zh/help/file-formats + * + * 插件提供的是对该语法的兼容性支持,并非实现其完全的功能。 + */ + +import type { RuleBlock } from 'markdown-it/lib/parser_block.mjs' +import type { App } from 'vuepress' +import type { Markdown, MarkdownEnv } from 'vuepress/markdown' +import grayMatter from 'gray-matter' +import Token from 'markdown-it/lib/token.mjs' +import { ensureLeadingSlash, isLinkHttp } from 'vuepress/shared' +import { hash, path } from 'vuepress/utils' +import { checkSupportType, SUPPORTED_VIDEO_TYPES } from '../embed/video/artPlayer.js' +import { cleanMarkdownEnv } from '../utils/cleanMarkdownEnv.js' +import { parseRect } from '../utils/parseRect.js' +import { slugify } from '../utils/slugify.js' +import { findFirstPage } from './wikiLink.js' + +interface EmbedLinkMeta { + filename: string + hashes: string[] + settings: string +} + +const EXTENSION_IMAGES: string[] = ['.jpg', '.jpeg', '.png', '.gif', '.avif', '.webp', '.svg', '.bmp', '.ico', '.tiff', '.apng', '.jfif', '.pjpeg', '.pjp', '.xbm'] +const EXTENSION_AUDIOS: string[] = ['.mp3', '.flac', '.wav', '.ogg', '.opus', '.webm', '.acc'] +const EXTENSION_VIDEOS: string[] = SUPPORTED_VIDEO_TYPES.map(ext => `.${ext}`) + +const embedLinkDef: RuleBlock = (state, startLine, endLine, silent) => { + const start = state.bMarks[startLine] + state.tShift[startLine] + const max = state.eMarks[startLine] + + // - ![[]] + if (max - start < 6) + return false + + // 是否以 `![[` 开头 + if ( + state.src.charCodeAt(start) !== 0x21 // \! + || state.src.charCodeAt(start + 1) !== 0x5B // [ + || state.src.charCodeAt(start + 2) !== 0x5B // [ + ) { + return false + } + + const line = state.src.slice(start, max).trim() + // 是否以 `]]` 结尾 + if ( + line.charCodeAt(line.length - 1) !== 0x5D // ] + || line.charCodeAt(line.length - 2) !== 0x5D // ] + ) { + return false + } + + /* istanbul ignore if -- @preserve */ + if (silent) + return true + + // ![[xxxx]] + // ^^^^ <- content + const content = line.slice(3, -2).trim() + + const [file, settings] = content.split('|').map(x => x.trim()) + const [filename, ...hashes] = file.trim().split('#').map(x => x.trim()) + const extname = path.extname(filename).toLowerCase() + + // 渲染为 图片 + if (EXTENSION_IMAGES.includes(extname)) { + const token = state.push('image', 'img', 1) + token.content = filename + token.attrSet('src', resolveFilenameToAssetPath(filename)) + token.attrSet('alt', filename) + if (settings) { + const [width, height] = settings.split('x').map(x => x.trim()) + const styles: string[] = [] + if (width) + styles.push(`width: ${parseRect(width)}`) + if (height) + styles.push(`height: ${parseRect(height)}`) + token.attrSet('style', styles.join(';')) + } + const text = new Token('text', '', 0) + text.content = filename + token.children = [text] + } + // 渲染为音频 + else if (EXTENSION_AUDIOS.includes(extname)) { + const token = state.push('audio_open', 'audio', 1) + token.content = filename + token.attrSet('controls', 'true') + token.attrSet('preload', 'metadata') + token.attrSet('aria-label', filename) + const sourceToken = state.push('source_open', 'source', 1) + sourceToken.attrSet('src', resolveFilenameToAssetPath(filename)) + state.push('audio_close', 'audio', -1) + } + // 渲染为视频,使用 ArtPlayer + else if (EXTENSION_VIDEOS.includes(extname)) { + const token = state.push('video_artPlayer_open', 'ArtPlayer', 1) + const type = extname.slice(1) + checkSupportType(type) + token.attrSet('src', resolveFilenameToAssetPath(filename)) + token.attrSet('type', type) + token.attrSet('width', '100%') + token.attrSet(':fullscreen', 'true') + token.attrSet(':flip', 'true') + token.attrSet(':playback-rate', 'true') + token.attrSet(':aspect-ratio', 'true') + token.attrSet(':setting', 'true') + token.attrSet(':pip', 'true') + token.attrSet(':volume', '0.75') + token.content = filename + state.push('video_artPlayer_close', 'ArtPlayer', -1) + } + // 渲染为 pdf + else if (extname === '.pdf') { + const token = state.push('pdf_open', 'PDFViewer', 1) + token.attrSet('src', resolveFilenameToAssetPath(filename)) + token.attrSet('width', '100%') + for (const hash of hashes) { + const [key, value] = hash.split('=').map(x => x.trim()) + token.attrSet(key, value) + } + token.content = filename + state.push('pdf_close', 'PDFViewer', -1) + } + // 非受支持的外部资源,渲染为链接 + else if (isLinkHttp(filename) || (extname && extname !== '.md')) { + const token = state.push('link_open', 'a', 1) + token.attrSet('href', filename) + token.attrSet('target', '_blank') + token.attrSet('rel', 'noopener noreferrer') + token.content = filename + const content = state.push('text', '', 0) + content.content = filename + state.push('link_close', 'a', -1) + } + // 剩余情况,如内部的 markdown 文件 + // 在 obsidian_embed_link renderer rule 中处理 + else { + const token = state.push('obsidian_embed_link', '', 0) + token.markup = '![[]]' + token.meta = { + filename: filename.trim(), + hashes: hashes.map(hash => hash.trim()), + settings: settings?.trim(), + } as EmbedLinkMeta + token.content = content + } + + state.line = startLine + 1 + return true +} + +export function embedLinkPlugin(md: Markdown, app: App): void { + md.block.ruler.before( + 'import_code', + 'obsidian_embed_link', + embedLinkDef, + { alt: ['paragraph', 'reference', 'blockquote', 'list'] }, + ) + md.renderer.rules.obsidian_embed_link = (tokens, idx, _, env: MarkdownEnv) => { + const token = tokens[idx] + const { filename, hashes, settings } = token.meta as EmbedLinkMeta + const internalPage = findFirstPage(app, filename, env.filePathRelative ?? '') + // 解析为内部 markdown 资源,提取 markdown 片段并插入到当前页面 + if (internalPage) { + const { content: rawContent } = grayMatter(internalPage.content) + const content = extractContentByHeadings(rawContent, hashes) + internalPage.filePathRelative && (env.importedFiles ??= []).push(internalPage.filePathRelative) + return md.render(content, cleanMarkdownEnv(internalPage.markdownEnv)) + } + + // 其他资源,解析为链接 + const url = ensureLeadingSlash(filename[0] === '.' ? path.join(path.dirname(env.filePathRelative ?? ''), filename) : filename) + const anchor = hashes.at(-1) + const slug = anchor ? `#${slugify(anchor)}` : '' + const text = settings || (filename + (hashes.length ? ` > ${hashes.join(' > ')}` : '')) + return `${ + md.utils.escapeHtml(text) + }` + } +} + +function resolveFilenameToAssetPath(filename: string): string { + if (isLinkHttp(filename) || filename[0] === '.' || filename[0] === '/') { + return filename + } + return `/${filename}` +} + +interface ParsedHeading { + lineIndex: number + level: number + text: string +} + +// 支持: ## 标题 {#id .class key=value} 或 ## 标题 {#id} +const HEADING_HASH_REG = /^#+/ +const HEADING_ATTRS_REG = /(?:\{[^}]*\})?$/ + +function extractContentByHeadings(content: string, headings: string[]): string { + if (!headings.length) + return content + + const containers: Record = {} + + content = content.replaceAll(/(?:{3,})[\s\S]*?\k/g, (matched) => { + const key = hash(matched) + containers[key] = matched + return `` + }) + const lines = content.split(/\r?\n/) + + const allHeadings: ParsedHeading[] = [] + + for (let i = 0; i < lines.length; i++) { + let text = lines[i].trimEnd() + let level = 0 + text = text.replace(HEADING_HASH_REG, (matched) => { + level = matched.length + return '' + }) + if (level) { + text = text.replace(HEADING_ATTRS_REG, '').trim() + allHeadings.push({ lineIndex: i, level, text }) + } + } + + // 查找匹配的标题序列(逻辑同上) + let targetHeadingIndex = -1 + let currentLevel = 0 + let headingPointer = 0 + + for (let i = 0; i < allHeadings.length; i++) { + const heading = allHeadings[i] + + if (headingPointer === 0) { + if (heading.text === headings[0]) { + headingPointer++ + currentLevel = heading.level + if (headingPointer === headings.length) { + targetHeadingIndex = i + break + } + } + } + else { + if (heading.level > currentLevel && heading.text === headings[headingPointer]) { + headingPointer++ + currentLevel = heading.level + if (headingPointer === headings.length) { + targetHeadingIndex = i + break + } + } + else if (heading.level <= currentLevel) { + if (heading.text === headings[0]) { + headingPointer = 1 + currentLevel = heading.level + } + else { + headingPointer = 0 + currentLevel = 0 + } + } + } + } + + if (targetHeadingIndex === -1) { + console.warn(`No heading found for ${headings.join(' > ')}`) + return '' + } + + const targetHeading = allHeadings[targetHeadingIndex] + const startLine = targetHeading.lineIndex + 1 + const targetLevel = targetHeading.level + + let endLine = lines.length + for (let i = targetHeadingIndex + 1; i < allHeadings.length; i++) { + if (allHeadings[i].level <= targetLevel) { + endLine = allHeadings[i].lineIndex + break + } + } + + const result = lines.slice(startLine, endLine).join('\n').trim() + + return result.replaceAll(//g, (_, key) => containers[key] ?? '') +} diff --git a/plugins/plugin-md-power/src/node/obsidian/index.ts b/plugins/plugin-md-power/src/node/obsidian/index.ts new file mode 100644 index 00000000..9bc3e42a --- /dev/null +++ b/plugins/plugin-md-power/src/node/obsidian/index.ts @@ -0,0 +1,27 @@ +import type { App } from 'vuepress' +import type { Markdown } from 'vuepress/markdown' +import type { MarkdownPowerPluginOptions } from '../../shared/index.js' +import { isPlainObject } from 'vuepress/shared' +import { commentPlugin } from './comment.js' +import { embedLinkPlugin } from './embedLink.js' +import { wikiLinkPlugin } from './wikiLink.js' + +export function obsidianPlugin( + md: Markdown, + app: App, + options: MarkdownPowerPluginOptions, +) { + if (options.obsidian === false) + return + + const obsidian = isPlainObject(options.obsidian) ? options.obsidian : {} + + if (obsidian.wikiLink !== false) + wikiLinkPlugin(md, app) + + if (obsidian.embedLink !== false) + embedLinkPlugin(md, app) + + if (obsidian.comment !== false) + commentPlugin(md) +} diff --git a/plugins/plugin-md-power/src/node/obsidian/wikiLink.ts b/plugins/plugin-md-power/src/node/obsidian/wikiLink.ts new file mode 100644 index 00000000..f6ea7ef4 --- /dev/null +++ b/plugins/plugin-md-power/src/node/obsidian/wikiLink.ts @@ -0,0 +1,155 @@ +/** + * Wiki Link 是属于 obsidian 官方扩展的 markdown 语法 + * + * [[文件名]] [[文件名#标题]] [[文件名#标题#标题]] [[文件名#标题|别名]] + * + * @see - https://obsidian.md/zh/help/links + * + * 插件提供的是对该语法的兼容性支持,并非实现其完全的功能。 + */ + +import type { RuleInline } from 'markdown-it/lib/parser_inline.mjs' +import type { App } from 'vuepress' +import type { Markdown, MarkdownEnv } from 'vuepress/markdown' +import { sortBy } from '@pengzhanbo/utils' +import { ensureLeadingSlash, isLinkHttp, removeLeadingSlash } from 'vuepress/shared' +import { path } from 'vuepress/utils' +import { resolvePaths } from '../enhance/links.js' +import { slugify } from '../utils/slugify.js' + +interface WikiLinkMeta { + filename: string + alias: string + titles: string[] +} + +const wikiLinkDef: RuleInline = (state, silent) => { + let found = false + const max = state.posMax + const start = state.pos + + if ( + state.src.charCodeAt(start) !== 0x5B + || state.src.charCodeAt(start + 1) !== 0x5B + ) { + return false + } + + /* istanbul ignore if -- @preserve */ + if (silent) + return false + + // - [[]] + if (max - start < 5) + return false + + state.pos = start + 2 + + // 查找 ]] + while (state.pos < max) { + if (state.src.charCodeAt(state.pos) === 0x5D + && state.src.charCodeAt(state.pos + 1) === 0x5D) { + found = true + break + } + + state.md.inline.skipToken(state) + } + + if (!found || start + 2 === state.pos) { + state.pos = start + return false + } + // [[xxxx]] + // ^^^^ <- content + const content = state.src.slice(start + 2, state.pos).trim() + // found! + state.posMax = state.pos + state.pos = start + 2 + + const [file, alias] = content.split('|') + const [filename, ...titles] = file.trim().split('#') + + const token = state.push('obsidian_wiki_link', '', 0) + token.markup = '[[]]' + token.meta = { + filename: filename.trim(), + titles: titles.map(title => title.trim()), + alias: alias?.trim(), + } as WikiLinkMeta + token.content = content + + state.pos = state.posMax + 2 + state.posMax = max + + return true +} + +export function wikiLinkPlugin(md: Markdown, app: App) { + md.inline.ruler.before('emphasis', 'obsidian_wiki_link', wikiLinkDef) + md.renderer.rules.obsidian_wiki_link = (tokens, idx, _, env: MarkdownEnv) => { + const token = tokens[idx] + const { filename, titles, alias } = token.meta as WikiLinkMeta + const anchor = titles.at(-1) + const slug = anchor ? `#${slugify(anchor)}` : '' + // external link + if (isLinkHttp(filename)) { + const text = alias || (filename + (titles.length ? ` > ${titles.join(' > ')}` : '')) + return `${ + md.utils.escapeHtml(text) + }` + } + // internal hash link + if (!filename) { // internal page hash link + return `${md.utils.escapeHtml(alias) || (titles.length ? `` : '')}` + } + const internal = findFirstPage(app, filename, env.filePathRelative ?? '') + if (internal) { + const { absolutePath, relativePath } = resolvePaths( + internal.filePathRelative!, + env.base || '/', + env.filePathRelative ?? null, + ) + ;(env.links ??= []).push({ + raw: internal.filePathRelative!, + absolute: absolutePath, + relative: relativePath, + }) + return `${md.utils.escapeHtml(alias) || (titles.length ? `` : '')}` + } + + // other asset url + const url = ensureLeadingSlash(filename[0] === '.' ? path.join(path.dirname(env.filePathRelative ?? ''), filename) : filename) + const text = alias || (filename + (titles.length ? ` > ${titles.join(' > ')}` : '')) + return `${ + md.utils.escapeHtml(text) + }` + } +} + +export function findFirstPage(app: App, filename: string, relativePath: string) { + const dirname = path.dirname(relativePath) + const withExt = path.extname(filename) ? filename : `${filename}.md` + const sorted = sortBy(app.pages ?? [], page => page.filePathRelative?.split('/').length ?? Infinity) + return sorted.find((page) => { + const title = page.title || page.frontmatter?.title || page.data.title + // 匹配标题, 优先从最短路径开始匹配 + if (title === filename) + return true + + const relative = page.filePathRelative + /* istanbul ignore if -- @preserve */ + if (!relative) + return false + + const filepath = filename[0] === '.' ? path.join(dirname, filename) : removeLeadingSlash(filename) + + // 精确匹配 + if ((filepath.slice(-1) === '/' && (relative === `${filepath}README.md` || relative === `${filepath}index.html`)) || relative === withExt) { + return true + } + + // 模糊匹配,优先从最短路径匹配,sorted 已按照路径长度排序 + return (filepath.slice(-1) === '/' && (relative.endsWith(`${filepath}README.md`) || relative.endsWith(`${filepath}index.html`))) || relative.endsWith(withExt) + }) +} diff --git a/plugins/plugin-md-power/src/node/plugin.ts b/plugins/plugin-md-power/src/node/plugin.ts index 251c2dc0..bd8d2ae5 100644 --- a/plugins/plugin-md-power/src/node/plugin.ts +++ b/plugins/plugin-md-power/src/node/plugin.ts @@ -13,6 +13,7 @@ import { linksPlugin } from './enhance/links.js' import { iconPlugin } from './icon/index.js' import { inlineSyntaxPlugin } from './inline/index.js' import { LOCALE_OPTIONS } from './locales/index.js' +import { obsidianPlugin } from './obsidian/index.js' import { prepareConfigFile } from './prepareConfigFile.js' import { provideData } from './provideData.js' @@ -105,6 +106,7 @@ export function markdownPowerPlugin( embedSyntaxPlugin(md, options) inlineSyntaxPlugin(md, options) iconPlugin(md, options.icon ?? (isPlainObject(options.icons) ? options.icons : {})) + obsidianPlugin(md, app, options) if (options.demo) demoPlugin(app, md) diff --git a/plugins/plugin-md-power/src/node/utils/slugify.ts b/plugins/plugin-md-power/src/node/utils/slugify.ts new file mode 100644 index 00000000..f50f2140 --- /dev/null +++ b/plugins/plugin-md-power/src/node/utils/slugify.ts @@ -0,0 +1,26 @@ +// eslint-disable-next-line no-control-regex +const rControl = /[\u0000-\u001F]/g +const rSpecial = /[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'“”‘’<>,.?/]+/g +const rCombining = /[\u0300-\u036F]/g + +/** + * Default slugification function + */ +export function slugify(str: string): string { + return str + .normalize('NFKD') + // Remove accents + .replace(rCombining, '') + // Remove control characters + .replace(rControl, '') + // Replace special characters + .replace(rSpecial, '-') + // Remove continuos separators + .replace(/-{2,}/g, '-') + // Remove prefixing and trailing separators + .replace(/^-+|-+$/g, '') + // ensure it doesn't start with a number + .replace(/^(\d)/, '_$1') + // lowercase + .toLowerCase() +} diff --git a/plugins/plugin-md-power/src/shared/obsidian.ts b/plugins/plugin-md-power/src/shared/obsidian.ts new file mode 100644 index 00000000..9b6114ef --- /dev/null +++ b/plugins/plugin-md-power/src/shared/obsidian.ts @@ -0,0 +1,5 @@ +export interface ObsidianOptions { + wikiLink?: boolean + embedLink?: boolean + comment?: boolean +} diff --git a/plugins/plugin-md-power/src/shared/pdf.ts b/plugins/plugin-md-power/src/shared/pdf.ts index 5e13ea5b..290d87b0 100644 --- a/plugins/plugin-md-power/src/shared/pdf.ts +++ b/plugins/plugin-md-power/src/shared/pdf.ts @@ -18,7 +18,7 @@ export interface PDFTokenMeta extends SizeOptions { * * 要显示的页码 */ - page?: number + page?: number | string /** * Whether to hide toolbar * diff --git a/plugins/plugin-md-power/src/shared/plugin.ts b/plugins/plugin-md-power/src/shared/plugin.ts index 91b008a4..c6f23115 100644 --- a/plugins/plugin-md-power/src/shared/plugin.ts +++ b/plugins/plugin-md-power/src/shared/plugin.ts @@ -9,6 +9,7 @@ import type { IconOptions } from './icon.js' import type { MDPowerLocaleData } from './locale.js' import type { MarkOptions } from './mark.js' import type { NpmToOptions } from './npmTo.js' +import type { ObsidianOptions } from './obsidian.js' import type { PDFOptions } from './pdf.js' import type { PlotOptions } from './plot.js' import type { ReplOptions } from './repl.js' @@ -406,5 +407,12 @@ export interface MarkdownPowerPluginOptions { */ imageSize?: boolean | 'local' | 'all' + /** + * 是否启用 obsidian 官方 markdown 扩展语法的兼容性支持 + * + * @default false + */ + obsidian?: boolean | ObsidianOptions + locales?: LocaleConfig } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3501bfce..dca395ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -711,6 +711,9 @@ importers: esbuild: specifier: ^0.28.0 version: 0.28.0 + gray-matter: + specifier: catalog:prod + version: 4.0.3 image-size: specifier: catalog:prod version: 2.0.2 diff --git a/theme/src/client/components/VPLink.vue b/theme/src/client/components/VPLink.vue index 048997cf..31ba1926 100644 --- a/theme/src/client/components/VPLink.vue +++ b/theme/src/client/components/VPLink.vue @@ -2,6 +2,7 @@ import { computed, toRef } from 'vue' import { useRouter, withBase } from 'vuepress/client' import { useData, useLink } from '../composables/index.js' +import { resolveNavLink } from '../utils/index.js' const props = defineProps<{ tag?: string @@ -19,6 +20,13 @@ const tag = computed(() => props.tag ?? (props.href ? 'a' : 'span')) const { link, isExternal, isExternalProtocol } = useLink(toRef(props, 'href'), toRef(props, 'target')) +const resolvedText = computed(() => { + if (props.text || isExternal.value || !link.value) + return props.text + const { text } = resolveNavLink(link.value) + return text +}) + function linkTo(e: Event) { if (!isExternal.value && link.value) { e.preventDefault() @@ -36,9 +44,8 @@ function linkTo(e: Event) { :rel="rel ?? (isExternal ? 'noopener noreferrer' : undefined)" @click="linkTo($event)" > - - {{ text || href }} - + {{ resolvedText || href }} + {{ theme.openNewWindowText || '(Open in new window)' }} diff --git a/theme/src/client/composables/link.ts b/theme/src/client/composables/link.ts index 0f83a9b2..099ad0a7 100644 --- a/theme/src/client/composables/link.ts +++ b/theme/src/client/composables/link.ts @@ -56,7 +56,7 @@ export function useLink( const maybeIsExternal = computed(() => { const link = toValue(href) const rawTarget = toValue(target) - if (!link) + if (!link || link[0] === '#') return false if (rawTarget === '_blank' || isLinkExternal(link)) return true @@ -70,8 +70,12 @@ export function useLink( if (!link || maybeIsExternal.value) return link + if (link[0] === '#') + return page.value.path + link + const currentPath = page.value.filePathRelative ? `/${page.value.filePathRelative}` : undefined const path = resolveRouteFullPath(link, currentPath) + if (path.includes('#')) { // Compare path + anchor with current route path // Convert to anchor link to avoid page refresh diff --git a/theme/src/client/features/components/PageContextMenu.vue b/theme/src/client/features/components/PageContextMenu.vue index e13797c8..0b5c3874 100644 --- a/theme/src/client/features/components/PageContextMenu.vue +++ b/theme/src/client/features/components/PageContextMenu.vue @@ -189,6 +189,12 @@ const copyPageText = computed(() => { width: fit-content; } +@media print { + .vp-page-context-menu { + display: none; + } +} + .page-context-button { height: 32px; overflow: hidden; diff --git a/theme/src/node/detector/fields.ts b/theme/src/node/detector/fields.ts index 42631a24..265d44d4 100644 --- a/theme/src/node/detector/fields.ts +++ b/theme/src/node/detector/fields.ts @@ -67,6 +67,7 @@ export const MARKDOWN_POWER_FIELDS: (keyof MarkdownPowerPluginOptions)[] = [ 'youtube', 'qrcode', 'encrypt', + 'obsidian', 'locales', ] diff --git a/tsconfig.json b/tsconfig.json index 3d570563..69082f9c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,6 @@ "extends": "./tsconfig.base.json", "compilerOptions": { "jsx": "preserve", - "baseUrl": ".", "paths": { "@internal/*": ["./docs/.vuepress/.temp/internal/*"], "@theme/*": ["./theme/src/client/components/*"] From 035d521e96651680dec78ed96582ca67bb4c6d5d Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sat, 18 Apr 2026 17:07:12 +0800 Subject: [PATCH 06/14] chore: update deps to latest --- package.json | 2 +- pnpm-lock.yaml | 1616 ++++++++++++++++++++++--------------------- pnpm-workspace.yaml | 26 +- 3 files changed, 824 insertions(+), 820 deletions(-) diff --git a/package.json b/package.json index b3f069f9..09d12df2 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "@typescript-eslint/types": "catalog:peer", "@typescript-eslint/utils": "catalog:peer", "@xmldom/xmldom": ">=0.9.9", - "baseline-browser-mapping": "^2.10.18", + "baseline-browser-mapping": "^2.10.19", "chokidar": "catalog:prod", "esbuild": "catalog:prod", "lodash": ">=4.18.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dca395ec..430732e5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,11 +16,11 @@ catalogs: specifier: ^0.1.1 version: 0.1.1 '@pengzhanbo/eslint-config-vue': - specifier: ^2.3.0 - version: 2.3.0 + specifier: ^2.4.0 + version: 2.4.0 '@pengzhanbo/stylelint-config': - specifier: ^2.3.0 - version: 2.3.0 + specifier: ^2.4.0 + version: 2.4.0 '@simonwep/pickr': specifier: ^1.9.1 version: 1.9.1 @@ -52,8 +52,8 @@ catalogs: specifier: ^0.48.43 version: 0.48.43 '@types/three': - specifier: ^0.183.1 - version: 0.183.1 + specifier: ^0.184.0 + version: 0.184.0 '@types/webpack-env': specifier: ^1.18.8 version: 1.18.8 @@ -82,8 +82,8 @@ catalogs: specifier: ^3.3.0 version: 3.3.0 eslint: - specifier: ^10.2.0 - version: 10.2.0 + specifier: ^10.2.1 + version: 10.2.1 http-server: specifier: ^14.1.1 version: 14.1.1 @@ -100,8 +100,8 @@ catalogs: specifier: ^14.1.1 version: 14.1.1 memfs: - specifier: ^4.57.1 - version: 4.57.1 + specifier: ^4.57.2 + version: 4.57.2 mermaid: specifier: ^11.14.0 version: 11.14.0 @@ -109,14 +109,14 @@ catalogs: specifier: ^1.2.8 version: 1.2.8 postcss: - specifier: ^8.5.9 - version: 8.5.9 + specifier: ^8.5.10 + version: 8.5.10 rimraf: specifier: ^6.1.3 version: 6.1.3 stylelint: - specifier: ^17.7.0 - version: 17.7.0 + specifier: ^17.8.0 + version: 17.8.0 stylus: specifier: ^0.64.0 version: 0.64.0 @@ -124,11 +124,11 @@ catalogs: specifier: ^7.0.0 version: 7.0.0 tsdown: - specifier: ^0.21.8 - version: 0.21.8 + specifier: ^0.21.9 + version: 0.21.9 typescript: - specifier: ^6.0.2 - version: 6.0.2 + specifier: ^6.0.3 + version: 6.0.3 vitest: specifier: ^4.1.4 version: 4.1.4 @@ -137,8 +137,8 @@ catalogs: version: 9.0.5 peer: '@iconify/json': - specifier: ^2.2.462 - version: 2.2.462 + specifier: ^2.2.463 + version: 2.2.463 '@mathjax/src': specifier: ^4.1.1 version: 4.1.1 @@ -167,8 +167,8 @@ catalogs: specifier: ^3.28.1 version: 3.28.1 postprocessing: - specifier: ^6.39.0 - version: 6.39.0 + specifier: ^6.39.1 + version: 6.39.1 pyodide: specifier: ^0.29.3 version: 0.29.3 @@ -179,8 +179,8 @@ catalogs: specifier: ^12.1.3 version: 12.1.3 three: - specifier: ^0.183.2 - version: 0.183.2 + specifier: ^0.184.0 + version: 0.184.0 prod: '@clack/prompts': specifier: ^1.2.0 @@ -288,8 +288,8 @@ catalogs: specifier: ^2.1.0 version: 2.1.0 nanoid: - specifier: ^5.1.7 - version: 5.1.7 + specifier: ^5.1.9 + version: 5.1.9 os-locale: specifier: ^8.0.0 version: 8.0.0 @@ -399,7 +399,7 @@ overrides: '@typescript-eslint/types': ^8.58.2 '@typescript-eslint/utils': ^8.58.2 '@xmldom/xmldom': '>=0.9.9' - baseline-browser-mapping: ^2.10.18 + baseline-browser-mapping: ^2.10.19 chokidar: 5.0.0 esbuild: ^0.28.0 lodash: '>=4.18.1' @@ -421,16 +421,16 @@ importers: devDependencies: '@commitlint/cli': specifier: catalog:dev - version: 20.5.0(@types/node@25.6.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.2) + version: 20.5.0(@types/node@25.6.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3) '@commitlint/config-conventional': specifier: catalog:dev version: 20.5.0 '@pengzhanbo/eslint-config-vue': specifier: catalog:dev - version: 2.3.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0)(typescript@6.0.2)(vitest@4.1.4) + version: 2.4.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1)))(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3))(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@vue/compiler-sfc@3.5.32)(eslint@10.2.1(jiti@2.6.1))(globals@17.5.0)(typescript@6.0.3)(vitest@4.1.4) '@pengzhanbo/stylelint-config': specifier: catalog:dev - version: 2.3.0(stylelint@17.7.0(typescript@6.0.2)) + version: 2.4.0(stylelint@17.8.0(typescript@6.0.3)) '@types/js-yaml': specifier: catalog:dev version: 4.0.9 @@ -454,7 +454,7 @@ importers: version: 0.48.43 '@types/three': specifier: catalog:dev - version: 0.183.1 + version: 0.184.0 '@types/webpack-env': specifier: catalog:dev version: 1.18.8 @@ -466,7 +466,7 @@ importers: version: 11.0.1 commitizen: specifier: catalog:dev - version: 4.3.1(@types/node@25.6.0)(typescript@6.0.2) + version: 4.3.1(@types/node@25.6.0)(typescript@6.0.3) conventional-changelog: specifier: catalog:dev version: 7.2.0(conventional-commits-filter@5.0.0) @@ -481,10 +481,10 @@ importers: version: 7.0.3 cz-conventional-changelog: specifier: catalog:dev - version: 3.3.0(@types/node@25.6.0)(typescript@6.0.2) + version: 3.3.0(@types/node@25.6.0)(typescript@6.0.3) eslint: specifier: catalog:dev - version: 10.2.0(jiti@2.6.1) + version: 10.2.1(jiti@2.6.1) husky: specifier: catalog:dev version: 9.1.7 @@ -499,13 +499,13 @@ importers: version: 14.1.1 memfs: specifier: catalog:dev - version: 4.57.1(tslib@2.8.1) + version: 4.57.2(tslib@2.8.1) minimist: specifier: catalog:dev version: 1.2.8 postcss: specifier: catalog:dev - version: 8.5.9 + version: 8.5.10 rimraf: specifier: catalog:dev version: 6.1.3 @@ -514,7 +514,7 @@ importers: version: 1.99.0 stylelint: specifier: catalog:dev - version: 17.7.0(typescript@6.0.2) + version: 17.8.0(typescript@6.0.3) stylus: specifier: catalog:dev version: 0.64.0 @@ -523,10 +523,10 @@ importers: version: 7.0.0 tsdown: specifier: catalog:dev - version: 0.21.8(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12)(typescript@6.0.2) + version: 0.21.9(synckit@0.11.12)(typescript@6.0.3) typescript: specifier: catalog:dev - version: 6.0.2 + version: 6.0.3 vitest: specifier: catalog:dev version: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3)) @@ -565,7 +565,7 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.462 + version: 2.2.463 '@lunariajs/core': specifier: catalog:dev version: 0.1.1 @@ -574,10 +574,10 @@ importers: version: 1.9.1 '@vuepress/bundler-vite': specifier: catalog:vuepress - version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) + version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3) '@vuepress/shiki-twoslash': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) chart.js: specifier: catalog:prod version: 4.5.1 @@ -604,19 +604,19 @@ importers: version: 11.14.0 postprocessing: specifier: catalog:peer - version: 6.39.0(three@0.183.2) + version: 6.39.1(three@0.184.0) swiper: specifier: catalog:peer version: 12.1.3 three: specifier: catalog:peer - version: 0.183.2 + version: 0.184.0 vue: specifier: catalog:prod - version: 3.5.32(typescript@6.0.2) + version: 3.5.32(typescript@6.0.3) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) vuepress-theme-plume: specifier: workspace:* version: link:../theme @@ -629,19 +629,19 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.462 + version: 2.2.463 '@vuepress/bundler-vite': specifier: catalog:vuepress - version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) + version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3) http-server: specifier: catalog:dev version: 14.1.1 vue: specifier: catalog:prod - version: 3.5.32(typescript@6.0.2) + version: 3.5.32(typescript@6.0.3) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) vuepress-theme-plume: specifier: workspace:* version: link:../../theme @@ -650,19 +650,19 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.462 + version: 2.2.463 '@vuepress/bundler-vite': specifier: catalog:vuepress - version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) + version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3) http-server: specifier: catalog:dev version: 14.1.1 vue: specifier: catalog:prod - version: 3.5.32(typescript@6.0.2) + version: 3.5.32(typescript@6.0.3) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) vuepress-theme-plume: specifier: workspace:* version: link:../../theme @@ -671,7 +671,7 @@ importers: dependencies: vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) plugins/plugin-md-power: dependencies: @@ -701,10 +701,10 @@ importers: version: 3.3.1 '@vuepress/helper': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vueuse/core': specifier: catalog:prod - version: 14.2.1(vue@3.5.32(typescript@6.0.2)) + version: 14.2.1(vue@3.5.32(typescript@6.0.3)) chokidar: specifier: 5.0.0 version: 5.0.0 @@ -737,7 +737,7 @@ importers: version: 4.0.0 nanoid: specifier: catalog:prod - version: 5.1.7 + version: 5.1.9 p-map: specifier: catalog:prod version: 7.0.4 @@ -767,10 +767,10 @@ importers: version: 1.12.2 vue: specifier: catalog:prod - version: 3.5.32(typescript@6.0.2) + version: 3.5.32(typescript@6.0.3) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) devDependencies: '@types/markdown-it': specifier: catalog:dev @@ -792,13 +792,13 @@ importers: dependencies: '@vuepress/helper': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vueuse/core': specifier: catalog:prod - version: 14.2.1(vue@3.5.32(typescript@6.0.2)) + version: 14.2.1(vue@3.5.32(typescript@6.0.3)) '@vueuse/integrations': specifier: catalog:prod - version: 14.2.1(axios@1.15.0)(change-case@5.4.4)(focus-trap@8.0.1)(qrcode@1.5.4)(vue@3.5.32(typescript@6.0.2)) + version: 14.2.1(axios@1.15.0)(change-case@5.4.4)(focus-trap@8.0.1)(qrcode@1.5.4)(vue@3.5.32(typescript@6.0.3)) chokidar: specifier: 5.0.0 version: 5.0.0 @@ -816,10 +816,10 @@ importers: version: 7.0.4 vue: specifier: catalog:prod - version: 3.5.32(typescript@6.0.2) + version: 3.5.32(typescript@6.0.3) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) theme: dependencies: @@ -828,7 +828,7 @@ importers: version: 3.1.0 '@iconify/vue': specifier: catalog:prod - version: 5.0.0(vue@3.5.32(typescript@6.0.2)) + version: 5.0.0(vue@3.5.32(typescript@6.0.3)) '@mathjax/src': specifier: catalog:peer version: 4.1.1 @@ -843,70 +843,70 @@ importers: version: link:../plugins/plugin-search '@vuepress/helper': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-cache': specifier: catalog:vuepress - version: 2.0.0-rc.128(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-comment': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-copy-code': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-docsearch': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-git': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-llms': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-markdown-chart': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(chart.js@4.5.1)(echarts@6.0.0)(flowchart.ts@3.0.1)(markdown-it@14.1.1)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.14.0)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(chart.js@4.5.1)(echarts@6.0.0)(flowchart.ts@3.0.1)(markdown-it@14.1.1)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.14.0)(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-markdown-hint': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-markdown-image': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-markdown-include': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-markdown-math': specifier: catalog:vuepress - version: 2.0.0-rc.128(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(katex@0.16.45)(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(katex@0.16.45)(markdown-it@14.1.1)(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-nprogress': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-photo-swipe': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-reading-time': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-replace-assets': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-seo': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-shiki': specifier: catalog:vuepress - version: 2.0.0-rc.128(1a953f9f9b1b95ecc511dafb0398021a) + version: 2.0.0-rc.128(6a0ffca7c26a43ecd69a881d0168ca79) '@vuepress/plugin-sitemap': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/plugin-watermark': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vuepress/shiki-twoslash': specifier: catalog:vuepress - version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + version: 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) '@vueuse/core': specifier: catalog:prod - version: 14.2.1(vue@3.5.32(typescript@6.0.2)) + version: 14.2.1(vue@3.5.32(typescript@6.0.3)) chokidar: specifier: 5.0.0 version: 5.0.0 @@ -933,7 +933,7 @@ importers: version: 1.1.2 nanoid: specifier: catalog:prod - version: 5.1.7 + version: 5.1.9 p-map: specifier: catalog:prod version: 7.0.4 @@ -945,20 +945,20 @@ importers: version: 4.0.4 vue: specifier: catalog:prod - version: 3.5.32(typescript@6.0.2) + version: 3.5.32(typescript@6.0.3) vue-router: specifier: ^5.0.4 - version: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) + version: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.3)) vuepress: specifier: catalog:vuepress - version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + version: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) vuepress-plugin-md-power: specifier: workspace:* version: link:../plugins/plugin-md-power devDependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.462 + version: 2.2.463 '@pinyin-pro/data': specifier: catalog:peer version: 1.3.1 @@ -973,13 +973,13 @@ importers: version: 3.28.1 postprocessing: specifier: catalog:peer - version: 6.39.0(three@0.183.2) + version: 6.39.1(three@0.184.0) swiper: specifier: catalog:peer version: 12.1.3 three: specifier: catalog:peer - version: 0.183.2 + version: 0.184.0 packages: @@ -1439,18 +1439,10 @@ packages: resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.3': - resolution: {integrity: sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/config-helpers@0.5.5': resolution: {integrity: sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.1.1': - resolution: {integrity: sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/core@1.2.1': resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -1519,8 +1511,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@iconify/json@2.2.462': - resolution: {integrity: sha512-QyVED2ObaVWKgNZu3ikcCyK63GgZ6voobyJrNgTAyoI5xRXff0VHs2UxvWYvqqBJNaPGNqEQDmcJWo7uHdWOkg==} + '@iconify/json@2.2.463': + resolution: {integrity: sha512-VZ0n+99OWe9677b04KPF0NajDbFEyWNxMalXZA/4j8HrqyVvY+N1XN/EIER4ceQlKQJ501w9UxLJZjZ5mga0xA==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -1589,50 +1581,50 @@ packages: peerDependencies: tslib: '2' - '@jsonjoy.com/fs-core@4.57.1': - resolution: {integrity: sha512-YrEi/ZPmgc+GfdO0esBF04qv8boK9Dg9WpRQw/+vM8Qt3nnVIJWIa8HwZ/LXVZ0DB11XUROM8El/7yYTJX+WtA==} + '@jsonjoy.com/fs-core@4.57.2': + resolution: {integrity: sha512-SVjwklkpIV5wrynpYtuYnfYH1QF4/nDuLBX7VXdb+3miglcAgBVZb/5y0cOsehRV/9Vb+3UqhkMq3/NR3ztdkQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-fsa@4.57.1': - resolution: {integrity: sha512-ooEPvSW/HQDivPDPZMibHGKZf/QS4WRir1czGZmXmp3MsQqLECZEpN0JobrD8iV9BzsuwdIv+PxtWX9WpPLsIA==} + '@jsonjoy.com/fs-fsa@4.57.2': + resolution: {integrity: sha512-fhO8+iR2I+OCw668ISDJdn1aArc9zx033sWejIyzQ8RBeXa9bDSaUeA3ix0poYOfrj1KdOzytmYNv2/uLDfV6g==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-node-builtins@4.57.1': - resolution: {integrity: sha512-XHkFKQ5GSH3uxm8c3ZYXVrexGdscpWKIcMWKFQpMpMJc8gA3AwOMBJXJlgpdJqmrhPyQXxaY9nbkNeYpacC0Og==} + '@jsonjoy.com/fs-node-builtins@4.57.2': + resolution: {integrity: sha512-xhiegylRmhw43Ki2HO1ZBL7DQ5ja/qpRsL29VtQ2xuUHiuDGbgf2uD4p9Qd8hJI5P6RCtGYD50IXHXVq/Ocjcg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-node-to-fsa@4.57.1': - resolution: {integrity: sha512-pqGHyWWzNck4jRfaGV39hkqpY5QjRUQ/nRbNT7FYbBa0xf4bDG+TE1Gt2KWZrSkrkZZDE3qZUjYMbjwSliX6pg==} + '@jsonjoy.com/fs-node-to-fsa@4.57.2': + resolution: {integrity: sha512-18LmWTSONhoAPW+IWRuf8w/+zRolPFGPeGwMxlAhhfY11EKzX+5XHDBPAw67dBF5dxDErHJbl40U+3IXSDRXSQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-node-utils@4.57.1': - resolution: {integrity: sha512-vp+7ZzIB8v43G+GLXTS4oDUSQmhAsRz532QmmWBbdYA20s465JvwhkSFvX9cVTqRRAQg+vZ7zWDaIEh0lFe2gw==} + '@jsonjoy.com/fs-node-utils@4.57.2': + resolution: {integrity: sha512-rsPSJgekz43IlNbLyAM/Ab+ouYLWGp5DDBfYBNNEqDaSpsbXfthBn29Q4muFA9L0F+Z3mKo+CWlgSCXrf+mOyQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-node@4.57.1': - resolution: {integrity: sha512-3YaKhP8gXEKN+2O49GLNfNb5l2gbnCFHyAaybbA2JkkbQP3dpdef7WcUaHAulg/c5Dg4VncHsA3NWAUSZMR5KQ==} + '@jsonjoy.com/fs-node@4.57.2': + resolution: {integrity: sha512-nX2AdL6cOFwLdju9G4/nbRnYevmCJbh7N7hvR3gGm97Cs60uEjyd0rpR+YBS7cTg175zzl22pGKXR5USaQMvKg==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-print@4.57.1': - resolution: {integrity: sha512-Ynct7ZJmfk6qoXDOKfpovNA36ITUx8rChLmRQtW08J73VOiuNsU8PB6d/Xs7fxJC2ohWR3a5AqyjmLojfrw5yw==} + '@jsonjoy.com/fs-print@4.57.2': + resolution: {integrity: sha512-wK9NSow48i4DbDl9F1CQE5TqnyZOJ04elU3WFG5aJ76p+YxO/ulyBBQvKsessPxdo381Bc2pcEoyPujMOhcRqQ==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' - '@jsonjoy.com/fs-snapshot@4.57.1': - resolution: {integrity: sha512-/oG8xBNFMbDXTq9J7vepSA1kerS5vpgd3p5QZSPd+nX59uwodGJftI51gDYyHRpP57P3WCQf7LHtBYPqwUg2Bg==} + '@jsonjoy.com/fs-snapshot@4.57.2': + resolution: {integrity: sha512-GdduDZuoP5V/QCgJkx9+BZ6SC0EZ/smXAdTS7PfMqgMTGXLlt/bH/FqMYaqB9JmLf05sJPtO0XRbAwwkEEPbVw==} engines: {node: '>=10.0'} peerDependencies: tslib: '2' @@ -1950,6 +1942,12 @@ packages: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 + '@napi-rs/wasm-runtime@1.1.4': + resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} + peerDependencies: + '@emnapi/core': ^1.7.1 + '@emnapi/runtime': ^1.7.1 + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1966,15 +1964,15 @@ packages: resolution: {integrity: sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@oxc-project/types@0.122.0': - resolution: {integrity: sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==} - '@oxc-project/types@0.123.0': resolution: {integrity: sha512-YtECP/y8Mj1lSHiUWGSRzy/C6teUKlS87dEfuVKT09LgQbUsBW1rNg+MiJ4buGu3yuADV60gbIvo9/HplA56Ew==} '@oxc-project/types@0.124.0': resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==} + '@oxc-project/types@0.126.0': + resolution: {integrity: sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==} + '@parcel/watcher-android-arm64@2.5.6': resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} engines: {node: '>= 10.0.0'} @@ -2063,14 +2061,14 @@ packages: resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} engines: {node: '>= 10.0.0'} - '@pengzhanbo/eslint-config-vue@2.3.0': - resolution: {integrity: sha512-5cvdTPPakel/Q/WyGnhALc90coXYRkoUH3VSRfJGQtxLUboj5/yjASTgzOWeSbDmhFEo79mDEJD6Ai6Xo2t3dA==} + '@pengzhanbo/eslint-config-vue@2.4.0': + resolution: {integrity: sha512-a1U3MwUHb1N/iDU3pxJ05/HZCDwyfoqIoP6ptyKQofYSly+XXuSZwshGxbuDeGiZzhsORlZyT5Z6Q2ccMixVxg==} peerDependencies: '@prettier/plugin-xml': ^3.4.2 - '@unocss/eslint-plugin': ^66.6.7 - eslint: ^10.1.0 + '@unocss/eslint-plugin': ^66.6.8 + eslint: ^10.2.1 eslint-plugin-format: ^2.0.1 - eslint-plugin-tailwindcss: ^3.18.2 + eslint-plugin-tailwindcss: ^3.18.3 peerDependenciesMeta: '@prettier/plugin-xml': optional: true @@ -2081,24 +2079,24 @@ packages: eslint-plugin-tailwindcss: optional: true - '@pengzhanbo/eslint-config@2.3.0': - resolution: {integrity: sha512-Be4kXZDxCufjRIdeNSNk5U2J+2A5ET4QMr+/M68f4RQRIiS/w4PstrL86vUqCoufTn6wsl4RFIfZBiI48nuQMw==} + '@pengzhanbo/eslint-config@2.4.0': + resolution: {integrity: sha512-e4iuTLXUOTN18PE3o8ucPUAEqXvMlAOnsYYv0BLcWzCWKn1ibGbg8ux8KbQ0PqHPP4TLS7NLa0gjZrb+3uRQcQ==} peerDependencies: '@angular-eslint/eslint-plugin': ^21.3.1 '@angular-eslint/eslint-plugin-template': ^21.3.1 '@angular-eslint/template-parser': ^21.3.1 '@eslint-react/eslint-plugin': ^4.2.3 - '@next/eslint-plugin-next': ^16.2.2 + '@next/eslint-plugin-next': ^16.2.4 '@prettier/plugin-xml': ^3.4.2 - '@unocss/eslint-plugin': ^66.6.7 + '@unocss/eslint-plugin': ^66.6.8 astro-eslint-parser: ^1.4.0 - eslint: ^10.1.0 - eslint-plugin-astro: ^1.6.0 + eslint: ^10.2.1 + eslint-plugin-astro: ^1.7.0 eslint-plugin-format: ^2.0.1 eslint-plugin-react-refresh: ^0.5.2 eslint-plugin-solid: ^0.14.5 eslint-plugin-svelte: ^3.17.0 - eslint-plugin-tailwindcss: ^3.18.2 + eslint-plugin-tailwindcss: ^3.18.3 eslint-plugin-vue: ^10.8.0 eslint-plugin-vuejs-accessibility: ^2.4.1 eslint-processor-vue-blocks: ^2.0.0 @@ -2148,10 +2146,10 @@ packages: vue-eslint-parser: optional: true - '@pengzhanbo/stylelint-config@2.3.0': - resolution: {integrity: sha512-5cSzEE23OetHAscH6Y5rI1oeLnO67LxqDon/AYYmSETqTImeCv++yIrKLw66eX+vs2sPTfRh9aUaH0AS4lLnaw==} + '@pengzhanbo/stylelint-config@2.4.0': + resolution: {integrity: sha512-0J544WA1gOZI3ZZZXA1D9FqObG2g+Qn0PG9xqqSC3Hk4MhpAA//WA6nqfJJJzT8rAdB4rFr2KCdD/G50UKZVWg==} peerDependencies: - stylelint: ^17.6.0 + stylelint: ^17.8.0 '@pengzhanbo/utils@3.3.1': resolution: {integrity: sha512-rVmmTdeQs+gdk5XboXG7gv4LSLnCceZ9l9Z1v/P+zScOpwPYn6mSVukPtRC22234rXC/13AZV2gZ3ZDvNmP9XA==} @@ -2170,12 +2168,6 @@ packages: '@quansync/fs@1.0.0': resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} - '@rolldown/binding-android-arm64@1.0.0-rc.12': - resolution: {integrity: sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - '@rolldown/binding-android-arm64@1.0.0-rc.13': resolution: {integrity: sha512-5ZiiecKH2DXAVJTNN13gNMUcCDg4Jy8ZjbXEsPnqa248wgOVeYRX0iqXXD5Jz4bI9BFHgKsI2qmyJynstbmr+g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2188,11 +2180,11 @@ packages: cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.0-rc.12': - resolution: {integrity: sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==} + '@rolldown/binding-android-arm64@1.0.0-rc.16': + resolution: {integrity: sha512-rhY3k7Bsae9qQfOtph2Pm2jZEA+s8Gmjoz4hhmx70K9iMQ/ddeae+xhRQcM5IuVx5ry1+bGfkvMn7D6MJggVSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] - os: [darwin] + os: [android] '@rolldown/binding-darwin-arm64@1.0.0-rc.13': resolution: {integrity: sha512-tz/v/8G77seu8zAB3A5sK3UFoOl06zcshEzhUO62sAEtrEuW/H1CcyoupOrD+NbQJytYgA4CppXPzlrmp4JZKA==} @@ -2206,10 +2198,10 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.0-rc.12': - resolution: {integrity: sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==} + '@rolldown/binding-darwin-arm64@1.0.0-rc.16': + resolution: {integrity: sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] + cpu: [arm64] os: [darwin] '@rolldown/binding-darwin-x64@1.0.0-rc.13': @@ -2224,11 +2216,11 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.0-rc.12': - resolution: {integrity: sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==} + '@rolldown/binding-darwin-x64@1.0.0-rc.16': + resolution: {integrity: sha512-r/OmdR00HmD4i79Z//xO06uEPOq5hRXdhw7nzkxQxwSavs3PSHa1ijntdpOiZ2mzOQ3fVVu8C1M19FoNM+dMUQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] - os: [freebsd] + os: [darwin] '@rolldown/binding-freebsd-x64@1.0.0-rc.13': resolution: {integrity: sha512-4wBQFfjDuXYN/SVI8inBF3Aa+isq40rc6VMFbk5jcpolUBTe5cYnMsHZ51nFWsx3PVyyNN3vgoESki0Hmr/4BA==} @@ -2242,11 +2234,11 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': - resolution: {integrity: sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==} + '@rolldown/binding-freebsd-x64@1.0.0-rc.16': + resolution: {integrity: sha512-KcRE5w8h0OnjUatG8pldyD14/CQ5Phs1oxfR+3pKDjboHRo9+MkqQaiIZlZRpsxC15paeXme/I127tUa9TXJ6g==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] + cpu: [x64] + os: [freebsd] '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': resolution: {integrity: sha512-JW/e4yPIXLms+jmnbwwy5LA/LxVwZUWLN8xug+V200wzaVi5TEGIWQlh8o91gWYFxW609euI98OCCemmWGuPrw==} @@ -2260,12 +2252,11 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': - resolution: {integrity: sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==} + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.16': + resolution: {integrity: sha512-bT0guA1bpxEJ/ZhTRniQf7rNF8ybvXOuWbNIeLABaV5NGjx4EtOWBTSRGWFU9ZWVkPOZ+HNFP8RMcBokBiZ0Kg==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] + cpu: [arm] os: [linux] - libc: [glibc] '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': resolution: {integrity: sha512-ZfKWpXiUymDnavepCaM6KG/uGydJ4l2nBmMxg60Ci4CbeefpqjPWpfaZM7PThOhk2dssqBAcwLc6rAyr0uTdXg==} @@ -2281,12 +2272,12 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': - resolution: {integrity: sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==} + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.16': + resolution: {integrity: sha512-+tHktCHWV8BDQSjemUqm/Jl/TPk3QObCTIjmdDy/nlupcujZghmKK2962LYrqFpWu+ai01AN/REOH3NEpqvYQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] - libc: [musl] + libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': resolution: {integrity: sha512-bmRg3O6Z0gq9yodKKWCIpnlH051sEfdVwt+6m5UDffAQMUUqU0xjnQqqAUm+Gu7ofAAly9DqiQDtKu2nPDEABA==} @@ -2302,12 +2293,12 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': - resolution: {integrity: sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==} + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.16': + resolution: {integrity: sha512-3fPzdREH806oRLxpTWW1Gt4tQHs0TitZFOECB2xzCFLPKnSOy90gwA7P29cksYilFO6XVRY1kzga0cL2nRjKPg==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] + cpu: [arm64] os: [linux] - libc: [glibc] + libc: [musl] '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': resolution: {integrity: sha512-8Wtnbw4k7pMYN9B/mOEAsQ8HOiq7AZ31Ig4M9BKn2So4xRaFEhtCSa4ZJaOutOWq50zpgR4N5+L/opnlaCx8wQ==} @@ -2323,10 +2314,10 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': - resolution: {integrity: sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==} + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.16': + resolution: {integrity: sha512-EKwI1tSrLs7YVw+JPJT/G2dJQ1jl9qlTTTEG0V2Ok/RdOenRfBw2PQdLPyjhIu58ocdBfP7vIRN/pvMsPxs/AQ==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] + cpu: [ppc64] os: [linux] libc: [glibc] @@ -2344,10 +2335,10 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': - resolution: {integrity: sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==} + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.16': + resolution: {integrity: sha512-Uknladnb3Sxqu6SEcqBldQyJUpk8NleooZEc0MbRBJ4inEhRYWZX0NJu12vNf2mqAq7gsofAxHrGghiUYjhaLQ==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] + cpu: [s390x] os: [linux] libc: [glibc] @@ -2365,12 +2356,12 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': - resolution: {integrity: sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==} + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.16': + resolution: {integrity: sha512-FIb8+uG49sZBtLTn+zt1AJ20TqVcqWeSIyoVt0or7uAWesgKaHbiBh6OpA/k9v0LTt+PTrb1Lao133kP4uVxkg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] - libc: [musl] + libc: [glibc] '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': resolution: {integrity: sha512-PsdONiFRp8hR8KgVjTWjZ9s7uA3uueWL0t74/cKHfM4dR5zXYv4AjB8BvA+QDToqxAFg4ZkcVEqeu5F7inoz5w==} @@ -2386,11 +2377,12 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': - resolution: {integrity: sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==} + '@rolldown/binding-linux-x64-musl@1.0.0-rc.16': + resolution: {integrity: sha512-RuERhF9/EgWxZEXYWCOaViUWHIboceK4/ivdtQ3R0T44NjLkIIlGIAVAuCddFxsZ7vnRHtNQUrt2vR2n2slB2w==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] + cpu: [x64] + os: [linux] + libc: [musl] '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': resolution: {integrity: sha512-hCNXgC5dI3TVOLrPT++PKFNZ+1EtS0mLQwfXXXSUD/+rGlB65gZDwN/IDuxLpQP4x8RYYHqGomlUXzpO8aVI2w==} @@ -2404,10 +2396,11 @@ packages: cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.0-rc.12': - resolution: {integrity: sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] + '@rolldown/binding-openharmony-arm64@1.0.0-rc.16': + resolution: {integrity: sha512-mXcXnvd9GpazCxeUCCnZ2+YF7nut+ZOEbE4GtaiPtyY6AkhZWbK70y1KK3j+RDhjVq5+U8FySkKRb/+w0EeUwA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] '@rolldown/binding-wasm32-wasi@1.0.0-rc.13': resolution: {integrity: sha512-viLS5C5et8NFtLWw9Sw3M/w4vvnVkbWkO7wSNh3C+7G1+uCkGpr6PcjNDSFcNtmXY/4trjPBqUfcOL+P3sWy/g==} @@ -2419,11 +2412,10 @@ packages: engines: {node: '>=14.0.0'} cpu: [wasm32] - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': - resolution: {integrity: sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==} + '@rolldown/binding-wasm32-wasi@1.0.0-rc.16': + resolution: {integrity: sha512-3Q2KQxnC8IJOLqXmUMoYwyIPZU9hzRbnHaoV3Euz+VVnjZKcY8ktnNP8T9R4/GGQtb27C/UYKABxesKWb8lsvQ==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] + cpu: [wasm32] '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': resolution: {integrity: sha512-Fqa3Tlt1xL4wzmAYxGNFV36Hb+VfPc9PYU+E25DAnswXv3ODDu/yyWjQDbXMo5AGWkQVjLgQExuVu8I/UaZhPQ==} @@ -2437,10 +2429,10 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': - resolution: {integrity: sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==} + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.16': + resolution: {integrity: sha512-tj7XRemQcOcFwv7qhpUxMTBbI5mWMlE4c1Omhg5+h8GuLXzyj8HviYgR+bB2DMDgRqUE+jiDleqSCRjx4aYk/Q==} engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] + cpu: [arm64] os: [win32] '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': @@ -2455,8 +2447,11 @@ packages: cpu: [x64] os: [win32] - '@rolldown/pluginutils@1.0.0-rc.12': - resolution: {integrity: sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.16': + resolution: {integrity: sha512-PH5DRZT+F4f2PTXRXR8uJxnBq2po/xFtddyabTJVJs/ZYVHqXPEgNIr35IHTEa6bpa0Q8Awg+ymkTaGnKITw4g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] '@rolldown/pluginutils@1.0.0-rc.13': resolution: {integrity: sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA==} @@ -2464,6 +2459,9 @@ packages: '@rolldown/pluginutils@1.0.0-rc.15': resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==} + '@rolldown/pluginutils@1.0.0-rc.16': + resolution: {integrity: sha512-45+YtqxLYKDWQouLKCrpIZhke+nXxhsw+qAHVzHDVwttyBlHNBVs2K25rDXrZzhpTp9w1FlAlvweV1H++fdZoA==} + '@rolldown/pluginutils@1.0.0-rc.2': resolution: {integrity: sha512-izyXV/v+cHiRfozX62W9htOAvwMo4/bXKDrQ+vom1L1qRuexPock/7VZDAhnpHCLNejd3NJ6hiab+tO0D44Rgw==} @@ -2866,8 +2864,8 @@ packages: '@types/stylus@0.48.43': resolution: {integrity: sha512-72dv/zdhuyXWVHUXG2VTPEQdOG+oen95/DNFx2aMFFaY6LoITI6PwEqf5x31JF49kp2w9hvUzkNfTGBIeg61LQ==} - '@types/three@0.183.1': - resolution: {integrity: sha512-f2Pu5Hrepfgavttdye3PsH5RWyY/AvdZQwIVhrc4uNtvF7nOWJacQKcoVJn0S4f0yYbmAE6AR+ve7xDcuYtMGw==} + '@types/three@0.184.0': + resolution: {integrity: sha512-4mY2tZAu0y0B0567w7013BBXSpsP0+Z48NJvmNo4Y/Pf76yCyz6Jw4P3tUVs10WuYNXXZ+wmHyGWpCek3amJxA==} '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} @@ -2884,11 +2882,11 @@ packages: '@types/webxr@0.5.24': resolution: {integrity: sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==} - '@typescript-eslint/eslint-plugin@8.58.0': - resolution: {integrity: sha512-RLkVSiNuUP1C2ROIWfqX+YcUfLaSnxGE/8M+Y57lopVwg9VTYYfhuz15Yf1IzCKgZj6/rIbYTmJCUSqr76r0Wg==} + '@typescript-eslint/eslint-plugin@8.58.2': + resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.58.0 + '@typescript-eslint/parser': ^8.58.2 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' @@ -2899,6 +2897,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/parser@8.58.2': + resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.1.0' + '@typescript-eslint/project-service@8.58.0': resolution: {integrity: sha512-8Q/wBPWLQP1j16NxoPNIKpDZFMaxl7yWIoqXWYeWO+Bbd2mjgvoF0dxP2jKZg5+x49rgKdf7Ck473M8PC3V9lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2937,8 +2942,8 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.58.0': - resolution: {integrity: sha512-aGsCQImkDIqMyx1u4PrVlbi/krmDsQUs4zAcCV6M7yPcPev+RqVlndsJy9kJ8TLihW9TZ0kbDAzctpLn5o+lOg==} + '@typescript-eslint/type-utils@8.58.2': + resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -3002,8 +3007,8 @@ packages: '@vitest/browser': optional: true - '@vitest/eslint-plugin@1.6.14': - resolution: {integrity: sha512-PXZ5ysw4eHU9h8nDtBvVcGC7Z2C/T9CFdheqSw1NNXFYqViojub0V9bgdYI67iBTOcra2mwD0EYldlY9bGPf2Q==} + '@vitest/eslint-plugin@1.6.16': + resolution: {integrity: sha512-2pBN1F1JXq6zTSaYC58CMJa7pGxXIRsLfOioeZM4cPE3pRdSh1ySTSoHPQlOTEF5WgoVzWZQxhGQ3ygT78hOVg==} engines: {node: '>=18'} peerDependencies: '@typescript-eslint/eslint-plugin': '*' @@ -3366,9 +3371,6 @@ packages: peerDependencies: vue: ^3.5.0 - '@webgpu/types@0.1.69': - resolution: {integrity: sha512-RPmm6kgRbI8e98zSD3RVACvnuktIja5+yLgDAkTmxLr90BEwdTXRQWNLF3ETTTyH/8mKhznZuN5AveXYFEsMGQ==} - '@xmldom/xmldom@0.9.9': resolution: {integrity: sha512-qycIHAucxy/LXAYIjmLmtQ8q9GPnMbnjG1KXhWm9o5sCr6pOYDATkMPiTNa6/v8eELyqOQ2FsEqeoFYmgv/gJg==} engines: {node: '>=14.6'} @@ -3545,8 +3547,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.18: - resolution: {integrity: sha512-VSnGQAOLtP5mib/DPyg2/t+Tlv65NTBz83BJBJvmLVHHuKJVaDOBvJJykiT5TR++em5nfAySPccDZDa4oSrn8A==} + baseline-browser-mapping@2.10.19: + resolution: {integrity: sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==} engines: {node: '>=6.0.0'} hasBin: true @@ -4542,8 +4544,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.2.0: - resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==} + eslint@10.2.1: + resolution: {integrity: sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -4888,8 +4890,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@17.4.0: - resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} + globals@17.5.0: + resolution: {integrity: sha512-qoV+HK2yFl/366t2/Cb3+xxPUo5BuMynomoDmiaZBIdbs+0pYbjfZU+twLhGKp4uCZ/+NbtpVepH5bGCxRyy2g==} engines: {node: '>=18'} globalthis@1.0.4: @@ -5012,8 +5014,8 @@ packages: hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - hookable@6.1.0: - resolution: {integrity: sha512-ZoKZSJgu8voGK2geJS+6YtYjvIzu9AOM/KZXsBxr83uhLL++e9pEv/dlgwgy3dvHg06kTz6JOh1hk3C8Ceiymw==} + hookable@6.1.1: + resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} hookified@1.15.1: resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} @@ -5111,8 +5113,8 @@ packages: import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - import-without-cache@0.2.5: - resolution: {integrity: sha512-B6Lc2s6yApwnD2/pMzFh/d5AVjdsDXjgkeJ766FmFuJELIGHNycKRj+l3A39yZPM4CchqNCB4RITEAYB1KUM6A==} + import-without-cache@0.3.3: + resolution: {integrity: sha512-bDxwDdF04gm550DfZHgffvlX+9kUlcz32UD0AeBTmVPFiWkrexF2XVmiuFFbDhiFuP8fQkrkvI2KdSNPYWAXkQ==} engines: {node: '>=20.19.0'} imsc@1.1.5: @@ -5801,8 +5803,8 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - memfs@4.57.1: - resolution: {integrity: sha512-WvzrWPwMQT+PtbX2Et64R4qXKK0fj/8pO85MrUCzymX3twwCiJCdvntW3HdhG1teLJcHDDLIKx5+c3HckWYZtQ==} + memfs@4.57.2: + resolution: {integrity: sha512-2nWzSsJzrukurSDna4Z0WywuScK4Id3tSKejgu74u8KCdW4uNrseKRSIDg75C6Yw5ZRqBe0F0EtMNlTbUq8bAQ==} peerDependencies: tslib: '2' @@ -5824,8 +5826,8 @@ packages: mermaid@11.14.0: resolution: {integrity: sha512-GSGloRsBs+JINmmhl0JDwjpuezCsHB4WGI4NASHxL3fHo3o/BRXTxhDLKnln8/Q0lRFRyDdEjmk1/d5Sn1Xz8g==} - meshoptimizer@1.0.1: - resolution: {integrity: sha512-Vix+QlA1YYT3FwmBBZ+49cE5y/b+pRrcXKqGpS5ouh33d3lSp2PoTpCw19E0cKDFWalembrHnIaZetf27a+W2g==} + meshoptimizer@1.1.1: + resolution: {integrity: sha512-oRFNWJRDA/WTrVj7NWvqa5HqE1t9MYDj2VaWirQCzCCrAd2GHrqR/sQezCxiWATPNlKTcRaPRHPJwIRoPBAp5g==} mhchemparser@4.2.1: resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} @@ -6003,8 +6005,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@5.1.7: - resolution: {integrity: sha512-ua3NDgISf6jdwezAheMOk4mbE1LXjm1DfMUDMuJf4AqxLFK3ccGpgWizwa5YV7Yz9EpXwEaWoRXSb/BnV0t5dQ==} + nanoid@5.1.9: + resolution: {integrity: sha512-ZUvP7KeBLe3OZ1ypw6dI/TzYJuvHP77IM4Ry73waSQTLn8/g8rpdjfyVAh7t1/+FjBtG4lCP42MEbDxOsRpBMw==} engines: {node: ^18 || >=20} hasBin: true @@ -6333,6 +6335,10 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + postcss@8.5.10: + resolution: {integrity: sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==} + engines: {node: ^10 || ^12 || >=14} + postcss@8.5.8: resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} engines: {node: ^10 || ^12 || >=14} @@ -6341,10 +6347,10 @@ packages: resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==} engines: {node: ^10 || ^12 || >=14} - postprocessing@6.39.0: - resolution: {integrity: sha512-/G6JY8hs426lcto/pBZlnFSkyEo1fHsh4gy7FPJtq1SaSUOzJgDW6f6f1K/+aMOYzK/eQEefyOb3++jPPIUeDA==} + postprocessing@6.39.1: + resolution: {integrity: sha512-R2dG2zy+BAx3USl5EHw+PvnrlbT5PKnZVp3se0HCR0pWH8WQdh742yNG4YWOsq6c0bFpffk0Gd2RqPeoP/wKng==} peerDependencies: - three: '>= 0.168.0 < 0.184.0' + three: '>= 0.168.0 < 0.185.0' prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -6540,11 +6546,6 @@ packages: vue-tsc: optional: true - rolldown@1.0.0-rc.12: - resolution: {integrity: sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rolldown@1.0.0-rc.13: resolution: {integrity: sha512-bvVj8YJmf0rq4pSFmH7laLa6pYrhghv3PRzrCdRAr23g66zOKVJ4wkvFtgohtPLWmthgg8/rkaqRHrpUEh0Zbw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -6555,6 +6556,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.0.0-rc.16: + resolution: {integrity: sha512-rzi5WqKzEZw3SooTt7cgm4eqIoujPIyGcJNGFL7iPEuajQw7vxMHUkXylu4/vhCkJGXsgRmxqMKXUpT6FEgl0g==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + roughjs@4.6.6: resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} @@ -7017,8 +7023,8 @@ packages: peerDependencies: stylelint: ^16.8.2 || ^17.0.0 - stylelint@17.7.0: - resolution: {integrity: sha512-n/+4RheCRl+cecGnF+S/Adz59iCRaK9BVznJYB+a7GOksfwNzjiOPnYv17pTO0HgRse9IiqbMtekGNhOb2tVYQ==} + stylelint@17.8.0: + resolution: {integrity: sha512-oHkld9T60LDSaUQ4CSVc+tlt9eUoDlxhaGWShsUCKyIL14boZfmK5bSphZqx64aiC5tCqX+BsQMTMoSz8D1zIg==} engines: {node: '>=20.19.0'} hasBin: true @@ -7093,8 +7099,8 @@ packages: peerDependencies: tslib: ^2 - three@0.183.2: - resolution: {integrity: sha512-di3BsL2FEQ1PA7Hcvn4fyJOlxRRgFYBpMTcyOgkwJIaDOdJMebEFPA+t98EvjuljDx4hNulAGwF6KIjtwI5jgQ==} + three@0.184.0: + resolution: {integrity: sha512-wtTRjG92pM5eUg/KuUnHsqSAlPM296brTOcLgMRqEeylYTh/CdtvKUvCyyCQTzFuStieWxvZb8mVTMvdPyUpxg==} through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -7184,14 +7190,14 @@ packages: tsconfig-vuepress@7.0.0: resolution: {integrity: sha512-P3EoKacv1UWp5X30/huXjxUinnj8rl4FcTS29nW4TANflkvoh7JDDiXp2c/Tmcy7Ex4N+3exjr/BjPn7Jadnew==} - tsdown@0.21.8: - resolution: {integrity: sha512-rHDIER4JU5owYTWptvyDk6pwfA5lCft1P+11HLGeF0uj0CB7vopFvr/E8QOaRmegeyHIEsu4+03j7ysvdgBAVA==} + tsdown@0.21.9: + resolution: {integrity: sha512-tZPv2zMaMnjj9H9h0SDqpSXa9YWVZWHlG46DnSgNTFX6aq001MSI8kuBzJumr/u099nWj+1v5S7rhbnHk5jCHA==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: '@arethetypeswrong/core': ^0.18.1 - '@tsdown/css': 0.21.8 - '@tsdown/exe': 0.21.8 + '@tsdown/css': 0.21.9 + '@tsdown/exe': 0.21.9 '@vitejs/devtools': '*' publint: ^0.3.0 typescript: ^5.0.0 || ^6.0.0 @@ -7255,8 +7261,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript@6.0.2: - resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} hasBin: true @@ -7349,8 +7355,8 @@ packages: resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} engines: {node: ^20.19.0 || >=22.12.0} - unrun@0.2.34: - resolution: {integrity: sha512-LyaghRBR++r7svhDK6tnDz2XaYHWdneBOA0jbS8wnRsHerI9MFljX4fIiTgbbNbEVzZ0C9P1OjWLLe1OqoaaEw==} + unrun@0.2.36: + resolution: {integrity: sha512-ICAGv44LHSKjCdI4B4rk99lJLHXBweutO4MUwu3cavMlYtXID0Tn5e1Kwe/Uj6BSAuHHXfi1JheFVCYhcXHfAg==} engines: {node: '>=20.19.0'} hasBin: true peerDependencies: @@ -7830,11 +7836,11 @@ snapshots: fast-wrap-ansi: 0.1.6 sisteransi: 1.0.5 - '@commitlint/cli@20.5.0(@types/node@25.6.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.2)': + '@commitlint/cli@20.5.0(@types/node@25.6.0)(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0)(typescript@6.0.3)': dependencies: '@commitlint/format': 20.5.0 '@commitlint/lint': 20.5.0 - '@commitlint/load': 20.5.0(@types/node@25.6.0)(typescript@6.0.2) + '@commitlint/load': 20.5.0(@types/node@25.6.0)(typescript@6.0.3) '@commitlint/read': 20.5.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.4.0) '@commitlint/types': 20.5.0 tinyexec: 1.0.4 @@ -7883,14 +7889,14 @@ snapshots: '@commitlint/rules': 20.5.0 '@commitlint/types': 20.5.0 - '@commitlint/load@20.5.0(@types/node@25.6.0)(typescript@6.0.2)': + '@commitlint/load@20.5.0(@types/node@25.6.0)(typescript@6.0.3)': dependencies: '@commitlint/config-validator': 20.5.0 '@commitlint/execute-rule': 20.0.0 '@commitlint/resolve-extends': 20.5.0 '@commitlint/types': 20.5.0 - cosmiconfig: 9.0.1(typescript@6.0.2) - cosmiconfig-typescript-loader: 6.2.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@6.0.2))(typescript@6.0.2) + cosmiconfig: 9.0.1(typescript@6.0.3) + cosmiconfig-typescript-loader: 6.2.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@6.0.3))(typescript@6.0.3) is-plain-obj: 4.1.0 lodash.mergewith: 4.6.2 picocolors: 1.1.1 @@ -7987,11 +7993,11 @@ snapshots: '@docsearch/js@4.6.2': {} - '@e18e/eslint-plugin@0.3.0(eslint@10.2.0(jiti@2.6.1))': + '@e18e/eslint-plugin@0.3.0(eslint@10.2.1(jiti@2.6.1))': dependencies: - eslint-plugin-depend: 1.5.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-depend: 1.5.0(eslint@10.2.1(jiti@2.6.1)) optionalDependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) '@emnapi/core@1.9.1': dependencies: @@ -8121,24 +8127,24 @@ snapshots: '@esbuild/win32-x64@0.28.0': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@10.2.0(jiti@2.6.1))': + '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@10.2.1(jiti@2.6.1))': dependencies: escape-string-regexp: 4.0.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) ignore: 7.0.5 - '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.2.1(jiti@2.6.1))': dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint/compat@2.0.3(eslint@10.2.0(jiti@2.6.1))': + '@eslint/compat@2.0.3(eslint@10.2.1(jiti@2.6.1))': dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 optionalDependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) '@eslint/config-array@0.23.5': dependencies: @@ -8148,25 +8154,17 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.5.3': - dependencies: - '@eslint/core': 1.1.1 - '@eslint/config-helpers@0.5.5': dependencies: '@eslint/core': 1.2.1 - '@eslint/core@1.1.1': - dependencies: - '@types/json-schema': 7.0.15 - '@eslint/core@1.2.1': dependencies: '@types/json-schema': 7.0.15 '@eslint/markdown@8.0.1': dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.6.1 github-slugger: 2.0.0 mdast-util-from-markdown: 2.0.3 @@ -8184,7 +8182,7 @@ snapshots: '@eslint/plugin-kit@0.6.1': dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 levn: 0.4.1 '@eslint/plugin-kit@0.7.1': @@ -8233,7 +8231,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@iconify/json@2.2.462': + '@iconify/json@2.2.463': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -8246,10 +8244,10 @@ snapshots: '@iconify/types': 2.0.0 mlly: 1.8.2 - '@iconify/vue@5.0.0(vue@3.5.32(typescript@6.0.2))': + '@iconify/vue@5.0.0(vue@3.5.32(typescript@6.0.3))': dependencies: '@iconify/types': 2.0.0 - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) '@isaacs/cliui@8.0.2': dependencies: @@ -8303,58 +8301,58 @@ snapshots: dependencies: tslib: 2.8.1 - '@jsonjoy.com/fs-core@4.57.1(tslib@2.8.1)': + '@jsonjoy.com/fs-core@4.57.2(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-node-builtins': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) thingies: 2.6.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-fsa@4.57.1(tslib@2.8.1)': + '@jsonjoy.com/fs-fsa@4.57.2(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-core': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.1(tslib@2.8.1) + '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) thingies: 2.6.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node-builtins@4.57.1(tslib@2.8.1)': + '@jsonjoy.com/fs-node-builtins@4.57.2(tslib@2.8.1)': dependencies: tslib: 2.8.1 - '@jsonjoy.com/fs-node-to-fsa@4.57.1(tslib@2.8.1)': + '@jsonjoy.com/fs-node-to-fsa@4.57.2(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-fsa': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.1(tslib@2.8.1) + '@jsonjoy.com/fs-fsa': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node-utils@4.57.1(tslib@2.8.1)': + '@jsonjoy.com/fs-node-utils@4.57.2(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-node-builtins': 4.57.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-node@4.57.1(tslib@2.8.1)': + '@jsonjoy.com/fs-node@4.57.2(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-core': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-print': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-snapshot': 4.57.1(tslib@2.8.1) + '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-print': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-snapshot': 4.57.2(tslib@2.8.1) glob-to-regex.js: 1.2.0(tslib@2.8.1) thingies: 2.6.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-print@4.57.1(tslib@2.8.1)': + '@jsonjoy.com/fs-print@4.57.2(tslib@2.8.1)': dependencies: - '@jsonjoy.com/fs-node-utils': 4.57.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) tree-dump: 1.1.0(tslib@2.8.1) tslib: 2.8.1 - '@jsonjoy.com/fs-snapshot@4.57.1(tslib@2.8.1)': + '@jsonjoy.com/fs-snapshot@4.57.2(tslib@2.8.1)': dependencies: '@jsonjoy.com/buffers': 17.67.0(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.1(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) '@jsonjoy.com/json-pack': 17.67.0(tslib@2.8.1) '@jsonjoy.com/util': 17.67.0(tslib@2.8.1) tslib: 2.8.1 @@ -8653,14 +8651,14 @@ snapshots: '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: '@emnapi/core': 1.9.2 '@emnapi/runtime': 1.9.2 '@tybys/wasm-util': 0.10.1 optional: true - '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': + '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': dependencies: '@emnapi/core': 1.9.2 '@emnapi/runtime': 1.9.2 @@ -8681,12 +8679,12 @@ snapshots: '@ota-meshi/ast-token-store@0.3.0': {} - '@oxc-project/types@0.122.0': {} - '@oxc-project/types@0.123.0': {} '@oxc-project/types@0.124.0': {} + '@oxc-project/types@0.126.0': {} + '@parcel/watcher-android-arm64@2.5.6': optional: true @@ -8748,14 +8746,14 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.6 optional: true - '@pengzhanbo/eslint-config-vue@2.3.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0)(typescript@6.0.2)(vitest@4.1.4)': + '@pengzhanbo/eslint-config-vue@2.4.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1)))(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3))(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@vue/compiler-sfc@3.5.32)(eslint@10.2.1(jiti@2.6.1))(globals@17.5.0)(typescript@6.0.3)(vitest@4.1.4)': dependencies: - '@pengzhanbo/eslint-config': 2.3.0(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))))(eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)(vitest@4.1.4)(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))) - eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))) - eslint-plugin-vuejs-accessibility: 2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)) - vue-eslint-parser: 10.4.0(eslint@10.2.0(jiti@2.6.1)) + '@pengzhanbo/eslint-config': 2.4.0(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3))(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1)))(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.1(jiti@2.6.1))))(eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.1(jiti@2.6.1))(globals@17.5.0))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)(vitest@4.1.4)(vue-eslint-parser@10.4.0(eslint@10.2.1(jiti@2.6.1))) + eslint: 10.2.1(jiti@2.6.1) + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1)))(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.1(jiti@2.6.1))) + eslint-plugin-vuejs-accessibility: 2.5.0(eslint@10.2.1(jiti@2.6.1))(globals@17.5.0) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.1(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@10.2.1(jiti@2.6.1)) transitivePeerDependencies: - '@angular-eslint/eslint-plugin' - '@angular-eslint/eslint-plugin-template' @@ -8783,46 +8781,46 @@ snapshots: - typescript - vitest - '@pengzhanbo/eslint-config@2.3.0(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))))(eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)(vitest@4.1.4)(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1)))': + '@pengzhanbo/eslint-config@2.4.0(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3))(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1)))(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.1(jiti@2.6.1))))(eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.1(jiti@2.6.1))(globals@17.5.0))(eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.1(jiti@2.6.1)))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)(vitest@4.1.4)(vue-eslint-parser@10.4.0(eslint@10.2.1(jiti@2.6.1)))': dependencies: '@antfu/install-pkg': 1.1.0 - '@e18e/eslint-plugin': 0.3.0(eslint@10.2.0(jiti@2.6.1)) - '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@10.2.0(jiti@2.6.1)) + '@e18e/eslint-plugin': 0.3.0(eslint@10.2.1(jiti@2.6.1)) + '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@10.2.1(jiti@2.6.1)) '@eslint/markdown': 8.0.1 - '@stylistic/eslint-plugin': 5.10.0(eslint@10.2.0(jiti@2.6.1)) - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@vitest/eslint-plugin': 1.6.14(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)(vitest@4.1.4) - eslint: 10.2.0(jiti@2.6.1) - eslint-config-flat-gitignore: 2.3.0(eslint@10.2.0(jiti@2.6.1)) + '@stylistic/eslint-plugin': 5.10.0(eslint@10.2.1(jiti@2.6.1)) + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@vitest/eslint-plugin': 1.6.16(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)(vitest@4.1.4) + eslint: 10.2.1(jiti@2.6.1) + eslint-config-flat-gitignore: 2.3.0(eslint@10.2.1(jiti@2.6.1)) eslint-flat-config-utils: 3.1.0 - eslint-merge-processors: 2.0.0(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-antfu: 3.2.2(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-erasable-syntax-only: 0.4.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - eslint-plugin-import-lite: 0.6.0(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-jsdoc: 62.9.0(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-jsonc: 3.1.2(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-n: 17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + eslint-merge-processors: 2.0.0(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-antfu: 3.2.2(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3))(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-erasable-syntax-only: 0.4.0(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + eslint-plugin-import-lite: 0.6.0(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-jsdoc: 62.9.0(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-jsonc: 3.1.2(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-n: 17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 5.8.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - eslint-plugin-pnpm: 1.6.0(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-regexp: 3.1.0(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-toml: 1.3.1(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-unicorn: 64.0.0(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1)) - eslint-plugin-vuejs-accessibility: 2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0) - eslint-plugin-yml: 3.3.1(eslint@10.2.0(jiti@2.6.1)) - globals: 17.4.0 + eslint-plugin-perfectionist: 5.8.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + eslint-plugin-pnpm: 1.6.0(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-regexp: 3.1.0(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-toml: 1.3.1(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-unicorn: 64.0.0(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)) + eslint-plugin-vuejs-accessibility: 2.5.0(eslint@10.2.1(jiti@2.6.1))(globals@17.5.0) + eslint-plugin-yml: 3.3.1(eslint@10.2.1(jiti@2.6.1)) + globals: 17.5.0 local-pkg: 1.1.2 parse-gitignore: 2.0.0 toml-eslint-parser: 1.0.3 yaml-eslint-parser: 2.0.0 optionalDependencies: - eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)) - vue-eslint-parser: 10.4.0(eslint@10.2.0(jiti@2.6.1)) + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1)))(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.1(jiti@2.6.1))) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.1(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@10.2.1(jiti@2.6.1)) transitivePeerDependencies: - '@eslint/json' - '@typescript-eslint/rule-tester' @@ -8833,22 +8831,22 @@ snapshots: - typescript - vitest - '@pengzhanbo/stylelint-config@2.3.0(stylelint@17.7.0(typescript@6.0.2))': + '@pengzhanbo/stylelint-config@2.4.0(stylelint@17.8.0(typescript@6.0.3))': dependencies: '@pengzhanbo/utils': 3.3.1 - '@stylelint-types/stylelint-order': 7.0.1(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2)) - '@stylelint-types/stylelint-scss': 7.0.0(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2)) - '@stylelint-types/stylelint-stylistic': 5.0.0(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2)) - '@stylistic/stylelint-plugin': 5.1.0(stylelint@17.7.0(typescript@6.0.2)) + '@stylelint-types/stylelint-order': 7.0.1(stylelint-define-config@17.5.0(stylelint@17.8.0(typescript@6.0.3)))(stylelint@17.8.0(typescript@6.0.3)) + '@stylelint-types/stylelint-scss': 7.0.0(stylelint-define-config@17.5.0(stylelint@17.8.0(typescript@6.0.3)))(stylelint@17.8.0(typescript@6.0.3)) + '@stylelint-types/stylelint-stylistic': 5.0.0(stylelint-define-config@17.5.0(stylelint@17.8.0(typescript@6.0.3)))(stylelint@17.8.0(typescript@6.0.3)) + '@stylistic/stylelint-plugin': 5.1.0(stylelint@17.8.0(typescript@6.0.3)) local-pkg: 1.1.2 - postcss: 8.5.9 + postcss: 8.5.10 postcss-html: 1.8.1 - stylelint: 17.7.0(typescript@6.0.2) - stylelint-config-html: 1.1.0(postcss-html@1.8.1)(stylelint@17.7.0(typescript@6.0.2)) - stylelint-config-standard: 40.0.0(stylelint@17.7.0(typescript@6.0.2)) - stylelint-config-standard-scss: 17.0.0(postcss@8.5.9)(stylelint@17.7.0(typescript@6.0.2)) - stylelint-define-config: 17.5.0(stylelint@17.7.0(typescript@6.0.2)) - stylelint-order: 8.1.1(stylelint@17.7.0(typescript@6.0.2)) + stylelint: 17.8.0(typescript@6.0.3) + stylelint-config-html: 1.1.0(postcss-html@1.8.1)(stylelint@17.8.0(typescript@6.0.3)) + stylelint-config-standard: 40.0.0(stylelint@17.8.0(typescript@6.0.3)) + stylelint-config-standard-scss: 17.0.0(postcss@8.5.10)(stylelint@17.8.0(typescript@6.0.3)) + stylelint-define-config: 17.5.0(stylelint@17.8.0(typescript@6.0.3)) + stylelint-order: 8.1.1(stylelint@17.8.0(typescript@6.0.3)) '@pengzhanbo/utils@3.3.1': {} @@ -8863,16 +8861,13 @@ snapshots: dependencies: quansync: 1.0.0 - '@rolldown/binding-android-arm64@1.0.0-rc.12': - optional: true - '@rolldown/binding-android-arm64@1.0.0-rc.13': optional: true '@rolldown/binding-android-arm64@1.0.0-rc.15': optional: true - '@rolldown/binding-darwin-arm64@1.0.0-rc.12': + '@rolldown/binding-android-arm64@1.0.0-rc.16': optional: true '@rolldown/binding-darwin-arm64@1.0.0-rc.13': @@ -8881,7 +8876,7 @@ snapshots: '@rolldown/binding-darwin-arm64@1.0.0-rc.15': optional: true - '@rolldown/binding-darwin-x64@1.0.0-rc.12': + '@rolldown/binding-darwin-arm64@1.0.0-rc.16': optional: true '@rolldown/binding-darwin-x64@1.0.0-rc.13': @@ -8890,7 +8885,7 @@ snapshots: '@rolldown/binding-darwin-x64@1.0.0-rc.15': optional: true - '@rolldown/binding-freebsd-x64@1.0.0-rc.12': + '@rolldown/binding-darwin-x64@1.0.0-rc.16': optional: true '@rolldown/binding-freebsd-x64@1.0.0-rc.13': @@ -8899,7 +8894,7 @@ snapshots: '@rolldown/binding-freebsd-x64@1.0.0-rc.15': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.12': + '@rolldown/binding-freebsd-x64@1.0.0-rc.16': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.13': @@ -8908,7 +8903,7 @@ snapshots: '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.12': + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.16': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.13': @@ -8917,7 +8912,7 @@ snapshots: '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.0-rc.12': + '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.16': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-rc.13': @@ -8926,7 +8921,7 @@ snapshots: '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.12': + '@rolldown/binding-linux-arm64-musl@1.0.0-rc.16': optional: true '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.13': @@ -8935,7 +8930,7 @@ snapshots: '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.12': + '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.16': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.13': @@ -8944,7 +8939,7 @@ snapshots: '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.0-rc.12': + '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.16': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-rc.13': @@ -8953,7 +8948,7 @@ snapshots: '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15': optional: true - '@rolldown/binding-linux-x64-musl@1.0.0-rc.12': + '@rolldown/binding-linux-x64-gnu@1.0.0-rc.16': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-rc.13': @@ -8962,7 +8957,7 @@ snapshots: '@rolldown/binding-linux-x64-musl@1.0.0-rc.15': optional: true - '@rolldown/binding-openharmony-arm64@1.0.0-rc.12': + '@rolldown/binding-linux-x64-musl@1.0.0-rc.16': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-rc.13': @@ -8971,12 +8966,7 @@ snapshots: '@rolldown/binding-openharmony-arm64@1.0.0-rc.15': optional: true - '@rolldown/binding-wasm32-wasi@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)': - dependencies: - '@napi-rs/wasm-runtime': 1.1.2(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' + '@rolldown/binding-openharmony-arm64@1.0.0-rc.16': optional: true '@rolldown/binding-wasm32-wasi@1.0.0-rc.13': @@ -8993,7 +8983,11 @@ snapshots: '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.12': + '@rolldown/binding-wasm32-wasi@1.0.0-rc.16': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) optional: true '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.13': @@ -9002,7 +8996,7 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15': optional: true - '@rolldown/binding-win32-x64-msvc@1.0.0-rc.12': + '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.16': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-rc.13': @@ -9011,12 +9005,15 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15': optional: true - '@rolldown/pluginutils@1.0.0-rc.12': {} + '@rolldown/binding-win32-x64-msvc@1.0.0-rc.16': + optional: true '@rolldown/pluginutils@1.0.0-rc.13': {} '@rolldown/pluginutils@1.0.0-rc.15': {} + '@rolldown/pluginutils@1.0.0-rc.16': {} + '@rolldown/pluginutils@1.0.0-rc.2': {} '@shikijs/core@4.0.2': @@ -9057,12 +9054,12 @@ snapshots: '@shikijs/core': 4.0.2 '@shikijs/types': 4.0.2 - '@shikijs/twoslash@4.0.2(typescript@6.0.2)': + '@shikijs/twoslash@4.0.2(typescript@6.0.3)': dependencies: '@shikijs/core': 4.0.2 '@shikijs/types': 4.0.2 - twoslash: 0.3.6(typescript@6.0.2) - typescript: 6.0.2 + twoslash: 0.3.6(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -9092,44 +9089,44 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@stylelint-types/stylelint-order@7.0.1(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2))': + '@stylelint-types/stylelint-order@7.0.1(stylelint-define-config@17.5.0(stylelint@17.8.0(typescript@6.0.3)))(stylelint@17.8.0(typescript@6.0.3))': dependencies: - stylelint-define-config: 17.5.0(stylelint@17.7.0(typescript@6.0.2)) + stylelint-define-config: 17.5.0(stylelint@17.8.0(typescript@6.0.3)) optionalDependencies: - stylelint: 17.7.0(typescript@6.0.2) + stylelint: 17.8.0(typescript@6.0.3) - '@stylelint-types/stylelint-scss@7.0.0(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2))': + '@stylelint-types/stylelint-scss@7.0.0(stylelint-define-config@17.5.0(stylelint@17.8.0(typescript@6.0.3)))(stylelint@17.8.0(typescript@6.0.3))': dependencies: - stylelint-define-config: 17.5.0(stylelint@17.7.0(typescript@6.0.2)) + stylelint-define-config: 17.5.0(stylelint@17.8.0(typescript@6.0.3)) optionalDependencies: - stylelint: 17.7.0(typescript@6.0.2) + stylelint: 17.8.0(typescript@6.0.3) - '@stylelint-types/stylelint-stylistic@5.0.0(stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)))(stylelint@17.7.0(typescript@6.0.2))': + '@stylelint-types/stylelint-stylistic@5.0.0(stylelint-define-config@17.5.0(stylelint@17.8.0(typescript@6.0.3)))(stylelint@17.8.0(typescript@6.0.3))': dependencies: - stylelint-define-config: 17.5.0(stylelint@17.7.0(typescript@6.0.2)) + stylelint-define-config: 17.5.0(stylelint@17.8.0(typescript@6.0.3)) optionalDependencies: - stylelint: 17.7.0(typescript@6.0.2) + stylelint: 17.8.0(typescript@6.0.3) - '@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1))': + '@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@typescript-eslint/types': 8.58.2 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 picomatch: 4.0.4 - '@stylistic/stylelint-plugin@5.1.0(stylelint@17.7.0(typescript@6.0.2))': + '@stylistic/stylelint-plugin@5.1.0(stylelint@17.8.0(typescript@6.0.3))': dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - postcss: 8.5.9 + postcss: 8.5.10 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 style-search: 0.1.0 - stylelint: 17.7.0(typescript@6.0.2) + stylelint: 17.8.0(typescript@6.0.3) '@svta/cml-608@1.0.1': {} @@ -9433,15 +9430,14 @@ snapshots: dependencies: '@types/node': 25.6.0 - '@types/three@0.183.1': + '@types/three@0.184.0': dependencies: '@dimforge/rapier3d-compat': 0.12.0 '@tweenjs/tween.js': 23.1.3 '@types/stats.js': 0.17.4 '@types/webxr': 0.5.24 - '@webgpu/types': 0.1.69 fflate: 0.8.2 - meshoptimizer: 1.0.1 + meshoptimizer: 1.1.1 '@types/trusted-types@2.0.7': {} @@ -9453,59 +9449,71 @@ snapshots: '@types/webxr@0.5.24': {} - '@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/type-utils': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/visitor-keys': 8.58.0 - eslint: 10.2.0(jiti@2.6.1) + '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.58.2 + eslint: 10.2.1(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/parser@8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.58.0 '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.3) '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3 - eslint: 10.2.0(jiti@2.6.1) - typescript: 6.0.2 + eslint: 10.2.1(jiti@2.6.1) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.0(typescript@6.0.2)': + '@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.2) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/types': 8.58.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.58.2 + debug: 4.4.3 + eslint: 10.2.1(jiti@2.6.1) + typescript: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/project-service@8.58.0(typescript@6.0.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.3) '@typescript-eslint/types': 8.58.2 debug: 4.4.3 - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.2(typescript@6.0.2)': + '@typescript-eslint/project-service@8.58.2(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.3) '@typescript-eslint/types': 8.58.2 debug: 4.4.3 - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/rule-tester@8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: - '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) ajv: 6.14.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) json-stable-stringify-without-jsonify: 1.0.1 lodash.merge: 4.6.2 semver: 7.7.4 @@ -9523,66 +9531,66 @@ snapshots: '@typescript-eslint/types': 8.58.2 '@typescript-eslint/visitor-keys': 8.58.2 - '@typescript-eslint/tsconfig-utils@8.58.0(typescript@6.0.2)': + '@typescript-eslint/tsconfig-utils@8.58.0(typescript@6.0.3)': dependencies: - typescript: 6.0.2 + typescript: 6.0.3 - '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.2)': + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.3)': dependencies: - typescript: 6.0.2 + typescript: 6.0.3 - '@typescript-eslint/type-utils@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/type-utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.0(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) debug: 4.4.3 - eslint: 10.2.0(jiti@2.6.1) - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + eslint: 10.2.1(jiti@2.6.1) + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.58.2': {} - '@typescript-eslint/typescript-estree@8.58.0(typescript@6.0.2)': + '@typescript-eslint/typescript-estree@8.58.0(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.58.0(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.2) + '@typescript-eslint/project-service': 8.58.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.58.0(typescript@6.0.3) '@typescript-eslint/types': 8.58.2 '@typescript-eslint/visitor-keys': 8.58.0 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2)': + '@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.58.2(typescript@6.0.2) - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.2) + '@typescript-eslint/project-service': 8.58.2(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.3) '@typescript-eslint/types': 8.58.2 '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3 minimatch: 10.2.5 semver: 7.7.4 - tinyglobby: 0.2.15 - ts-api-utils: 2.5.0(typescript@6.0.2) - typescript: 6.0.2 + tinyglobby: 0.2.16 + ts-api-utils: 2.5.0(typescript@6.0.3) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)': + '@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@typescript-eslint/scope-manager': 8.58.2 '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - eslint: 10.2.0(jiti@2.6.1) - typescript: 6.0.2 + '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) + eslint: 10.2.1(jiti@2.6.1) + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -9596,10 +9604,10 @@ snapshots: '@typescript-eslint/types': 8.58.2 eslint-visitor-keys: 5.0.1 - '@typescript/vfs@1.6.4(typescript@6.0.2)': + '@typescript/vfs@1.6.4(typescript@6.0.3)': dependencies: debug: 4.4.3 - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -9610,11 +9618,11 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - '@vitejs/plugin-vue@6.0.5(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.2))': + '@vitejs/plugin-vue@6.0.5(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.0-rc.2 vite: 8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3) - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) '@vitest/coverage-v8@4.1.4(vitest@4.1.4)': dependencies: @@ -9630,14 +9638,14 @@ snapshots: tinyrainbow: 3.1.0 vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3)) - '@vitest/eslint-plugin@1.6.14(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2)(vitest@4.1.4)': + '@vitest/eslint-plugin@1.6.16(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3)(vitest@4.1.4)': dependencies: - '@typescript-eslint/scope-manager': 8.58.0 - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - eslint: 10.2.0(jiti@2.6.1) + '@typescript-eslint/scope-manager': 8.58.2 + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + eslint: 10.2.1(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - typescript: 6.0.2 + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + typescript: 6.0.3 vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3)) transitivePeerDependencies: - supports-color @@ -9693,7 +9701,7 @@ snapshots: dependencies: katex: 0.16.44 - '@vue-macros/common@3.1.2(vue@3.5.32(typescript@6.0.2))': + '@vue-macros/common@3.1.2(vue@3.5.32(typescript@6.0.3))': dependencies: '@vue/compiler-sfc': 3.5.31 ast-kit: 2.2.0 @@ -9701,7 +9709,7 @@ snapshots: magic-string-ast: 1.0.3 unplugin-utils: 0.3.1 optionalDependencies: - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) '@vue/compiler-core@3.5.31': dependencies: @@ -9738,7 +9746,7 @@ snapshots: '@vue/shared': 3.5.31 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.8 + postcss: 8.5.9 source-map-js: 1.2.1 '@vue/compiler-sfc@3.5.32': @@ -9750,7 +9758,7 @@ snapshots: '@vue/shared': 3.5.32 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.8 + postcss: 8.5.9 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.31': @@ -9802,22 +9810,22 @@ snapshots: '@vue/shared': 3.5.32 csstype: 3.2.3 - '@vue/server-renderer@3.5.32(vue@3.5.32(typescript@6.0.2))': + '@vue/server-renderer@3.5.32(vue@3.5.32(typescript@6.0.3))': dependencies: '@vue/compiler-ssr': 3.5.32 '@vue/shared': 3.5.32 - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) '@vue/shared@3.5.31': {} '@vue/shared@3.5.32': {} - '@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3)': + '@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3)': dependencies: - '@vitejs/plugin-vue': 6.0.5(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.2)) - '@vuepress/bundlerutils': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) - '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) - '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vitejs/plugin-vue': 6.0.5(vite@8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3))(vue@3.5.32(typescript@6.0.3)) + '@vuepress/bundlerutils': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) + '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) + '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 autoprefixer: 10.4.27(postcss@8.5.8) @@ -9826,8 +9834,8 @@ snapshots: postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3) rolldown: 1.0.0-rc.13 vite: 8.0.8(@types/node@25.6.0)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(yaml@2.8.3) - vue: 3.5.32(typescript@6.0.2) - vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@pinia/colada' - '@types/node' @@ -9847,14 +9855,14 @@ snapshots: - typescript - yaml - '@vuepress/bundlerutils@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2)': + '@vuepress/bundlerutils@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3)': dependencies: - '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) - '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) + '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 - vue: 3.5.32(typescript@6.0.2) - vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' @@ -9862,9 +9870,9 @@ snapshots: - supports-color - typescript - '@vuepress/cli@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2)': + '@vuepress/cli@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3)': dependencies: - '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 cac: 7.0.0 @@ -9878,26 +9886,26 @@ snapshots: - supports-color - typescript - '@vuepress/client@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2)': + '@vuepress/client@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3)': dependencies: '@vue/devtools-api': 8.1.1 '@vue/devtools-kit': 8.1.1 '@vuepress/shared': 2.0.0-rc.28 - vue: 3.5.32(typescript@6.0.2) - vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vue-router: 5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' - pinia - typescript - '@vuepress/core@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2)': + '@vuepress/core@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3)': dependencies: - '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) '@vuepress/markdown': 2.0.0-rc.28 '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' @@ -9905,26 +9913,26 @@ snapshots: - supports-color - typescript - '@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: '@vue/shared': 3.5.31 - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) cheerio: 1.2.0 fflate: 0.8.2 gray-matter: 4.0.3 - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) optionalDependencies: - '@vuepress/bundler-vite': 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) + '@vuepress/bundler-vite': 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3) transitivePeerDependencies: - typescript - '@vuepress/highlighter-helper@2.0.0-rc.128(@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))))(@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.2)))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/highlighter-helper@2.0.0-rc.128(@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))))(@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.3)))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) optionalDependencies: - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) '@vuepress/markdown@2.0.0-rc.28': dependencies: @@ -9947,68 +9955,68 @@ snapshots: transitivePeerDependencies: - supports-color - '@vuepress/plugin-cache@2.0.0-rc.128(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-cache@2.0.0-rc.128(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: ci-info: 4.4.0 lru-cache: 11.2.7 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) - '@vuepress/plugin-comment@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-comment@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) giscus: 1.6.0 - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-copy-code@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-copy-code@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-docsearch@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-docsearch@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: '@docsearch/css': 4.6.2 '@docsearch/js': 4.6.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) ts-debounce: 4.0.0 - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-git@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-git@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) rehype-parse: 9.0.1 rehype-sanitize: 6.0.0 rehype-stringify: 10.0.1 unified: 11.0.5 - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-llms@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-llms@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: '@types/mdast': 4.0.4 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) byte-size: 9.0.1 gray-matter: 4.0.3 mdast-util-from-markdown: 2.0.3 @@ -10017,7 +10025,7 @@ snapshots: tokenx: 1.3.0 unist-util-remove: 4.0.0 unist-util-visit: 5.1.0 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@75lb/nature' - '@vuepress/bundler-vite' @@ -10025,14 +10033,14 @@ snapshots: - supports-color - typescript - '@vuepress/plugin-markdown-chart@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(chart.js@4.5.1)(echarts@6.0.0)(flowchart.ts@3.0.1)(markdown-it@14.1.1)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.14.0)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-markdown-chart@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(chart.js@4.5.1)(echarts@6.0.0)(flowchart.ts@3.0.1)(markdown-it@14.1.1)(markmap-lib@0.18.12(markmap-common@0.18.9))(markmap-toolbar@0.18.12(markmap-common@0.18.9))(markmap-view@0.18.12(markmap-common@0.18.9))(mermaid@11.14.0)(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: '@mdit/plugin-container': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-plantuml': 0.24.2(markdown-it@14.1.1) - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) optionalDependencies: chart.js: 4.5.1 echarts: 6.0.0 @@ -10047,14 +10055,14 @@ snapshots: - markdown-it - typescript - '@vuepress/plugin-markdown-hint@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-markdown-hint@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: '@mdit/plugin-alert': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-container': 0.23.2(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' @@ -10062,41 +10070,41 @@ snapshots: - typescript - vue - '@vuepress/plugin-markdown-image@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-markdown-image@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: '@mdit/plugin-figure': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-img-lazyload': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-img-mark': 0.23.2(markdown-it@14.1.1) '@mdit/plugin-img-size': 0.23.2(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - markdown-it - typescript - '@vuepress/plugin-markdown-include@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-markdown-include@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(markdown-it@14.1.1)(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: '@mdit/plugin-include': 0.23.2(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - markdown-it - typescript - '@vuepress/plugin-markdown-math@2.0.0-rc.128(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(katex@0.16.45)(markdown-it@14.1.1)(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-markdown-math@2.0.0-rc.128(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(katex@0.16.45)(markdown-it@14.1.1)(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: '@mdit/plugin-katex-slim': 0.26.2(katex@0.16.45)(markdown-it@14.1.1) '@mdit/plugin-mathjax-slim': 0.26.2(@mathjax/mathjax-newcm-font@4.1.1)(@mathjax/src@4.1.1)(markdown-it@14.1.1) '@types/markdown-it': 14.1.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) optionalDependencies: '@mathjax/src': 4.1.1 katex: 0.16.45 @@ -10107,91 +10115,91 @@ snapshots: - markdown-it - typescript - '@vuepress/plugin-nprogress@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-nprogress@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-photo-swipe@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-photo-swipe@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) photoswipe: 5.4.4 - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-reading-time@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-reading-time@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-replace-assets@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-replace-assets@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) magic-string: 0.30.21 unplugin: 3.0.0 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-seo@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-seo@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-shiki@2.0.0-rc.128(1a953f9f9b1b95ecc511dafb0398021a)': + '@vuepress/plugin-shiki@2.0.0-rc.128(6a0ffca7c26a43ecd69a881d0168ca79)': dependencies: '@shikijs/transformers': 4.0.2 - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vuepress/highlighter-helper': 2.0.0-rc.128(@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))))(@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.2)))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - nanoid: 5.1.7 + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vuepress/highlighter-helper': 2.0.0-rc.128(@vuepress/helper@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))))(@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.3)))(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + nanoid: 5.1.9 shiki: 4.0.2 synckit: 0.11.12 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) optionalDependencies: - '@vuepress/shiki-twoslash': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vuepress/shiki-twoslash': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - '@vueuse/core' - typescript - '@vuepress/plugin-sitemap@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-sitemap@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) sitemap: 9.0.1 - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@vuepress/bundler-vite' - '@vuepress/bundler-webpack' - typescript - '@vuepress/plugin-watermark@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/plugin-watermark@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) watermark-js-plus: 1.6.3 transitivePeerDependencies: - '@vuepress/bundler-vite' @@ -10202,18 +10210,18 @@ snapshots: dependencies: '@mdit-vue/types': 3.0.2 - '@vuepress/shiki-twoslash@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)))': + '@vuepress/shiki-twoslash@2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))': dependencies: - '@shikijs/twoslash': 4.0.2(typescript@6.0.2) - '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2))) - floating-vue: 5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.32(typescript@6.0.2)) + '@shikijs/twoslash': 4.0.2(typescript@6.0.3) + '@vuepress/helper': 2.0.0-rc.128(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3))) + floating-vue: 5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.32(typescript@6.0.3)) mdast-util-from-markdown: 2.0.3 mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.1 - twoslash: 0.3.6(typescript@6.0.2) - twoslash-vue: 0.3.6(typescript@6.0.2) - vue: 3.5.32(typescript@6.0.2) - vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)) + twoslash: 0.3.6(typescript@6.0.3) + twoslash-vue: 0.3.6(typescript@6.0.3) + vue: 3.5.32(typescript@6.0.3) + vuepress: 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)) transitivePeerDependencies: - '@nuxt/kit' - '@vuepress/bundler-vite' @@ -10239,18 +10247,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.2))': + '@vueuse/core@14.2.1(vue@3.5.32(typescript@6.0.3))': dependencies: '@types/web-bluetooth': 0.0.21 '@vueuse/metadata': 14.2.1 - '@vueuse/shared': 14.2.1(vue@3.5.32(typescript@6.0.2)) - vue: 3.5.32(typescript@6.0.2) + '@vueuse/shared': 14.2.1(vue@3.5.32(typescript@6.0.3)) + vue: 3.5.32(typescript@6.0.3) - '@vueuse/integrations@14.2.1(axios@1.15.0)(change-case@5.4.4)(focus-trap@8.0.1)(qrcode@1.5.4)(vue@3.5.32(typescript@6.0.2))': + '@vueuse/integrations@14.2.1(axios@1.15.0)(change-case@5.4.4)(focus-trap@8.0.1)(qrcode@1.5.4)(vue@3.5.32(typescript@6.0.3))': dependencies: - '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.2)) - '@vueuse/shared': 14.2.1(vue@3.5.32(typescript@6.0.2)) - vue: 3.5.32(typescript@6.0.2) + '@vueuse/core': 14.2.1(vue@3.5.32(typescript@6.0.3)) + '@vueuse/shared': 14.2.1(vue@3.5.32(typescript@6.0.3)) + vue: 3.5.32(typescript@6.0.3) optionalDependencies: axios: 1.15.0 change-case: 5.4.4 @@ -10259,11 +10267,9 @@ snapshots: '@vueuse/metadata@14.2.1': {} - '@vueuse/shared@14.2.1(vue@3.5.32(typescript@6.0.2))': + '@vueuse/shared@14.2.1(vue@3.5.32(typescript@6.0.3))': dependencies: - vue: 3.5.32(typescript@6.0.2) - - '@webgpu/types@0.1.69': {} + vue: 3.5.32(typescript@6.0.3) '@xmldom/xmldom@0.9.9': {} @@ -10442,7 +10448,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.18: {} + baseline-browser-mapping@2.10.19: {} basic-auth@2.0.1: dependencies: @@ -10492,7 +10498,7 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.18 + baseline-browser-mapping: 2.10.19 caniuse-lite: 1.0.30001784 electron-to-chromium: 1.5.331 node-releases: 2.0.37 @@ -10719,10 +10725,10 @@ snapshots: comment-parser@1.4.6: {} - commitizen@4.3.1(@types/node@25.6.0)(typescript@6.0.2): + commitizen@4.3.1(@types/node@25.6.0)(typescript@6.0.3): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@25.6.0)(typescript@6.0.2) + cz-conventional-changelog: 3.3.0(@types/node@25.6.0)(typescript@6.0.3) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -10815,21 +10821,21 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@6.2.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@6.0.2))(typescript@6.0.2): + cosmiconfig-typescript-loader@6.2.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@6.0.3))(typescript@6.0.3): dependencies: '@types/node': 25.6.0 - cosmiconfig: 9.0.1(typescript@6.0.2) + cosmiconfig: 9.0.1(typescript@6.0.3) jiti: 2.6.1 - typescript: 6.0.2 + typescript: 6.0.3 - cosmiconfig@9.0.1(typescript@6.0.2): + cosmiconfig@9.0.1(typescript@6.0.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 6.0.2 + typescript: 6.0.3 cpx2@8.0.2: dependencies: @@ -10886,16 +10892,16 @@ snapshots: cytoscape@3.33.1: {} - cz-conventional-changelog@3.3.0(@types/node@25.6.0)(typescript@6.0.2): + cz-conventional-changelog@3.3.0(@types/node@25.6.0)(typescript@6.0.3): dependencies: chalk: 2.4.2 - commitizen: 4.3.1(@types/node@25.6.0)(typescript@6.0.2) + commitizen: 4.3.1(@types/node@25.6.0)(typescript@6.0.3) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 20.5.0(@types/node@25.6.0)(typescript@6.0.2) + '@commitlint/load': 20.5.0(@types/node@25.6.0)(typescript@6.0.3) transitivePeerDependencies: - '@types/node' - typescript @@ -11384,72 +11390,72 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@10.2.0(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) semver: 7.7.4 - eslint-config-flat-gitignore@2.3.0(eslint@10.2.0(jiti@2.6.1)): + eslint-config-flat-gitignore@2.3.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint/compat': 2.0.3(eslint@10.2.0(jiti@2.6.1)) - eslint: 10.2.0(jiti@2.6.1) + '@eslint/compat': 2.0.3(eslint@10.2.1(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) eslint-flat-config-utils@3.1.0: dependencies: - '@eslint/config-helpers': 0.5.3 + '@eslint/config-helpers': 0.5.5 pathe: 2.0.3 - eslint-json-compat-utils@0.2.3(eslint@10.2.0(jiti@2.6.1))(jsonc-eslint-parser@3.1.0): + eslint-json-compat-utils@0.2.3(eslint@10.2.1(jiti@2.6.1))(jsonc-eslint-parser@3.1.0): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) esquery: 1.7.0 jsonc-eslint-parser: 3.1.0 - eslint-merge-processors@2.0.0(eslint@10.2.0(jiti@2.6.1)): + eslint-merge-processors@2.0.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-antfu@3.2.2(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-antfu@3.2.2(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.2))(@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.58.2(typescript@6.0.3))(@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)): dependencies: '@es-joy/jsdoccomment': 0.84.0 - '@typescript-eslint/rule-tester': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - eslint: 10.2.0(jiti@2.6.1) + '@typescript-eslint/rule-tester': 8.58.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.58.2(typescript@6.0.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-depend@1.5.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-depend@1.5.0(eslint@10.2.1(jiti@2.6.1)): dependencies: empathic: 2.0.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) module-replacements: 2.11.0 semver: 7.7.4 - eslint-plugin-erasable-syntax-only@0.4.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): + eslint-plugin-erasable-syntax-only@0.4.0(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3): dependencies: - '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) cached-factory: 0.1.0 - eslint: 10.2.0(jiti@2.6.1) - typescript: 6.0.2 + eslint: 10.2.1(jiti@2.6.1) + typescript: 6.0.3 transitivePeerDependencies: - supports-color - eslint-plugin-es-x@7.8.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - eslint: 10.2.0(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.2.1(jiti@2.6.1)) - eslint-plugin-import-lite@0.6.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-import-lite@0.6.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) - eslint-plugin-jsdoc@62.9.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-jsdoc@62.9.0(eslint@10.2.1(jiti@2.6.1)): dependencies: '@es-joy/jsdoccomment': 0.86.0 '@es-joy/resolve.exports': 1.2.0 @@ -11457,7 +11463,7 @@ snapshots: comment-parser: 1.4.6 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 @@ -11469,22 +11475,22 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@3.1.2(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-jsonc@3.1.2(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) - '@eslint/core': 1.1.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.6.1 '@ota-meshi/ast-token-store': 0.3.0 diff-sequences: 29.6.3 - eslint: 10.2.0(jiti@2.6.1) - eslint-json-compat-utils: 0.2.3(eslint@10.2.0(jiti@2.6.1))(jsonc-eslint-parser@3.1.0) + eslint: 10.2.1(jiti@2.6.1) + eslint-json-compat-utils: 0.2.3(eslint@10.2.1(jiti@2.6.1))(jsonc-eslint-parser@3.1.0) jsonc-eslint-parser: 3.1.0 natural-compare: 1.4.0 synckit: 0.11.12 transitivePeerDependencies: - '@eslint/json' - eslint-plugin-jsx-a11y@6.10.2(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-jsx-a11y@6.10.2(eslint@10.2.1(jiti@2.6.1)): dependencies: aria-query: 5.3.2 array-includes: 3.1.9 @@ -11494,7 +11500,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -11503,76 +11509,76 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-n@17.24.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): + eslint-plugin-n@17.24.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) enhanced-resolve: 5.20.1 - eslint: 10.2.0(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.2.1(jiti@2.6.1)) get-tsconfig: 4.13.7 globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 semver: 7.7.4 - ts-declaration-location: 1.0.7(typescript@6.0.2) + ts-declaration-location: 1.0.7(typescript@6.0.3) transitivePeerDependencies: - typescript eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-perfectionist@5.8.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2): + eslint-plugin-perfectionist@5.8.0(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3): dependencies: - '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) - eslint: 10.2.0(jiti@2.6.1) + '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) + eslint: 10.2.1(jiti@2.6.1) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-pnpm@1.6.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-pnpm@1.6.0(eslint@10.2.1(jiti@2.6.1)): dependencies: empathic: 2.0.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) jsonc-eslint-parser: 3.1.0 pathe: 2.0.3 pnpm-workspace-yaml: 1.6.0 - tinyglobby: 0.2.15 + tinyglobby: 0.2.16 yaml: 2.8.3 yaml-eslint-parser: 2.0.0 - eslint-plugin-regexp@3.1.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-regexp@3.1.0(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.6 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) jsdoc-type-pratt-parser: 7.2.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-toml@1.3.1(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-toml@1.3.1(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.6.1 '@ota-meshi/ast-token-store': 0.3.0 debug: 4.4.3 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) toml-eslint-parser: 1.0.3 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@64.0.0(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-unicorn@64.0.0(eslint@10.2.1(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) change-case: 5.4.4 ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.49.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) find-up-simple: 1.0.1 - globals: 17.4.0 + globals: 17.5.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 jsesc: 3.1.0 @@ -11582,53 +11588,53 @@ snapshots: semver: 7.7.4 strip-indent: 4.1.1 - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1)): dependencies: - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.58.0(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) - eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.0(jiti@2.6.1)))(@typescript-eslint/parser@8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2))(eslint@10.2.0(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1))): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.2.1(jiti@2.6.1)))(@typescript-eslint/parser@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3))(eslint@10.2.1(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.2.1(jiti@2.6.1))): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) - eslint: 10.2.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 7.1.1 semver: 7.7.4 - vue-eslint-parser: 10.4.0(eslint@10.2.0(jiti@2.6.1)) + vue-eslint-parser: 10.4.0(eslint@10.2.1(jiti@2.6.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@stylistic/eslint-plugin': 5.10.0(eslint@10.2.0(jiti@2.6.1)) - '@typescript-eslint/parser': 8.58.0(eslint@10.2.0(jiti@2.6.1))(typescript@6.0.2) + '@stylistic/eslint-plugin': 5.10.0(eslint@10.2.1(jiti@2.6.1)) + '@typescript-eslint/parser': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@6.0.3) - eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.0(jiti@2.6.1))(globals@17.4.0): + eslint-plugin-vuejs-accessibility@2.5.0(eslint@10.2.1(jiti@2.6.1))(globals@17.5.0): dependencies: aria-query: 5.3.2 - eslint: 10.2.0(jiti@2.6.1) - globals: 17.4.0 - vue-eslint-parser: 10.4.0(eslint@10.2.0(jiti@2.6.1)) + eslint: 10.2.1(jiti@2.6.1) + globals: 17.5.0 + vue-eslint-parser: 10.4.0(eslint@10.2.1(jiti@2.6.1)) transitivePeerDependencies: - supports-color - eslint-plugin-yml@3.3.1(eslint@10.2.0(jiti@2.6.1)): + eslint-plugin-yml@3.3.1(eslint@10.2.1(jiti@2.6.1)): dependencies: - '@eslint/core': 1.1.1 + '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.6.1 '@ota-meshi/ast-token-store': 0.3.0 debug: 4.4.3 diff-sequences: 29.6.3 escape-string-regexp: 5.0.0 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) natural-compare: 1.4.0 yaml-eslint-parser: 2.0.0 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.0(jiti@2.6.1)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.32)(eslint@10.2.1(jiti@2.6.1)): dependencies: '@vue/compiler-sfc': 3.5.32 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) eslint-scope@9.1.2: dependencies: @@ -11643,9 +11649,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.2.0(jiti@2.6.1): + eslint@10.2.1(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5 '@eslint/config-helpers': 0.5.5 @@ -11841,11 +11847,11 @@ snapshots: flatted@3.4.2: {} - floating-vue@5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.32(typescript@6.0.2)): + floating-vue@5.2.2(patch_hash=c8e9cd61468e959201bb251258241870423ca2ca7ae2e8a184210e0f20619fd5)(vue@3.5.32(typescript@6.0.3)): dependencies: '@floating-ui/dom': 1.1.1 - vue: 3.5.32(typescript@6.0.2) - vue-resize: 2.0.0-alpha.1(vue@3.5.32(typescript@6.0.2)) + vue: 3.5.32(typescript@6.0.3) + vue-resize: 2.0.0-alpha.1(vue@3.5.32(typescript@6.0.3)) flowchart.ts@3.0.1: dependencies: @@ -12033,7 +12039,7 @@ snapshots: globals@15.15.0: {} - globals@17.4.0: {} + globals@17.5.0: {} globalthis@1.0.4: dependencies: @@ -12179,7 +12185,7 @@ snapshots: hookable@5.5.3: {} - hookable@6.1.0: {} + hookable@6.1.1: {} hookified@1.15.1: {} @@ -12283,7 +12289,7 @@ snapshots: import-meta-resolve@4.2.0: {} - import-without-cache@0.2.5: {} + import-without-cache@0.3.3: {} imsc@1.1.5: dependencies: @@ -13046,16 +13052,16 @@ snapshots: mdurl@2.0.0: {} - memfs@4.57.1(tslib@2.8.1): + memfs@4.57.2(tslib@2.8.1): dependencies: - '@jsonjoy.com/fs-core': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-fsa': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-builtins': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-to-fsa': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-node-utils': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-print': 4.57.1(tslib@2.8.1) - '@jsonjoy.com/fs-snapshot': 4.57.1(tslib@2.8.1) + '@jsonjoy.com/fs-core': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-fsa': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-builtins': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-to-fsa': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-node-utils': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-print': 4.57.2(tslib@2.8.1) + '@jsonjoy.com/fs-snapshot': 4.57.2(tslib@2.8.1) '@jsonjoy.com/json-pack': 1.21.0(tslib@2.8.1) '@jsonjoy.com/util': 1.9.0(tslib@2.8.1) glob-to-regex.js: 1.2.0(tslib@2.8.1) @@ -13095,7 +13101,7 @@ snapshots: ts-dedent: 2.2.0 uuid: 11.1.0 - meshoptimizer@1.0.1: {} + meshoptimizer@1.1.1: {} mhchemparser@4.2.1: {} @@ -13187,7 +13193,7 @@ snapshots: dependencies: '@types/katex': 0.16.8 devlop: 1.1.0 - katex: 0.16.44 + katex: 0.16.45 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 @@ -13376,7 +13382,7 @@ snapshots: nanoid@3.3.11: {} - nanoid@5.1.7: {} + nanoid@5.1.9: {} nanopop@2.4.2: {} @@ -13651,8 +13657,8 @@ snapshots: dependencies: htmlparser2: 8.0.2 js-tokens: 9.0.1 - postcss: 8.5.9 - postcss-safe-parser: 6.0.0(postcss@8.5.9) + postcss: 8.5.10 + postcss-safe-parser: 6.0.0(postcss@8.5.10) postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3): dependencies: @@ -13666,29 +13672,35 @@ snapshots: postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@6.0.0(postcss@8.5.9): + postcss-safe-parser@6.0.0(postcss@8.5.10): dependencies: - postcss: 8.5.9 + postcss: 8.5.10 - postcss-safe-parser@7.0.1(postcss@8.5.9): + postcss-safe-parser@7.0.1(postcss@8.5.10): dependencies: - postcss: 8.5.9 + postcss: 8.5.10 - postcss-scss@4.0.9(postcss@8.5.9): + postcss-scss@4.0.9(postcss@8.5.10): dependencies: - postcss: 8.5.9 + postcss: 8.5.10 postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sorting@10.0.0(postcss@8.5.9): + postcss-sorting@10.0.0(postcss@8.5.10): dependencies: - postcss: 8.5.9 + postcss: 8.5.10 postcss-value-parser@4.2.0: {} + postcss@8.5.10: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + postcss@8.5.8: dependencies: nanoid: 3.3.11 @@ -13701,9 +13713,9 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postprocessing@6.39.0(three@0.183.2): + postprocessing@6.39.1(three@0.184.0): dependencies: - three: 0.183.2 + three: 0.184.0 prelude-ls@1.2.1: {} @@ -13894,7 +13906,7 @@ snapshots: robust-predicates@3.0.3: {} - rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.15)(typescript@6.0.2): + rolldown-plugin-dts@0.23.2(rolldown@1.0.0-rc.16)(typescript@6.0.3): dependencies: '@babel/generator': 8.0.0-rc.3 '@babel/helper-validator-identifier': 8.0.0-rc.3 @@ -13906,36 +13918,12 @@ snapshots: get-tsconfig: 4.13.7 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.15 + rolldown: 1.0.0-rc.16 optionalDependencies: - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - oxc-resolver - rolldown@1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2): - dependencies: - '@oxc-project/types': 0.122.0 - '@rolldown/pluginutils': 1.0.0-rc.12 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.0-rc.12 - '@rolldown/binding-darwin-arm64': 1.0.0-rc.12 - '@rolldown/binding-darwin-x64': 1.0.0-rc.12 - '@rolldown/binding-freebsd-x64': 1.0.0-rc.12 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.12 - '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.12 - '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.12 - '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.12 - '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.12 - '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.12 - '@rolldown/binding-linux-x64-musl': 1.0.0-rc.12 - '@rolldown/binding-openharmony-arm64': 1.0.0-rc.12 - '@rolldown/binding-wasm32-wasi': 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) - '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.12 - '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.12 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - rolldown@1.0.0-rc.13: dependencies: '@oxc-project/types': 0.123.0 @@ -13978,6 +13966,27 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15 '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15 + rolldown@1.0.0-rc.16: + dependencies: + '@oxc-project/types': 0.126.0 + '@rolldown/pluginutils': 1.0.0-rc.16 + optionalDependencies: + '@rolldown/binding-android-arm64': 1.0.0-rc.16 + '@rolldown/binding-darwin-arm64': 1.0.0-rc.16 + '@rolldown/binding-darwin-x64': 1.0.0-rc.16 + '@rolldown/binding-freebsd-x64': 1.0.0-rc.16 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.16 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.16 + '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.16 + '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.16 + '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.16 + '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.16 + '@rolldown/binding-linux-x64-musl': 1.0.0-rc.16 + '@rolldown/binding-openharmony-arm64': 1.0.0-rc.16 + '@rolldown/binding-wasm32-wasi': 1.0.0-rc.16 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.16 + '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.16 + roughjs@4.6.6: dependencies: hachure-fill: 0.5.2 @@ -14394,49 +14403,49 @@ snapshots: style-search@0.1.0: {} - stylelint-config-html@1.1.0(postcss-html@1.8.1)(stylelint@17.7.0(typescript@6.0.2)): + stylelint-config-html@1.1.0(postcss-html@1.8.1)(stylelint@17.8.0(typescript@6.0.3)): dependencies: postcss-html: 1.8.1 - stylelint: 17.7.0(typescript@6.0.2) + stylelint: 17.8.0(typescript@6.0.3) - stylelint-config-recommended-scss@17.0.0(postcss@8.5.9)(stylelint@17.7.0(typescript@6.0.2)): + stylelint-config-recommended-scss@17.0.0(postcss@8.5.10)(stylelint@17.8.0(typescript@6.0.3)): dependencies: - postcss-scss: 4.0.9(postcss@8.5.9) - stylelint: 17.7.0(typescript@6.0.2) - stylelint-config-recommended: 18.0.0(stylelint@17.7.0(typescript@6.0.2)) - stylelint-scss: 7.0.0(stylelint@17.7.0(typescript@6.0.2)) + postcss-scss: 4.0.9(postcss@8.5.10) + stylelint: 17.8.0(typescript@6.0.3) + stylelint-config-recommended: 18.0.0(stylelint@17.8.0(typescript@6.0.3)) + stylelint-scss: 7.0.0(stylelint@17.8.0(typescript@6.0.3)) optionalDependencies: - postcss: 8.5.9 + postcss: 8.5.10 - stylelint-config-recommended@18.0.0(stylelint@17.7.0(typescript@6.0.2)): + stylelint-config-recommended@18.0.0(stylelint@17.8.0(typescript@6.0.3)): dependencies: - stylelint: 17.7.0(typescript@6.0.2) + stylelint: 17.8.0(typescript@6.0.3) - stylelint-config-standard-scss@17.0.0(postcss@8.5.9)(stylelint@17.7.0(typescript@6.0.2)): + stylelint-config-standard-scss@17.0.0(postcss@8.5.10)(stylelint@17.8.0(typescript@6.0.3)): dependencies: - stylelint: 17.7.0(typescript@6.0.2) - stylelint-config-recommended-scss: 17.0.0(postcss@8.5.9)(stylelint@17.7.0(typescript@6.0.2)) - stylelint-config-standard: 40.0.0(stylelint@17.7.0(typescript@6.0.2)) + stylelint: 17.8.0(typescript@6.0.3) + stylelint-config-recommended-scss: 17.0.0(postcss@8.5.10)(stylelint@17.8.0(typescript@6.0.3)) + stylelint-config-standard: 40.0.0(stylelint@17.8.0(typescript@6.0.3)) optionalDependencies: - postcss: 8.5.9 + postcss: 8.5.10 - stylelint-config-standard@40.0.0(stylelint@17.7.0(typescript@6.0.2)): + stylelint-config-standard@40.0.0(stylelint@17.8.0(typescript@6.0.3)): dependencies: - stylelint: 17.7.0(typescript@6.0.2) - stylelint-config-recommended: 18.0.0(stylelint@17.7.0(typescript@6.0.2)) + stylelint: 17.8.0(typescript@6.0.3) + stylelint-config-recommended: 18.0.0(stylelint@17.8.0(typescript@6.0.3)) - stylelint-define-config@17.5.0(stylelint@17.7.0(typescript@6.0.2)): + stylelint-define-config@17.5.0(stylelint@17.8.0(typescript@6.0.3)): dependencies: csstype: 3.2.3 - stylelint: 17.7.0(typescript@6.0.2) + stylelint: 17.8.0(typescript@6.0.3) - stylelint-order@8.1.1(stylelint@17.7.0(typescript@6.0.2)): + stylelint-order@8.1.1(stylelint@17.8.0(typescript@6.0.3)): dependencies: - postcss: 8.5.9 - postcss-sorting: 10.0.0(postcss@8.5.9) - stylelint: 17.7.0(typescript@6.0.2) + postcss: 8.5.10 + postcss-sorting: 10.0.0(postcss@8.5.10) + stylelint: 17.8.0(typescript@6.0.3) - stylelint-scss@7.0.0(stylelint@17.7.0(typescript@6.0.2)): + stylelint-scss@7.0.0(stylelint@17.8.0(typescript@6.0.3)): dependencies: css-tree: 3.2.1 is-plain-object: 5.0.0 @@ -14446,9 +14455,9 @@ snapshots: postcss-resolve-nested-selector: 0.1.6 postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 - stylelint: 17.7.0(typescript@6.0.2) + stylelint: 17.8.0(typescript@6.0.3) - stylelint@17.7.0(typescript@6.0.2): + stylelint@17.8.0(typescript@6.0.3): dependencies: '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) @@ -14458,7 +14467,7 @@ snapshots: '@csstools/selector-resolve-nested': 4.0.0(postcss-selector-parser@7.1.1) '@csstools/selector-specificity': 6.0.0(postcss-selector-parser@7.1.1) colord: 2.9.3 - cosmiconfig: 9.0.1(typescript@6.0.2) + cosmiconfig: 9.0.1(typescript@6.0.3) css-functions-list: 3.3.3 css-tree: 3.2.1 debug: 4.4.3 @@ -14477,8 +14486,8 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.9 - postcss-safe-parser: 7.0.1(postcss@8.5.9) + postcss: 8.5.10 + postcss-safe-parser: 7.0.1(postcss@8.5.10) postcss-selector-parser: 7.1.1 postcss-value-parser: 4.2.0 string-width: 8.2.0 @@ -14557,7 +14566,7 @@ snapshots: dependencies: tslib: 2.8.1 - three@0.183.2: {} + three@0.184.0: {} through@2.3.8: {} @@ -14610,44 +14619,42 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.5.0(typescript@6.0.2): + ts-api-utils@2.5.0(typescript@6.0.3): dependencies: - typescript: 6.0.2 + typescript: 6.0.3 ts-debounce@4.0.0: {} - ts-declaration-location@1.0.7(typescript@6.0.2): + ts-declaration-location@1.0.7(typescript@6.0.3): dependencies: picomatch: 4.0.4 - typescript: 6.0.2 + typescript: 6.0.3 ts-dedent@2.2.0: {} tsconfig-vuepress@7.0.0: {} - tsdown@0.21.8(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12)(typescript@6.0.2): + tsdown@0.21.9(synckit@0.11.12)(typescript@6.0.3): dependencies: ansis: 4.2.0 cac: 7.0.0 defu: 6.1.7 empathic: 2.0.0 - hookable: 6.1.0 - import-without-cache: 0.2.5 + hookable: 6.1.1 + import-without-cache: 0.3.3 obug: 2.1.1 picomatch: 4.0.4 - rolldown: 1.0.0-rc.15 - rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.15)(typescript@6.0.2) + rolldown: 1.0.0-rc.16 + rolldown-plugin-dts: 0.23.2(rolldown@1.0.0-rc.16)(typescript@6.0.3) semver: 7.7.4 tinyexec: 1.1.1 tinyglobby: 0.2.16 tree-kill: 1.2.2 unconfig-core: 7.5.0 - unrun: 0.2.34(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12) + unrun: 0.2.36(synckit@0.11.12) optionalDependencies: - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' - '@ts-macro/tsc' - '@typescript/native-preview' - oxc-resolver @@ -14660,20 +14667,20 @@ snapshots: twoslash-protocol@0.3.6: {} - twoslash-vue@0.3.6(typescript@6.0.2): + twoslash-vue@0.3.6(typescript@6.0.3): dependencies: '@vue/language-core': 3.2.6 - twoslash: 0.3.6(typescript@6.0.2) + twoslash: 0.3.6(typescript@6.0.3) twoslash-protocol: 0.3.6 - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color - twoslash@0.3.6(typescript@6.0.2): + twoslash@0.3.6(typescript@6.0.3): dependencies: - '@typescript/vfs': 1.6.4(typescript@6.0.2) + '@typescript/vfs': 1.6.4(typescript@6.0.3) twoslash-protocol: 0.3.6 - typescript: 6.0.2 + typescript: 6.0.3 transitivePeerDependencies: - supports-color @@ -14716,7 +14723,7 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript@6.0.2: {} + typescript@6.0.3: {} ua-parser-js@1.0.41: {} @@ -14822,14 +14829,11 @@ snapshots: picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - unrun@0.2.34(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(synckit@0.11.12): + unrun@0.2.36(synckit@0.11.12): dependencies: - rolldown: 1.0.0-rc.12(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + rolldown: 1.0.0-rc.16 optionalDependencies: synckit: 0.11.12 - transitivePeerDependencies: - - '@emnapi/core' - - '@emnapi/runtime' upath@2.0.1: {} @@ -14875,7 +14879,7 @@ snapshots: dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 - postcss: 8.5.8 + postcss: 8.5.9 rolldown: 1.0.0-rc.15 tinyglobby: 0.2.15 optionalDependencies: @@ -14934,10 +14938,10 @@ snapshots: vscode-uri@3.1.0: {} - vue-eslint-parser@10.4.0(eslint@10.2.0(jiti@2.6.1)): + vue-eslint-parser@10.4.0(eslint@10.2.1(jiti@2.6.1)): dependencies: debug: 4.4.3 - eslint: 10.2.0(jiti@2.6.1) + eslint: 10.2.1(jiti@2.6.1) eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 espree: 11.2.0 @@ -14946,14 +14950,14 @@ snapshots: transitivePeerDependencies: - supports-color - vue-resize@2.0.0-alpha.1(vue@3.5.32(typescript@6.0.2)): + vue-resize@2.0.0-alpha.1(vue@3.5.32(typescript@6.0.3)): dependencies: - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) - vue-router@5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.2)): + vue-router@5.0.4(@vue/compiler-sfc@3.5.32)(vue@3.5.32(typescript@6.0.3)): dependencies: '@babel/generator': 7.29.1 - '@vue-macros/common': 3.1.2(vue@3.5.32(typescript@6.0.2)) + '@vue-macros/common': 3.1.2(vue@3.5.32(typescript@6.0.3)) '@vue/devtools-api': 8.1.1 ast-walker-scope: 0.8.3 chokidar: 5.0.0 @@ -14968,32 +14972,32 @@ snapshots: tinyglobby: 0.2.15 unplugin: 3.0.0 unplugin-utils: 0.3.1 - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) yaml: 2.8.3 optionalDependencies: '@vue/compiler-sfc': 3.5.32 - vue@3.5.32(typescript@6.0.2): + vue@3.5.32(typescript@6.0.3): dependencies: '@vue/compiler-dom': 3.5.32 '@vue/compiler-sfc': 3.5.32 '@vue/runtime-dom': 3.5.32 - '@vue/server-renderer': 3.5.32(vue@3.5.32(typescript@6.0.2)) + '@vue/server-renderer': 3.5.32(vue@3.5.32(typescript@6.0.3)) '@vue/shared': 3.5.32 optionalDependencies: - typescript: 6.0.2 + typescript: 6.0.3 - vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3))(typescript@6.0.2)(vue@3.5.32(typescript@6.0.2)): + vuepress@2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(@vuepress/bundler-vite@2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3))(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)): dependencies: - '@vuepress/cli': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) - '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) - '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.2) + '@vuepress/cli': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) + '@vuepress/client': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) + '@vuepress/core': 2.0.0-rc.28(@vue/compiler-sfc@3.5.32)(typescript@6.0.3) '@vuepress/markdown': 2.0.0-rc.28 '@vuepress/shared': 2.0.0-rc.28 '@vuepress/utils': 2.0.0-rc.28 - vue: 3.5.32(typescript@6.0.2) + vue: 3.5.32(typescript@6.0.3) optionalDependencies: - '@vuepress/bundler-vite': 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.2)(yaml@2.8.3) + '@vuepress/bundler-vite': 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3) transitivePeerDependencies: - '@pinia/colada' - '@vue/compiler-sfc' diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f9edca34..820472e7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -24,8 +24,8 @@ catalogs: '@commitlint/cli': ^20.5.0 '@commitlint/config-conventional': ^20.5.0 '@lunariajs/core': ^0.1.1 - '@pengzhanbo/eslint-config-vue': ^2.3.0 - '@pengzhanbo/stylelint-config': ^2.3.0 + '@pengzhanbo/eslint-config-vue': ^2.4.0 + '@pengzhanbo/stylelint-config': ^2.4.0 '@simonwep/pickr': ^1.9.1 '@types/express': ^5.0.6 '@types/js-yaml': ^4.0.9 @@ -36,7 +36,7 @@ catalogs: '@types/picomatch': ^4.0.3 '@types/qrcode': ^1.5.6 '@types/stylus': ^0.48.43 - '@types/three': ^0.183.1 + '@types/three': ^0.184.0 '@types/webpack-env': ^1.18.8 '@vitest/coverage-v8': ^4.1.4 bumpp: ^11.0.1 @@ -46,28 +46,28 @@ catalogs: cpx2: ^8.0.2 cross-env: 7.0.3 cz-conventional-changelog: ^3.3.0 - eslint: ^10.2.0 + eslint: ^10.2.1 http-server: ^14.1.1 husky: ^9.1.7 less: ^4.6.4 lint-staged: ^16.4.0 markdown-it: ^14.1.1 - memfs: ^4.57.1 + memfs: ^4.57.2 mermaid: ^11.14.0 minimist: ^1.2.8 - postcss: ^8.5.9 + postcss: ^8.5.10 rimraf: ^6.1.3 - stylelint: ^17.7.0 + stylelint: ^17.8.0 stylus: ^0.64.0 tsconfig-vuepress: ^7.0.0 - tsdown: ^0.21.8 - typescript: ^6.0.2 + tsdown: ^0.21.9 + typescript: ^6.0.3 vite: ^8.0.8 vitest: ^4.1.4 wait-on: ^9.0.5 peer: '@eslint-community/eslint-utils': ^4.9.1 - '@iconify/json': ^2.2.462 + '@iconify/json': ^2.2.463 '@mathjax/src': ^4.1.1 '@pinyin-pro/data': ^1.3.1 '@typescript-eslint/types': ^8.58.2 @@ -79,12 +79,12 @@ catalogs: mpegts.js: 1.7.3 ogl: ^1.0.11 pinyin-pro: ^3.28.1 - postprocessing: ^6.39.0 + postprocessing: ^6.39.1 pyodide: ^0.29.3 sass: ^1.99.0 sass-embedded: ^1.99.0 swiper: ^12.1.3 - three: ^0.183.2 + three: ^0.184.0 prod: '@clack/prompts': ^1.2.0 '@iconify/utils': ^3.1.0 @@ -123,7 +123,7 @@ catalogs: markmap-view: ^0.18.12 minisearch: ^7.2.0 nano-spawn: ^2.1.0 - nanoid: ^5.1.7 + nanoid: ^5.1.9 os-locale: ^8.0.0 p-map: ^7.0.4 package-manager-detector: ^1.6.0 From e2b47da5324afefbbc5209874a2c7406e7f02807 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sat, 18 Apr 2026 17:09:26 +0800 Subject: [PATCH 07/14] chore: tweak --- .../plugin-search/src/node/searchPlugin.ts | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/plugin-search/src/node/searchPlugin.ts b/plugins/plugin-search/src/node/searchPlugin.ts index 75ceef39..686cf0d2 100644 --- a/plugins/plugin-search/src/node/searchPlugin.ts +++ b/plugins/plugin-search/src/node/searchPlugin.ts @@ -3,7 +3,7 @@ import type { SearchPluginOptions } from '../shared/index.js' import { addViteOptimizeDepsInclude, getFullLocaleConfig } from '@vuepress/helper' import { getDirname, path } from 'vuepress/utils' import { SEARCH_LOCALES } from './locales/index.js' -import { onSearchIndexRemoved, onSearchIndexUpdated, prepareSearchIndex, prepareSearchIndexPlaceholder } from './prepareSearchIndex.js' +import { /* onSearchIndexRemoved, onSearchIndexUpdated, */ prepareSearchIndex, prepareSearchIndexPlaceholder } from './prepareSearchIndex.js' const __dirname = getDirname(import.meta.url) @@ -71,16 +71,16 @@ export function searchPlugin({ } }, - onPageUpdated: async (app, type, page) => { - if (!page?.filePathRelative) - return + // onPageUpdated: async (app, type, page) => { + // if (!page?.filePathRelative) + // return - if (type === 'create' || type === 'update') { - await onSearchIndexUpdated(app, { page, isSearchable, searchOptions }) - } - else if (type === 'delete') { - await onSearchIndexRemoved(app, { page, isSearchable, searchOptions }) - } - }, + // if (type === 'create' || type === 'update') { + // await onSearchIndexUpdated(app, { page, isSearchable, searchOptions }) + // } + // else if (type === 'delete') { + // await onSearchIndexRemoved(app, { page, isSearchable, searchOptions }) + // } + // }, }) } From 76787f6530d45b072dac9460f8506891e6e43d5d Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sat, 18 Apr 2026 17:13:48 +0800 Subject: [PATCH 08/14] build: publish v1.0.0-rc.195 --- CHANGELOG.md | 7 +++++++ cli/package.json | 2 +- package.json | 2 +- plugins/plugin-fonts/package.json | 2 +- plugins/plugin-md-power/package.json | 2 +- plugins/plugin-search/package.json | 2 +- theme/package.json | 2 +- 7 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bffb44c7..bc035716 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-rc.195](https://github.com/pengzhanbo/vuepress-theme-plume/compare/v1.0.0-rc.194...v1.0.0-rc.195) (2026-04-18) + + +### Features + +* **plugin-md-power:** compat obsidian official markdown syntax ([#890](https://github.com/pengzhanbo/vuepress-theme-plume/issues/890)) ([bfd0c84](https://github.com/pengzhanbo/vuepress-theme-plume/commit/bfd0c8409c4c55c82f6c55d681f6b3eaafeaddfb)) + # [1.0.0-rc.194](https://github.com/pengzhanbo/vuepress-theme-plume/compare/v1.0.0-rc.193...v1.0.0-rc.194) (2026-04-14) diff --git a/cli/package.json b/cli/package.json index 69b0cad1..0fd1c351 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-vuepress-theme-plume", "type": "module", - "version": "1.0.0-rc.194", + "version": "1.0.0-rc.195", "description": "The cli for create vuepress-theme-plume's project", "author": "pengzhanbo (https://github.com/pengzhanbo/)", "license": "MIT", diff --git a/package.json b/package.json index 09d12df2..1bc9d876 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-theme-plume-monorepo", "type": "module", - "version": "1.0.0-rc.194", + "version": "1.0.0-rc.195", "private": true, "packageManager": "pnpm@10.33.0", "author": "pengzhanbo (https://github.com/pengzhanbo/)", diff --git a/plugins/plugin-fonts/package.json b/plugins/plugin-fonts/package.json index 66dd35cf..7750f822 100644 --- a/plugins/plugin-fonts/package.json +++ b/plugins/plugin-fonts/package.json @@ -1,7 +1,7 @@ { "name": "@vuepress-plume/plugin-fonts", "type": "module", - "version": "1.0.0-rc.194", + "version": "1.0.0-rc.195", "description": "The Plugin for VuePress 2 - fonts", "author": "pengzhanbo ", "license": "MIT", diff --git a/plugins/plugin-md-power/package.json b/plugins/plugin-md-power/package.json index 6ebe4e03..1a59d0ca 100644 --- a/plugins/plugin-md-power/package.json +++ b/plugins/plugin-md-power/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-plugin-md-power", "type": "module", - "version": "1.0.0-rc.194", + "version": "1.0.0-rc.195", "description": "The Plugin for VuePress 2 - markdown power", "author": "pengzhanbo ", "license": "MIT", diff --git a/plugins/plugin-search/package.json b/plugins/plugin-search/package.json index cb77cdd1..68a99461 100644 --- a/plugins/plugin-search/package.json +++ b/plugins/plugin-search/package.json @@ -1,7 +1,7 @@ { "name": "@vuepress-plume/plugin-search", "type": "module", - "version": "1.0.0-rc.194", + "version": "1.0.0-rc.195", "description": "The Plugin for VuePress 2 - local search", "author": "pengzhanbo ", "license": "MIT", diff --git a/theme/package.json b/theme/package.json index c1544000..10f9c5fa 100644 --- a/theme/package.json +++ b/theme/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-theme-plume", "type": "module", - "version": "1.0.0-rc.194", + "version": "1.0.0-rc.195", "description": "A Blog&Document Theme for VuePress 2.0", "author": "pengzhanbo (https://github.com/pengzhanbo/)", "license": "MIT", From 68f39695c400d2928699087fd1cb6d936d86eb27 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 19 Apr 2026 14:09:52 +0800 Subject: [PATCH 09/14] chore: update tsconfig --- docs/tsconfig.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/tsconfig.json b/docs/tsconfig.json index a5bf43aa..4bf16524 100644 --- a/docs/tsconfig.json +++ b/docs/tsconfig.json @@ -1,8 +1,6 @@ { "extends": "../tsconfig.base.json", "compilerOptions": { - "baseUrl": ".", - "ignoreDeprecations": "6.0", "paths": { "~/themes/*": ["./.vuepress/themes/*"], "~/components/*": ["./.vuepress/themes/components/*"], From 6ebb1bda6e4ef379e156e7299c149e10c472d705 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 19 Apr 2026 14:10:22 +0800 Subject: [PATCH 10/14] fix(plugin-md-power): fix cell display issue caused by colspan in table (#891) --- .../src/node/container/table.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/plugins/plugin-md-power/src/node/container/table.ts b/plugins/plugin-md-power/src/node/container/table.ts index f8ca07d0..9d37e63a 100644 --- a/plugins/plugin-md-power/src/node/container/table.ts +++ b/plugins/plugin-md-power/src/node/container/table.ts @@ -88,6 +88,7 @@ export function tablePlugin(md: Markdown, options: TableContainerOptions = {}): let isTable = false let colIndex = 0 let rowIndex = 0 + let skipCells = 0 for (const token of tableTokens) { if (token.type === 'table_open') isTable = true @@ -100,13 +101,39 @@ export function tablePlugin(md: Markdown, options: TableContainerOptions = {}): if (token.type === 'tr_open') { rowIndex++ colIndex = 0 + // 当 th 设置了 colspan 时,需要跳过空单元格 + skipCells = 0 } // cell (rowIndex, colIndex) if (token.type === 'th_open' || token.type === 'td_open') { + if (skipCells > 0) { + // Skip this empty cell,`th` element only + if (token.type === 'th_open') + token.hidden = true + skipCells-- + continue + } + colIndex++ const classes = cells[rowIndex]?.[colIndex] || rows[rowIndex] || cols[colIndex] if (classes) token.attrJoin('class', classes) + + // Check for colspan attribute + const colspanIndex = token.attrIndex('colspan') + if (colspanIndex >= 0) { + const colspanValue = Number.parseInt(token.attrs![colspanIndex][1]) + if (!Number.isNaN(colspanValue) && colspanValue > 1) { + skipCells = colspanValue - 1 + } + } + } + // Skip the content and close tokens for skipped cells + if (skipCells > 0 && (token.type === 'text' || token.type === 'th_close' || token.type === 'td_close')) { + if (token.type === 'th_close') + // Skip this empty cell,`th` element only + token.hidden = true + continue } } From 58ea2fc8cbcef0cb968997ad6dead2f4960d465a Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 19 Apr 2026 14:10:40 +0800 Subject: [PATCH 11/14] fix(theme): remove `cwd` options from `picomatch` (#892) --- theme/src/node/utils/createMatcher.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/theme/src/node/utils/createMatcher.ts b/theme/src/node/utils/createMatcher.ts index f514e482..b1b27a40 100644 --- a/theme/src/node/utils/createMatcher.ts +++ b/theme/src/node/utils/createMatcher.ts @@ -46,12 +46,11 @@ export function resolveMatcherPattern(include?: string | string[], exclude?: str * * @param include - Patterns to include / 要包含的模式 * @param exclude - Patterns to exclude / 要排除的模式 - * @param cwd - Current working directory for relative path matching / 用于相对路径匹配的当前工作目录 * @returns Matcher function that tests file paths / 测试文件路径的匹配器函数 */ -export function createMatcher(include?: string | string[], exclude?: string | string[], cwd?: string): Matcher { +export function createMatcher(include?: string | string[], exclude?: string | string[]): Matcher { exclude = ['**/node_modules/**', '**/.vuepress/**', ...toArray(exclude)] const { pattern, ignore } = resolveMatcherPattern(include, exclude) - return picomatch(pattern, { ignore, cwd }) + return picomatch(pattern, { ignore }) } From 402f259086ae0f848e4e66ec9c63aacd98aa7717 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 19 Apr 2026 14:10:54 +0800 Subject: [PATCH 12/14] refactor(plugin-md-power): refactor obsidian plugins (#893) --- docs/en/guide/markdown/obsidian.md | 131 +++-- docs/guide/markdown/obsidian.md | 118 ++--- .../__test__/obsidianEmbedLink.spec.ts | 421 +++++++++++++++++ .../__test__/obsidianEmbedLinkComplex.spec.ts | 446 ------------------ .../__test__/obsidianEmbedLinkPlugin.spec.ts | 124 ----- .../__test__/obsidianExtractContent.spec.ts | 297 ++++++++++++ .../__test__/obsidianFindFirstPage.spec.ts | 156 ++++++ .../__test__/obsidianPlugin.spec.ts | 40 +- .../__test__/obsidianWikiLink.spec.ts | 268 +++++++++++ .../__test__/obsidianWikiLinkPlugin.spec.ts | 218 --------- .../src/node/obsidian/embedLink.ts | 24 +- .../src/node/obsidian/findFirstPage.ts | 42 ++ .../src/node/obsidian/index.ts | 9 +- .../src/node/obsidian/wikiLink.ts | 44 +- plugins/plugin-md-power/src/node/plugin.ts | 12 +- 15 files changed, 1376 insertions(+), 974 deletions(-) create mode 100644 plugins/plugin-md-power/__test__/obsidianEmbedLink.spec.ts delete mode 100644 plugins/plugin-md-power/__test__/obsidianEmbedLinkComplex.spec.ts delete mode 100644 plugins/plugin-md-power/__test__/obsidianEmbedLinkPlugin.spec.ts create mode 100644 plugins/plugin-md-power/__test__/obsidianExtractContent.spec.ts create mode 100644 plugins/plugin-md-power/__test__/obsidianFindFirstPage.spec.ts create mode 100644 plugins/plugin-md-power/__test__/obsidianWikiLink.spec.ts delete mode 100644 plugins/plugin-md-power/__test__/obsidianWikiLinkPlugin.spec.ts create mode 100644 plugins/plugin-md-power/src/node/obsidian/findFirstPage.ts diff --git a/docs/en/guide/markdown/obsidian.md b/docs/en/guide/markdown/obsidian.md index d321c219..4ac5bbcd 100644 --- a/docs/en/guide/markdown/obsidian.md +++ b/docs/en/guide/markdown/obsidian.md @@ -7,8 +7,7 @@ permalink: /en/guide/markdown/obsidian/ ## Overview -The theme provides compatibility support for Obsidian's official Markdown extension syntax through the `vuepress-plugin-md-power` plugin, -enabling Obsidian users to write documentation using familiar syntax. +The theme provides compatibility support for Obsidian's official Markdown extension syntax through the `vuepress-plugin-md-power` plugin, enabling Obsidian users to write documentation using familiar syntax. Currently supported Obsidian extension syntax includes: @@ -21,7 +20,7 @@ Currently supported Obsidian extension syntax includes: ## Wiki Links -Wiki Links are syntax for linking to other notes in Obsidian. +Wiki Links are syntax used in Obsidian for linking to other notes. Use double brackets `[[]]` to wrap content to create internal links. ### Syntax @@ -31,6 +30,7 @@ Wiki Links are syntax for linking to other notes in Obsidian. [[filename#heading#subheading]] [[filename|alias]] [[filename#heading|alias]] +[[https://example.com|External Link]] ``` ### Filename Search Rules @@ -39,15 +39,14 @@ When using Wiki Links, filenames are matched according to the following rules: **Match Priority:** -1. **Page Title** - Priority matching against page titles -2. **Full Path** - Exact match against file paths -3. **Fuzzy Match** - Match filenames at the end of paths +1. **Full Path** - Exact match against file paths +2. **Fuzzy Match** - Match filenames at the end of paths, prioritizing the shortest path **Path Resolution Rules:** - **Relative paths** (starting with `.`): Resolved relative to the current file's directory -- **Absolute paths** (not starting with `.`): Searched throughout the document tree, with shortest path taking precedence -- **Directory form** (ending with `/`): Matches `README.md` or `index.html` within that directory +- **Absolute paths** (not starting with `.`): Searched throughout the document tree, prioritizing the shortest path +- **Directory form** (ending with `/`): Matches `README.md` in that directory **Example:** @@ -55,22 +54,21 @@ Assuming the following document structure: ```txt docs/ -├── README.md (title: "Home") +├── README.md ├── guide/ -│ ├── README.md (title: "Guide") +│ ├── README.md │ └── markdown/ │ └── obsidian.md ``` In `docs/guide/markdown/obsidian.md`: -| Syntax | Match Result | -| ------------ | ------------------------------------------------------- | -| `[[Home]]` | Matches `docs/README.md` (via title) | -| `[[Guide]]` | Matches `docs/guide/README.md` (via title) | -| `[[./]]` | Matches `docs/guide/markdown/README.md` (relative path) | -| `[[../]]` | Matches `docs/guide/README.md` (parent directory) | -| `[[guide/]]` | Matches `docs/guide/README.md` (directory form) | +| Syntax | Match Result | +| ------------------ | ----------------------------------------------------------------------------------------- | +| `[[obsidian]]` | Matches `docs/guide/markdown/obsidian.md` (matched via filename) | +| `[[./]]` | Matches `docs/guide/markdown/README.md` (relative path) | +| `[[../]]` | Matches `docs/guide/README.md` (parent directory) | +| `[[guide/]]` | Matches `docs/guide/README.md` (directory form) | ### Examples @@ -86,31 +84,26 @@ In `docs/guide/markdown/obsidian.md`: [[https://example.com|External Link]] ---- - **Internal Anchor Links:** **Input:** ```md -[[QR Code]] [[npm-to]] [[guide/markdown/math]] [[#Wiki Links]] -[[file-tree#configuration]] +[[file-tree#Configuration]] ``` **Output:** -[[QR Code]] - [[npm-to]] [[guide/markdown/math]] [[#Wiki Links]] -[[file-tree#configuration]] +[[file-tree#Configuration]] [Obsidian Official - **Wiki Links**](https://obsidian.md/en/help/links){.readmore} @@ -136,22 +129,38 @@ Filename search rules are the same as [Wiki Links](#filename-search-rules). **Syntax:** ```md -![[image.png]] -![[image.png|300]] -![[image.png|300x200]] +![[image]] +![[image|300]] +![[image|300x200]] ``` Supported formats: `jpg`, `jpeg`, `png`, `gif`, `avif`, `webp`, `svg`, `bmp`, `ico`, `tiff`, `apng`, `jfif`, `pjpeg`, `pjp`, `xbm` -**Input:** +**Example:** + +::: demo markdown title="Basic Image" expanded ```md ![[images/custom-hero.jpg]] ``` -**Output:** +::: -![[images/custom-hero.jpg]] +::: demo markdown title="Set Width" expanded + +```md +![[images/custom-hero.jpg|300]] +``` + +::: + +::: demo markdown title="Set Width and Height" expanded + +```md +![[images/custom-hero.jpg|300x200]] +``` + +::: ### PDF Embeds @@ -162,46 +171,38 @@ Supported formats: `jpg`, `jpeg`, `png`, `gif`, `avif`, `webp`, `svg`, `bmp`, `i ```md ![[document.pdf]] -![[document.pdf#page=1]] -![[document.pdf#page=1#height=300]] +![[document.pdf#page=1]] +![[document.pdf#page=1#height=300]] ``` +Supported formats: `pdf` + --- ### Audio Embeds -> [!note] -> Audio embeds require the file path to be correct and the file to exist in the document directory. - -**Input:** +**Syntax:** ```md -![[audio.mp3]] +![[audio file]] ``` -**Output:** - -![[https://publish-01.obsidian.md/access/cf01a21839823cd6cbe18031acf708c0/Attachments/audio/Excerpt%20from%20Mother%20of%20All%20Demos%20(1968).ogg]] - Supported formats: `mp3`, `flac`, `wav`, `ogg`, `opus`, `webm`, `acc` --- ### Video Embeds -> [!note] +> [!NOTE] > Video embeds require the `markdown.artPlayer` plugin to be enabled for proper functionality. -**Input:** +**Syntax:** ```md -![[video.mp4]] +![[video file]] +![[video file#height=400]] ``` -**Output:** - -![[https://artplayer.org/assets/sample/video.mp4]] - Supported formats: `mp4`, `webm`, `mov`, etc. --- @@ -214,12 +215,12 @@ Content fragments under a specified heading can be embedded using `#heading`: ```md ![[my-note]] -![[my-note#heading-one]] -![[my-note#heading-one#subheading]] +![[my-note#Heading One]] +![[my-note#Heading One#Subheading]] ``` -[Obsidian Official - Embeds](https://obsidian.md/en/help/embeds){.readmore} -[Obsidian Official - File Formats](https://obsidian.md/en/help/file-formats){.readmore} +[Obsidian Official - **Insert Files**](https://obsidian.md/en/help/embeds){.readmore} +[Obsidian Official - **File Formats**](https://obsidian.md/en/help/file-formats){.readmore} ## Comments @@ -280,28 +281,25 @@ Content before the comment %% This is a block comment. - -It can span multiple lines. %% -Content after the comment +It can span multiple lines. -> Related Documentation: [Obsidian Official - Comments](https://obsidian.md/en/help/syntax#%E6%B3%A8%E9%87%8B) +[Obsidian Official - **Comments**](https://obsidian.md/en/help/syntax#%E6%B3%A8%E9%87%8B){.readmore} ## Configuration -You can enable or disable these plugins in the theme configuration: +Obsidian compatibility features are all enabled by default. You can selectively enable or disable them through configuration: ```ts title=".vuepress/config.ts" export default defineUserConfig({ theme: plumeTheme({ plugins: { mdPower: { - // Obsidian compatibility plugin configuration obsidian: { wikiLink: true, // Wiki Links - embedLink: true, // Embeds - comment: true, // Comments + embedLink: true, // Embeds + comment: true, // Comments }, pdf: true, // PDF embed functionality artPlayer: true, // Video embed functionality @@ -316,15 +314,15 @@ export default defineUserConfig({ :::: field-group ::: field name="wikiLink" type="boolean" default="true" optional -Enable Wiki Links syntax +Enable Wiki Links syntax. ::: ::: field name="embedLink" type="boolean" default="true" optional -Enable embed content syntax +Enable embed content syntax. ::: ::: field name="comment" type="boolean" default="true" optional -Enable comment syntax +Enable comment syntax. ::: :::: @@ -332,7 +330,8 @@ Enable comment syntax ## Notes - These plugins provide **compatibility support** and do not fully implement all of Obsidian's functionality -- Some Obsidian-specific features (such as the graph view for internal links, bidirectional links, etc.) are outside the scope of this support +- Some Obsidian-specific features (such as internal link graph views, bidirectional links, etc.) are outside the scope of this support - When embedding content, the embedded page also participates in the theme's build process -- PDF embeds require the `pdf` plugin to be enabled simultaneously -- Video embeds require the `artPlayer` plugin to be enabled simultaneously +- PDF embeds require the `markdown.pdf` plugin to be enabled simultaneously +- Video embeds require the `markdown.artPlayer` plugin to be enabled simultaneously +- Embed resources starting with `/` or using `./` form are loaded from the `public` directory diff --git a/docs/guide/markdown/obsidian.md b/docs/guide/markdown/obsidian.md index 3033a34e..828ed060 100644 --- a/docs/guide/markdown/obsidian.md +++ b/docs/guide/markdown/obsidian.md @@ -15,12 +15,12 @@ permalink: /guide/markdown/obsidian/ - [嵌入内容](#嵌入内容) - 将其他文件内容嵌入到当前页面 - [注释](#注释) - 添加仅在编辑时可见的注释 -::: warning 不计划对 obsidian 社区的第三方插件提供的扩展语法进行支持 +::: warning 不计划支持 Obsidian 社区第三方插件提供的扩展语法 ::: ## Wiki 链接 -Wiki 链接是 Obsidian 中用于链接到其他笔记的语法。 +Wiki 链接是 Obsidian 中用于链接到其他笔记的语法。使用双括号 `[[]]` 包裹内容来创建内部链接。 ### 语法 @@ -30,6 +30,7 @@ Wiki 链接是 Obsidian 中用于链接到其他笔记的语法。 [[文件名#标题#子标题]] [[文件名|别名]] [[文件名#标题|别名]] +[[https://example.com|外部链接]] ``` ### 文件名搜索规则 @@ -38,15 +39,14 @@ Wiki 链接是 Obsidian 中用于链接到其他笔记的语法。 **匹配优先级:** -1. **页面标题** - 优先匹配页面的标题 -2. **完整路径** - 精确匹配文件路径 -3. **模糊匹配** - 匹配路径结尾的文件名 +1. **完整路径** - 精确匹配文件路径 +2. **模糊匹配** - 匹配路径结尾的文件名,优先匹配最短路径 **路径解析规则:** - **相对路径**(以 `.` 开头):相对于当前文件所在目录解析 - **绝对路径**(不以 `.` 开头):在整个文档树中搜索,优先匹配最短路径 -- **目录形式**(以 `/` 结尾):匹配该目录下的 `README.md` 或 `index.html` +- **目录形式**(以 `/` 结尾):匹配该目录下的 `README.md` **示例:** @@ -54,22 +54,21 @@ Wiki 链接是 Obsidian 中用于链接到其他笔记的语法。 ```txt docs/ -├── README.md (title: "首页") +├── README.md ├── guide/ -│ ├── README.md (title: "指南") +│ ├── README.md │ └── markdown/ │ └── obsidian.md ``` 在 `docs/guide/markdown/obsidian.md` 中: -| 语法 | 匹配结果 | -| ------------ | ------------------------------------------------ | -| `[[首页]]` | 匹配 `docs/README.md`(通过标题) | -| `[[指南]]` | 匹配 `docs/guide/README.md`(通过标题) | -| `[[./]]` | 匹配 `docs/guide/markdown/README.md`(相对路径) | -| `[[../]]` | 匹配 `docs/guide/README.md`(上级目录) | -| `[[guide/]]` | 匹配 `docs/guide/README.md`(目录形式) | +| 语法 | 匹配结果 | +| -------------- | -------------------------------------------------------- | +| `[[obsidian]]` | 匹配 `docs/guide/markdown/obsidian.md`(通过文件名检索) | +| `[[./]]` | 匹配 `docs/guide/markdown/README.md`(相对路径) | +| `[[../]]` | 匹配 `docs/guide/README.md`(上级目录) | +| `[[guide/]]` | 匹配 `docs/guide/README.md`(目录形式) | ### 示例 @@ -90,7 +89,6 @@ docs/ **输入:** ```md -[[二维码]] [[npm-to]] [[guide/markdown/math]] [[#Wiki 链接]] @@ -99,8 +97,6 @@ docs/ **输出:** -[[二维码]] - [[npm-to]] [[guide/markdown/math]] @@ -133,22 +129,38 @@ docs/ **语法:** ```md -![[image.png]] -![[image.png|300]] -![[image.png|300x200]] +![[图片]] +![[图片|宽度]] +![[图片|宽度x高度]] ``` -支持格式:`jpg`, `jpeg`, `png`, `gif`, `avif`, `webp`, `svg`, `bmp`, `ico`, `tiff`, `apng`, `jfif`, `pjpeg`, `pjp`, `xbm` +支持格式:`jpg`、`jpeg`、`png`、`gif`、`avif`、`webp`、`svg`、`bmp`、`ico`、`tiff`、`apng`、`jfif`、`pjpeg`、`pjp`、`xbm` -**输入:** +**示例:** + +::: demo markdown title="基础图片" expanded ```md ![[images/custom-hero.jpg]] ``` -**输出:** +::: -![[images/custom-hero.jpg]] +::: demo markdown title="设置宽度" expanded + +```md +![[images/custom-hero.jpg|300]] +``` + +::: + +::: demo markdown title="设置宽度和高度" expanded + +```md +![[images/custom-hero.jpg|300x200]] +``` + +::: ### PDF 嵌入 @@ -158,48 +170,40 @@ docs/ **语法:** ```md -![[document.pdf]] -![[document.pdf#page=1]] -![[document.pdf#page=1#height=300]] +![[文档.pdf]] +![[文档.pdf#page=1]] +![[文档.pdf#page=1#height=300]] ``` +支持格式:`pdf` + --- ### 音频嵌入 -> [!note] -> 音频嵌入需要确保文件路径正确,文件存在于文档目录中。 - -**输入:** +**语法:** ```md -![[audio.mp3]] +![[音频文件]] ``` -**输出:** - -![[https://publish-01.obsidian.md/access/cf01a21839823cd6cbe18031acf708c0/Attachments/audio/Excerpt%20from%20Mother%20of%20All%20Demos%20(1968).ogg]] - -支持格式:`mp3`, `flac`, `wav`, `ogg`, `opus`, `webm`, `acc` +支持格式:`mp3`、`flac`、`wav`、`ogg`、`opus`、`webm`、`acc` --- ### 视频嵌入 -> [!note] +> [!NOTE] > 视频嵌入需要启用 `markdown.artPlayer` 插件才能正常工作。 -**输入:** +**语法:** ```md -![[video.mp4]] +![[视频文件]] +![[视频文件#height=400]] ``` -**输出:** - -![[https://artplayer.org/assets/sample/video.mp4]] - -支持格式:`mp4`, `webm`, `mov` 等 +支持格式:`mp4`、`webm`、`mov` 等 --- @@ -277,28 +281,25 @@ docs/ %% 这是一个块级注释。 - -可以跨越多行。 %% -注释之后的内容 +可以跨越多行。 [Obsidian 官方 - 注释](https://obsidian.md/zh/help/syntax#%E6%B3%A8%E9%87%8A){.readmore} ## 配置 -你可以在主题配置中启用或禁用这些插件: +Obsidian 兼容功能默认全部启用,你可以通过配置选择性地启用或禁用: ```ts title=".vuepress/config.ts" export default defineUserConfig({ theme: plumeTheme({ plugins: { mdPower: { - // Obsidian 兼容插件配置 obsidian: { wikiLink: true, // Wiki 链接 - embedLink: true, // 嵌入内容 - comment: true, // 注释 + embedLink: true, // 嵌入内容 + comment: true, // 注释 }, pdf: true, // PDF 嵌入功能 artPlayer: true, // 视频嵌入功能 @@ -313,15 +314,15 @@ export default defineUserConfig({ :::: field-group ::: field name="wikiLink" type="boolean" default="true" optional -启用 Wiki 链接语法 +启用 Wiki 链接语法。 ::: ::: field name="embedLink" type="boolean" default="true" optional -启用嵌入内容语法 +启用嵌入内容语法。 ::: ::: field name="comment" type="boolean" default="true" optional -启用注释语法 +启用注释语法。 ::: :::: @@ -331,5 +332,6 @@ export default defineUserConfig({ - 这些插件提供的是 **兼容性支持**,并非完全实现 Obsidian 的全部功能 - 部分 Obsidian 特有的功能(如内部链接的图谱视图、双向链接等)不在支持范围内 - 嵌入内容时,被嵌入的页面也会参与主题的构建过程 -- PDF 嵌入需要同时启用 `pdf` 插件 -- 视频嵌入需要同时启用 `artPlayer` 插件 +- PDF 嵌入需要同时启用 `markdown.pdf` 插件 +- 视频嵌入需要同时启用 `markdown.artPlayer` 插件 +- 以 `/` 开头或使用 `./` 形式的嵌入资源会从 `public` 目录加载 diff --git a/plugins/plugin-md-power/__test__/obsidianEmbedLink.spec.ts b/plugins/plugin-md-power/__test__/obsidianEmbedLink.spec.ts new file mode 100644 index 00000000..a63de2a2 --- /dev/null +++ b/plugins/plugin-md-power/__test__/obsidianEmbedLink.spec.ts @@ -0,0 +1,421 @@ +import type { App } from 'vuepress' +import type { MarkdownEnv } from 'vuepress/markdown' +import MarkdownIt from 'markdown-it' +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { embedLinkPlugin } from '../src/node/obsidian/embedLink.js' +import { initPagePaths } from '../src/node/obsidian/findFirstPage.js' + +const mockGlobSync = vi.fn() +const mockReadFileSync = vi.fn() + +vi.mock('vuepress/utils', () => ({ + tinyglobby: { + globSync: (...args: unknown[]) => mockGlobSync(...args), + }, + fs: { + readFileSync: (...args: unknown[]) => mockReadFileSync(...args), + }, + path: { + dirname: vi.fn((p: string) => p.split('/').slice(0, -1).join('/') || '.'), + extname: vi.fn((p: string) => { + const i = p.lastIndexOf('.') + return i > 0 ? p.slice(i) : '' + }), + join: vi.fn((...args: string[]) => args.join('/')), + }, + hash: vi.fn((s: string) => `hash_${s.length}`), +})) + +vi.mock('gray-matter', () => ({ + default: vi.fn((content: string) => ({ + content: content.replace(/^---[\s\S]*?---\n?/, ''), + data: {}, + })), +})) + +vi.mock('@vuepress/helper', () => ({ + removeLeadingSlash: vi.fn((p: string) => p.replace(/^\//, '')), +})) + +function createMockApp(pages: App['pages'] = []): App { + return { + pages, + options: { + pagePatterns: ['**/*.md'], + }, + dir: { + source: () => '/source', + }, + } as unknown as App +} + +function createMockEnv(filePathRelative = 'test.md'): MarkdownEnv { + return { + filePathRelative, + base: '/', + links: [], + importedFiles: [], + } +} + +function createMarkdownWithMockRules() { + return MarkdownIt({ html: true }).use((md) => { + md.block.ruler.before('code', 'import_code', () => false) + md.renderer.rules.import_code = () => '' + }) +} + +describe('embedLinkPlugin', () => { + beforeEach(() => { + mockGlobSync.mockReset() + mockReadFileSync.mockReset() + }) + + // ==================== Asset Embedding ==================== + + describe('asset embedding', () => { + beforeEach(() => { + mockGlobSync.mockReturnValue([]) + }) + + it('should render image embed', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[image.png]]') + expect(result).toContain(' { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[image.png|300]]') + expect(result).toContain(' { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[image.png|300x200]]') + expect(result).toContain(' { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[audio.mp3]]') + expect(result).toContain(' { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[video.mp4]]') + expect(result).toContain(' { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[document.pdf]]') + expect(result).toContain(' { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[document.pdf#page=1]]') + expect(result).toContain('page="1"') + }) + }) + + // ==================== External Links ==================== + + describe('external links', () => { + beforeEach(() => { + mockGlobSync.mockReturnValue([]) + }) + + it('should render external http link as anchor', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[https://example.com/file]]') + expect(result).toContain(' { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[https://example.com/image.png]]') + expect(result).toContain('src="https://example.com/image.png"') + }) + }) + + // ==================== Path Resolution ==================== + + describe('path resolution', () => { + beforeEach(() => { + mockGlobSync.mockReturnValue([]) + }) + + it('should return relative paths starting with dot as-is', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[./image.png]]', createMockEnv('docs/page.md')) + expect(result).toContain('src="./image.png"') + }) + + it('should return absolute paths starting with slash as-is', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[/images/cover.jpg]]') + expect(result).toContain('src="/images/cover.jpg"') + }) + + it('should prepend slash to relative paths without dot', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[image.png]]') + expect(result).toContain('src="/image.png"') + }) + + it('should ignore non-image with unsupported extension as link', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[file.unknown]]') + expect(result).toContain(' { + const guideContent = `--- +title: Guide +--- + +# Introduction + +This is intro content. + +## Getting Started + +Steps for getting started. + +## Advanced + +Advanced content. +` + + beforeEach(() => { + mockGlobSync.mockReturnValue(['guide.md']) + mockReadFileSync.mockReturnValue(guideContent) + + const app = createMockApp() + initPagePaths(app) + }) + + it('should embed entire markdown file when no heading specified', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const env = createMockEnv() + + const result = md.render('![[guide]]', env) + + expect(result).toContain('Introduction') + expect(result).toContain('intro content') + expect(result).toContain('Getting Started') + expect(result).toContain('Steps for getting started') + }) + + it('should embed content under specific heading', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const env = createMockEnv() + + const result = md.render('![[guide#Getting Started]]', env) + + expect(result).toContain('Steps for getting started') + expect(result).not.toContain('Advanced content') + expect(result).not.toContain('#') // no heading markers + }) + + it('should embed nested heading content', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const env = createMockEnv() + + const result = md.render('![[guide#Introduction#Getting Started]]', env) + + expect(result).toContain('Steps for getting started') + expect(result).not.toContain('Advanced content') + }) + + it('should track imported files in env', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const env = createMockEnv() + + md.render('![[guide]]', env) + + expect(env.importedFiles).toContain('guide.md') + }) + }) + + // ==================== Markdown Not Found ==================== + + describe('when page does not exist', () => { + beforeEach(() => { + mockGlobSync.mockReturnValue([]) + }) + + it('should render markdown file embed as link', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[nonexistent.md]]') + expect(result).toContain(' { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[nonexistent#section]]') + expect(result).toContain(' { + const contentWithContainers = `--- +title: Test +--- + +# Section + +::: info +This is a container +::: + +Regular content. +` + + beforeEach(() => { + mockGlobSync.mockReturnValue(['test.md']) + mockReadFileSync.mockReturnValue(contentWithContainers) + const app = createMockApp() + initPagePaths(app) + }) + + it('should preserve container syntax when embedding', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const env = createMockEnv() + + const result = md.render('![[test#Section]]', env) + + expect(result).toContain('::: info') + expect(result).toContain('This is a container') + expect(result).toContain('Regular content') + }) + }) + + // ==================== Error Handling ==================== + + describe('error handling', () => { + it('should return empty string when file read fails', () => { + mockGlobSync.mockReturnValue(['guide.md']) + mockReadFileSync.mockImplementation(() => { + throw new Error('ENOENT') + }) + + const app = createMockApp() + initPagePaths(app) + + const md = createMarkdownWithMockRules().use(embedLinkPlugin, app) + const env = createMockEnv() + const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) + + const result = md.render('![[guide]]', env) + + expect(result).toBe('') + expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('can not read file')) + warnSpy.mockRestore() + }) + }) + + // ==================== Heading Search Edge Cases ==================== + + describe('heading search edge cases', () => { + it('should find heading when same text appears at different nesting levels', () => { + const content = `# Title + +## Summary + +Summary content. + +## Details + +### Summary + +Nested summary under details. + +## Conclusion + +Conclusion content.` + + mockGlobSync.mockReturnValue(['guide.md']) + mockReadFileSync.mockReturnValue(content) + + const app = createMockApp() + initPagePaths(app) + + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const env = createMockEnv() + + // Should match first "Summary" at level 2 + const result = md.render('![[guide#Summary]]', env) + expect(result).toContain('Summary content.') + expect(result).not.toContain('Nested summary') + }) + + it('should return empty string when heading not found', () => { + const content = `# Title + +## Section + +Content.` + + mockGlobSync.mockReturnValue(['guide.md']) + mockReadFileSync.mockReturnValue(content) + + const app = createMockApp() + initPagePaths(app) + + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const env = createMockEnv() + const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {}) + + const result = md.render('![[guide#Nonexistent]]', env) + + expect(result).toBe('') + expect(warnSpy).toHaveBeenCalledWith(expect.stringContaining('No heading found')) + warnSpy.mockRestore() + }) + }) + + // ==================== Edge Cases ==================== + + describe('edge cases', () => { + beforeEach(() => { + mockGlobSync.mockReturnValue([]) + }) + + it('should not parse embed not ending with ]]', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[image.png]') + expect(result).toContain('![[image.png]') + }) + + it('should not parse empty embed link', () => { + const md = createMarkdownWithMockRules().use(embedLinkPlugin, createMockApp()) + const result = md.render('![[]]') + expect(result).toContain('![[]]') + }) + }) +}) diff --git a/plugins/plugin-md-power/__test__/obsidianEmbedLinkComplex.spec.ts b/plugins/plugin-md-power/__test__/obsidianEmbedLinkComplex.spec.ts deleted file mode 100644 index 54e50377..00000000 --- a/plugins/plugin-md-power/__test__/obsidianEmbedLinkComplex.spec.ts +++ /dev/null @@ -1,446 +0,0 @@ -import type { App } from 'vuepress' -import type { MarkdownEnv } from 'vuepress/markdown' -import MarkdownIt from 'markdown-it' -import { describe, expect, it, vi } from 'vitest' -import { embedLinkPlugin } from '../src/node/obsidian/embedLink.js' - -function createMockApp(pages: App['pages'] = []): App { - return { - pages, - } as App -} - -function createMockEnv(filePathRelative = 'test.md'): MarkdownEnv { - return { - filePathRelative, - base: '/', - links: [], - importedFiles: [], - } -} - -function createMarkdownWithMockRules() { - return MarkdownIt({ html: true }).use((md) => { - md.block.ruler.before('code', 'import_code', () => false) - md.renderer.rules.import_code = () => '' - }) -} - -vi.mock('gray-matter', () => ({ - default: vi.fn(content => ({ - content: content.replace(/^---[\s\S]*?---\n?/, ''), - data: {}, - })), -})) - -describe('embedLinkPlugin - internal markdown embed', () => { - it('should embed entire markdown file when no heading specified', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Introduction - -This is the guide content. - -## Getting Started - -Step 1, Step 2, Step 3. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide]]', createMockEnv('test.md')) - expect(result).toContain(' { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Introduction - -This is intro. - -## Getting Started - -Steps for getting started. - -## Advanced - -Advanced content. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide#Getting Started]]', createMockEnv('test.md')) - expect(result).toContain('Steps for getting started') - expect(result).not.toContain('Advanced content') - }) - - it('should embed nested heading content', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Introduction - -## Installation - -### Prerequisites - -Software requirements. - -### Download - -Download links. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide#Installation#Download]]', createMockEnv('test.md')) - expect(result).toContain('Download links') - expect(result).not.toContain('Prerequisites') - }) - - it('should handle heading with id syntax', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Introduction {#intro} - -Intro content. - -## Getting Started {#getting-started} - -Start content. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide#Getting Started]]', createMockEnv('test.md')) - expect(result).toContain('Start content') - }) - - it('should preserve container blocks within embedded content', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Introduction - -::: warning -This is a warning block. -::: - -Some text. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide]]', createMockEnv('test.md')) - expect(result).toContain('::: warning') - expect(result).toContain('This is a warning block') - }) - - it('should return empty string when heading not found', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Introduction - -Content. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide#NonExistent]]', createMockEnv('test.md')) - expect(result.trim()).toBe('') - }) - - it('should add importedFiles to env when embedding', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `# Guide\n\nContent.`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const env = createMockEnv('test.md') - md.render('![[Guide]]', env) - expect(env.importedFiles).toContain('docs/guide.md') - }) - - it('should handle heading with special characters', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Guide (中文) {#zh} - -Chinese content. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide#Guide (中文)]]', createMockEnv('test.md')) - expect(result).toContain('Chinese content') - }) - - it('should handle heading with class syntax', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Introduction {.intro .basic} - -Intro content. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide#Introduction]]', createMockEnv('test.md')) - expect(result).toContain('Intro content') - }) - - it('should handle multiple consecutive container blocks', async () => { - const mockPage = { - path: '/docs/guide/', - filePathRelative: 'docs/guide.md', - title: 'Guide', - content: `--- -title: Guide ---- - -# Section - -::: info -Info block. -::: - -::: warning -Warning block. -::: - -More text. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Guide#Section]]', createMockEnv('test.md')) - expect(result).toContain('Info block') - expect(result).toContain('Warning block') - expect(result).toContain('More text') - }) - - it('should handle frontmatter in embedded file', async () => { - const mockPage = { - path: '/docs/page/', - filePathRelative: 'docs/page.md', - title: 'Page', - content: `--- -title: Actual Title -author: Test Author ---- - -# Actual Title - -Page content. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Page]]', createMockEnv('test.md')) - expect(result).toContain('Page content') - expect(result).not.toContain('author') - }) -}) - -describe('extractContentByHeadings', () => { - it('should return full content when no headings specified', async () => { - const mockPage = { - path: '/docs/page/', - filePathRelative: 'docs/page.md', - title: 'Page', - content: `# Title\n\nContent here.`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Page]]', createMockEnv('test.md')) - expect(result).toContain('Content here') - }) - - it('should restart heading search when encountering same text at lower level', async () => { - const mockPage = { - path: '/docs/page/', - filePathRelative: 'docs/page.md', - title: 'Page', - content: `--- ---- - -# Section - -## Subsection - -Subsection content. - -# Section - -## Another - -Another content. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Page#Section#Another]]', createMockEnv('test.md')) - expect(result).toContain('Another content') - expect(result).not.toContain('Subsection content') - }) - - it('should reset search when encountering different heading at lower level', async () => { - const mockPage = { - path: '/docs/page/', - filePathRelative: 'docs/page.md', - title: 'Page', - content: `--- ---- - -# Section - -## Subsection - -Subsection content. - -# Other - -## Content - -Other content. -`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - // Search for "Section#Content" - after matching "Section" and failing to find "Content" - // under "Subsection" (which is level 2 > 1), we encounter "Other" at level 1 - // heading.level (1) <= currentLevel (2), and "Other" !== "Section" - // So we enter the else branch at lines 268-270: headingPointer = 0, currentLevel = 0 - const result = md.render('![[Page#Section#Content]]', createMockEnv('test.md')) - expect(result.trim()).toBe('') - }) - - it('should extract content between sibling headings', async () => { - const mockPage = { - path: '/docs/page/', - filePathRelative: 'docs/page.md', - title: 'Page', - content: `# Title\n\nIntro.\n\n## Section1\n\nSection 1 content.\n\n## Section2\n\nSection 2 content.\n`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Page#Section1]]', createMockEnv('test.md')) - expect(result).toContain('Section 1 content') - expect(result).not.toContain('Section 2 content') - }) - - it('should handle deep nested headings', async () => { - const mockPage = { - path: '/docs/page/', - filePathRelative: 'docs/page.md', - title: 'Page', - content: `# H1\n\n## H2a\n\n### H3a\n\nH3a content.\n\n### H3b\n\nH3b content.\n\n## H2b\n\nH2b content.\n`, - markdownEnv: { base: '/' }, - } - - const mockApp = createMockApp([mockPage] as unknown as App['pages']) - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - const result = md.render('![[Page#H2a#H3b]]', createMockEnv('test.md')) - expect(result).toContain('H3b content') - expect(result).not.toContain('H3a content') - }) -}) diff --git a/plugins/plugin-md-power/__test__/obsidianEmbedLinkPlugin.spec.ts b/plugins/plugin-md-power/__test__/obsidianEmbedLinkPlugin.spec.ts deleted file mode 100644 index 1dd7a227..00000000 --- a/plugins/plugin-md-power/__test__/obsidianEmbedLinkPlugin.spec.ts +++ /dev/null @@ -1,124 +0,0 @@ -import type { App } from 'vuepress' -import type { MarkdownEnv } from 'vuepress/markdown' -import MarkdownIt from 'markdown-it' -import { describe, expect, it } from 'vitest' -import { embedLinkPlugin } from '../src/node/obsidian/embedLink.js' - -function createMockApp(pages: App['pages'] = []): App { - return { - pages, - } as App -} - -function createMockEnv(filePathRelative = 'test.md'): MarkdownEnv { - return { - filePathRelative, - base: '/', - links: [], - importedFiles: [], - } -} - -function createMarkdownWithMockRules() { - return MarkdownIt({ html: true }).use((md) => { - md.block.ruler.before('code', 'import_code', () => false) - md.renderer.rules.import_code = () => '' - }) -} - -describe('embedLinkPlugin', () => { - const mockApp = createMockApp() - const md = createMarkdownWithMockRules().use(embedLinkPlugin, mockApp) - - it('should render image embed', () => { - const result = md.render('![[image.png]]') - expect(result).toContain(' { - const result = md.render('![[image.png|300]]') - expect(result).toContain(' { - const result = md.render('![[image.png|300x200]]') - expect(result).toContain(' { - const result = md.render('![[audio.mp3]]') - expect(result).toContain(' { - const result = md.render('![[video.mp4]]') - expect(result).toContain(' { - const result = md.render('![[document.pdf]]') - expect(result).toContain(' { - const result = md.render('![[document.pdf#page=1]]') - expect(result).toContain('page="1"') - }) - - it('should render external http link as anchor', () => { - const result = md.render('![[https://example.com/file]]') - expect(result).toContain(' { - const env = createMockEnv('docs/page.md') - const result = md.render('![[./image.png]]', env) - expect(result).toContain(' { - const result = md.render('![[/images/cover.jpg]]') - expect(result).toContain(' { - const result = md.render('![[file.unknown]]') - expect(result).toContain(' { - const result = md.render('![[image.png]') - expect(result).toContain('![[image.png]') - }) - - it('should render markdown file embed as link when page not found', () => { - const result = md.render('![[nonexistent.md]]') - expect(result).toContain(' { - const result = md.render('![[nonexistent.md#heading1#heading2]]') - expect(result).toContain(' { - const result = md.render('![[]]') - expect(result).toContain('![[]]') - }) -}) diff --git a/plugins/plugin-md-power/__test__/obsidianExtractContent.spec.ts b/plugins/plugin-md-power/__test__/obsidianExtractContent.spec.ts new file mode 100644 index 00000000..f2ebc20f --- /dev/null +++ b/plugins/plugin-md-power/__test__/obsidianExtractContent.spec.ts @@ -0,0 +1,297 @@ +import { describe, expect, it } from 'vitest' + +// Replicate the extractContentByHeadings logic for isolated testing +const HEADING_HASH_REG = /^#+/ +const HEADING_ATTRS_REG = /(?:\{[^}]*\})?$/ + +interface ParsedHeading { + lineIndex: number + level: number + text: string +} + +function extractContentByHeadings(content: string, headings: string[]): string { + if (!headings.length) + return content + + const containers: Record = {} + + content = content.replaceAll(/(?:{3,})[\s\S]*?\k/g, (matched) => { + const key = `CONTAINER_${Object.keys(containers).length}` + containers[key] = matched + return `` + }) + const lines = content.split(/\r?\n/) + + const allHeadings: ParsedHeading[] = [] + + for (let i = 0; i < lines.length; i++) { + let text = lines[i].trimEnd() + let level = 0 + text = text.replace(HEADING_HASH_REG, (matched) => { + level = matched.length + return '' + }) + if (level) { + text = text.replace(HEADING_ATTRS_REG, '').trim() + allHeadings.push({ lineIndex: i, level, text }) + } + } + + let targetHeadingIndex = -1 + let currentLevel = 0 + let headingPointer = 0 + + for (let i = 0; i < allHeadings.length; i++) { + const heading = allHeadings[i] + + if (headingPointer === 0) { + if (heading.text === headings[0]) { + headingPointer++ + currentLevel = heading.level + if (headingPointer === headings.length) { + targetHeadingIndex = i + break + } + } + } + else { + if (heading.level > currentLevel && heading.text === headings[headingPointer]) { + headingPointer++ + currentLevel = heading.level + if (headingPointer === headings.length) { + targetHeadingIndex = i + break + } + } + else if (heading.level <= currentLevel) { + if (heading.text === headings[0]) { + headingPointer = 1 + currentLevel = heading.level + } + else { + headingPointer = 0 + currentLevel = 0 + } + } + } + } + + if (targetHeadingIndex === -1) { + return '' + } + + const targetHeading = allHeadings[targetHeadingIndex] + const startLine = targetHeading.lineIndex + 1 + const targetLevel = targetHeading.level + + let endLine = lines.length + for (let i = targetHeadingIndex + 1; i < allHeadings.length; i++) { + if (allHeadings[i].level <= targetLevel) { + endLine = allHeadings[i].lineIndex + break + } + } + + const result = lines.slice(startLine, endLine).join('\n').trim() + + return result.replaceAll(//g, (_, key) => containers[key] ?? '') +} + +describe('extractContentByHeadings', () => { + it('should return full content when no headings specified', () => { + const content = '# Title\n\nSome content here.' + expect(extractContentByHeadings(content, [])).toBe(content) + }) + + it('should extract content under single heading', () => { + const content = `# Title + +Intro content. + +## Section 1 + +Section 1 content. + +## Section 2 + +Section 2 content.` + + expect(extractContentByHeadings(content, ['Section 1'])).toBe('Section 1 content.') + }) + + it('should extract content under nested heading', () => { + const content = `# Title + +## Level 2 + +### Level 3 + +Deep content. + +## Back to Level 2 + +Other content.` + + expect(extractContentByHeadings(content, ['Level 2', 'Level 3'])).toBe('Deep content.') + }) + + it('should stop at sibling heading of same level', () => { + const content = `# Title + +## Section A + +Content A. + +## Section B + +Content B. + +### Nested in B + +Nested content.` + + expect(extractContentByHeadings(content, ['Section A'])).toBe('Content A.') + expect(extractContentByHeadings(content, ['Section B'])).toBe('Content B.\n\n### Nested in B\n\nNested content.') + }) + + it('should handle heading with attributes', () => { + const content = `# Title + +## Section {#id .class data=value} + +Section content with attributes.` + + expect(extractContentByHeadings(content, ['Section'])).toBe('Section content with attributes.') + }) + + it('should preserve container syntax that appears within the extracted content', () => { + const content = `## Section + +::: info +Container content +::: + +Content after container.` + + const result = extractContentByHeadings(content, ['Section']) + expect(result).toContain('::: info') + expect(result).toContain('Container content') + expect(result).toContain('Content after container') + }) + + it('should handle multiple containers within extracted content', () => { + const content = `## Section + +::: info +First container +::: + +::: warning +Second container +::: + +Content.` + + const result = extractContentByHeadings(content, ['Section']) + expect(result).toContain('::: info') + expect(result).toContain('First container') + expect(result).toContain('::: warning') + expect(result).toContain('Second container') + }) + + it('should return empty string when heading not found', () => { + const content = `# Title + +## Section + +Content.` + + expect(extractContentByHeadings(content, ['Nonexistent'])).toBe('') + }) + + it('should handle deeply nested structure', () => { + const content = `# H1 + +## H2a + +### H3a + +H3a content. + +### H3b + +H3b content. + +## H2b + +H2b content.` + + expect(extractContentByHeadings(content, ['H2a', 'H3b'])).toBe('H3b content.') + expect(extractContentByHeadings(content, ['H2a'])).toContain('H3a content') + expect(extractContentByHeadings(content, ['H2a'])).toContain('H3b content') + expect(extractContentByHeadings(content, ['H2a'])).not.toContain('H2b content') + }) + + it('should handle content with code blocks', () => { + const content = `# Title + +## Section + +\`\`\`js +const x = 1; +\`\`\` + +More content.` + + const result = extractContentByHeadings(content, ['Section']) + expect(result).toContain('```js') + expect(result).toContain('const x = 1;') + expect(result).toContain('More content.') + }) + + it('should handle content with blockquotes', () => { + const content = `# Title + +## Section + +> Blockquote text + +Paragraph after.` + + const result = extractContentByHeadings(content, ['Section']) + expect(result).toContain('> Blockquote text') + expect(result).toContain('Paragraph after.') + }) + + it('should handle headings at different levels with same text', () => { + const content = `# Title + +## Summary + +Summary content. + +## Details + +### Summary + +Nested summary under details. + +## Conclusion + +Conclusion content.` + + // Should match first "Summary" at level 2 + expect(extractContentByHeadings(content, ['Summary'])).toBe('Summary content.') + }) + + it('should handle heading with trailing spaces', () => { + const content = `# Title + +## Section + +Section content.` + + expect(extractContentByHeadings(content, ['Section'])).toBe('Section content.') + }) +}) diff --git a/plugins/plugin-md-power/__test__/obsidianFindFirstPage.spec.ts b/plugins/plugin-md-power/__test__/obsidianFindFirstPage.spec.ts new file mode 100644 index 00000000..dd22eeeb --- /dev/null +++ b/plugins/plugin-md-power/__test__/obsidianFindFirstPage.spec.ts @@ -0,0 +1,156 @@ +import type { App } from 'vuepress' +import { beforeEach, describe, expect, it, vi } from 'vitest' +import { findFirstPage, initPagePaths, updatePagePaths } from '../src/node/obsidian/findFirstPage.js' + +const mockGlobSync = vi.fn() + +vi.mock('vuepress/utils', () => ({ + tinyglobby: { + globSync: (...args: unknown[]) => mockGlobSync(...args), + }, + path: { + dirname: vi.fn((p: string) => p.split('/').slice(0, -1).join('/') || '.'), + extname: vi.fn((p: string) => { + const i = p.lastIndexOf('.') + return i > 0 ? p.slice(i) : '' + }), + join: vi.fn((...args: string[]) => args.join('/')), + }, +})) + +vi.mock('@vuepress/helper', () => ({ + removeLeadingSlash: vi.fn((p: string) => p.replace(/^\//, '')), +})) + +function createMockApp(pagePatterns = ['**/*.md']): App { + return { + pages: [], + options: { + pagePatterns, + }, + dir: { + source: () => '/source', + }, + } as unknown as App +} + +describe('findFirstPage', () => { + beforeEach(() => { + mockGlobSync.mockReset() + }) + + describe('initPagePaths', () => { + it('should initialize page paths from glob pattern', () => { + mockGlobSync.mockReturnValue([ + 'README.md', + 'guide.md', + 'docs/api.md', + 'docs/guide/intro.md', + ]) + + const app = createMockApp() + initPagePaths(app) + + expect(mockGlobSync).toHaveBeenCalledWith(['**/*.md'], { + cwd: '/source', + ignore: ['**/node_modules/**', '**/.vuepress/**'], + }) + }) + + it('should sort page paths by directory depth', () => { + mockGlobSync.mockReturnValue([ + 'docs/a/b/c.md', + 'a.md', + 'docs/a.md', + ]) + + const app = createMockApp() + initPagePaths(app) + + // Should find a.md first because it's shortest + expect(findFirstPage('a', 'any/path.md')).toBe('a.md') + }) + }) + + describe('updatePagePaths', () => { + it('should add new page path on create', () => { + mockGlobSync.mockReturnValue(['existing.md']) + + const app = createMockApp() + initPagePaths(app) + + updatePagePaths('new-page.md', 'create') + + expect(findFirstPage('new-page', 'any/path.md')).toBe('new-page.md') + }) + + it('should remove page path on delete', () => { + mockGlobSync.mockReturnValue(['existing.md', 'to-delete.md']) + + const app = createMockApp() + initPagePaths(app) + + updatePagePaths('to-delete.md', 'delete') + + expect(findFirstPage('to-delete', 'any/path.md')).toBeUndefined() + expect(findFirstPage('existing', 'any/path.md')).toBe('existing.md') + }) + + it('should not add empty filepath', () => { + mockGlobSync.mockReturnValue(['existing.md']) + + const app = createMockApp() + initPagePaths(app) + + const beforeUpdate = findFirstPage('existing', 'any/path.md') + + updatePagePaths('', 'create') + + expect(findFirstPage('existing', 'any/path.md')).toBe(beforeUpdate) + }) + }) + + describe('findFirstPage matching logic', () => { + beforeEach(() => { + mockGlobSync.mockReturnValue([ + 'README.md', + 'guide.md', + 'docs/api.md', + 'docs/guide/intro.md', + 'docs/guide/advanced.md', + 'page.md', + ]) + + const app = createMockApp() + initPagePaths(app) + }) + + it('should return exact match', () => { + expect(findFirstPage('guide', 'any/path.md')).toBe('guide.md') + expect(findFirstPage('api', 'any/path.md')).toBe('docs/api.md') + }) + + it('should return path that ends with the filename', () => { + expect(findFirstPage('intro', 'any/path.md')).toBe('docs/guide/intro.md') + }) + + it('should add .md extension if no extension provided', () => { + expect(findFirstPage('page', 'any/path.md')).toBe('page.md') + }) + + it('should not add .md if extension already present', () => { + expect(findFirstPage('page.md', 'any/path.md')).toBe('page.md') + }) + + it('should find page via endsWith matching when given partial path', () => { + // When searching for 'guide/advanced', it should find 'docs/guide/advanced.md' + // because the pagePath ends with 'guide/advanced.md' + expect(findFirstPage('guide/advanced', 'any/path.md')).toBe('docs/guide/advanced.md') + }) + + it('should return undefined when page not found', () => { + expect(findFirstPage('nonexistent', 'any/path.md')).toBeUndefined() + expect(findFirstPage('does-not-exist', 'any/path.md')).toBeUndefined() + }) + }) +}) diff --git a/plugins/plugin-md-power/__test__/obsidianPlugin.spec.ts b/plugins/plugin-md-power/__test__/obsidianPlugin.spec.ts index 2b754e0a..78daa1ee 100644 --- a/plugins/plugin-md-power/__test__/obsidianPlugin.spec.ts +++ b/plugins/plugin-md-power/__test__/obsidianPlugin.spec.ts @@ -1,12 +1,28 @@ import type { App } from 'vuepress' import MarkdownIt from 'markdown-it' -import { describe, expect, it } from 'vitest' +import { describe, expect, it, vi } from 'vitest' import { obsidianPlugin } from '../src/node/obsidian/index.js' +vi.mock('vuepress/utils', async () => { + const actual = await vi.importActual('vuepress/utils') + return { + ...actual, + tinyglobby: { + globSync: vi.fn(() => []), + }, + } +}) + function createMockApp(pages: App['pages'] = []): App { return { pages, - } as App + options: { + pagePatterns: ['**/*.md'], + }, + dir: { + source: () => '/source', + }, + } as unknown as App } function createMarkdownWithMockRules() { @@ -20,13 +36,11 @@ describe('obsidianPlugin', () => { it('should enable all plugins by default', () => { const md = createMarkdownWithMockRules() const mockApp = createMockApp([{ path: '/', filePathRelative: 'README.md', title: 'Home' }] as unknown as App['pages']) - obsidianPlugin(md, mockApp, {}) - - const embedResult = md.render('![[image.png]]') - expect(embedResult).toContain(' { it('should allow disabling specific plugins', () => { const md = createMarkdownWithMockRules() const mockApp = createMockApp() - obsidianPlugin(md, mockApp, { obsidian: { wikiLink: false } }) + obsidianPlugin(mockApp, md, { obsidian: { wikiLink: false } }) const wikiResult = md.render('[[Page]]') expect(wikiResult).not.toContain(' { it('should disable all plugins when obsidian is false', () => { const md = createMarkdownWithMockRules() const mockApp = createMockApp() - obsidianPlugin(md, mockApp, { obsidian: false }) + obsidianPlugin(mockApp, md, { obsidian: false }) const result = md.render('![[image.png]]') - expect(result).not.toContain(' { const md = createMarkdownWithMockRules() const mockApp = createMockApp() - obsidianPlugin(md, mockApp, { obsidian: { embedLink: false } }) + obsidianPlugin(mockApp, md, { obsidian: { embedLink: false } }) const result = md.render('![[image.png]]') expect(result).not.toContain(' { it('should disable comment when explicitly set to false', () => { const md = createMarkdownWithMockRules() const mockApp = createMockApp() - obsidianPlugin(md, mockApp, { obsidian: { comment: false } }) - - const embedResult = md.render('![[image.png]]') - expect(embedResult).toContain(' ({ + tinyglobby: { + globSync: (...args: unknown[]) => mockGlobSync(...args), + }, + path: { + dirname: vi.fn((p: string) => p.split('/').slice(0, -1).join('/') || '.'), + extname: vi.fn((p: string) => { + const i = p.lastIndexOf('.') + return i > 0 ? p.slice(i) : '' + }), + join: vi.fn((...args: string[]) => args.join('/')), + }, +})) + +vi.mock('@vuepress/helper', () => ({ + removeLeadingSlash: vi.fn((p: string) => p.replace(/^\//, '')), +})) + +function createMockApp(pagePatterns = ['**/*.md']): App { + return { + pages: [], + options: { + pagePatterns, + }, + dir: { + source: () => '/source', + }, + } as unknown as App +} + +function createMockEnv(filePathRelative = 'test.md'): MarkdownEnv { + return { + filePathRelative, + base: '/', + links: [], + } +} + +describe('wikiLinkPlugin', () => { + beforeEach(() => { + mockGlobSync.mockReset() + }) + + // ==================== External Links ==================== + + describe('external links', () => { + it('should render external http link', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const result = md.render('[[https://example.com]]') + expect(result).toContain(' { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const result = md.render('[[https://example.com|Example Site]]') + expect(result).toContain('>Example Site<') + expect(result).toContain('href="https://example.com"') + }) + + it('should render external link with heading and alias', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const result = md.render('[[https://example.com/page#section|Go to Section]]') + expect(result).toContain('>Go to Section<') + expect(result).toContain('href="https://example.com/page#section"') + }) + + it('should render external link with heading but no alias', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const result = md.render('[[https://example.com/page#section]]') + expect(result).toContain('href="https://example.com/page#section"') + expect(result).toContain('https://example.com/page > section') + }) + }) + + // ==================== Internal Hash Links ==================== + + describe('internal hash links', () => { + it('should render internal hash link for empty filename', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv('docs/page.md') + const result = md.render('[[#anchor]]', env) + expect(result).toContain(' { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv('docs/page.md') + const result = md.render('[[#anchor|Back to Top]]', env) + expect(result).toContain('>Back to Top<') + expect(result).toContain('href="#anchor"') + }) + + it('should render internal hash link with titles but no alias', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv('docs/page.md') + const result = md.render('[[#anchor1#anchor2]]', env) + expect(result).toContain('href="#anchor2"') + expect(result).toContain('> anchor1 > anchor2') + }) + }) + + // ==================== Internal Page Resolution ==================== + + describe('internal page resolution', () => { + beforeEach(() => { + mockGlobSync.mockReturnValue([ + 'README.md', + 'guide.md', + 'docs/api.md', + 'docs/guide/intro.md', + ]) + + const app = createMockApp() + initPagePaths(app) + }) + + it('should render internal wiki link with VPLink', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + const result = md.render('[[guide]]', env) + + expect(result).toContain(' { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + const result = md.render('[[guide#Getting Started]]', env) + + expect(result).toContain(' { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + const result = md.render('[[guide|Guide Page]]', env) + + expect(result).toContain('Guide Page') + expect(result).toContain(' { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + const result = md.render('[[guide#Getting Started|Getting Started]]', env) + + expect(result).toContain('Getting Started') + expect(result).toContain('href="/guide.md#getting-started"') + }) + + it('should track links in env', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + md.render('[[guide]]', env) + + expect(env.links).toBeDefined() + expect(env.links!.length).toBeGreaterThan(0) + }) + + it('should find page by partial filename', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + // Should match docs/guide/intro.md when searching for "intro" + const result = md.render('[[intro]]', env) + + expect(result).toContain(' { + beforeEach(() => { + mockGlobSync.mockReturnValue(['existing.md']) + + const app = createMockApp() + initPagePaths(app) + }) + + it('should render as external anchor link', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const result = md.render('[[nonexistent]]') + + expect(result).toContain(' { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const result = md.render('[[nonexistent#section]]') + + expect(result).toContain('href="/nonexistent#section"') + }) + }) + + // ==================== Edge Cases ==================== + + describe('edge cases', () => { + beforeEach(() => { + mockGlobSync.mockReturnValue(['docs/page.md']) + const app = createMockApp() + initPagePaths(app) + }) + + it('should not parse wiki link without closing bracket', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const result = md.render('[[Page') + expect(result).toContain('[[Page') + }) + + it('should not parse empty wiki link', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const result = md.render('[[]]') + expect(result).toContain('[[]]') + }) + + it('should handle wiki link with extra whitespace', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + const result = md.render('[[ page ]]', env) + + expect(result).toContain(' { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + const result = md.render('[[page#h1#h2#h3]]', env) + + expect(result).toContain('href="/docs/page.md#h3"') + }) + + it('should handle wiki link with pipe in filename', () => { + const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin) + const env = createMockEnv() + + // Filename with pipe character should be treated as alias separator + const result = md.render('[[page|alias]]', env) + + expect(result).toContain('>alias<') + }) + }) +}) diff --git a/plugins/plugin-md-power/__test__/obsidianWikiLinkPlugin.spec.ts b/plugins/plugin-md-power/__test__/obsidianWikiLinkPlugin.spec.ts deleted file mode 100644 index 0ece210c..00000000 --- a/plugins/plugin-md-power/__test__/obsidianWikiLinkPlugin.spec.ts +++ /dev/null @@ -1,218 +0,0 @@ -import type { App } from 'vuepress' -import type { MarkdownEnv } from 'vuepress/markdown' -import MarkdownIt from 'markdown-it' -import { describe, expect, it } from 'vitest' -import { findFirstPage, wikiLinkPlugin } from '../src/node/obsidian/wikiLink.js' - -function createMockApp(pages: App['pages'] = []): App { - return { - pages, - } as App -} - -function createMockEnv(filePathRelative = 'test.md'): MarkdownEnv { - return { - filePathRelative, - base: '/', - links: [], - importedFiles: [], - } -} - -describe('wikiLinkPlugin', () => { - const mockApp = createMockApp([ - { - path: '/docs/getting-started/', - filePathRelative: 'docs/getting-started/README.md', - title: 'Getting Started', - }, - { - path: '/docs/guide/intro/', - filePathRelative: 'docs/guide/intro.md', - title: 'Introduction', - }, - { - path: '/api/utils/', - filePathRelative: 'api/utils.md', - title: 'Utils', - }, - ] as App['pages']) - - const md = new MarkdownIt({ html: true }).use(wikiLinkPlugin, mockApp) - - it('should render internal wiki link to existing page', () => { - const env = createMockEnv('docs/page.md') - const result = md.render('[[Getting Started]]', env) - expect(result).toContain(' { - const env = createMockEnv('docs/page.md') - const result = md.render('[[Getting Started|Quick Start]]', env) - expect(result).toContain(' { - const env = createMockEnv('docs/page.md') - const result = md.render('[[Introduction#Installation]]', env) - expect(result).toContain(' { - const env = createMockEnv('docs/page.md') - const result = md.render('[[Introduction#Installation|Install Guide]]', env) - expect(result).toContain(' { - const result = md.render('[[https://example.com]]') - expect(result).toContain(' { - const result = md.render('[[https://example.com|Example Site]]') - expect(result).toContain('>Example Site<') - expect(result).toContain('href="https://example.com"') - }) - - it('should render external link with heading and alias', () => { - const result = md.render('[[https://example.com/page#section|Go to Section]]') - expect(result).toContain('>Go to Section<') - expect(result).toContain('href="https://example.com/page#section"') - }) - - it('should render external link with heading but no alias', () => { - const result = md.render('[[https://example.com/page#section]]') - expect(result).toContain('href="https://example.com/page#section"') - expect(result).toContain('https://example.com/page > section') - }) - - it('should render internal hash link for empty filename', () => { - const env = createMockEnv('docs/page.md') - const result = md.render('[[#anchor]]', env) - expect(result).toContain(' { - const env = createMockEnv('docs/page.md') - const result = md.render('[[#anchor|Back to Top]]', env) - expect(result).toContain('>Back to Top<') - expect(result).toContain('href="#anchor"') - }) - - it('should render internal hash link with titles but no alias', () => { - const env = createMockEnv('docs/page.md') - const result = md.render('[[#anchor1#anchor2]]', env) - expect(result).toContain('href="#anchor2"') - expect(result).toContain('> anchor1 > anchor2') - }) - - it('should render relative path wiki link as anchor when not found', () => { - const env = createMockEnv('docs/page.md') - const result = md.render('[[../api/other.md]]', env) - expect(result).toContain(' { - const env = createMockEnv('docs/page.md') - const result = md.render('[[../api/other.md|View API]]', env) - expect(result).toContain('>View API<') - expect(result).toContain('href="/api/other.md"') - }) - - it('should render relative path wiki link with heading but no alias', () => { - const env = createMockEnv('docs/page.md') - const result = md.render('[[../api/other.md#section]]', env) - expect(result).toContain('href="/api/other.md#section"') - expect(result).toContain('../api/other.md > section') - }) - - it('should add to links array in env', () => { - const env = createMockEnv('docs/page.md') - md.render('[[Utils]]', env) - expect(env.links).toBeDefined() - expect(env.links!.length).toBeGreaterThan(0) - }) - - it('should not parse wiki link without closing bracket', () => { - const result = md.render('[[Page') - expect(result).toContain('[[Page') - }) - - it('should not parse empty wiki link', () => { - const result = md.render('[[]]') - expect(result).toContain('[[]]') - }) -}) - -describe('findFirstPage', () => { - const mockApp = createMockApp([ - { path: '/', filePathRelative: 'README.md', title: 'Home' }, - { path: '/docs/guide/', filePathRelative: 'docs/guide/README.md', title: 'Guide' }, - { path: '/docs/api/', filePathRelative: 'docs/api.md', title: 'API' }, - { path: '/docs/config/', filePathRelative: 'docs/config/index.md', title: 'Config' }, - ] as App['pages']) - - it('should find page by exact title', () => { - const result = findFirstPage(mockApp, 'Guide', 'any/path.md') - expect(result?.title).toBe('Guide') - }) - - it('should find page by exact file path', () => { - const result = findFirstPage(mockApp, 'docs/api.md', 'any/path.md') - expect(result?.title).toBe('API') - }) - - it('should find page by exact title with path-like name', () => { - const result = findFirstPage(mockApp, 'docs/config/index', 'any/path.md') - expect(result?.title).toBe('Config') - }) - - it('should find folder index by trailing slash', () => { - const result = findFirstPage(mockApp, 'docs/guide/', 'any/path.md') - expect(result?.title).toBe('Guide') - }) - - it('should find page without extension', () => { - const result = findFirstPage(mockApp, 'docs/api', 'any/path.md') - expect(result?.title).toBe('API') - }) - - it('should find page by fuzzy match with folder path ending in slash', () => { - const app = createMockApp([ - { path: '/docs/features/', filePathRelative: 'docs/features/README.md', title: 'Features' }, - ] as App['pages']) - const result = findFirstPage(app, 'docs/features/', 'any/path.md') - expect(result?.title).toBe('Features') - }) - - it('should find page by fuzzy match ending with index.html', () => { - const app = createMockApp([ - { path: '/docs/guide/', filePathRelative: 'docs/guide/index.html', title: 'Guide' }, - ] as App['pages']) - const result = findFirstPage(app, 'docs/guide/', 'any/path.md') - expect(result?.title).toBe('Guide') - }) - - it('should return undefined when page not found', () => { - const result = findFirstPage(mockApp, 'nonexistent', 'any/path.md') - expect(result).toBeUndefined() - }) - - it('should find page by data.title fallback', () => { - const app = createMockApp([ - { path: '/test/', filePathRelative: 'test.md', data: { title: 'Data Title' } }, - ] as unknown as App['pages']) - const result = findFirstPage(app, 'Data Title', 'any/path.md') - expect(result?.path).toBe('/test/') - }) -}) diff --git a/plugins/plugin-md-power/src/node/obsidian/embedLink.ts b/plugins/plugin-md-power/src/node/obsidian/embedLink.ts index ac551218..200f8497 100644 --- a/plugins/plugin-md-power/src/node/obsidian/embedLink.ts +++ b/plugins/plugin-md-power/src/node/obsidian/embedLink.ts @@ -17,15 +17,16 @@ import type { RuleBlock } from 'markdown-it/lib/parser_block.mjs' import type { App } from 'vuepress' import type { Markdown, MarkdownEnv } from 'vuepress/markdown' +import { attempt } from '@pengzhanbo/utils' import grayMatter from 'gray-matter' import Token from 'markdown-it/lib/token.mjs' import { ensureLeadingSlash, isLinkHttp } from 'vuepress/shared' -import { hash, path } from 'vuepress/utils' +import { fs, hash, path } from 'vuepress/utils' import { checkSupportType, SUPPORTED_VIDEO_TYPES } from '../embed/video/artPlayer.js' import { cleanMarkdownEnv } from '../utils/cleanMarkdownEnv.js' import { parseRect } from '../utils/parseRect.js' import { slugify } from '../utils/slugify.js' -import { findFirstPage } from './wikiLink.js' +import { findFirstPage } from './findFirstPage.js' interface EmbedLinkMeta { filename: string @@ -173,13 +174,22 @@ export function embedLinkPlugin(md: Markdown, app: App): void { md.renderer.rules.obsidian_embed_link = (tokens, idx, _, env: MarkdownEnv) => { const token = tokens[idx] const { filename, hashes, settings } = token.meta as EmbedLinkMeta - const internalPage = findFirstPage(app, filename, env.filePathRelative ?? '') + const pagePath = findFirstPage(filename, env.filePathRelative ?? '') // 解析为内部 markdown 资源,提取 markdown 片段并插入到当前页面 - if (internalPage) { - const { content: rawContent } = grayMatter(internalPage.content) + if (pagePath) { + const [error, markdown] = attempt(() => fs.readFileSync(app.dir.source(pagePath), 'utf-8')) + if (error) { + console.warn(`[embedLinkPlugin] can not read file: ${pagePath}`) + return '' + } + const { content: rawContent } = grayMatter(markdown) + if (!rawContent) { + console.warn(`[embedLinkPlugin] file ${pagePath} is empty`) + return '' + } const content = extractContentByHeadings(rawContent, hashes) - internalPage.filePathRelative && (env.importedFiles ??= []).push(internalPage.filePathRelative) - return md.render(content, cleanMarkdownEnv(internalPage.markdownEnv)) + pagePath && (env.importedFiles ??= []).push(pagePath) + return md.render(content, cleanMarkdownEnv(env)) } // 其他资源,解析为链接 diff --git a/plugins/plugin-md-power/src/node/obsidian/findFirstPage.ts b/plugins/plugin-md-power/src/node/obsidian/findFirstPage.ts new file mode 100644 index 00000000..84ccdd60 --- /dev/null +++ b/plugins/plugin-md-power/src/node/obsidian/findFirstPage.ts @@ -0,0 +1,42 @@ +import type { App } from 'vuepress' +import { removeLeadingSlash } from '@vuepress/helper' +import { path, tinyglobby } from 'vuepress/utils' + +const pagePaths: string[] = [] + +export function initPagePaths(app: App) { + pagePaths.length = 0 + pagePaths.push(...tinyglobby.globSync(app.options.pagePatterns, { + cwd: app.dir.source(), + ignore: ['**/node_modules/**', '**/.vuepress/**'], + })) + sortPagePaths() +} + +export function updatePagePaths(filepath: string, type: 'create' | 'delete') { + if (!filepath) + return + if (type === 'create') { + pagePaths.push(filepath) + } + if (type === 'delete' && pagePaths.includes(filepath)) { + pagePaths.splice(pagePaths.indexOf(filepath), 1) + } + sortPagePaths() +} + +export function findFirstPage(filename: string, currentPath: string) { + const dirname = path.dirname(currentPath) + let filepath = filename[0] === '.' ? path.join(dirname, filename) : removeLeadingSlash(filename) + filepath = filepath.slice(-1) === '/' ? `${filepath}/README.md` : filepath + filepath = path.extname(filepath) ? filepath : `${filepath}.md` + return pagePaths.find(pagePath => pagePath === filepath || pagePath.endsWith(filepath)) +} + +function sortPagePaths() { + pagePaths.sort((a, b) => { + const al = a.split('/').length + const bl = b.split('/').length + return al - bl + }) +} diff --git a/plugins/plugin-md-power/src/node/obsidian/index.ts b/plugins/plugin-md-power/src/node/obsidian/index.ts index 9bc3e42a..843475f1 100644 --- a/plugins/plugin-md-power/src/node/obsidian/index.ts +++ b/plugins/plugin-md-power/src/node/obsidian/index.ts @@ -4,11 +4,14 @@ import type { MarkdownPowerPluginOptions } from '../../shared/index.js' import { isPlainObject } from 'vuepress/shared' import { commentPlugin } from './comment.js' import { embedLinkPlugin } from './embedLink.js' +import { initPagePaths } from './findFirstPage.js' import { wikiLinkPlugin } from './wikiLink.js' +export * from './findFirstPage.js' + export function obsidianPlugin( - md: Markdown, app: App, + md: Markdown, options: MarkdownPowerPluginOptions, ) { if (options.obsidian === false) @@ -16,8 +19,10 @@ export function obsidianPlugin( const obsidian = isPlainObject(options.obsidian) ? options.obsidian : {} + initPagePaths(app) + if (obsidian.wikiLink !== false) - wikiLinkPlugin(md, app) + wikiLinkPlugin(md) if (obsidian.embedLink !== false) embedLinkPlugin(md, app) diff --git a/plugins/plugin-md-power/src/node/obsidian/wikiLink.ts b/plugins/plugin-md-power/src/node/obsidian/wikiLink.ts index f6ea7ef4..5cc94681 100644 --- a/plugins/plugin-md-power/src/node/obsidian/wikiLink.ts +++ b/plugins/plugin-md-power/src/node/obsidian/wikiLink.ts @@ -9,13 +9,12 @@ */ import type { RuleInline } from 'markdown-it/lib/parser_inline.mjs' -import type { App } from 'vuepress' import type { Markdown, MarkdownEnv } from 'vuepress/markdown' -import { sortBy } from '@pengzhanbo/utils' -import { ensureLeadingSlash, isLinkHttp, removeLeadingSlash } from 'vuepress/shared' +import { ensureLeadingSlash, isLinkHttp } from 'vuepress/shared' import { path } from 'vuepress/utils' import { resolvePaths } from '../enhance/links.js' import { slugify } from '../utils/slugify.js' +import { findFirstPage } from './findFirstPage.js' interface WikiLinkMeta { filename: string @@ -85,7 +84,7 @@ const wikiLinkDef: RuleInline = (state, silent) => { return true } -export function wikiLinkPlugin(md: Markdown, app: App) { +export function wikiLinkPlugin(md: Markdown) { md.inline.ruler.before('emphasis', 'obsidian_wiki_link', wikiLinkDef) md.renderer.rules.obsidian_wiki_link = (tokens, idx, _, env: MarkdownEnv) => { const token = tokens[idx] @@ -103,19 +102,19 @@ export function wikiLinkPlugin(md: Markdown, app: App) { if (!filename) { // internal page hash link return `${md.utils.escapeHtml(alias) || (titles.length ? `` : '')}` } - const internal = findFirstPage(app, filename, env.filePathRelative ?? '') - if (internal) { + const pagePath = findFirstPage(filename, env.filePathRelative ?? '') + if (pagePath) { const { absolutePath, relativePath } = resolvePaths( - internal.filePathRelative!, + pagePath, env.base || '/', env.filePathRelative ?? null, ) ;(env.links ??= []).push({ - raw: internal.filePathRelative!, + raw: pagePath, absolute: absolutePath, relative: relativePath, }) - return `${md.utils.escapeHtml(alias) || (titles.length ? `` : '')}` + return `${md.utils.escapeHtml(alias) || (titles.length ? `` : '')}` } // other asset url @@ -126,30 +125,3 @@ export function wikiLinkPlugin(md: Markdown, app: App) { }` } } - -export function findFirstPage(app: App, filename: string, relativePath: string) { - const dirname = path.dirname(relativePath) - const withExt = path.extname(filename) ? filename : `${filename}.md` - const sorted = sortBy(app.pages ?? [], page => page.filePathRelative?.split('/').length ?? Infinity) - return sorted.find((page) => { - const title = page.title || page.frontmatter?.title || page.data.title - // 匹配标题, 优先从最短路径开始匹配 - if (title === filename) - return true - - const relative = page.filePathRelative - /* istanbul ignore if -- @preserve */ - if (!relative) - return false - - const filepath = filename[0] === '.' ? path.join(dirname, filename) : removeLeadingSlash(filename) - - // 精确匹配 - if ((filepath.slice(-1) === '/' && (relative === `${filepath}README.md` || relative === `${filepath}index.html`)) || relative === withExt) { - return true - } - - // 模糊匹配,优先从最短路径匹配,sorted 已按照路径长度排序 - return (filepath.slice(-1) === '/' && (relative.endsWith(`${filepath}README.md`) || relative.endsWith(`${filepath}index.html`))) || relative.endsWith(withExt) - }) -} diff --git a/plugins/plugin-md-power/src/node/plugin.ts b/plugins/plugin-md-power/src/node/plugin.ts index bd8d2ae5..f2d849f7 100644 --- a/plugins/plugin-md-power/src/node/plugin.ts +++ b/plugins/plugin-md-power/src/node/plugin.ts @@ -13,7 +13,7 @@ import { linksPlugin } from './enhance/links.js' import { iconPlugin } from './icon/index.js' import { inlineSyntaxPlugin } from './inline/index.js' import { LOCALE_OPTIONS } from './locales/index.js' -import { obsidianPlugin } from './obsidian/index.js' +import { obsidianPlugin, updatePagePaths } from './obsidian/index.js' import { prepareConfigFile } from './prepareConfigFile.js' import { provideData } from './provideData.js' @@ -106,13 +106,14 @@ export function markdownPowerPlugin( embedSyntaxPlugin(md, options) inlineSyntaxPlugin(md, options) iconPlugin(md, options.icon ?? (isPlainObject(options.icons) ? options.icons : {})) - obsidianPlugin(md, app, options) if (options.demo) demoPlugin(app, md) await containerPlugin(app, md, options, locales) await imageSizePlugin(app, md, options.imageSize) + + obsidianPlugin(app, md, options) }, onPrepared: async () => { @@ -133,6 +134,13 @@ export function markdownPowerPlugin( if (options.codeTree) extendsPageWithCodeTree(page) }, + + onPageUpdated(_app, type, newPage, oldPage) { + if (type === 'create') + updatePagePaths(newPage?.filePathRelative ?? '', 'create') + if (type === 'delete') + updatePagePaths(oldPage?.filePathRelative ?? newPage?.filePathRelative ?? '', 'delete') + }, } } } From e5126663ef50b4f720424412b38ad3b22a7178da Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 19 Apr 2026 14:34:47 +0800 Subject: [PATCH 13/14] fix: fix security --- package.json | 6 +- .../src/node/demo/supports/insertScript.ts | 2 +- pnpm-lock.yaml | 58 ++++++++++--------- pnpm-workspace.yaml | 2 +- 4 files changed, 36 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index 1bc9d876..2916766d 100644 --- a/package.json +++ b/package.json @@ -92,10 +92,12 @@ "@shikijs/twoslash": "^4.0.2", "@typescript-eslint/types": "catalog:peer", "@typescript-eslint/utils": "catalog:peer", - "@xmldom/xmldom": ">=0.9.9", - "baseline-browser-mapping": "^2.10.19", + "@xmldom/xmldom": ">=0.9.10", + "baseline-browser-mapping": "^2.10.20", "chokidar": "catalog:prod", + "dompurify": ">=3.4.0", "esbuild": "catalog:prod", + "follow-redirects": ">=1.16.0", "lodash": ">=4.18.1", "lodash-es": ">=4.18.1", "sass-embedded": "catalog:peer", diff --git a/plugins/plugin-md-power/src/node/demo/supports/insertScript.ts b/plugins/plugin-md-power/src/node/demo/supports/insertScript.ts index 4b8efccb..93fd375d 100644 --- a/plugins/plugin-md-power/src/node/demo/supports/insertScript.ts +++ b/plugins/plugin-md-power/src/node/demo/supports/insertScript.ts @@ -1,6 +1,6 @@ import type { DemoFile, MarkdownDemoEnv } from '../../../shared/demo.js' -const SCRIPT_RE = // +const SCRIPT_RE = /]*>/ export function insertSetupScript({ export: name, path }: DemoFile, env: MarkdownDemoEnv): void { const imports = `import ${name ? `${name} from ` : ''}'${path}';` diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 430732e5..0ed7aeb1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -137,8 +137,8 @@ catalogs: version: 9.0.5 peer: '@iconify/json': - specifier: ^2.2.463 - version: 2.2.463 + specifier: ^2.2.464 + version: 2.2.464 '@mathjax/src': specifier: ^4.1.1 version: 4.1.1 @@ -398,10 +398,12 @@ overrides: '@shikijs/twoslash': ^4.0.2 '@typescript-eslint/types': ^8.58.2 '@typescript-eslint/utils': ^8.58.2 - '@xmldom/xmldom': '>=0.9.9' - baseline-browser-mapping: ^2.10.19 + '@xmldom/xmldom': '>=0.9.10' + baseline-browser-mapping: ^2.10.20 chokidar: 5.0.0 + dompurify: '>=3.4.0' esbuild: ^0.28.0 + follow-redirects: '>=1.16.0' lodash: '>=4.18.1' lodash-es: '>=4.18.1' sass-embedded: ^1.99.0 @@ -565,7 +567,7 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.463 + version: 2.2.464 '@lunariajs/core': specifier: catalog:dev version: 0.1.1 @@ -629,7 +631,7 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.463 + version: 2.2.464 '@vuepress/bundler-vite': specifier: catalog:vuepress version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3) @@ -650,7 +652,7 @@ importers: dependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.463 + version: 2.2.464 '@vuepress/bundler-vite': specifier: catalog:vuepress version: 2.0.0-rc.28(@types/node@25.6.0)(@vue/compiler-sfc@3.5.32)(esbuild@0.28.0)(jiti@2.6.1)(less@4.6.4)(sass-embedded@1.99.0)(sass@1.99.0)(stylus@0.64.0)(typescript@6.0.3)(yaml@2.8.3) @@ -958,7 +960,7 @@ importers: devDependencies: '@iconify/json': specifier: catalog:peer - version: 2.2.463 + version: 2.2.464 '@pinyin-pro/data': specifier: catalog:peer version: 1.3.1 @@ -1511,8 +1513,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@iconify/json@2.2.463': - resolution: {integrity: sha512-VZ0n+99OWe9677b04KPF0NajDbFEyWNxMalXZA/4j8HrqyVvY+N1XN/EIER4ceQlKQJ501w9UxLJZjZ5mga0xA==} + '@iconify/json@2.2.464': + resolution: {integrity: sha512-VSU7hPHuqqEwQk8Hmy+88iGmsL6KE2JAv1ZwxE0z50+JpymIzhZMHcuSrL2MOFtTDZQ4eJ7Ao9Hdm+TCctDwCQ==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -3371,8 +3373,8 @@ packages: peerDependencies: vue: ^3.5.0 - '@xmldom/xmldom@0.9.9': - resolution: {integrity: sha512-qycIHAucxy/LXAYIjmLmtQ8q9GPnMbnjG1KXhWm9o5sCr6pOYDATkMPiTNa6/v8eELyqOQ2FsEqeoFYmgv/gJg==} + '@xmldom/xmldom@0.9.10': + resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} engines: {node: '>=14.6'} acorn-jsx@5.3.2: @@ -3547,8 +3549,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.19: - resolution: {integrity: sha512-qCkNLi2sfBOn8XhZQ0FXsT1Ki/Yo5P90hrkRamVFRS7/KV9hpfA4HkoWNU152+8w0zPjnxo5psx5NL3PSGgv5g==} + baseline-browser-mapping@2.10.20: + resolution: {integrity: sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==} engines: {node: '>=6.0.0'} hasBin: true @@ -4222,8 +4224,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - dompurify@3.3.3: - resolution: {integrity: sha512-Oj6pzI2+RqBfFG+qOaOLbFXLQ90ARpcGG6UePL82bJLtdsa6CYJD7nmiU8MW9nQNOtCHV3lZ/Bzq1X0QYbBZCA==} + dompurify@3.4.0: + resolution: {integrity: sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==} domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -4736,8 +4738,8 @@ packages: focus-trap@8.0.1: resolution: {integrity: sha512-9ptSG6z51YQOstI/oN4XuVGP/03u2nh0g//qz7L6zX0i6PZiPnkcf3GenXq7N2hZnASXaMxTPpbKwdI+PFvxlw==} - follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -8231,7 +8233,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@iconify/json@2.2.463': + '@iconify/json@2.2.464': dependencies: '@iconify/types': 2.0.0 pathe: 2.0.3 @@ -10271,7 +10273,7 @@ snapshots: dependencies: vue: 3.5.32(typescript@6.0.3) - '@xmldom/xmldom@0.9.9': {} + '@xmldom/xmldom@0.9.10': {} acorn-jsx@5.3.2(acorn@8.16.0): dependencies: @@ -10432,7 +10434,7 @@ snapshots: axios@1.15.0: dependencies: - follow-redirects: 1.15.11 + follow-redirects: 1.16.0 form-data: 4.0.5 proxy-from-env: 2.1.0 transitivePeerDependencies: @@ -10448,7 +10450,7 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.19: {} + baseline-browser-mapping@2.10.20: {} basic-auth@2.0.1: dependencies: @@ -10498,7 +10500,7 @@ snapshots: browserslist@4.28.2: dependencies: - baseline-browser-mapping: 2.10.19 + baseline-browser-mapping: 2.10.20 caniuse-lite: 1.0.30001784 electron-to-chromium: 1.5.331 node-releases: 2.0.37 @@ -11197,7 +11199,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - dompurify@3.3.3: + dompurify@3.4.0: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -11863,7 +11865,7 @@ snapshots: dependencies: tabbable: 6.4.0 - follow-redirects@1.15.11: {} + follow-redirects@1.16.0: {} for-each@0.3.5: dependencies: @@ -12231,7 +12233,7 @@ snapshots: http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 - follow-redirects: 1.15.11 + follow-redirects: 1.16.0 requires-port: 1.0.0 transitivePeerDependencies: - debug @@ -13091,7 +13093,7 @@ snapshots: d3-sankey: 0.12.3 dagre-d3-es: 7.0.14 dayjs: 1.11.20 - dompurify: 3.3.3 + dompurify: 3.4.0 katex: 0.16.44 khroma: 2.1.0 lodash-es: 4.18.1 @@ -14305,7 +14307,7 @@ snapshots: speech-rule-engine@5.0.0-beta.6: dependencies: - '@xmldom/xmldom': 0.9.9 + '@xmldom/xmldom': 0.9.10 commander: 14.0.2 wicked-good-xpath: 1.3.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 820472e7..ef3870eb 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -67,7 +67,7 @@ catalogs: wait-on: ^9.0.5 peer: '@eslint-community/eslint-utils': ^4.9.1 - '@iconify/json': ^2.2.463 + '@iconify/json': ^2.2.464 '@mathjax/src': ^4.1.1 '@pinyin-pro/data': ^1.3.1 '@typescript-eslint/types': ^8.58.2 From 02038f2df0fe5dbf758e7c8ffbdde01e3eb0d094 Mon Sep 17 00:00:00 2001 From: pengzhanbo Date: Sun, 19 Apr 2026 14:37:52 +0800 Subject: [PATCH 14/14] build: publish v1.0.0-rc.196 --- CHANGELOG.md | 9 +++++++++ cli/package.json | 2 +- package.json | 2 +- plugins/plugin-fonts/package.json | 2 +- plugins/plugin-md-power/package.json | 2 +- plugins/plugin-search/package.json | 2 +- theme/package.json | 2 +- 7 files changed, 15 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc035716..a6d273a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# [1.0.0-rc.196](https://github.com/pengzhanbo/vuepress-theme-plume/compare/v1.0.0-rc.195...v1.0.0-rc.196) (2026-04-19) + + +### Bug Fixes + +* fix security ([e512666](https://github.com/pengzhanbo/vuepress-theme-plume/commit/e5126663ef50b4f720424412b38ad3b22a7178da)) +* **plugin-md-power:** fix cell display issue caused by colspan in table ([#891](https://github.com/pengzhanbo/vuepress-theme-plume/issues/891)) ([6ebb1bd](https://github.com/pengzhanbo/vuepress-theme-plume/commit/6ebb1bda6e4ef379e156e7299c149e10c472d705)) +* **theme:** remove `cwd` options from `picomatch` ([#892](https://github.com/pengzhanbo/vuepress-theme-plume/issues/892)) ([58ea2fc](https://github.com/pengzhanbo/vuepress-theme-plume/commit/58ea2fc8cbcef0cb968997ad6dead2f4960d465a)) + # [1.0.0-rc.195](https://github.com/pengzhanbo/vuepress-theme-plume/compare/v1.0.0-rc.194...v1.0.0-rc.195) (2026-04-18) diff --git a/cli/package.json b/cli/package.json index 0fd1c351..219cbeeb 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,7 +1,7 @@ { "name": "create-vuepress-theme-plume", "type": "module", - "version": "1.0.0-rc.195", + "version": "1.0.0-rc.196", "description": "The cli for create vuepress-theme-plume's project", "author": "pengzhanbo (https://github.com/pengzhanbo/)", "license": "MIT", diff --git a/package.json b/package.json index 2916766d..3e2eac35 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-theme-plume-monorepo", "type": "module", - "version": "1.0.0-rc.195", + "version": "1.0.0-rc.196", "private": true, "packageManager": "pnpm@10.33.0", "author": "pengzhanbo (https://github.com/pengzhanbo/)", diff --git a/plugins/plugin-fonts/package.json b/plugins/plugin-fonts/package.json index 7750f822..2771fd2d 100644 --- a/plugins/plugin-fonts/package.json +++ b/plugins/plugin-fonts/package.json @@ -1,7 +1,7 @@ { "name": "@vuepress-plume/plugin-fonts", "type": "module", - "version": "1.0.0-rc.195", + "version": "1.0.0-rc.196", "description": "The Plugin for VuePress 2 - fonts", "author": "pengzhanbo ", "license": "MIT", diff --git a/plugins/plugin-md-power/package.json b/plugins/plugin-md-power/package.json index 1a59d0ca..b7f6e3b6 100644 --- a/plugins/plugin-md-power/package.json +++ b/plugins/plugin-md-power/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-plugin-md-power", "type": "module", - "version": "1.0.0-rc.195", + "version": "1.0.0-rc.196", "description": "The Plugin for VuePress 2 - markdown power", "author": "pengzhanbo ", "license": "MIT", diff --git a/plugins/plugin-search/package.json b/plugins/plugin-search/package.json index 68a99461..316de054 100644 --- a/plugins/plugin-search/package.json +++ b/plugins/plugin-search/package.json @@ -1,7 +1,7 @@ { "name": "@vuepress-plume/plugin-search", "type": "module", - "version": "1.0.0-rc.195", + "version": "1.0.0-rc.196", "description": "The Plugin for VuePress 2 - local search", "author": "pengzhanbo ", "license": "MIT", diff --git a/theme/package.json b/theme/package.json index 10f9c5fa..22a2ba40 100644 --- a/theme/package.json +++ b/theme/package.json @@ -1,7 +1,7 @@ { "name": "vuepress-theme-plume", "type": "module", - "version": "1.0.0-rc.195", + "version": "1.0.0-rc.196", "description": "A Blog&Document Theme for VuePress 2.0", "author": "pengzhanbo (https://github.com/pengzhanbo/)", "license": "MIT",