From 77fc6eff6cfc2fd47179ba2df4629c8333e38f4d Mon Sep 17 00:00:00 2001 From: radishzzz Date: Tue, 14 Jan 2025 05:31:58 +0000 Subject: [PATCH] chore: refine plugins and astro config --- astro.config.ts | 27 +- package.json | 17 +- pnpm-lock.yaml | 618 ++++++++------------ src/pages/index.astro | 2 - src/plugins/rehype-component-admonition.ts | 27 +- src/plugins/rehype-component-github-card.ts | 72 ++- src/plugins/remark-directive-rehype.ts | 11 +- src/plugins/remark-excerpt.ts | 17 +- src/plugins/remark-reading-time.ts | 10 +- src/styles/global.css | 5 + 10 files changed, 346 insertions(+), 460 deletions(-) create mode 100644 src/styles/global.css diff --git a/astro.config.ts b/astro.config.ts index b696299..ff2cade 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -1,6 +1,8 @@ +// Plugins import type { ThemeConfig } from './src/types' import mdx from '@astrojs/mdx' import sitemap from '@astrojs/sitemap' +import { transformerCopyButton } from '@rehype-pretty/transformers' import swup from '@swup/astro' import compress from 'astro-compress' import robotsTxt from 'astro-robots-txt' @@ -17,14 +19,13 @@ import remarkDirective from 'remark-directive' import remarkGithubAdmonitionsToDirectives from 'remark-github-admonitions-to-directives' import remarkMath from 'remark-math' import remarkSectionize from 'remark-sectionize' -// +// Markdown Extensions import UnoCSS from 'unocss/astro' import { themeConfig } from './src/config' import { AdmonitionComponent } from './src/plugins/rehype-component-admonition.ts' import { GithubCardComponent } from './src/plugins/rehype-component-github-card.ts' import { parseDirectiveNode } from './src/plugins/remark-directive-rehype.ts' import { remarkExcerpt } from './src/plugins/remark-excerpt.ts' - import { remarkReadingTime } from './src/plugins/remark-reading-time.ts' const { url }: { url: ThemeConfig['site']['url'] } = themeConfig.site @@ -36,8 +37,15 @@ export default defineConfig({ integrations: [ UnoCSS({ injectReset: true }), mdx(), - sitemap(), - robotsTxt(), + sitemap({ + changefreq: 'weekly', + priority: 0.7, + lastmod: new Date(), + }), + robotsTxt({ + policy: [{ userAgent: '*', allow: '/' }], + sitemap: true, + }), compress(), swup({ theme: false, @@ -66,14 +74,22 @@ export default defineConfig({ [ rehypePrettyCode, { + // TODO: Add auto theme switcher theme: 'github-dark', + transformers: [ + transformerCopyButton({ + visibility: 'hover', + feedbackDuration: 2_500, + }), + ], }, ], [ rehypeExternalLinks, { target: '_blank', - rel: ['nofollow', 'noopener', 'noreferrer'], + rel: ['nofollow', 'noopener', 'noreferrer', 'external'], + protocols: ['http', 'https', 'mailto'], }, ], [ @@ -114,5 +130,4 @@ export default defineConfig({ ], ], }, - }) diff --git a/package.json b/package.json index 7278a7e..2a9919c 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,13 @@ "@astrojs/mdx": "^4.0.5", "@astrojs/rss": "^4.0.11", "@astrojs/sitemap": "^3.2.1", + "@rehype-pretty/transformers": "^0.13.2", "@swup/astro": "^1.5.0", + "@unocss/reset": "^65.4.0", "astro": "^5.1.6", "astro-compress": "^2.3.6", "astro-robots-txt": "^1.0.0", "astro-seo": "^0.8.4", - "markdown-it": "^14.1.0", "overlayscrollbars": "^2.10.1", "photoswipe": "^5.4.4", "rehype-autolink-headings": "^7.1.0", @@ -33,39 +34,33 @@ "rehype-pretty-code": "^0.14.0", "rehype-slug": "^6.0.0", "remark-directive": "^3.0.0", - "remark-directive-rehype": "^0.4.2", "remark-github-admonitions-to-directives": "^2.1.0", "remark-math": "^6.0.0", "remark-sectionize": "^2.1.0", "sanitize-html": "^2.14.0", "sharp": "^0.33.5", - "shiki": "^1.26.2", "typescript": "~5.7.3", "unist-util-visit": "^5.0.0", "vite": "^6.0.7" }, "devDependencies": { "@antfu/eslint-config": "^3.14.0", - "@types/markdown-it": "^14.1.2", + "@types/hast": "^3.0.4", "@types/mdast": "^4.0.4", - "@types/node": "^22.10.5", + "@types/node": "^22.10.6", "@types/sanitize-html": "^2.13.0", "@types/unist": "^3.0.3", "@unocss/eslint-plugin": "^65.4.0", - "@unocss/preset-attributify": "^65.4.0", - "@unocss/reset": "^65.4.0", - "@unocss/transformer-directives": "^65.4.0", "astro-eslint-parser": "^1.1.0", - "consola": "^3.3.3", "eslint": "^9.18.0", "eslint-plugin-astro": "^1.3.1", - "esno": "^4.8.0", "hastscript": "^9.0.0", "lint-staged": "^15.3.0", "mdast-util-to-string": "^4.0.0", "reading-time": "^1.5.0", "unocss": "^65.4.0", - "unocss-preset-theme": "^0.14.1" + "unocss-preset-theme": "^0.14.1", + "vfile": "^6.0.3" }, "lint-staged": { "*.{js,ts,jsx,tsx,astro}": "eslint --fix" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6b933b7..0739f22 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 0.9.4(typescript@5.7.3) '@astrojs/mdx': specifier: ^4.0.5 - version: 4.0.5(astro@5.1.6(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)) + version: 4.0.5(astro@5.1.6(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)) '@astrojs/rss': specifier: ^4.0.11 version: 4.0.11 @@ -25,19 +25,19 @@ importers: version: 1.5.0 astro: specifier: ^5.1.6 - version: 5.1.6(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + version: 5.1.6(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) astro-compress: specifier: ^2.3.6 - version: 2.3.6(@types/node@22.10.5)(jiti@2.4.2)(rollup@2.79.2)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + version: 2.3.6(@types/node@22.10.6)(jiti@2.4.2)(rollup@2.79.2)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) astro-robots-txt: specifier: ^1.0.0 version: 1.0.0 astro-seo: specifier: ^0.8.4 version: 0.8.4(typescript@5.7.3) - markdown-it: - specifier: ^14.1.0 - version: 14.1.0 + fast-glob: + specifier: ^3.3.3 + version: 3.3.3 overlayscrollbars: specifier: ^2.10.1 version: 2.10.1 @@ -65,9 +65,6 @@ importers: remark-directive: specifier: ^3.0.0 version: 3.0.0 - remark-directive-rehype: - specifier: ^0.4.2 - version: 0.4.2 remark-github-admonitions-to-directives: specifier: ^2.1.0 version: 2.1.0 @@ -94,23 +91,20 @@ importers: version: 5.0.0 vite: specifier: ^6.0.7 - version: 6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + version: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) devDependencies: '@antfu/eslint-config': specifier: ^3.14.0 - version: 3.14.0(@typescript-eslint/utils@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + version: 3.14.0(@typescript-eslint/utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) '@types/hast': specifier: ^3.0.4 version: 3.0.4 - '@types/markdown-it': - specifier: ^14.1.2 - version: 14.1.2 '@types/mdast': specifier: ^4.0.4 version: 4.0.4 '@types/node': - specifier: ^22.10.5 - version: 22.10.5 + specifier: ^22.10.6 + version: 22.10.6 '@types/sanitize-html': specifier: ^2.13.0 version: 2.13.0 @@ -132,18 +126,12 @@ importers: astro-eslint-parser: specifier: ^1.1.0 version: 1.1.0(typescript@5.7.3) - consola: - specifier: ^3.3.3 - version: 3.3.3 eslint: specifier: ^9.18.0 version: 9.18.0(jiti@2.4.2) eslint-plugin-astro: specifier: ^1.3.1 version: 1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - esno: - specifier: ^4.8.0 - version: 4.8.0 hastscript: specifier: ^9.0.0 version: 9.0.0 @@ -156,12 +144,18 @@ importers: reading-time: specifier: ^1.5.0 version: 1.5.0 + unified: + specifier: ^11.0.5 + version: 11.0.5 unocss: specifier: ^65.4.0 - version: 65.4.0(postcss@8.4.49)(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + version: 65.4.0(postcss@8.5.0)(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) unocss-preset-theme: specifier: ^0.14.1 version: 0.14.1(@unocss/core@65.4.0) + vfile: + specifier: ^6.0.3 + version: 6.0.3 packages: @@ -635,8 +629,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.26.5': - resolution: {integrity: sha512-OHqczNm4NTQlW1ghrVY43FPoiRzbmzNVbcgVnMKZN/RQYezHUSdjACjaX50CD3B7UIAjv39+MlsrVDb3v741FA==} + '@babel/plugin-transform-nullish-coalescing-operator@7.26.6': + resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -1836,9 +1830,6 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -1851,18 +1842,9 @@ packages: '@types/katex@0.16.7': resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} - '@types/linkify-it@5.0.0': - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - - '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/mdurl@2.0.0': - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} @@ -1878,6 +1860,9 @@ packages: '@types/node@22.10.5': resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} + '@types/node@22.10.6': + resolution: {integrity: sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1899,51 +1884,51 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.19.1': - resolution: {integrity: sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==} + '@typescript-eslint/eslint-plugin@8.20.0': + resolution: {integrity: sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.19.1': - resolution: {integrity: sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==} + '@typescript-eslint/parser@8.20.0': + resolution: {integrity: sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.19.1': - resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==} + '@typescript-eslint/scope-manager@8.20.0': + resolution: {integrity: sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.19.1': - resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==} + '@typescript-eslint/type-utils@8.20.0': + resolution: {integrity: sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.19.1': - resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==} + '@typescript-eslint/types@8.20.0': + resolution: {integrity: sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.19.1': - resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==} + '@typescript-eslint/typescript-estree@8.20.0': + resolution: {integrity: sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.19.1': - resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==} + '@typescript-eslint/utils@8.20.0': + resolution: {integrity: sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.19.1': - resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==} + '@typescript-eslint/visitor-keys@8.20.0': + resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.1': @@ -2491,8 +2476,8 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - consola@3.3.3: - resolution: {integrity: sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==} + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} engines: {node: ^14.18.0 || >=16.10.0} convert-source-map@2.0.0: @@ -2995,10 +2980,6 @@ packages: jiti: optional: true - esno@4.8.0: - resolution: {integrity: sha512-acMtooReAQGzLU0zcuEDHa8S62meh5aIyi8jboYxyvAePdmuWx2Mpwmt0xjwO0bs9/SXf+dvXJ0QJoDWw814Iw==} - hasBin: true - espree@10.3.0: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3335,9 +3316,6 @@ packages: hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-parse-selector@3.1.1: - resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} - hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} @@ -3365,9 +3343,6 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hastscript@7.2.0: - resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} - hastscript@9.0.0: resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} @@ -3812,9 +3787,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - lint-staged@15.3.0: resolution: {integrity: sha512-vHFahytLoF2enJklgtOtCtIjZrKD/LoxlaUusd5nh7dWv/dkKQJY74ndFSzxCdv7g0ueGg1ORgTSt4Y9LPZn9A==} engines: {node: '>=18.12.0'} @@ -3903,10 +3875,6 @@ packages: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} - markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} - hasBin: true - markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -3987,9 +3955,6 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -4654,8 +4619,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + postcss@8.5.0: + resolution: {integrity: sha512-27VKOqrYfPncKA2NrFOVhP5MGAfHKLYn/Q0mz9cNQyRAKYi3VNHwYU2qKKqPCqgBmeeJ0uAFB56NumXZ5ZReXg==} engines: {node: ^10 || ^12 || >=14} preferred-pm@4.0.0: @@ -4699,10 +4664,6 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -4848,10 +4809,6 @@ packages: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} - remark-directive-rehype@0.4.2: - resolution: {integrity: sha512-T6e+IG+BwqU4++MK54vFb+KDFjs3a+tHeK6E0T0ctR1FSyngolfDtAEzqxHWlRzQZqGi2sB4DFXry6oqH87D/g==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - remark-directive@3.0.0: resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==} @@ -5406,9 +5363,6 @@ packages: engines: {node: '>=14.17'} hasBin: true - uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - ufo@1.5.4: resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} @@ -5462,9 +5416,6 @@ packages: unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unist-util-map@3.1.3: - resolution: {integrity: sha512-4/mDauoxqZ6geK97lJ6n2kDk6JK88Vh+hWMSJqyaaP/7eqN1dDhjcjnNxKNm3YU6Sw7PVJtcFMUbnmHvYzb6Vg==} - unist-util-modify-children@4.0.0: resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} @@ -5915,16 +5866,16 @@ snapshots: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@3.14.0(@typescript-eslint/utils@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@antfu/eslint-config@3.14.0(@typescript-eslint/utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@antfu/install-pkg': 1.0.0 '@clack/prompts': 0.9.1 '@eslint-community/eslint-plugin-eslint-comments': 4.4.1(eslint@9.18.0(jiti@2.4.2)) '@eslint/markdown': 6.2.1 '@stylistic/eslint-plugin': 2.13.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/parser': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@vitest/eslint-plugin': 1.1.25(@typescript-eslint/utils@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/eslint-plugin': 8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@vitest/eslint-plugin': 1.1.25(@typescript-eslint/utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) eslint-config-flat-gitignore: 1.0.0(eslint@9.18.0(jiti@2.4.2)) eslint-flat-config-utils: 1.0.0 @@ -5940,7 +5891,7 @@ snapshots: eslint-plugin-regexp: 2.7.0(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-toml: 0.12.0(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-unicorn: 56.0.1(eslint@9.18.0(jiti@2.4.2)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-vue: 9.32.0(eslint@9.18.0(jiti@2.4.2)) eslint-plugin-yml: 1.16.0(eslint@9.18.0(jiti@2.4.2)) eslint-processor-vue-blocks: 1.0.0(@vue/compiler-sfc@3.5.13)(eslint@9.18.0(jiti@2.4.2)) @@ -6051,12 +6002,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.0.5(astro@5.1.6(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0))': + '@astrojs/mdx@4.0.5(astro@5.1.6(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0))': dependencies: '@astrojs/markdown-remark': 6.0.1 '@mdx-js/mdx': 3.1.0(acorn@8.14.0) acorn: 8.14.0 - astro: 5.1.6(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.1.6(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) es-module-lexer: 1.6.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.4 @@ -6527,7 +6478,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-nullish-coalescing-operator@7.26.5(@babel/core@7.26.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.26.5 @@ -6733,7 +6684,7 @@ snapshots: '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.26.5(@babel/core@7.26.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.0) '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) @@ -6866,7 +6817,7 @@ snapshots: dependencies: '@types/eslint': 9.6.1 '@types/estree': 1.0.6 - '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/types': 8.20.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 @@ -7481,7 +7432,7 @@ snapshots: '@stylistic/eslint-plugin@2.13.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) eslint-visitor-keys: 4.2.0 espree: 10.3.0 @@ -7667,10 +7618,6 @@ snapshots: '@types/estree@1.0.6': {} - '@types/hast@2.3.10': - dependencies: - '@types/unist': 2.0.11 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.3 @@ -7681,19 +7628,10 @@ snapshots: '@types/katex@0.16.7': {} - '@types/linkify-it@5.0.0': {} - - '@types/markdown-it@14.1.2': - dependencies: - '@types/linkify-it': 5.0.0 - '@types/mdurl': 2.0.0 - '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 - '@types/mdurl@2.0.0': {} - '@types/mdx@2.0.13': {} '@types/ms@0.7.34': {} @@ -7708,13 +7646,17 @@ snapshots: dependencies: undici-types: 6.20.0 + '@types/node@22.10.6': + dependencies: + undici-types: 6.20.0 + '@types/normalize-package-data@2.4.4': {} '@types/parse-json@4.0.2': {} '@types/resolve@1.17.1': dependencies: - '@types/node': 22.10.5 + '@types/node': 22.10.6 '@types/sanitize-html@2.13.0': dependencies: @@ -7722,20 +7664,20 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 22.10.5 + '@types/node': 22.10.6 '@types/unist@2.0.11': {} '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/type-utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/parser': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/type-utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.20.0 eslint: 9.18.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 5.3.2 @@ -7745,27 +7687,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.20.0 debug: 4.4.0 eslint: 9.18.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.19.1': + '@typescript-eslint/scope-manager@8.20.0': dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/visitor-keys': 8.20.0 - '@typescript-eslint/type-utils@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.3) - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 eslint: 9.18.0(jiti@2.4.2) ts-api-utils: 2.0.0(typescript@5.7.3) @@ -7773,12 +7715,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.19.1': {} + '@typescript-eslint/types@8.20.0': {} - '@typescript-eslint/typescript-estree@8.19.1(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.20.0(typescript@5.7.3)': dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/visitor-keys': 8.19.1 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/visitor-keys': 8.20.0 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -7789,31 +7731,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@typescript-eslint/utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.19.1': + '@typescript-eslint/visitor-keys@8.20.0': dependencies: - '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/types': 8.20.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.1': {} - '@unocss/astro@65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + '@unocss/astro@65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': dependencies: '@unocss/core': 65.4.0 '@unocss/reset': 65.4.0 - '@unocss/vite': 65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + '@unocss/vite': 65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) optionalDependencies: - vite: 6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - rollup - supports-color @@ -7829,7 +7771,7 @@ snapshots: cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 - consola: 3.3.3 + consola: 3.4.0 magic-string: 0.30.17 pathe: 1.1.2 perfect-debounce: 1.0.0 @@ -7851,7 +7793,7 @@ snapshots: '@unocss/eslint-plugin@65.4.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) '@unocss/config': 65.4.0 '@unocss/core': 65.4.0 magic-string: 0.30.17 @@ -7876,13 +7818,13 @@ snapshots: transitivePeerDependencies: - vue - '@unocss/postcss@65.4.0(postcss@8.4.49)': + '@unocss/postcss@65.4.0(postcss@8.5.0)': dependencies: '@unocss/config': 65.4.0 '@unocss/core': 65.4.0 '@unocss/rule-utils': 65.4.0 css-tree: 3.1.0 - postcss: 8.4.49 + postcss: 8.5.0 tinyglobby: 0.2.10 transitivePeerDependencies: - supports-color @@ -7962,7 +7904,7 @@ snapshots: dependencies: '@unocss/core': 65.4.0 - '@unocss/vite@65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': + '@unocss/vite@65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.4(rollup@2.79.2) @@ -7972,15 +7914,15 @@ snapshots: chokidar: 3.6.0 magic-string: 0.30.17 tinyglobby: 0.2.10 - vite: 6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - rollup - supports-color - vue - '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': + '@vitest/eslint-plugin@1.1.25(@typescript-eslint/utils@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)': dependencies: - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) optionalDependencies: typescript: 5.7.3 @@ -8057,7 +7999,7 @@ snapshots: '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.4.49 + postcss: 8.5.0 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.13': @@ -8169,12 +8111,12 @@ snapshots: astring@1.9.0: {} - astro-compress@2.3.6(@types/node@22.10.5)(jiti@2.4.2)(rollup@2.79.2)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0): + astro-compress@2.3.6(@types/node@22.10.6)(jiti@2.4.2)(rollup@2.79.2)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0): dependencies: '@playform/pipe': 0.1.2 '@types/csso': 5.0.4 '@types/html-minifier-terser': 7.0.2 - astro: 5.1.6(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) + astro: 5.1.6(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0) commander: 13.0.0 csso: 5.0.5 deepmerge-ts: 7.1.3 @@ -8220,9 +8162,9 @@ snapshots: astro-eslint-parser@1.1.0(typescript@5.7.3): dependencies: '@astrojs/compiler': 2.10.3 - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.7.3) astrojs-compiler-sync: 1.0.1(@astrojs/compiler@2.10.3) debug: 4.4.0 entities: 4.5.0 @@ -8249,7 +8191,7 @@ snapshots: - prettier-plugin-astro - typescript - astro@5.1.6(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0): + astro@5.1.6(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@2.79.2)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0): dependencies: '@astrojs/compiler': 2.10.3 '@astrojs/internal-helpers': 0.4.2 @@ -8301,8 +8243,8 @@ snapshots: unist-util-visit: 5.0.0 unstorage: 1.14.4 vfile: 6.0.3 - vite: 6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) - vitefu: 1.0.5(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) + vite: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vitefu: 1.0.5(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)) which-pm: 3.0.0 xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 @@ -8355,14 +8297,14 @@ snapshots: asyncro@3.0.0: {} - autoprefixer@10.4.20(postcss@8.4.49): + autoprefixer@10.4.20(postcss@8.5.0): dependencies: browserslist: 4.24.4 caniuse-lite: 1.0.30001692 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: @@ -8621,7 +8563,7 @@ snapshots: confbox@0.1.8: {} - consola@3.3.3: {} + consola@3.4.0: {} convert-source-map@2.0.0: {} @@ -8651,9 +8593,9 @@ snapshots: dependencies: uncrypto: 0.1.3 - css-declaration-sorter@6.4.1(postcss@8.4.49): + css-declaration-sorter@6.4.1(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 css-select@4.3.0: dependencies: @@ -8695,48 +8637,48 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@5.2.14(postcss@8.4.49): + cssnano-preset-default@5.2.14(postcss@8.5.0): dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.49) - cssnano-utils: 3.1.0(postcss@8.4.49) - postcss: 8.4.49 - postcss-calc: 8.2.4(postcss@8.4.49) - postcss-colormin: 5.3.1(postcss@8.4.49) - postcss-convert-values: 5.1.3(postcss@8.4.49) - postcss-discard-comments: 5.1.2(postcss@8.4.49) - postcss-discard-duplicates: 5.1.0(postcss@8.4.49) - postcss-discard-empty: 5.1.1(postcss@8.4.49) - postcss-discard-overridden: 5.1.0(postcss@8.4.49) - postcss-merge-longhand: 5.1.7(postcss@8.4.49) - postcss-merge-rules: 5.1.4(postcss@8.4.49) - postcss-minify-font-values: 5.1.0(postcss@8.4.49) - postcss-minify-gradients: 5.1.1(postcss@8.4.49) - postcss-minify-params: 5.1.4(postcss@8.4.49) - postcss-minify-selectors: 5.2.1(postcss@8.4.49) - postcss-normalize-charset: 5.1.0(postcss@8.4.49) - postcss-normalize-display-values: 5.1.0(postcss@8.4.49) - postcss-normalize-positions: 5.1.1(postcss@8.4.49) - postcss-normalize-repeat-style: 5.1.1(postcss@8.4.49) - postcss-normalize-string: 5.1.0(postcss@8.4.49) - postcss-normalize-timing-functions: 5.1.0(postcss@8.4.49) - postcss-normalize-unicode: 5.1.1(postcss@8.4.49) - postcss-normalize-url: 5.1.0(postcss@8.4.49) - postcss-normalize-whitespace: 5.1.1(postcss@8.4.49) - postcss-ordered-values: 5.1.3(postcss@8.4.49) - postcss-reduce-initial: 5.1.2(postcss@8.4.49) - postcss-reduce-transforms: 5.1.0(postcss@8.4.49) - postcss-svgo: 5.1.0(postcss@8.4.49) - postcss-unique-selectors: 5.1.1(postcss@8.4.49) + css-declaration-sorter: 6.4.1(postcss@8.5.0) + cssnano-utils: 3.1.0(postcss@8.5.0) + postcss: 8.5.0 + postcss-calc: 8.2.4(postcss@8.5.0) + postcss-colormin: 5.3.1(postcss@8.5.0) + postcss-convert-values: 5.1.3(postcss@8.5.0) + postcss-discard-comments: 5.1.2(postcss@8.5.0) + postcss-discard-duplicates: 5.1.0(postcss@8.5.0) + postcss-discard-empty: 5.1.1(postcss@8.5.0) + postcss-discard-overridden: 5.1.0(postcss@8.5.0) + postcss-merge-longhand: 5.1.7(postcss@8.5.0) + postcss-merge-rules: 5.1.4(postcss@8.5.0) + postcss-minify-font-values: 5.1.0(postcss@8.5.0) + postcss-minify-gradients: 5.1.1(postcss@8.5.0) + postcss-minify-params: 5.1.4(postcss@8.5.0) + postcss-minify-selectors: 5.2.1(postcss@8.5.0) + postcss-normalize-charset: 5.1.0(postcss@8.5.0) + postcss-normalize-display-values: 5.1.0(postcss@8.5.0) + postcss-normalize-positions: 5.1.1(postcss@8.5.0) + postcss-normalize-repeat-style: 5.1.1(postcss@8.5.0) + postcss-normalize-string: 5.1.0(postcss@8.5.0) + postcss-normalize-timing-functions: 5.1.0(postcss@8.5.0) + postcss-normalize-unicode: 5.1.1(postcss@8.5.0) + postcss-normalize-url: 5.1.0(postcss@8.5.0) + postcss-normalize-whitespace: 5.1.1(postcss@8.5.0) + postcss-ordered-values: 5.1.3(postcss@8.5.0) + postcss-reduce-initial: 5.1.2(postcss@8.5.0) + postcss-reduce-transforms: 5.1.0(postcss@8.5.0) + postcss-svgo: 5.1.0(postcss@8.5.0) + postcss-unique-selectors: 5.1.1(postcss@8.5.0) - cssnano-utils@3.1.0(postcss@8.4.49): + cssnano-utils@3.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 - cssnano@5.1.15(postcss@8.4.49): + cssnano@5.1.15(postcss@8.5.0): dependencies: - cssnano-preset-default: 5.2.14(postcss@8.4.49) + cssnano-preset-default: 5.2.14(postcss@8.5.0) lilconfig: 2.1.0 - postcss: 8.4.49 + postcss: 8.5.0 yaml: 1.10.2 csso@4.2.0: @@ -9145,12 +9087,12 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0(jiti@2.4.2)) '@jridgewell/sourcemap-codec': 1.5.0 - '@typescript-eslint/types': 8.19.1 + '@typescript-eslint/types': 8.20.0 astro-eslint-parser: 1.1.0(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) eslint-compat-utils: 0.6.4(eslint@9.18.0(jiti@2.4.2)) globals: 15.14.0 - postcss: 8.4.49 + postcss: 8.5.0 postcss-selector-parser: 7.0.0 transitivePeerDependencies: - supports-color @@ -9171,8 +9113,8 @@ snapshots: eslint-plugin-import-x@4.6.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3): dependencies: '@types/doctrine': 0.0.9 - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) debug: 4.4.0 doctrine: 3.0.0 enhanced-resolve: 5.18.0 @@ -9235,8 +9177,8 @@ snapshots: eslint-plugin-perfectionist@4.6.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3): dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/utils': 8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/utils': 8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint: 9.18.0(jiti@2.4.2) natural-orderby: 5.0.0 transitivePeerDependencies: @@ -9284,11 +9226,11 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2)): dependencies: eslint: 9.18.0(jiti@2.4.2) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) + '@typescript-eslint/eslint-plugin': 8.20.0(@typescript-eslint/parser@8.20.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3) eslint-plugin-vue@9.32.0(eslint@9.18.0(jiti@2.4.2)): dependencies: @@ -9375,10 +9317,6 @@ snapshots: transitivePeerDependencies: - supports-color - esno@4.8.0: - dependencies: - tsx: 4.19.2 - espree@10.3.0: dependencies: acorn: 8.14.0 @@ -9756,10 +9694,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hast-util-parse-selector@3.1.1: - dependencies: - '@types/hast': 2.3.10 - hast-util-parse-selector@4.0.0: dependencies: '@types/hast': 3.0.4 @@ -9860,14 +9794,6 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hastscript@7.2.0: - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 3.1.1 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - hastscript@9.0.0: dependencies: '@types/hast': 3.0.4 @@ -9905,9 +9831,9 @@ snapshots: icss-replace-symbols@1.1.0: {} - icss-utils@5.1.0(postcss@8.4.49): + icss-utils@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 ignore@5.3.2: {} @@ -10138,7 +10064,7 @@ snapshots: jest-worker@26.6.2: dependencies: - '@types/node': 22.10.5 + '@types/node': 22.10.6 merge-stream: 2.0.0 supports-color: 7.2.0 @@ -10262,10 +10188,6 @@ snapshots: lines-and-columns@1.2.4: {} - linkify-it@5.0.0: - dependencies: - uc.micro: 2.1.0 - lint-staged@15.3.0: dependencies: chalk: 5.4.1 @@ -10371,15 +10293,6 @@ snapshots: markdown-extensions@2.0.0: {} - markdown-it@14.1.0: - dependencies: - argparse: 2.0.1 - entities: 4.5.0 - linkify-it: 5.0.0 - mdurl: 2.0.0 - punycode.js: 2.3.1 - uc.micro: 2.1.0 - markdown-table@3.0.4: {} math-intrinsics@1.1.0: {} @@ -10593,8 +10506,6 @@ snapshots: mdn-data@2.12.2: {} - mdurl@2.0.0: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -10618,7 +10529,7 @@ snapshots: '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 asyncro: 3.0.0 - autoprefixer: 10.4.20(postcss@8.4.49) + autoprefixer: 10.4.20(postcss@8.5.0) babel-plugin-macros: 3.1.0 babel-plugin-transform-async-to-promises: 0.8.18 babel-plugin-transform-replace-expressions: 0.2.0(@babel/core@7.26.0) @@ -10630,11 +10541,11 @@ snapshots: gzip-size: 6.0.0 kleur: 4.1.5 lodash.merge: 4.6.2 - postcss: 8.4.49 + postcss: 8.5.0 pretty-bytes: 5.6.0 rollup: 2.79.2 rollup-plugin-bundle-size: 1.0.3 - rollup-plugin-postcss: 4.0.2(postcss@8.4.49) + rollup-plugin-postcss: 4.0.2(postcss@8.5.0) rollup-plugin-terser: 7.0.2(rollup@2.79.2) rollup-plugin-typescript2: 0.32.1(rollup@2.79.2)(typescript@4.9.5) rollup-plugin-visualizer: 5.14.0(rollup@2.79.2) @@ -11236,181 +11147,181 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-calc@8.2.4(postcss@8.4.49): + postcss-calc@8.2.4(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-colormin@5.3.1(postcss@8.4.49): + postcss-colormin@5.3.1(postcss@8.5.0): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-convert-values@5.1.3(postcss@8.4.49): + postcss-convert-values@5.1.3(postcss@8.5.0): dependencies: browserslist: 4.24.4 - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-discard-comments@5.1.2(postcss@8.4.49): + postcss-discard-comments@5.1.2(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 - postcss-discard-duplicates@5.1.0(postcss@8.4.49): + postcss-discard-duplicates@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 - postcss-discard-empty@5.1.1(postcss@8.4.49): + postcss-discard-empty@5.1.1(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 - postcss-discard-overridden@5.1.0(postcss@8.4.49): + postcss-discard-overridden@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 - postcss-load-config@3.1.4(postcss@8.4.49): + postcss-load-config@3.1.4(postcss@8.5.0): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.4.49 + postcss: 8.5.0 - postcss-merge-longhand@5.1.7(postcss@8.4.49): + postcss-merge-longhand@5.1.7(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1(postcss@8.4.49) + stylehacks: 5.1.1(postcss@8.5.0) - postcss-merge-rules@5.1.4(postcss@8.4.49): + postcss-merge-rules@5.1.4(postcss@8.5.0): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 3.1.0(postcss@8.5.0) + postcss: 8.5.0 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@5.1.0(postcss@8.4.49): + postcss-minify-font-values@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-minify-gradients@5.1.1(postcss@8.4.49): + postcss-minify-gradients@5.1.1(postcss@8.5.0): dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 3.1.0(postcss@8.5.0) + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-minify-params@5.1.4(postcss@8.4.49): + postcss-minify-params@5.1.4(postcss@8.5.0): dependencies: browserslist: 4.24.4 - cssnano-utils: 3.1.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 3.1.0(postcss@8.5.0) + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-minify-selectors@5.2.1(postcss@8.4.49): + postcss-minify-selectors@5.2.1(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-selector-parser: 6.1.2 - postcss-modules-extract-imports@3.1.0(postcss@8.4.49): + postcss-modules-extract-imports@3.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 - postcss-modules-local-by-default@4.2.0(postcss@8.4.49): + postcss-modules-local-by-default@4.2.0(postcss@8.5.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 + icss-utils: 5.1.0(postcss@8.5.0) + postcss: 8.5.0 postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.4.49): + postcss-modules-scope@3.2.1(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-selector-parser: 7.0.0 - postcss-modules-values@4.0.0(postcss@8.4.49): + postcss-modules-values@4.0.0(postcss@8.5.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.49) - postcss: 8.4.49 + icss-utils: 5.1.0(postcss@8.5.0) + postcss: 8.5.0 - postcss-modules@4.3.1(postcss@8.4.49): + postcss-modules@4.3.1(postcss@8.5.0): dependencies: generic-names: 4.0.0 icss-replace-symbols: 1.1.0 lodash.camelcase: 4.3.0 - postcss: 8.4.49 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.49) - postcss-modules-local-by-default: 4.2.0(postcss@8.4.49) - postcss-modules-scope: 3.2.1(postcss@8.4.49) - postcss-modules-values: 4.0.0(postcss@8.4.49) + postcss: 8.5.0 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.0) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.0) + postcss-modules-scope: 3.2.1(postcss@8.5.0) + postcss-modules-values: 4.0.0(postcss@8.5.0) string-hash: 1.1.3 - postcss-normalize-charset@5.1.0(postcss@8.4.49): + postcss-normalize-charset@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 - postcss-normalize-display-values@5.1.0(postcss@8.4.49): + postcss-normalize-display-values@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-normalize-positions@5.1.1(postcss@8.4.49): + postcss-normalize-positions@5.1.1(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@5.1.1(postcss@8.4.49): + postcss-normalize-repeat-style@5.1.1(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-normalize-string@5.1.0(postcss@8.4.49): + postcss-normalize-string@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@5.1.0(postcss@8.4.49): + postcss-normalize-timing-functions@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@5.1.1(postcss@8.4.49): + postcss-normalize-unicode@5.1.1(postcss@8.5.0): dependencies: browserslist: 4.24.4 - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-normalize-url@5.1.0(postcss@8.4.49): + postcss-normalize-url@5.1.0(postcss@8.5.0): dependencies: normalize-url: 6.1.0 - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@5.1.1(postcss@8.4.49): + postcss-normalize-whitespace@5.1.1(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-ordered-values@5.1.3(postcss@8.4.49): + postcss-ordered-values@5.1.3(postcss@8.5.0): dependencies: - cssnano-utils: 3.1.0(postcss@8.4.49) - postcss: 8.4.49 + cssnano-utils: 3.1.0(postcss@8.5.0) + postcss: 8.5.0 postcss-value-parser: 4.2.0 - postcss-reduce-initial@5.1.2(postcss@8.4.49): + postcss-reduce-initial@5.1.2(postcss@8.5.0): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 - postcss: 8.4.49 + postcss: 8.5.0 - postcss-reduce-transforms@5.1.0(postcss@8.4.49): + postcss-reduce-transforms@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 postcss-selector-parser@6.1.2: @@ -11423,20 +11334,20 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@5.1.0(postcss@8.4.49): + postcss-svgo@5.1.0(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-value-parser: 4.2.0 svgo: 2.8.0 - postcss-unique-selectors@5.1.1(postcss@8.4.49): + postcss-unique-selectors@5.1.1(postcss@8.5.0): dependencies: - postcss: 8.4.49 + postcss: 8.5.0 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} - postcss@8.4.49: + postcss@8.5.0: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 @@ -11472,8 +11383,6 @@ snapshots: property-information@6.5.0: {} - punycode.js@2.3.1: {} - punycode@2.3.1: {} queue-microtask@1.2.3: {} @@ -11698,11 +11607,6 @@ snapshots: relateurl@0.2.7: {} - remark-directive-rehype@0.4.2: - dependencies: - hastscript: 7.2.0 - unist-util-map: 3.1.3 - remark-directive@3.0.0: dependencies: '@types/mdast': 4.0.4 @@ -11842,17 +11746,17 @@ snapshots: chalk: 1.1.3 maxmin: 2.1.0 - rollup-plugin-postcss@4.0.2(postcss@8.4.49): + rollup-plugin-postcss@4.0.2(postcss@8.5.0): dependencies: chalk: 4.1.2 concat-with-sourcemaps: 1.1.0 - cssnano: 5.1.15(postcss@8.4.49) + cssnano: 5.1.15(postcss@8.5.0) import-cwd: 3.0.0 p-queue: 6.6.2 pify: 5.0.0 - postcss: 8.4.49 - postcss-load-config: 3.1.4(postcss@8.4.49) - postcss-modules: 4.3.1(postcss@8.4.49) + postcss: 8.5.0 + postcss-load-config: 3.1.4(postcss@8.5.0) + postcss-modules: 4.3.1(postcss@8.5.0) promise.series: 0.2.0 resolve: 1.22.10 rollup-pluginutils: 2.8.2 @@ -11959,7 +11863,7 @@ snapshots: htmlparser2: 8.0.2 is-plain-object: 5.0.0 parse-srcset: 1.0.2 - postcss: 8.4.49 + postcss: 8.5.0 sax@1.4.1: {} @@ -12252,10 +12156,10 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - stylehacks@5.1.1(postcss@8.4.49): + stylehacks@5.1.1(postcss@8.5.0): dependencies: browserslist: 4.24.4 - postcss: 8.4.49 + postcss: 8.5.0 postcss-selector-parser: 6.1.2 supports-color@2.0.0: {} @@ -12416,8 +12320,6 @@ snapshots: typescript@5.7.3: {} - uc.micro@2.1.0: {} - ufo@1.5.4: {} ultrahtml@1.5.3: {} @@ -12443,7 +12345,7 @@ snapshots: unenv@1.10.0: dependencies: - consola: 3.3.3 + consola: 3.4.0 defu: 6.1.4 mime: 3.0.0 node-fetch-native: 1.6.4 @@ -12488,10 +12390,6 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-map@3.1.3: - dependencies: - '@types/unist': 2.0.11 - unist-util-modify-children@4.0.0: dependencies: '@types/unist': 3.0.3 @@ -12547,12 +12445,12 @@ snapshots: '@unocss/core': 65.4.0 '@unocss/rule-utils': 0.63.6 - unocss@65.4.0(postcss@8.4.49)(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)): + unocss@65.4.0(postcss@8.5.0)(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)): dependencies: - '@unocss/astro': 65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + '@unocss/astro': 65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) '@unocss/cli': 65.4.0(rollup@2.79.2) '@unocss/core': 65.4.0 - '@unocss/postcss': 65.4.0(postcss@8.4.49) + '@unocss/postcss': 65.4.0(postcss@8.5.0) '@unocss/preset-attributify': 65.4.0 '@unocss/preset-icons': 65.4.0 '@unocss/preset-mini': 65.4.0 @@ -12565,9 +12463,9 @@ snapshots: '@unocss/transformer-compile-class': 65.4.0 '@unocss/transformer-directives': 65.4.0 '@unocss/transformer-variant-group': 65.4.0 - '@unocss/vite': 65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + '@unocss/vite': 65.4.0(rollup@2.79.2)(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) optionalDependencies: - vite: 6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - postcss - rollup @@ -12621,13 +12519,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): + vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.24.2 - postcss: 8.4.49 + postcss: 8.5.0 rollup: 4.30.1 optionalDependencies: - '@types/node': 22.10.5 + '@types/node': 22.10.6 fsevents: 2.3.3 jiti: 2.4.2 lightningcss: 1.28.2 @@ -12635,9 +12533,9 @@ snapshots: tsx: 4.19.2 yaml: 2.7.0 - vitefu@1.0.5(vite@6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): + vitefu@1.0.5(vite@6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)): optionalDependencies: - vite: 6.0.7(@types/node@22.10.5)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.7(@types/node@22.10.6)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0) volar-service-css@0.0.62(@volar/language-service@2.4.11): dependencies: diff --git a/src/pages/index.astro b/src/pages/index.astro index 12840cd..d4533eb 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,8 +1,6 @@ --- -import Welcome from '@/components/Welcome.astro' import Layout from '@/layouts/Layout.astro' --- - diff --git a/src/plugins/rehype-component-admonition.ts b/src/plugins/rehype-component-admonition.ts index 5cdc5eb..80f3a8d 100644 --- a/src/plugins/rehype-component-admonition.ts +++ b/src/plugins/rehype-component-admonition.ts @@ -1,5 +1,4 @@ import type { Element, Properties as HastProperties, Node } from 'hast' -/// import { h } from 'hastscript' interface AdmonitionProperties extends HastProperties { @@ -7,25 +6,19 @@ interface AdmonitionProperties extends HastProperties { 'has-directive-label'?: boolean } -/** - * Creates an admonition component. - * - * @param properties - The properties of the component. - * @param type - The admonition type. - * @param children - The children elements of the component. - * @returns The created admonition component as a Hast Element. - */ +type AdmonitionType = 'tip' | 'note' | 'important' | 'caution' | 'warning' + +const ADMONITION_CLASS_PREFIX = 'bdm-' +const DEFAULT_ERROR_MESSAGE = 'Invalid admonition directive. (Admonition directives must be of block type ":::note{name="name"} :::")' + export function AdmonitionComponent( properties: AdmonitionProperties, - type: 'tip' | 'note' | 'important' | 'caution' | 'warning', + type: AdmonitionType, children: Node[], ): Element { if (!Array.isArray(children) || children.length === 0) { - return h( - 'div', - { class: 'hidden' }, - 'Invalid admonition directive. (Admonition directives must be of block type ":::note{name="name"} :::")', - ) + console.warn('Invalid admonition directive: empty or invalid children') + return h('div', { class: 'hidden' }, DEFAULT_ERROR_MESSAGE) } let label: Element | string | null = null @@ -36,14 +29,14 @@ export function AdmonitionComponent( if (firstChild && firstChild.type === 'element') { label = firstChild as Element - label.tagName = 'div' // Change the tag

