From f4021369b53d471b437f21b857b46cb3e11d3359 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Wed, 29 Jul 2026 12:17:16 +0530 Subject: [PATCH] refactor(markdown): use attrs plugin for container attributes --- .../node/markdown/plugins/containers.test.ts | 3 +- package.json | 18 +- pnpm-lock.yaml | 416 +++++++++--------- pnpm-workspace.yaml | 2 + src/node/markdown/markdown.ts | 26 +- src/node/markdown/plugins/containers.ts | 34 +- 6 files changed, 241 insertions(+), 258 deletions(-) diff --git a/__tests__/unit/node/markdown/plugins/containers.test.ts b/__tests__/unit/node/markdown/plugins/containers.test.ts index d84bc6ca..18e69025 100644 --- a/__tests__/unit/node/markdown/plugins/containers.test.ts +++ b/__tests__/unit/node/markdown/plugins/containers.test.ts @@ -223,8 +223,7 @@ describe('node/markdown/plugins/containers', () => { `) }) - // FIXME: enable after attrs plugin version bump - test.skip('respects attrs plugin options on the fence line', async () => { + test('respects attrs plugin options on the fence line', async () => { const delimiters = await render( '::: tip Custom %(.extra-class)%\ncontent\n:::', { attrs: { left: '%(', right: ')%' } } diff --git a/package.json b/package.json index 6540d490..7cff6849 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "@docsearch/css": "^4.6.3", "@docsearch/js": "^4.6.3", "@docsearch/sidepanel-js": "^4.6.3", - "@iconify-json/simple-icons": "^1.2.91", + "@iconify-json/simple-icons": "^1.2.92", "@shikijs/core": "^4.3.1", "@shikijs/transformers": "^4.3.1", "@shikijs/types": "^4.3.1", @@ -127,12 +127,12 @@ "@mdit-vue/plugin-title": "^3.0.2", "@mdit-vue/plugin-toc": "^3.0.2", "@mdit-vue/shared": "^3.0.2", - "@mdit/plugin-anchor": "^1.1.1", - "@mdit/plugin-attrs": "^1.0.2", - "@mdit/plugin-container": "^1.0.1", - "@mdit/plugin-emoji": "^1.1.0", - "@mdit/plugin-footnote": "^1.0.1", - "@mdit/plugin-tasklist": "^1.0.1", + "@mdit/plugin-anchor": "^1.1.2", + "@mdit/plugin-attrs": "^1.1.0", + "@mdit/plugin-container": "^1.0.2", + "@mdit/plugin-emoji": "^1.1.1", + "@mdit/plugin-footnote": "^1.0.2", + "@mdit/plugin-tasklist": "^1.0.2", "@polka/compression": "^1.0.0-next.28", "@rolldown/pluginutils": "^1.0.1", "@rollup/plugin-alias": "^6.0.0", @@ -144,7 +144,7 @@ "@types/lodash.template": "^4.5.3", "@types/mark.js": "^8.11.12", "@types/minimist": "^1.2.5", - "@types/node": "^26.1.1", + "@types/node": "^26.1.2", "@types/picomatch": "^4.0.3", "@types/semver": "^7.7.1", "chokidar": "^5.0.0", @@ -177,7 +177,7 @@ "postcss-selector-parser": "^7.1.4", "prettier": "^3.9.6", "punycode": "^2.3.1", - "rollup": "^4.62.2", + "rollup": "^4.62.3", "rollup-plugin-dts": "6.1.1", "rollup-plugin-esbuild": "^6.2.1", "semver": "^7.8.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a006f5d..f7fa3f0a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: ^4.6.3 version: 4.6.3 '@iconify-json/simple-icons': - specifier: ^1.2.91 - version: 1.2.91 + specifier: ^1.2.92 + version: 1.2.92 '@shikijs/core': specifier: ^4.3.1 version: 4.3.1 @@ -34,7 +34,7 @@ importers: version: 14.1.2 '@vitejs/plugin-vue': specifier: ^6.0.8 - version: 6.0.8(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) + version: 6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3)) '@vue/devtools-api': specifier: ^8.2.1 version: 8.2.1 @@ -61,7 +61,7 @@ importers: version: 4.3.1 vite: specifier: ^8.1.5 - version: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) + version: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) vue: specifier: ^3.5.40 version: 3.5.40(typescript@5.9.3) @@ -94,23 +94,23 @@ importers: specifier: ^3.0.2 version: 3.0.2 '@mdit/plugin-anchor': - specifier: ^1.1.1 - version: 1.1.1(markdown-it@14.3.0) + specifier: ^1.1.2 + version: 1.1.2(markdown-it@14.3.0) '@mdit/plugin-attrs': + specifier: ^1.1.0 + version: 1.1.0(markdown-it@14.3.0) + '@mdit/plugin-container': specifier: ^1.0.2 version: 1.0.2(markdown-it@14.3.0) - '@mdit/plugin-container': - specifier: ^1.0.1 - version: 1.0.1(markdown-it@14.3.0) '@mdit/plugin-emoji': - specifier: ^1.1.0 - version: 1.1.0(markdown-it@14.3.0) + specifier: ^1.1.1 + version: 1.1.1(markdown-it@14.3.0) '@mdit/plugin-footnote': - specifier: ^1.0.1 - version: 1.0.1(markdown-it@14.3.0) + specifier: ^1.0.2 + version: 1.0.2(markdown-it@14.3.0) '@mdit/plugin-tasklist': - specifier: ^1.0.1 - version: 1.0.1(markdown-it@14.3.0) + specifier: ^1.0.2 + version: 1.0.2(markdown-it@14.3.0) '@polka/compression': specifier: ^1.0.0-next.28 version: 1.0.0-next.28 @@ -119,19 +119,19 @@ importers: version: 1.0.1 '@rollup/plugin-alias': specifier: ^6.0.0 - version: 6.0.0(rollup@4.62.2) + version: 6.0.0(rollup@4.62.3) '@rollup/plugin-commonjs': specifier: ^29.0.3 - version: 29.0.3(rollup@4.62.2) + version: 29.0.3(rollup@4.62.3) '@rollup/plugin-json': specifier: ^6.1.0 - version: 6.1.0(rollup@4.62.2) + version: 6.1.0(rollup@4.62.3) '@rollup/plugin-node-resolve': specifier: ^16.0.3 - version: 16.0.3(rollup@4.62.2) + version: 16.0.3(rollup@4.62.3) '@rollup/plugin-replace': specifier: ^6.0.3 - version: 6.0.3(rollup@4.62.2) + version: 6.0.3(rollup@4.62.3) '@types/cross-spawn': specifier: ^6.0.6 version: 6.0.6 @@ -145,8 +145,8 @@ importers: specifier: ^1.2.5 version: 1.2.5 '@types/node': - specifier: ^26.1.1 - version: 26.1.1 + specifier: ^26.1.2 + version: 26.1.2 '@types/picomatch': specifier: ^4.0.3 version: 4.0.3 @@ -244,14 +244,14 @@ importers: specifier: ^2.3.1 version: 2.3.1 rollup: - specifier: ^4.62.2 - version: 4.62.2 + specifier: ^4.62.3 + version: 4.62.3 rollup-plugin-dts: specifier: 6.1.1 - version: 6.1.1(rollup@4.62.2)(typescript@5.9.3) + version: 6.1.1(rollup@4.62.3)(typescript@5.9.3) rollup-plugin-esbuild: specifier: ^6.2.1 - version: 6.2.1(esbuild@0.27.7)(rollup@4.62.2) + version: 6.2.1(esbuild@0.27.7)(rollup@4.62.3) semver: specifier: ^7.8.5 version: 7.8.5 @@ -272,7 +272,7 @@ importers: version: 5.9.3 vitest: specifier: ^4.1.10 - version: 4.1.10(@types/node@26.1.1)(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) + version: 4.1.10(@types/node@26.1.2)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) vue-tsc: specifier: ^3.3.8 version: 3.3.8(typescript@5.9.3) @@ -311,7 +311,7 @@ importers: version: link:.. vitepress-plugin-group-icons: specifier: ^1.7.5 - version: 1.7.5(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) + version: 1.7.5(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) vitepress-plugin-llms: specifier: ^1.13.3 version: 1.13.3 @@ -569,8 +569,8 @@ packages: '@iconify-json/logos@1.2.11': resolution: {integrity: sha512-fOo4pGEatuyuCFNL+cwquYMa2Im0oJHRHV7lt/Qqs5Ode/lPImHCQcfTtPzZj7qYMPb/h8YHN3TG54uEowrjNQ==} - '@iconify-json/simple-icons@1.2.91': - resolution: {integrity: sha512-plQJHZxzpkIXaeYjJF0Sc9nkzYF32EDX9olx7j1hcKYFaiTrQXbcngZmvzuV0pG6uZPU3ZuA/GIsgxSHOm6jrQ==} + '@iconify-json/simple-icons@1.2.92': + resolution: {integrity: sha512-hR0ozxR97t1dzWw+esoxFijZ15gagt7EIgF3CNifu2yICXhS7gnun4Y+j+odJQtNSl7wvqMdoLbViIShwe/fdw==} '@iconify-json/vscode-icons@1.2.67': resolution: {integrity: sha512-/fObxEkBtqK2e1qf1IRjuZ4drWknAnzykdT2ngGAKESf35tCcj0Lx3MdsxYBneE5YbgvsUfOl0hbZ59R5s19vw==} @@ -636,13 +636,13 @@ packages: markdown-it: optional: true - '@mdit/plugin-anchor@1.1.1': - resolution: {integrity: sha512-42m7dxzvfLbo3YnteMB70aXFQ1TtnalyNLyPUDj5rr1FqTNf8pnHjQbgmf6FCjshg6BrfLVx7zpHJ7UUehQ/fA==} + '@mdit/plugin-anchor@1.1.2': + resolution: {integrity: sha512-/p+GIjjG2E8iQRGtIxAYgbVeZ37U0Rxn5w/KYNKzhgrpGGMYvgDKneLwV/pYDoxxZSKTXF8tpZeuFNY4jR0S4g==} peerDependencies: markdown-it: ^14.2.0 - '@mdit/plugin-attrs@1.0.2': - resolution: {integrity: sha512-R9bvWt/MqyMAZ0povWkEh9n55+cQff+bXh9GZnd6Av+mPdE+L/k6jCOAyKzjUEWhQ8qqd5Keyqtn7h62gZq/VA==} + '@mdit/plugin-attrs@1.1.0': + resolution: {integrity: sha512-xdRnlnvjUoIGWNPmESk2BICLcyZFOk79Avpu/4dyf73Yz5JhQAhuJ+CAtaGTWQzp2NV5EVdlxg07qQc3f6BTfw==} engines: {node: '>=22'} peerDependencies: markdown-it: ^14.2.0 @@ -650,8 +650,8 @@ packages: markdown-it: optional: true - '@mdit/plugin-container@1.0.1': - resolution: {integrity: sha512-dT6eoqKxpWcsIHYPTNjIOq/pIzhv6LJTNXjfLSk847goQtlvMZ/Y+kRKH+wQGqDKmNwxDbEQfDbcoqhNXEjuhA==} + '@mdit/plugin-container@1.0.2': + resolution: {integrity: sha512-gCpqmadamWVbDI7+OgkywDGjfgqxrjZo3U+iK+sH7vERnZyX4sx1X65pXbqrem8Q5/4yO5t0d+kWkPC733ceRw==} engines: {node: '>=22'} peerDependencies: markdown-it: ^14.2.0 @@ -659,8 +659,8 @@ packages: markdown-it: optional: true - '@mdit/plugin-emoji@1.1.0': - resolution: {integrity: sha512-rdGhZ0OVhK0EhiVpw8v22BdTq7XZ6Adrcbq3hR2Cx/YwGnL+kSXFtcGOeJXphiSics7oNgpIKdNyl974z7Cj1A==} + '@mdit/plugin-emoji@1.1.1': + resolution: {integrity: sha512-8guVkqXImO/V4eCKMxrKot7EO3HI9sIsS2fqFYBQUpy2j3HbsItvsx5QXKf71Nzyr6WKxpznDas/tewrbC2pcg==} engines: {node: '>=22'} peerDependencies: markdown-it: ^14.2.0 @@ -668,14 +668,14 @@ packages: markdown-it: optional: true - '@mdit/plugin-footnote@1.0.1': - resolution: {integrity: sha512-PrH02dlVQT8/vPvfGrLHpcHq8N0+gOaAVNOfuhwlPqWCL4He3o+buUCxm1Uem02+UR8/TRBW50M/XD/dVSe2jw==} + '@mdit/plugin-footnote@1.0.2': + resolution: {integrity: sha512-G7pzoczbzVph9s9eyLuG9T24//ub9vK7A8jFCESQIzZj83ZJF3BHs7r/wcQx4KzmH+kDpLiAbhvzT/Y3+7OUig==} engines: {node: '>=22'} peerDependencies: markdown-it: ^14.2.0 - '@mdit/plugin-tasklist@1.0.1': - resolution: {integrity: sha512-Ks/Tihw5ibbkP2qOZzltkbiTk8RfpxDRvqdn4hl1wIs3VmeKITIQ36gN4DsuotSauA9SBe/mL0QJIfuSCrXqrw==} + '@mdit/plugin-tasklist@1.0.2': + resolution: {integrity: sha512-h+WCr/h+K0pbyZdJnrPEpgeMFlffzqfviY3TDmj7PdZiVAS1YF1s95+tt9bvmJWKPrALV/IgePxsu5LWnODMmw==} engines: {node: '>=22'} peerDependencies: markdown-it: ^14.2.0 @@ -863,141 +863,141 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.62.2': - resolution: {integrity: sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==} + '@rollup/rollup-android-arm-eabi@4.62.3': + resolution: {integrity: sha512-c0wdcekXtQvvn5Tsrk/+op/gUArrbWaFduBnTLP2l1cKLSQs4diMWjJw3m6A0DdzT8dAAX95KpkJ3qynCePbmw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.62.2': - resolution: {integrity: sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==} + '@rollup/rollup-android-arm64@4.62.3': + resolution: {integrity: sha512-3YjElDdWN+qXAFbJ/CzPV+0wspLqh54k/I6GfdYtEJRqg7buSgc1yPM3B+93j1M4neobtkATHZTmxK2AMVGfnA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.62.2': - resolution: {integrity: sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==} + '@rollup/rollup-darwin-arm64@4.62.3': + resolution: {integrity: sha512-Pch2pFNOxxz1hTjypIdPyRTR6riiwRl84+VcN9djS680fw+Co1nAJINrdpqp7KV0NvyuU8ilZXZCjd7ykJl1GQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.62.2': - resolution: {integrity: sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==} + '@rollup/rollup-darwin-x64@4.62.3': + resolution: {integrity: sha512-LEuncFUHFiF8t4yZVZvvZA1wk0pjAscRnsrn1EfTEmN4HXotBi2YtcnLRyaK6UbuczW7xZS5ES+81Rdz8Z0T6g==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.62.2': - resolution: {integrity: sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==} + '@rollup/rollup-freebsd-arm64@4.62.3': + resolution: {integrity: sha512-zvBUvsQUpOWALdDsk6qbS8bXf2VxmPisuudNDrY7x0p0jBdsoZl8HsHczIOgkQiZldmcacMKtBzpoGVNeIe2bQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.62.2': - resolution: {integrity: sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==} + '@rollup/rollup-freebsd-x64@4.62.3': + resolution: {integrity: sha512-C2KmNrcSem/AMg984H/dev+si0lieQGdXdR/lYGJnuumXnFb9Y7QdiI62obFdLlxRYLBv4P0eUVIDbD4c1vVvw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.62.2': - resolution: {integrity: sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==} + '@rollup/rollup-linux-arm-gnueabihf@4.62.3': + resolution: {integrity: sha512-ggXnsTAEzNQx74XpunRsiZ9aBZDsI7XIa0hm2nzR9f4WzH5/f/d73ZSDaC5ejJ8YLY4NW+V3wr0tjOaeCq8hqA==} cpu: [arm] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.62.2': - resolution: {integrity: sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==} + '@rollup/rollup-linux-arm-musleabihf@4.62.3': + resolution: {integrity: sha512-2vng+FlzNUhKZxtej3IUqJgbZoQk2M/dwQM20+ULV0R/E/8tr9/P6uEf2iiGIk4HL0zMKh5Jry7mUHdUOvyGgA==} cpu: [arm] os: [linux] libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.62.2': - resolution: {integrity: sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==} + '@rollup/rollup-linux-arm64-gnu@4.62.3': + resolution: {integrity: sha512-LLLFZKt4/Nraf9rxDkhiU8QVgLF4WmCkfr0L4fj0fPfIZFBib0DeiFk1hhaYKd03LFAFJcxHslhDFlNJLylf5Q==} cpu: [arm64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.62.2': - resolution: {integrity: sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==} + '@rollup/rollup-linux-arm64-musl@4.62.3': + resolution: {integrity: sha512-WJkdQCvS9sWNOUBJZfQRKpZGFBztRzcowI+nndmflKgU4XY+3a420FgTOSKTsVqJbnzSxeT4vaJalpOaPo2YCQ==} cpu: [arm64] os: [linux] libc: [musl] - '@rollup/rollup-linux-loong64-gnu@4.62.2': - resolution: {integrity: sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==} + '@rollup/rollup-linux-loong64-gnu@4.62.3': + resolution: {integrity: sha512-PwHXCCS2n64/1Ot6rP1YEYA02MGYBcQlr8CSZZyrUG2O7NH6NklYmvr9v3Jy+5e/eDeNchc/ukmKJi9LuflMIQ==} cpu: [loong64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-loong64-musl@4.62.2': - resolution: {integrity: sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==} + '@rollup/rollup-linux-loong64-musl@4.62.3': + resolution: {integrity: sha512-vUjxINQu3RC8NZS3ykk1gN65gIz8pAopOq2HXuZhiIxHdx7TFvDG+jgrdSgInu1Eza4/Rfi2VzZgyIgEH4WOaw==} cpu: [loong64] os: [linux] libc: [musl] - '@rollup/rollup-linux-ppc64-gnu@4.62.2': - resolution: {integrity: sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==} + '@rollup/rollup-linux-ppc64-gnu@4.62.3': + resolution: {integrity: sha512-wzko4aJ13+0G3kGnviCg5gnXFKd40izKsrf2uOw12US4XqprkDrmwOpeW14aSNa37V8bfPcz5Fkob6LZ3BAPmA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-ppc64-musl@4.62.2': - resolution: {integrity: sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==} + '@rollup/rollup-linux-ppc64-musl@4.62.3': + resolution: {integrity: sha512-8120ue0JUMSwy11stlwnfdX3pPd+WZYGCDBwEHWtIHi6pOpZmsEF5QKB7a/UN+XFdqvobxz98kv8RTqikyCEBw==} cpu: [ppc64] os: [linux] libc: [musl] - '@rollup/rollup-linux-riscv64-gnu@4.62.2': - resolution: {integrity: sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==} + '@rollup/rollup-linux-riscv64-gnu@4.62.3': + resolution: {integrity: sha512-XLFHnR3tXMjbOCh2vtVJHmxt+995uJsTERQyseFDRA0xxMxyTZPLa3OIUlyFaO4mF/Lu0FjmWHCuPXJT1n/IOg==} cpu: [riscv64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-riscv64-musl@4.62.2': - resolution: {integrity: sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==} + '@rollup/rollup-linux-riscv64-musl@4.62.3': + resolution: {integrity: sha512-se6yXvNGMIl0f+RQzyh7XAmia8/9kplQx424wnG2w0C1oi6XgO6Y8otKhdXFHbHs88Ihavzmvh1NWjuovE76BQ==} cpu: [riscv64] os: [linux] libc: [musl] - '@rollup/rollup-linux-s390x-gnu@4.62.2': - resolution: {integrity: sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==} + '@rollup/rollup-linux-s390x-gnu@4.62.3': + resolution: {integrity: sha512-gNoxRefktVIiGflpONuxWWXZAzIQG++z9qHO3xKwk4WdDMuQja3JHGfE1u0i3PfPDyvhypdk+WrgIJqLhGG7sg==} cpu: [s390x] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.62.2': - resolution: {integrity: sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==} + '@rollup/rollup-linux-x64-gnu@4.62.3': + resolution: {integrity: sha512-V4KtWtQfAFMU7+9/A/VDps/VI8CHd3cYz0L8sgJzz8qK7eY7wI4ruFD82UYIYvW9Z4DtlTfhQcsl4XyPHW5uSg==} cpu: [x64] os: [linux] libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.62.2': - resolution: {integrity: sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==} + '@rollup/rollup-linux-x64-musl@4.62.3': + resolution: {integrity: sha512-LBx9LYXvj2CBkMkjLdNAWLwH0MLMin7do2VcVo9kVPibGLkY0BQQut2fv7NVqkXqZ/CrAu9LqDHVV1xHCMpCPw==} cpu: [x64] os: [linux] libc: [musl] - '@rollup/rollup-openbsd-x64@4.62.2': - resolution: {integrity: sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==} + '@rollup/rollup-openbsd-x64@4.62.3': + resolution: {integrity: sha512-ABVf3Q0RCu7NcyCCOZQI0pJ3GuSdfSl8EXcy88QtdceIMIoCUdfhsJChZ64L9zVM2aJHjde1Bhn5uqSRcX9ySA==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.62.2': - resolution: {integrity: sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==} + '@rollup/rollup-openharmony-arm64@4.62.3': + resolution: {integrity: sha512-+2Cy/ldweGBLlPIKsQLF8U5N44a0KDdbrk1rAjHOM9M2K+kGdIVjHLmmrZIcx+9Ny3ke/1JomCsDI1ocb11+sg==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.62.2': - resolution: {integrity: sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==} + '@rollup/rollup-win32-arm64-msvc@4.62.3': + resolution: {integrity: sha512-dtZvzc8BedpSaFNy75x6uiWwAGTH+aZHDtdrqP6qk+WcLJrfti6sGje1ZJ9UxyzDLF23d/mV+PaMwuC0hL7UVA==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.62.2': - resolution: {integrity: sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==} + '@rollup/rollup-win32-ia32-msvc@4.62.3': + resolution: {integrity: sha512-Rj8Ra4noo+aYy7sKBggCx0407mws34kAb1ySyWuq5DAtFBQdkSwnsjCgPrhPe9cvgBKZIukpE+CVHvORCS93kQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.62.2': - resolution: {integrity: sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==} + '@rollup/rollup-win32-x64-gnu@4.62.3': + resolution: {integrity: sha512-vp7N084ew/odXn2gi/mzm9mUkQu9l6AiN6dt4IeUM2Uvm9o+cVmP+YkqbMOteLbiGgqBBlJZjIMYVCfOOIVbVQ==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.62.2': - resolution: {integrity: sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==} + '@rollup/rollup-win32-x64-msvc@4.62.3': + resolution: {integrity: sha512-MOG/3gTOn4Fwf574RVOaY61I5o6P90legkFADiTyn1hyjNydT+cerU2rLUwPdZkKKyJ+iT+K9p7WXK4LM1Ka6g==} cpu: [x64] os: [win32] @@ -1122,8 +1122,8 @@ packages: '@types/node@24.13.3': resolution: {integrity: sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==} - '@types/node@26.1.1': - resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} + '@types/node@26.1.2': + resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==} '@types/picomatch@4.0.3': resolution: {integrity: sha512-iG0T6+nYJ9FAPmx9SsUlnwcq1ZVRuCXcVEvWnntoPlrOpwtSTKNDC9uVAxTsC3PUvJ+99n4RpAcNgBbHX3JSnQ==} @@ -1454,8 +1454,8 @@ packages: resolution: {integrity: sha512-cs+LadpH7Kpw0M3k8wurk+sOVVDAENA0iK4OBOrkL94j5lEVYRJ4j3zd2bhY9qgzyrPqthdcYT3axzRN7AliMg==} engines: {node: '>=22'} - conventional-commits-parser@7.1.0: - resolution: {integrity: sha512-DPp6hkUjvwIivxbkrTiLXeRswNv1A/4GFA2X6scXma0AMa9632V3TwxmrlkUIEtUktiM3Ln+RrSH2xlP3/jUTw==} + conventional-commits-parser@7.1.1: + resolution: {integrity: sha512-B0f42jI++V5Vb7qK+DDw68r0dNxz5hk+RdKUkx2NOi39emc9hsHa3u2M3doF7QQhRFzCrAj7uM90teG+RBTaYQ==} engines: {node: '>=22'} hasBin: true @@ -2140,8 +2140,8 @@ packages: resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} engines: {node: '>=18'} - minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} engines: {node: 18 || 20 || >=22} minimist@1.2.8: @@ -2386,8 +2386,8 @@ packages: esbuild: '>=0.18.0' rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 - rollup@4.62.2: - resolution: {integrity: sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==} + rollup@4.62.3: + resolution: {integrity: sha512-Gu0c0iH9FzgX1L1t7ByIbbS3Vmdz+6KHm/EsqmmC71gUQ82yvZRkTK6XzrFObSka91WUVdynqp6nsfilzr5k6Q==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2557,8 +2557,8 @@ packages: resolution: {integrity: sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==} engines: {node: '>=14.16'} - tokenx@1.3.0: - resolution: {integrity: sha512-NLdXTEZkKiO0gZuLtMoZKjCXTREXeZZt8nnnNeyoXtNZAfG/GKGSbQtLU5STspc0rMSwcA+UJfWZkbNU01iKmQ==} + tokenx@1.6.0: + resolution: {integrity: sha512-CKTjk345ajvBAUp5xUI9a5KKN0zU0lBueVHQbCskH1Hp6WkUKsPW2qGCYNs0pxNyfzxfo+IIjdt2W4sMbw/qBw==} totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} @@ -2821,8 +2821,8 @@ packages: resolution: {integrity: sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==} engines: {node: '>=12'} - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + yoctocolors@2.2.0: + resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==} engines: {node: '>=18'} zod@3.25.76: @@ -2877,14 +2877,14 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@conventional-changelog/git-client@3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.0)': + '@conventional-changelog/git-client@3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.1)': dependencies: '@simple-libs/child-process-utils': 2.0.0 '@simple-libs/stream-utils': 2.0.0 semver: 7.8.5 optionalDependencies: conventional-commits-filter: 6.0.1 - conventional-commits-parser: 7.1.0 + conventional-commits-parser: 7.1.1 '@conventional-changelog/template@1.2.1': {} @@ -3008,7 +3008,7 @@ snapshots: dependencies: '@iconify/types': 2.0.0 - '@iconify-json/simple-icons@1.2.91': + '@iconify-json/simple-icons@1.2.92': dependencies: '@iconify/types': 2.0.0 @@ -3102,36 +3102,36 @@ snapshots: optionalDependencies: markdown-it: 14.3.0 - '@mdit/plugin-anchor@1.1.1(markdown-it@14.3.0)': + '@mdit/plugin-anchor@1.1.2(markdown-it@14.3.0)': dependencies: '@types/markdown-it': 14.1.2 markdown-it: 14.3.0 - '@mdit/plugin-attrs@1.0.2(markdown-it@14.3.0)': + '@mdit/plugin-attrs@1.1.0(markdown-it@14.3.0)': dependencies: '@mdit/helper': 1.0.1(markdown-it@14.3.0) '@types/markdown-it': 14.1.2 optionalDependencies: markdown-it: 14.3.0 - '@mdit/plugin-container@1.0.1(markdown-it@14.3.0)': + '@mdit/plugin-container@1.0.2(markdown-it@14.3.0)': dependencies: '@types/markdown-it': 14.1.2 optionalDependencies: markdown-it: 14.3.0 - '@mdit/plugin-emoji@1.1.0(markdown-it@14.3.0)': + '@mdit/plugin-emoji@1.1.1(markdown-it@14.3.0)': dependencies: '@types/markdown-it': 14.1.2 optionalDependencies: markdown-it: 14.3.0 - '@mdit/plugin-footnote@1.0.1(markdown-it@14.3.0)': + '@mdit/plugin-footnote@1.0.2(markdown-it@14.3.0)': dependencies: '@types/markdown-it': 14.1.2 markdown-it: 14.3.0 - '@mdit/plugin-tasklist@1.0.1(markdown-it@14.3.0)': + '@mdit/plugin-tasklist@1.0.2(markdown-it@14.3.0)': dependencies: '@types/markdown-it': 14.1.2 optionalDependencies: @@ -3213,13 +3213,13 @@ snapshots: '@rolldown/pluginutils@1.0.1': {} - '@rollup/plugin-alias@6.0.0(rollup@4.62.2)': + '@rollup/plugin-alias@6.0.0(rollup@4.62.3)': optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.3 - '@rollup/plugin-commonjs@29.0.3(rollup@4.62.2)': + '@rollup/plugin-commonjs@29.0.3(rollup@4.62.3)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + '@rollup/pluginutils': 5.4.0(rollup@4.62.3) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.5.0(picomatch@4.0.5) @@ -3227,112 +3227,112 @@ snapshots: magic-string: 0.30.21 picomatch: 4.0.5 optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.3 - '@rollup/plugin-json@6.1.0(rollup@4.62.2)': + '@rollup/plugin-json@6.1.0(rollup@4.62.3)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + '@rollup/pluginutils': 5.4.0(rollup@4.62.3) optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.3 - '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.2)': + '@rollup/plugin-node-resolve@16.0.3(rollup@4.62.3)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + '@rollup/pluginutils': 5.4.0(rollup@4.62.3) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.12 optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.3 - '@rollup/plugin-replace@6.0.3(rollup@4.62.2)': + '@rollup/plugin-replace@6.0.3(rollup@4.62.3)': dependencies: - '@rollup/pluginutils': 5.4.0(rollup@4.62.2) + '@rollup/pluginutils': 5.4.0(rollup@4.62.3) magic-string: 0.30.21 optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.3 - '@rollup/pluginutils@5.4.0(rollup@4.62.2)': + '@rollup/pluginutils@5.4.0(rollup@4.62.3)': dependencies: '@types/estree': 1.0.9 estree-walker: 2.0.2 picomatch: 4.0.5 optionalDependencies: - rollup: 4.62.2 + rollup: 4.62.3 - '@rollup/rollup-android-arm-eabi@4.62.2': + '@rollup/rollup-android-arm-eabi@4.62.3': optional: true - '@rollup/rollup-android-arm64@4.62.2': + '@rollup/rollup-android-arm64@4.62.3': optional: true - '@rollup/rollup-darwin-arm64@4.62.2': + '@rollup/rollup-darwin-arm64@4.62.3': optional: true - '@rollup/rollup-darwin-x64@4.62.2': + '@rollup/rollup-darwin-x64@4.62.3': optional: true - '@rollup/rollup-freebsd-arm64@4.62.2': + '@rollup/rollup-freebsd-arm64@4.62.3': optional: true - '@rollup/rollup-freebsd-x64@4.62.2': + '@rollup/rollup-freebsd-x64@4.62.3': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.62.2': + '@rollup/rollup-linux-arm-gnueabihf@4.62.3': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.62.2': + '@rollup/rollup-linux-arm-musleabihf@4.62.3': optional: true - '@rollup/rollup-linux-arm64-gnu@4.62.2': + '@rollup/rollup-linux-arm64-gnu@4.62.3': optional: true - '@rollup/rollup-linux-arm64-musl@4.62.2': + '@rollup/rollup-linux-arm64-musl@4.62.3': optional: true - '@rollup/rollup-linux-loong64-gnu@4.62.2': + '@rollup/rollup-linux-loong64-gnu@4.62.3': optional: true - '@rollup/rollup-linux-loong64-musl@4.62.2': + '@rollup/rollup-linux-loong64-musl@4.62.3': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.62.2': + '@rollup/rollup-linux-ppc64-gnu@4.62.3': optional: true - '@rollup/rollup-linux-ppc64-musl@4.62.2': + '@rollup/rollup-linux-ppc64-musl@4.62.3': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.62.2': + '@rollup/rollup-linux-riscv64-gnu@4.62.3': optional: true - '@rollup/rollup-linux-riscv64-musl@4.62.2': + '@rollup/rollup-linux-riscv64-musl@4.62.3': optional: true - '@rollup/rollup-linux-s390x-gnu@4.62.2': + '@rollup/rollup-linux-s390x-gnu@4.62.3': optional: true - '@rollup/rollup-linux-x64-gnu@4.62.2': + '@rollup/rollup-linux-x64-gnu@4.62.3': optional: true - '@rollup/rollup-linux-x64-musl@4.62.2': + '@rollup/rollup-linux-x64-musl@4.62.3': optional: true - '@rollup/rollup-openbsd-x64@4.62.2': + '@rollup/rollup-openbsd-x64@4.62.3': optional: true - '@rollup/rollup-openharmony-arm64@4.62.2': + '@rollup/rollup-openharmony-arm64@4.62.3': optional: true - '@rollup/rollup-win32-arm64-msvc@4.62.2': + '@rollup/rollup-win32-arm64-msvc@4.62.3': optional: true - '@rollup/rollup-win32-ia32-msvc@4.62.2': + '@rollup/rollup-win32-ia32-msvc@4.62.3': optional: true - '@rollup/rollup-win32-x64-gnu@4.62.2': + '@rollup/rollup-win32-x64-gnu@4.62.3': optional: true - '@rollup/rollup-win32-x64-msvc@4.62.2': + '@rollup/rollup-win32-x64-msvc@4.62.3': optional: true '@shikijs/core@4.3.1': @@ -3422,7 +3422,7 @@ snapshots: '@types/cross-spawn@6.0.6': dependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 '@types/debug@4.1.13': dependencies: @@ -3469,7 +3469,7 @@ snapshots: dependencies: undici-types: 7.18.2 - '@types/node@26.1.1': + '@types/node@26.1.2': dependencies: undici-types: 8.3.0 @@ -3479,7 +3479,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 '@types/semver@7.7.1': {} @@ -3489,10 +3489,10 @@ snapshots: '@ungap/structured-clone@1.3.3': {} - '@vitejs/plugin-vue@6.0.8(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.8(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))(vue@3.5.40(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) + vite: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) vue: 3.5.40(typescript@5.9.3) '@vitest/expect@4.1.10': @@ -3504,13 +3504,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.10(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))': + '@vitest/mocker@4.1.10(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) + vite: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) '@vitest/pretty-format@4.1.10': dependencies: @@ -3796,20 +3796,20 @@ snapshots: conventional-changelog@8.1.0(conventional-commits-filter@6.0.1): dependencies: - '@conventional-changelog/git-client': 3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.0) + '@conventional-changelog/git-client': 3.1.0(conventional-commits-filter@6.0.1)(conventional-commits-parser@7.1.1) '@simple-libs/hosted-git-info': 2.0.0 '@simple-libs/normalize-package-data': 1.0.0 argue-cli: 3.1.0 conventional-changelog-preset-loader: 6.0.1 conventional-changelog-writer: 9.2.0 - conventional-commits-parser: 7.1.0 + conventional-commits-parser: 7.1.1 fd-package-json: 2.0.0 transitivePeerDependencies: - conventional-commits-filter conventional-commits-filter@6.0.1: {} - conventional-commits-parser@7.1.0: + conventional-commits-parser@7.1.1: dependencies: '@simple-libs/stream-utils': 2.0.0 argue-cli: 3.1.0 @@ -4302,7 +4302,7 @@ snapshots: log-symbols@7.0.1: dependencies: is-unicode-supported: 2.1.0 - yoctocolors: 2.1.2 + yoctocolors: 2.2.0 longest-streak@3.1.0: {} @@ -4583,7 +4583,7 @@ snapshots: mimic-function@5.0.1: {} - minimatch@10.2.5: + minimatch@10.2.6: dependencies: brace-expansion: 5.0.8 @@ -4815,54 +4815,54 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.1.5 '@rolldown/binding-win32-x64-msvc': 1.1.5 - rollup-plugin-dts@6.1.1(rollup@4.62.2)(typescript@5.9.3): + rollup-plugin-dts@6.1.1(rollup@4.62.3)(typescript@5.9.3): dependencies: magic-string: 0.30.21 - rollup: 4.62.2 + rollup: 4.62.3 typescript: 5.9.3 optionalDependencies: '@babel/code-frame': 7.29.7 - rollup-plugin-esbuild@6.2.1(esbuild@0.27.7)(rollup@4.62.2): + rollup-plugin-esbuild@6.2.1(esbuild@0.27.7)(rollup@4.62.3): dependencies: debug: 4.4.3 es-module-lexer: 1.7.0 esbuild: 0.27.7 get-tsconfig: 4.14.0 - rollup: 4.62.2 + rollup: 4.62.3 unplugin-utils: 0.2.5 transitivePeerDependencies: - supports-color - rollup@4.62.2: + rollup@4.62.3: dependencies: '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.62.2 - '@rollup/rollup-android-arm64': 4.62.2 - '@rollup/rollup-darwin-arm64': 4.62.2 - '@rollup/rollup-darwin-x64': 4.62.2 - '@rollup/rollup-freebsd-arm64': 4.62.2 - '@rollup/rollup-freebsd-x64': 4.62.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.62.2 - '@rollup/rollup-linux-arm-musleabihf': 4.62.2 - '@rollup/rollup-linux-arm64-gnu': 4.62.2 - '@rollup/rollup-linux-arm64-musl': 4.62.2 - '@rollup/rollup-linux-loong64-gnu': 4.62.2 - '@rollup/rollup-linux-loong64-musl': 4.62.2 - '@rollup/rollup-linux-ppc64-gnu': 4.62.2 - '@rollup/rollup-linux-ppc64-musl': 4.62.2 - '@rollup/rollup-linux-riscv64-gnu': 4.62.2 - '@rollup/rollup-linux-riscv64-musl': 4.62.2 - '@rollup/rollup-linux-s390x-gnu': 4.62.2 - '@rollup/rollup-linux-x64-gnu': 4.62.2 - '@rollup/rollup-linux-x64-musl': 4.62.2 - '@rollup/rollup-openbsd-x64': 4.62.2 - '@rollup/rollup-openharmony-arm64': 4.62.2 - '@rollup/rollup-win32-arm64-msvc': 4.62.2 - '@rollup/rollup-win32-ia32-msvc': 4.62.2 - '@rollup/rollup-win32-x64-gnu': 4.62.2 - '@rollup/rollup-win32-x64-msvc': 4.62.2 + '@rollup/rollup-android-arm-eabi': 4.62.3 + '@rollup/rollup-android-arm64': 4.62.3 + '@rollup/rollup-darwin-arm64': 4.62.3 + '@rollup/rollup-darwin-x64': 4.62.3 + '@rollup/rollup-freebsd-arm64': 4.62.3 + '@rollup/rollup-freebsd-x64': 4.62.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.62.3 + '@rollup/rollup-linux-arm-musleabihf': 4.62.3 + '@rollup/rollup-linux-arm64-gnu': 4.62.3 + '@rollup/rollup-linux-arm64-musl': 4.62.3 + '@rollup/rollup-linux-loong64-gnu': 4.62.3 + '@rollup/rollup-linux-loong64-musl': 4.62.3 + '@rollup/rollup-linux-ppc64-gnu': 4.62.3 + '@rollup/rollup-linux-ppc64-musl': 4.62.3 + '@rollup/rollup-linux-riscv64-gnu': 4.62.3 + '@rollup/rollup-linux-riscv64-musl': 4.62.3 + '@rollup/rollup-linux-s390x-gnu': 4.62.3 + '@rollup/rollup-linux-x64-gnu': 4.62.3 + '@rollup/rollup-linux-x64-musl': 4.62.3 + '@rollup/rollup-openbsd-x64': 4.62.3 + '@rollup/rollup-openharmony-arm64': 4.62.3 + '@rollup/rollup-win32-arm64-msvc': 4.62.3 + '@rollup/rollup-win32-ia32-msvc': 4.62.3 + '@rollup/rollup-win32-x64-gnu': 4.62.3 + '@rollup/rollup-win32-x64-msvc': 4.62.3 fsevents: 2.3.3 rtlcss@4.3.0: @@ -5027,7 +5027,7 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 - tokenx@1.3.0: {} + tokenx@1.6.0: {} totalist@3.0.1: {} @@ -5121,7 +5121,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0): + vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 @@ -5129,19 +5129,19 @@ snapshots: rolldown: 1.1.5 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 esbuild: 0.27.7 fsevents: 2.3.3 jiti: 1.21.7 yaml: 2.9.0 - vitepress-plugin-group-icons@1.7.5(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)): + vitepress-plugin-group-icons@1.7.5(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)): dependencies: '@iconify-json/logos': 1.2.11 '@iconify-json/vscode-icons': 1.2.67 '@iconify/utils': 3.1.4 optionalDependencies: - vite: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) + vite: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) vitepress-plugin-llms@1.13.3: dependencies: @@ -5150,22 +5150,22 @@ snapshots: markdown-title: 1.0.2 mdast-util-from-markdown: 2.0.3 millify: 6.1.0 - minimatch: 10.2.5 + minimatch: 10.2.6 path-to-regexp: 6.3.0 picocolors: 1.1.1 pretty-bytes: 7.1.1 remark: 15.0.1 remark-frontmatter: 5.0.0 - tokenx: 1.3.0 + tokenx: 1.6.0 unist-util-remove: 4.0.0 unist-util-visit: 5.1.0 transitivePeerDependencies: - supports-color - vitest@4.1.10(@types/node@26.1.1)(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)): + vitest@4.1.10(@types/node@26.1.2)(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) + '@vitest/mocker': 4.1.10(vite@8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -5182,10 +5182,10 @@ snapshots: tinyexec: 1.2.4 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.1.5(@types/node@26.1.1)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) + vite: 8.1.5(@types/node@26.1.2)(esbuild@0.27.7)(jiti@1.21.7)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 transitivePeerDependencies: - msw @@ -5277,7 +5277,7 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yoctocolors@2.1.2: {} + yoctocolors@2.2.0: {} zod@3.25.76: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index fb114f81..ece3e689 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -12,5 +12,7 @@ autoInstallPeers: false ignoreWorkspaceRootCheck: true minimumReleaseAge: 1440 +minimumReleaseAgeExclude: + - '@mdit/*' shellEmulator: true diff --git a/src/node/markdown/markdown.ts b/src/node/markdown/markdown.ts index 2ee2a62c..145c8211 100644 --- a/src/node/markdown/markdown.ts +++ b/src/node/markdown/markdown.ts @@ -270,14 +270,14 @@ export interface MarkdownOptions extends MarkdownItAsyncOptions { * @default false * @see https://vitepress.dev/guide/markdown#math-equations */ - math?: boolean | any + math?: any | boolean /** * Custom labels for the built-in containers (`::: tip` etc.) and * additional user-defined containers. Labels are also used as the * default titles of GitHub-flavored alerts. * @see https://vitepress.dev/guide/markdown#custom-containers */ - container?: ContainerOptions + container?: ContainerOptions | boolean /** * Whether to enable GitHub-flavored alerts (`> [!NOTE]`). * @default true @@ -399,12 +399,12 @@ export async function createMarkdownRenderer( if (options.snippet !== false) { snippetPlugin(md, srcDir) } - containerPlugin(md, options.container, { - attrs: options.attrs !== false, - locales: options.locales - }) + const containerOptions = normalizePluginOptions(options.container) + if (options.container !== false) { + containerPlugin(md, containerOptions, { locales: options.locales }) + } if (options.gfmAlerts !== false) { - gitHubAlertsPlugin(md, options.container, { locales: options.locales }) + gitHubAlertsPlugin(md, containerOptions, { locales: options.locales }) } if (options.image !== false) { imagePlugin(md, publicDir, normalizePluginOptions(options.image)) @@ -424,7 +424,17 @@ export async function createMarkdownRenderer( attrsPlugin(md, { // no `fence` - code block meta (e.g. line highlighting) must reach // the highlighter intact - rule: ['inline', 'table', 'list', 'heading', 'hr', 'softbreak', 'block'], + rule: [ + 'inline', + 'table', + 'list', + 'heading', + 'hr', + 'softbreak', + 'blockInfo', + 'blockEnd', + 'tasklist' + ], ...normalizePluginOptions(options.attrs) }) } diff --git a/src/node/markdown/plugins/containers.ts b/src/node/markdown/plugins/containers.ts index 77cf6d87..f028b46b 100644 --- a/src/node/markdown/plugins/containers.ts +++ b/src/node/markdown/plugins/containers.ts @@ -12,11 +12,6 @@ import { extractTitle } from './preWrapper' export type { ContainerOptions } from '../../shared' export interface ContainerPluginOptions { - /** - * Whether fence-line `{...}` attributes are parsed. Mirrors the state of - * the `markdown.attrs` option. - */ - attrs?: boolean /** * Per-locale overrides for container titles, keyed by locale index. */ @@ -26,7 +21,7 @@ export interface ContainerPluginOptions { export const containerPlugin = ( md: MarkdownItAsync, options?: ContainerOptions, - { attrs = true, locales }: ContainerPluginOptions = {} + { locales }: ContainerPluginOptions = {} ) => { md // explicitly escape Vue syntax @@ -51,7 +46,7 @@ export const containerPlugin = ( for (const name of Object.keys(titles.base)) { md.use(container, { name, - openRender: createOpenRender(md, name, titles, attrs), + openRender: createOpenRender(md, name, titles), closeRender: () => (name === 'details' ? `\n` : `\n`) }) } @@ -128,13 +123,11 @@ function resolveTitlesByLocale( function createOpenRender( md: MarkdownItAsync, name: string, - titles: LocaleTitles, - attrs: boolean + titles: LocaleTitles ): RenderRule { return (tokens, idx, _options, env: MarkdownEnv & { references?: any }) => { const token = tokens[idx] let info = token.info.trim().slice(name.length).trim() - if (attrs) info = applyFenceAttrs(token, info) // details always needs its summary, so no-title is ignored there const noTitle = attrPop(token, 'no-title') === '' && name !== 'details' token.attrJoin('class', `${name} custom-block`) @@ -158,27 +151,6 @@ function attrPop(token: Token, name: string): string | null { return token.attrs!.splice(idx, 1)[0][1] } -// `::: tip Title {#id .class key="value" bare}` - the attrs plugin only -// handles fence lines through its `fence` rule, which is disabled to keep -// code block meta intact, so its trailing-braces syntax is parsed here -const fenceAttrsRE = /(?:^|\s)\{\s*([^{}]+?)\s*\}$/ -const attrRE = /([^\s=]+)(?:=("[^"]*"|\S*))?/g - -function applyFenceAttrs(token: Token, info: string): string { - const match = fenceAttrsRE.exec(info) - if (!match) return info - for (const [, name, value = ''] of match[1].matchAll(attrRE)) { - if (name.startsWith('.')) { - if (name.length > 1) token.attrJoin('class', name.slice(1)) - } else if (name.startsWith('#')) { - if (name.length > 1) token.attrPush(['id', name.slice(1)]) - } else { - token.attrPush([name, value.replace(/^"(.*)"$/, '$1')]) - } - } - return info.slice(0, match.index) -} - function createCodeGroupOpenRender(md: MarkdownItAsync): RenderRule { return (tokens, idx) => { let tabs = ''