to

+ label.tagName = 'div' } else { label = '' } } - return h('blockquote', { class: `admonition bdm-${type}` }, [ + return h('blockquote', { class: `${ADMONITION_CLASS_PREFIX}${type}` }, [ h('span', { class: 'bdm-title' }, label || type.toUpperCase()), ...(children as Element[]), ] as Element[]) diff --git a/src/plugins/rehype-component-github-card.ts b/src/plugins/rehype-component-github-card.ts index 84c0253..32f4c15 100644 --- a/src/plugins/rehype-component-github-card.ts +++ b/src/plugins/rehype-component-github-card.ts @@ -1,17 +1,10 @@ /// +import type { RootContent } from 'mdast' import { h } from 'hastscript' -/** - * Creates a GitHub Card component. - * - * @param {object} properties - The properties of the component. - * @param {string} properties.repo - The GitHub repository in the format "owner/repo". - * @param {import('mdast').RootContent[]} children - The children elements of the component. - * @returns {import('mdast').Parent} The created GitHub Card component. - */ export function GithubCardComponent( properties: { repo: string }, - children: import('mdast').RootContent[], + children: RootContent[], ): import('mdast').Parent { if (Array.isArray(children) && children.length !== 0) { return h('div', { class: 'hidden' }, [ @@ -28,7 +21,7 @@ export function GithubCardComponent( } const repo = properties.repo - const cardUuid = `GC${Math.random().toString(36).slice(-6)}` // Collisions are not important + const cardUuid = `GC${Math.random().toString(36).slice(-6)}` const nAvatar = h(`div#${cardUuid}-avatar`, { class: 'gc-avatar' }) const nLanguage = h( @@ -63,29 +56,39 @@ export function GithubCardComponent( `script#${cardUuid}-script`, { type: 'text/javascript', defer: true }, ` - fetch('https://api.github.com/repos/${repo}', { referrerPolicy: "no-referrer" }).then(response => response.json()).then(data => { - if (data.description) { - document.getElementById('${cardUuid}-description').innerText = data.description.replace(/:[a-zA-Z0-9_]+:/g, ''); - } else { - document.getElementById('${cardUuid}-description').innerText = "Description not set" + fetch('https://api.github.com/repos/${repo}', { + referrerPolicy: "no-referrer", + headers: { + 'Accept': 'application/vnd.github.v3+json', + }, + signal: AbortSignal.timeout(5000) + }).then(response => { + if (!response.ok) + throw new Error(\`HTTP error! status: \${response.status}\`) + return response.json() + }).then(data => { + const elements = { + description: document.getElementById('${cardUuid}-description'), + language: document.getElementById('${cardUuid}-language'), + stars: document.getElementById('${cardUuid}-stars'), } - document.getElementById('${cardUuid}-language').innerText = data.language; - document.getElementById('${cardUuid}-forks').innerText = Intl.NumberFormat('en-us', { notation: "compact", maximumFractionDigits: 1 }).format(data.forks).replaceAll("\\u202F", ''); - document.getElementById('${cardUuid}-stars').innerText = Intl.NumberFormat('en-us', { notation: "compact", maximumFractionDigits: 1 }).format(data.stargazers_count).replaceAll("\\u202F", ''); - const avatarEl = document.getElementById('${cardUuid}-avatar'); - avatarEl.style.backgroundImage = 'url(' + data.owner.avatar_url + ')'; - avatarEl.style.backgroundColor = 'transparent'; - if (data.license?.spdx_id) { - document.getElementById('${cardUuid}-license').innerText = data.license?.spdx_id - } else { - document.getElementById('${cardUuid}-license').innerText = "no-license" - }; - document.getElementById('${cardUuid}-card').classList.remove("fetch-waiting"); - console.log("[GITHUB-CARD] Loaded card for ${repo} | ${cardUuid}.") + + elements.description.innerText = data.description?.replace(/:[a-zA-Z0-9_]+:/g, '') ?? 'Description not set' + elements.language.innerText = data.language + elements.stars.innerText = Intl.NumberFormat('en-us', { notation: "compact", maximumFractionDigits: 1 }).format(data.stargazers_count).replaceAll("\\u202F", '') + + const avatarEl = document.getElementById('${cardUuid}-avatar') + avatarEl.style.backgroundImage = 'url(' + data.owner.avatar_url + ')' + avatarEl.style.backgroundColor = 'transparent' + + document.getElementById('${cardUuid}-license').innerText = data.license?.spdx_id ?? 'no-license' + document.getElementById('${cardUuid}-card').classList.remove("fetch-waiting") + console.log("[GITHUB-CARD] Loaded card for ${repo} | ${cardUuid}.") }).catch(err => { - const c = document.getElementById('${cardUuid}-card'); - c.classList.add("fetch-error"); - console.warn("[GITHUB-CARD] (Error) Loading card for ${repo} | ${cardUuid}.") + const c = document.getElementById('${cardUuid}-card') + c.classList.add("fetch-error") + document.getElementById('${cardUuid}-description').innerText = "Failed to load repository data" + console.warn("[GITHUB-CARD] (Error) Loading card for ${repo} | ${cardUuid}:", err.message) }) `, ) @@ -98,11 +101,6 @@ export function GithubCardComponent( target: '_blank', repo, }, - [ - nTitle, - nDescription, - h('div', { class: 'gc-infobar' }, [nStars, nForks, nLicense, nLanguage]), - nScript, - ], + [nTitle, nDescription, h('div', { class: 'gc-infobar' }, [nStars, nForks, nLicense, nLanguage]), nScript], ) as unknown as import('mdast').Parent } diff --git a/src/plugins/remark-directive-rehype.ts b/src/plugins/remark-directive-rehype.ts index e3b085e..e4c4aee 100644 --- a/src/plugins/remark-directive-rehype.ts +++ b/src/plugins/remark-directive-rehype.ts @@ -28,14 +28,11 @@ export function parseDirectiveNode() { ) { const data = directiveNode.data || (directiveNode.data = {}) directiveNode.attributes = directiveNode.attributes || {} - if ( - directiveNode.children.length > 0 - && directiveNode.children[0].data?.directiveLabel - ) { - directiveNode.attributes['has-directive-label'] = true - } - const hast = h(directiveNode.name, directiveNode.attributes) + if (directiveNode.children[0]?.data?.directiveLabel) + directiveNode.attributes['has-directive-label'] = true + + const hast = h(directiveNode.name, directiveNode.attributes) data.hName = hast.tagName data.hProperties = hast.properties } diff --git a/src/plugins/remark-excerpt.ts b/src/plugins/remark-excerpt.ts index 69e4b72..ea5fd24 100644 --- a/src/plugins/remark-excerpt.ts +++ b/src/plugins/remark-excerpt.ts @@ -4,18 +4,9 @@ import { toString } from 'mdast-util-to-string' export function remarkExcerpt() { return function (tree: Root, file: VFile) { - let excerpt = '' - for (const node of tree.children) { - if (node.type === 'paragraph') { - excerpt = toString(node) - break - } - } - - // 确保 data.astro.frontmatter 存在 - file.data.astro = file.data.astro || {} - file.data.astro.frontmatter = file.data.astro.frontmatter || {} - - file.data.astro.frontmatter.excerpt = excerpt + const firstParagraph = tree.children.find(node => node.type === 'paragraph') + const excerpt = firstParagraph ? toString(firstParagraph) : '' + const frontmatter = (file.data.astro ??= {}).frontmatter ??= {} + frontmatter.excerpt = excerpt } } diff --git a/src/plugins/remark-reading-time.ts b/src/plugins/remark-reading-time.ts index 8e6fee1..1d5434b 100644 --- a/src/plugins/remark-reading-time.ts +++ b/src/plugins/remark-reading-time.ts @@ -7,12 +7,8 @@ export function remarkReadingTime() { return function (tree: Root, file: VFile) { const textOnPage = toString(tree) const readingTime = getReadingTime(textOnPage) - - // 确保 data.astro.frontmatter 存在 - file.data.astro = file.data.astro || {} - file.data.astro.frontmatter = file.data.astro.frontmatter || {} - - file.data.astro.frontmatter.minutes = Math.max(1, Math.round(readingTime.minutes)) - file.data.astro.frontmatter.words = readingTime.words + const frontmatter = (file.data.astro ??= {}).frontmatter ??= {} + frontmatter.minutes = Math.max(1, Math.round(readingTime.minutes)) + frontmatter.words = readingTime.words } } diff --git a/src/styles/global.css b/src/styles/global.css new file mode 100644 index 0000000..ed4cee9 --- /dev/null +++ b/src/styles/global.css @@ -0,0 +1,5 @@ +:root { + --uno-colors-primary: theme('colors.primary'); + --uno-colors-backgroundStart: theme('colors.backgroundStart'); + --uno-colors-backgroundEnd: theme('colors.backgroundEnd'); + }