From 0777d098e420ebc44ed9bb983009ee5d6367bb1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=80=80=E6=96=87?= Date: Thu, 16 May 2024 16:14:08 +0800 Subject: [PATCH 01/16] feat(client): improve AutoLinkProps (#1554) --- e2e/docs/components/auto-link.md | 8 +- packages/client/src/components/AutoLink.ts | 101 +++++++-------------- 2 files changed, 36 insertions(+), 73 deletions(-) diff --git a/e2e/docs/components/auto-link.md b/e2e/docs/components/auto-link.md index 08cdbc9e86..f59827a303 100644 --- a/e2e/docs/components/auto-link.md +++ b/e2e/docs/components/auto-link.md @@ -1,16 +1,16 @@ # AutoLink
- - + +
+ + diff --git a/e2e/docs/.vuepress/theme/client/styles/styles.module.css b/e2e/docs/.vuepress/theme/client/styles/styles.module.css new file mode 100644 index 0000000000..0e5179bc90 --- /dev/null +++ b/e2e/docs/.vuepress/theme/client/styles/styles.module.css @@ -0,0 +1,3 @@ +.greenText { + color: rgb(0, 129, 0); +} diff --git a/e2e/docs/.vuepress/theme/client/styles/variables.module.scss b/e2e/docs/.vuepress/theme/client/styles/variables.module.scss new file mode 100644 index 0000000000..ece375ebbe --- /dev/null +++ b/e2e/docs/.vuepress/theme/client/styles/variables.module.scss @@ -0,0 +1,3 @@ +:export { + fooScss: 234px; +} diff --git a/e2e/docs/styles/css-modules.md b/e2e/docs/styles/css-modules.md new file mode 100644 index 0000000000..c7eb942a8a --- /dev/null +++ b/e2e/docs/styles/css-modules.md @@ -0,0 +1,3 @@ +--- +layout: CssModulesLayout +--- diff --git a/e2e/tests/styles/css-modules.spec.ts b/e2e/tests/styles/css-modules.spec.ts new file mode 100644 index 0000000000..403057abfe --- /dev/null +++ b/e2e/tests/styles/css-modules.spec.ts @@ -0,0 +1,10 @@ +import { expect, test } from '@playwright/test' + +test('Should load CSS modules correctly', async ({ page }) => { + await page.goto('styles/css-modules.html') + await expect(page.locator('#e2e-theme-css-modules-scss')).toHaveText('234px') + await expect(page.locator('#e2e-theme-css-modules-css')).toHaveCSS( + 'color', + 'rgb(0, 129, 0)', + ) +}) diff --git a/packages/bundler-webpack/src/config/handleModuleStyles.ts b/packages/bundler-webpack/src/config/handleModuleStyles.ts index 67425a3208..40eea28655 100644 --- a/packages/bundler-webpack/src/config/handleModuleStyles.ts +++ b/packages/bundler-webpack/src/config/handleModuleStyles.ts @@ -13,8 +13,6 @@ import type { const require = createRequire(import.meta.url) -type StyleRule = Config.Rule> - /** * Set webpack module to handle style files */ @@ -29,36 +27,19 @@ export const handleModuleStyles = ({ isBuild: boolean isServer: boolean }): void => { - const createStyleRules = ({ + const handleStyle = ({ lang, test, + loaderName, + loaderOptions, }: { lang: string test: RegExp - }): { - modulesRule: StyleRule - normalRule: StyleRule - } => { - const baseRule = config.module.rule(lang).test(test) - const modulesRule = baseRule.oneOf('modules').resourceQuery(/module/) - const normalRule = baseRule.oneOf('normal') - return { - modulesRule, - normalRule, - } - } - - const applyStyleHandlers = ({ - rule, - cssModules, - loaderName, - loaderOptions = {}, - }: { - rule: StyleRule - cssModules: boolean loaderName?: string - loaderOptions?: LoaderOptions + loaderOptions?: T }): void => { + const rule = config.module.rule(lang).test(test) + if (!isServer) { if (isBuild) { rule.use('extract-css-loader').loader(MiniCssExtractPlugin.loader) @@ -72,13 +53,14 @@ export const handleModuleStyles = ({ .use('css-loader') .loader(require.resolve('css-loader')) .options({ - modules: cssModules - ? { - localIdentName: `[local]_[contenthash:base64:8]`, - exportOnlyLocals: isServer, - } - : false, - importLoaders: 1, + modules: { + auto: true, + exportLocalsConvention: 'as-is', + exportOnlyLocals: isServer, + localIdentName: `[local]_[contenthash:base64:8]`, + namedExport: false, + }, + importLoaders: loaderName ? 2 : 1, }) // use postcss-loader @@ -94,41 +76,13 @@ export const handleModuleStyles = ({ // use extra loader if (loaderName) { - rule.use(loaderName).loader(loaderName).options(loaderOptions) + rule + .use(loaderName) + .loader(loaderName) + .options(loaderOptions ?? {}) } } - const handleStyle = ({ - lang, - test, - loaderName, - loaderOptions, - }: { - lang: string - test: RegExp - loaderName?: string - loaderOptions?: T - }): void => { - const { modulesRule, normalRule } = createStyleRules({ - lang, - test, - }) - - applyStyleHandlers({ - rule: modulesRule, - cssModules: true, - loaderName, - loaderOptions, - }) - - applyStyleHandlers({ - rule: normalRule, - cssModules: false, - loaderName, - loaderOptions, - }) - } - handleStyle({ lang: 'css', test: /\.css$/, From c854b19c1c71251326cf44208ee8400fce0f33b4 Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Fri, 17 May 2024 18:28:35 +0800 Subject: [PATCH 06/16] feat(bundler-webpack): replace postcss-csso with lightningcss (close #1349) --- .vscode/settings.json | 1 + e2e/docs/styles/css-container.md | 23 + packages/bundler-webpack/package.json | 3 +- .../src/build/createClientConfig.ts | 11 + .../src/config/handleModuleStyles.ts | 3 +- pnpm-lock.yaml | 750 +++++++++++++++++- 6 files changed, 764 insertions(+), 27 deletions(-) create mode 100644 e2e/docs/styles/css-container.md diff --git a/.vscode/settings.json b/.vscode/settings.json index 0cf8a1b744..6113874ca8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -28,6 +28,7 @@ "frontmatter", "globby", "gtag", + "lightningcss", "mdit", "nprogress", "prefetch", diff --git a/e2e/docs/styles/css-container.md b/e2e/docs/styles/css-container.md new file mode 100644 index 0000000000..b0b0da4132 --- /dev/null +++ b/e2e/docs/styles/css-container.md @@ -0,0 +1,23 @@ +Check if the `@container` rule could be supported and minimized correctly. + +
+ +Container text + +
+ + diff --git a/packages/bundler-webpack/package.json b/packages/bundler-webpack/package.json index d3d1002661..1b997d2936 100644 --- a/packages/bundler-webpack/package.json +++ b/packages/bundler-webpack/package.json @@ -46,12 +46,13 @@ "chokidar": "^3.6.0", "copy-webpack-plugin": "^12.0.2", "css-loader": "^7.1.1", + "css-minimizer-webpack-plugin": "^7.0.0", "esbuild-loader": "~4.1.0", "express": "^4.19.2", "html-webpack-plugin": "^5.6.0", + "lightningcss": "^1.24.1", "mini-css-extract-plugin": "^2.9.0", "postcss": "^8.4.38", - "postcss-csso": "^6.0.1", "postcss-loader": "^8.1.1", "style-loader": "^4.0.0", "vue": "^3.4.27", diff --git a/packages/bundler-webpack/src/build/createClientConfig.ts b/packages/bundler-webpack/src/build/createClientConfig.ts index e3bf808f62..992057e212 100644 --- a/packages/bundler-webpack/src/build/createClientConfig.ts +++ b/packages/bundler-webpack/src/build/createClientConfig.ts @@ -2,6 +2,7 @@ import { createRequire } from 'node:module' import type { App } from '@vuepress/core' import { fs } from '@vuepress/utils' import CopyWebpackPlugin from 'copy-webpack-plugin' +import CssMinimizerPlugin from 'css-minimizer-webpack-plugin' import MiniCssExtractPlugin from 'mini-css-extract-plugin' import type Config from 'webpack-chain' import { createClientBaseConfig } from '../config/index.js' @@ -83,6 +84,16 @@ export const createClientConfig = async ( // enable runtimeChunk config.optimization.runtimeChunk(true) + // minify css + config.optimization + .minimizer('css-minimizer-webpack-plugin') + .use(CssMinimizerPlugin, [ + { + minify: + CssMinimizerPlugin.lightningCssMinify as CssMinimizerPlugin.BasicMinimizerImplementation, + }, + ]) + // disable performance hints if (!app.env.isDebug) { config.performance.hints(false) diff --git a/packages/bundler-webpack/src/config/handleModuleStyles.ts b/packages/bundler-webpack/src/config/handleModuleStyles.ts index 40eea28655..6664e357d8 100644 --- a/packages/bundler-webpack/src/config/handleModuleStyles.ts +++ b/packages/bundler-webpack/src/config/handleModuleStyles.ts @@ -1,7 +1,6 @@ import { createRequire } from 'node:module' import autoprefixer from 'autoprefixer' import MiniCssExtractPlugin from 'mini-css-extract-plugin' -import postcssCsso from 'postcss-csso' import type Config from 'webpack-chain' import type { LessLoaderOptions, @@ -69,7 +68,7 @@ export const handleModuleStyles = ({ .loader(require.resolve('postcss-loader')) .options({ postcssOptions: { - plugins: [autoprefixer, postcssCsso], + plugins: [autoprefixer], }, ...options.postcss, }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5e3ab445ed..20bd14edb2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,7 +25,7 @@ importers: version: 1.18.5 '@vitest/coverage-istanbul': specifier: ^1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0)) + version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0)) bumpp: specifier: ^9.4.1 version: 9.4.1 @@ -70,10 +70,10 @@ importers: version: 5.4.5 vite: specifier: ~5.2.11 - version: 5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0) + version: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0) + version: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) vue-tsc: specifier: ^2.0.17 version: 2.0.17(typescript@5.4.5) @@ -116,7 +116,7 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) '@vuepress/client': specifier: workspace:* version: link:../client @@ -146,7 +146,7 @@ importers: version: 4.17.2 vite: specifier: ~5.2.11 - version: 5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0) + version: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) vue: specifier: ^3.4.27 version: 3.4.27(typescript@5.4.5) @@ -186,6 +186,9 @@ importers: css-loader: specifier: ^7.1.1 version: 7.1.1(webpack@5.91.0(esbuild@0.19.12)) + css-minimizer-webpack-plugin: + specifier: ^7.0.0 + version: 7.0.0(esbuild@0.19.12)(lightningcss@1.24.1)(webpack@5.91.0(esbuild@0.19.12)) esbuild-loader: specifier: ~4.1.0 version: 4.1.0(webpack@5.91.0(esbuild@0.19.12)) @@ -195,15 +198,15 @@ importers: html-webpack-plugin: specifier: ^5.6.0 version: 5.6.0(webpack@5.91.0(esbuild@0.19.12)) + lightningcss: + specifier: ^1.24.1 + version: 1.24.1 mini-css-extract-plugin: specifier: ^2.9.0 version: 2.9.0(webpack@5.91.0(esbuild@0.19.12)) postcss: specifier: ^8.4.38 version: 8.4.38 - postcss-csso: - specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.38) postcss-loader: specifier: ^8.1.1 version: 8.1.1(postcss@8.4.38)(typescript@5.4.5)(webpack@5.91.0(esbuild@0.19.12)) @@ -915,6 +918,10 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -1093,6 +1100,10 @@ packages: resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + '@types/body-parser@1.19.5': resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} @@ -1144,6 +1155,15 @@ packages: '@types/http-proxy@1.17.14': resolution: {integrity: sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==} + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1210,6 +1230,12 @@ packages: '@types/ws@8.5.10': resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.32': + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@typescript-eslint/eslint-plugin@7.9.0': resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} engines: {node: ^18.18.0 || >=20.0.0} @@ -1682,6 +1708,9 @@ packages: camel-case@4.1.2: resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + caniuse-lite@1.0.30001618: resolution: {integrity: sha512-p407+D1tIkDvsEAPS22lJxLQQaG8OTBEqo0KhzfABGk0TU4juBNDSfH0hyAp/HRyx+M8L17z/ltyhxh27FTfQg==} @@ -1716,6 +1745,10 @@ packages: resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} engines: {node: '>=6.0'} + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} @@ -1764,6 +1797,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} @@ -1778,6 +1814,10 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + commander@8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} @@ -1958,6 +1998,12 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + css-declaration-sorter@7.2.0: + resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + css-loader@7.1.1: resolution: {integrity: sha512-OxIR5P2mjO1PSXk44bWuQ8XtMK4dpEqpIyERCx3ewOo3I8EmbcxMPUc5ScLtQfgXtOojoMv57So4V/C02HQLsw==} engines: {node: '>= 18.12.0'} @@ -1970,13 +2016,45 @@ packages: webpack: optional: true + css-minimizer-webpack-plugin@7.0.0: + resolution: {integrity: sha512-niy66jxsQHqO+EYbhPuIhqRQ1mNcNVUHrMnkzzir9kFOERJUaQDDRhh7dKDz33kBpkWMF9M8Vx0QlDbc5AHOsw==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-tree@2.2.1: resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -1986,6 +2064,24 @@ packages: engines: {node: '>=4'} hasBin: true + cssnano-preset-default@7.0.1: + resolution: {integrity: sha512-Fumyr+uZMcjYQeuHssAZxn0cKj3cdQc5GcxkBcmEzISGB+UW9CLNlU4tBOJbJGcPukFDlicG32eFbrc8K9V5pw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano-utils@5.0.0: + resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + cssnano@7.0.1: + resolution: {integrity: sha512-917Mej/4SdI7b55atsli3sU4MOJ9XDoKgnlCtQtXYj8XUFcM3riTuYHyqBBnnskawW+zWwp0KxJzpEUodlpqUg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -2110,6 +2206,11 @@ packages: resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} engines: {node: '>=12.20'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-newline@4.0.1: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2143,6 +2244,9 @@ packages: dom-serializer@1.4.1: resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} @@ -2150,9 +2254,16 @@ packages: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + domutils@2.8.0: resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -3137,10 +3248,18 @@ packages: javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jiti@1.21.0: resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} hasBin: true @@ -3225,6 +3344,64 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lightningcss-darwin-arm64@1.24.1: + resolution: {integrity: sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.24.1: + resolution: {integrity: sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.24.1: + resolution: {integrity: sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.24.1: + resolution: {integrity: sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.24.1: + resolution: {integrity: sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.24.1: + resolution: {integrity: sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.24.1: + resolution: {integrity: sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.24.1: + resolution: {integrity: sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-x64-msvc@1.24.1: + resolution: {integrity: sha512-joEupPjYJ7PjZtDsS5lzALtlAudAbgIBMGJPNeFe5HfdmJXFd13ECmEM+5rXNxYVMRHua2w8132R6ab5Z6K9Ow==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.24.1: + resolution: {integrity: sha512-kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg==} + engines: {node: '>= 12.0.0'} + lilconfig@3.0.0: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} @@ -3281,6 +3458,9 @@ packages: lodash.kebabcase@4.1.1: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -3360,6 +3540,9 @@ packages: mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} @@ -3765,11 +3948,47 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-csso@6.0.1: - resolution: {integrity: sha512-ZV4yEziMrx6CEiqabGLrDva0pMD7Fbw7yP+LzJvaynM4OJgTssGN6dHiMsJMJdpmNaLJltXVLsrb/5sxbFa8sA==} - engines: {node: ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + postcss-calc@10.0.0: + resolution: {integrity: sha512-OmjhudoNTP0QleZCwl1i6NeBwN+5MZbY5ersLZz69mjJiDVv/p57RjRuKDkHeDWr4T+S97wQfsqRTNoDHB2e3g==} + engines: {node: ^18.12 || ^20.9 || >=22.0} + peerDependencies: + postcss: ^8.4.38 + + postcss-colormin@7.0.0: + resolution: {integrity: sha512-5CN6fqtsEtEtwf3mFV3B4UaZnlYljPpzmGeDB4yCK067PnAtfLe9uX2aFZaEwxHE7HopG5rUkW8gyHrNAesHEg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-convert-values@7.0.0: + resolution: {integrity: sha512-bMuzDgXBbFbByPgj+/r6va8zNuIDUaIIbvAFgdO1t3zdgJZ77BZvu6dfWyd6gHEJnYzmeVr9ayUsAQL3/qLJ0w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-comments@7.0.0: + resolution: {integrity: sha512-xpSdzRqYmy4YIVmjfGyYXKaI1SRnK6CTr+4Zmvyof8ANwvgfZgGdVtmgAvzh59gJm808mJCWQC9tFN0KF5dEXA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-duplicates@7.0.0: + resolution: {integrity: sha512-bAnSuBop5LpAIUmmOSsuvtKAAKREB6BBIYStWUTGq8oG5q9fClDMMuY8i4UPI/cEcDx2TN+7PMnXYIId20UVDw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-discard-empty@7.0.0: + resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.0.0 + postcss: ^8.4.31 + + postcss-discard-overridden@7.0.0: + resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 postcss-load-config@4.0.2: resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} @@ -3811,6 +4030,42 @@ packages: webpack: optional: true + postcss-merge-longhand@7.0.0: + resolution: {integrity: sha512-0X8I4/9+G03X5/5NnrfopG/YEln2XU8heDh7YqBaiq2SeaKIG3n66ShZPjIolmVuLBQ0BEm3yS8o1mlCLHdW7A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-merge-rules@7.0.0: + resolution: {integrity: sha512-Zty3VlOsD6VSjBMu6PiHCVpLegtBT/qtZRVBcSeyEZ6q1iU5qTYT0WtEoLRV+YubZZguS5/ycfP+NRiKfjv6aw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-font-values@7.0.0: + resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-gradients@7.0.0: + resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-params@7.0.0: + resolution: {integrity: sha512-XOJAuX8Q/9GT1sGxlUvaFEe2H9n50bniLZblXXsAT/BwSfFYvzSZeFG7uupwc0KbKpTnflnQ7aMwGzX6JUWliQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-minify-selectors@7.0.0: + resolution: {integrity: sha512-f00CExZhD6lNw2vTZbcnmfxVgaVKzUw6IRsIFX3JTT8GdsoABc1WnhhGwL1i8YPJ3sSWw39fv7XPtvLb+3Uitw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-modules-extract-imports@3.1.0: resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} engines: {node: ^10 || ^12 || >= 14} @@ -3835,10 +4090,94 @@ packages: peerDependencies: postcss: ^8.1.0 + postcss-normalize-charset@7.0.0: + resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-display-values@7.0.0: + resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-positions@7.0.0: + resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-repeat-style@7.0.0: + resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-string@7.0.0: + resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-timing-functions@7.0.0: + resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-unicode@7.0.0: + resolution: {integrity: sha512-OnKV52/VFFDAim4n0pdI+JAhsolLBdnCKxE6VV5lW5Q/JeVGFN8UM8ur6/A3EAMLsT1ZRm3fDHh/rBoBQpqi2w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-url@7.0.0: + resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-normalize-whitespace@7.0.0: + resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-ordered-values@7.0.0: + resolution: {integrity: sha512-KROvC63A8UQW1eYDljQe1dtwc1E/M+mMwDT6z7khV/weHYLWTghaLRLunU7x1xw85lWFwVZOAGakxekYvKV+0w==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-initial@7.0.0: + resolution: {integrity: sha512-iqGgmBxY9LrblZ0BKLjmrA1mC/cf9A/wYCCqSmD6tMi+xAyVl0+DfixZIHSVDMbCPRPjNmVF0DFGth/IDGelFQ==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + + postcss-reduce-transforms@7.0.0: + resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-selector-parser@6.0.16: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} + postcss-svgo@7.0.0: + resolution: {integrity: sha512-Xj5DRdvA97yRy3wjbCH2NKXtDUwEnph6EHr5ZXszsBVKCNrKXYBjzAXqav7/Afz5WwJ/1peZoTguCEJIg7ytmA==} + engines: {node: ^18.12.0 || ^20.9.0 || >= 18} + peerDependencies: + postcss: ^8.4.31 + + postcss-unique-selectors@7.0.0: + resolution: {integrity: sha512-NYFqcft7vVQMZlQPsMdMPy+qU/zDpy95Malpw4GeA9ZZjM6dVXDshXtDmLc0m4WCD6XeZCJqjTfPT1USsdt+rA==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -4359,6 +4698,12 @@ packages: peerDependencies: webpack: ^5.27.0 + stylehacks@7.0.0: + resolution: {integrity: sha512-47Nw4pQ6QJb4CA6dzF2m9810sjQik4dfk4UwAm5wlwhrW3syzZKF8AR4/cfO3Cr6lsFgAoznQq0Wg57qhjTA2A==} + engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} + peerDependencies: + postcss: ^8.4.31 + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -4380,6 +4725,11 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -5354,6 +5704,15 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.12.12 + '@types/yargs': 17.0.32 + chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -5519,6 +5878,8 @@ snapshots: '@sindresorhus/merge-streams@2.3.0': {} + '@trysound/sax@0.2.0': {} + '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 @@ -5588,6 +5949,16 @@ snapshots: dependencies: '@types/node': 20.12.12 + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -5656,6 +6027,12 @@ snapshots: dependencies: '@types/node': 20.12.12 + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.32': + dependencies: + '@types/yargs-parser': 21.0.3 + '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 @@ -5739,12 +6116,12 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': dependencies: - vite: 5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) vue: 3.4.27(typescript@5.4.5) - '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0))': + '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0))': dependencies: debug: 4.3.4 istanbul-lib-coverage: 3.2.2 @@ -5755,7 +6132,7 @@ snapshots: magicast: 0.3.4 picocolors: 1.0.1 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0) + vitest: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) transitivePeerDependencies: - supports-color @@ -6283,6 +6660,13 @@ snapshots: pascal-case: 3.1.2 tslib: 2.6.2 + caniuse-api@3.0.0: + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001618 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + caniuse-lite@1.0.30001618: {} chai@4.4.1: @@ -6328,6 +6712,8 @@ snapshots: chrome-trace-event@1.0.3: {} + ci-info@3.9.0: {} + citty@0.1.6: dependencies: consola: 3.2.3 @@ -6383,6 +6769,8 @@ snapshots: color-name@1.1.4: {} + colord@2.9.3: {} + colorette@2.0.20: {} commander@11.1.0: {} @@ -6391,6 +6779,8 @@ snapshots: commander@4.1.1: {} + commander@7.2.0: {} + commander@8.3.0: {} compare-func@2.0.0: @@ -6584,6 +6974,10 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + css-declaration-sorter@7.2.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + css-loader@7.1.1(webpack@5.91.0(esbuild@0.19.12)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) @@ -6597,6 +6991,19 @@ snapshots: optionalDependencies: webpack: 5.91.0(esbuild@0.19.12) + css-minimizer-webpack-plugin@7.0.0(esbuild@0.19.12)(lightningcss@1.24.1)(webpack@5.91.0(esbuild@0.19.12)): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + cssnano: 7.0.1(postcss@8.4.38) + jest-worker: 29.7.0 + postcss: 8.4.38 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.91.0(esbuild@0.19.12) + optionalDependencies: + esbuild: 0.19.12 + lightningcss: 1.24.1 + css-select@4.3.0: dependencies: boolbase: 1.0.0 @@ -6605,15 +7012,72 @@ snapshots: domutils: 2.8.0 nth-check: 2.1.1 + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + css-tree@2.2.1: dependencies: mdn-data: 2.0.28 source-map-js: 1.2.0 + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.0 + css-what@6.1.0: {} cssesc@3.0.0: {} + cssnano-preset-default@7.0.1(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + css-declaration-sorter: 7.2.0(postcss@8.4.38) + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-calc: 10.0.0(postcss@8.4.38) + postcss-colormin: 7.0.0(postcss@8.4.38) + postcss-convert-values: 7.0.0(postcss@8.4.38) + postcss-discard-comments: 7.0.0(postcss@8.4.38) + postcss-discard-duplicates: 7.0.0(postcss@8.4.38) + postcss-discard-empty: 7.0.0(postcss@8.4.38) + postcss-discard-overridden: 7.0.0(postcss@8.4.38) + postcss-merge-longhand: 7.0.0(postcss@8.4.38) + postcss-merge-rules: 7.0.0(postcss@8.4.38) + postcss-minify-font-values: 7.0.0(postcss@8.4.38) + postcss-minify-gradients: 7.0.0(postcss@8.4.38) + postcss-minify-params: 7.0.0(postcss@8.4.38) + postcss-minify-selectors: 7.0.0(postcss@8.4.38) + postcss-normalize-charset: 7.0.0(postcss@8.4.38) + postcss-normalize-display-values: 7.0.0(postcss@8.4.38) + postcss-normalize-positions: 7.0.0(postcss@8.4.38) + postcss-normalize-repeat-style: 7.0.0(postcss@8.4.38) + postcss-normalize-string: 7.0.0(postcss@8.4.38) + postcss-normalize-timing-functions: 7.0.0(postcss@8.4.38) + postcss-normalize-unicode: 7.0.0(postcss@8.4.38) + postcss-normalize-url: 7.0.0(postcss@8.4.38) + postcss-normalize-whitespace: 7.0.0(postcss@8.4.38) + postcss-ordered-values: 7.0.0(postcss@8.4.38) + postcss-reduce-initial: 7.0.0(postcss@8.4.38) + postcss-reduce-transforms: 7.0.0(postcss@8.4.38) + postcss-svgo: 7.0.0(postcss@8.4.38) + postcss-unique-selectors: 7.0.0(postcss@8.4.38) + + cssnano-utils@5.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + cssnano@7.0.1(postcss@8.4.38): + dependencies: + cssnano-preset-default: 7.0.1(postcss@8.4.38) + lilconfig: 3.1.1 + postcss: 8.4.38 + csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -6714,6 +7178,8 @@ snapshots: detect-indent@7.0.1: {} + detect-libc@1.0.3: {} + detect-newline@4.0.1: {} detect-node@2.1.0: {} @@ -6746,18 +7212,34 @@ snapshots: domhandler: 4.3.1 entities: 2.2.0 + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + domelementtype@2.3.0: {} domhandler@4.3.1: dependencies: domelementtype: 2.3.0 + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + domutils@2.8.0: dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dot-case@3.0.4: dependencies: no-case: 3.0.4 @@ -7959,12 +8441,28 @@ snapshots: javascript-stringify@2.1.0: {} + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.12.12 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + jest-worker@27.5.1: dependencies: '@types/node': 20.12.12 merge-stream: 2.0.0 supports-color: 8.1.1 + jest-worker@29.7.0: + dependencies: + '@types/node': 20.12.12 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + jiti@1.21.0: {} joycon@3.1.1: {} @@ -8034,6 +8532,47 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-darwin-arm64@1.24.1: + optional: true + + lightningcss-darwin-x64@1.24.1: + optional: true + + lightningcss-freebsd-x64@1.24.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.24.1: + optional: true + + lightningcss-linux-arm64-gnu@1.24.1: + optional: true + + lightningcss-linux-arm64-musl@1.24.1: + optional: true + + lightningcss-linux-x64-gnu@1.24.1: + optional: true + + lightningcss-linux-x64-musl@1.24.1: + optional: true + + lightningcss-win32-x64-msvc@1.24.1: + optional: true + + lightningcss@1.24.1: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.24.1 + lightningcss-darwin-x64: 1.24.1 + lightningcss-freebsd-x64: 1.24.1 + lightningcss-linux-arm-gnueabihf: 1.24.1 + lightningcss-linux-arm64-gnu: 1.24.1 + lightningcss-linux-arm64-musl: 1.24.1 + lightningcss-linux-x64-gnu: 1.24.1 + lightningcss-linux-x64-musl: 1.24.1 + lightningcss-win32-x64-msvc: 1.24.1 + lilconfig@3.0.0: {} lilconfig@3.1.1: {} @@ -8097,6 +8636,8 @@ snapshots: lodash.kebabcase@4.1.1: {} + lodash.memoize@4.1.2: {} + lodash.merge@4.6.2: {} lodash.mergewith@4.6.2: {} @@ -8178,6 +8719,8 @@ snapshots: mdn-data@2.0.28: {} + mdn-data@2.0.30: {} + mdurl@2.0.0: {} media-typer@0.3.0: {} @@ -8580,9 +9123,40 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-csso@6.0.1(postcss@8.4.38): + postcss-calc@10.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + postcss-value-parser: 4.2.0 + + postcss-colormin@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-convert-values@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-discard-comments@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-discard-duplicates@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-discard-empty@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-discard-overridden@7.0.0(postcss@8.4.38): dependencies: - csso: 5.0.5 postcss: 8.4.38 postcss-load-config@4.0.2(postcss@8.4.38): @@ -8611,6 +9185,44 @@ snapshots: transitivePeerDependencies: - typescript + postcss-merge-longhand@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + stylehacks: 7.0.0(postcss@8.4.38) + + postcss-merge-rules@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + + postcss-minify-font-values@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-minify-gradients@7.0.0(postcss@8.4.38): + dependencies: + colord: 2.9.3 + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-minify-params@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-minify-selectors@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + postcss-modules-extract-imports@3.1.0(postcss@8.4.38): dependencies: postcss: 8.4.38 @@ -8632,11 +9244,84 @@ snapshots: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 + postcss-normalize-charset@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + + postcss-normalize-display-values@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-positions@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-repeat-style@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-string@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-timing-functions@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-unicode@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-url@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-normalize-whitespace@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-ordered-values@7.0.0(postcss@8.4.38): + dependencies: + cssnano-utils: 5.0.0(postcss@8.4.38) + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + + postcss-reduce-initial@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + caniuse-api: 3.0.0 + postcss: 8.4.38 + + postcss-reduce-transforms@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + postcss-selector-parser@6.0.16: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-svgo@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-value-parser: 4.2.0 + svgo: 3.3.2 + + postcss-unique-selectors@7.0.0(postcss@8.4.38): + dependencies: + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + postcss-value-parser@4.2.0: {} postcss@8.4.38: @@ -9216,6 +9901,12 @@ snapshots: dependencies: webpack: 5.91.0(esbuild@0.19.12) + stylehacks@7.0.0(postcss@8.4.38): + dependencies: + browserslist: 4.23.0 + postcss: 8.4.38 + postcss-selector-parser: 6.0.16 + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -9240,6 +9931,16 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.1 + tapable@2.2.1: {} tar@6.2.1: @@ -9495,13 +10196,13 @@ snapshots: vary@1.1.2: {} - vite-node@1.6.0(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0): + vite-node@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) transitivePeerDependencies: - '@types/node' - less @@ -9512,7 +10213,7 @@ snapshots: - supports-color - terser - vite@5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0): + vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0): dependencies: esbuild: 0.20.2 postcss: 8.4.38 @@ -9520,10 +10221,11 @@ snapshots: optionalDependencies: '@types/node': 20.12.12 fsevents: 2.3.3 + lightningcss: 1.24.1 sass: 1.77.1 terser: 5.31.0 - vitest@1.6.0(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0): + vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -9542,8 +10244,8 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.2.11(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0) - vite-node: 1.6.0(@types/node@20.12.12)(sass@1.77.1)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) + vite-node: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.12.12 From 32cacb3c1b52a29d53717a15757067f4be9d9743 Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Fri, 17 May 2024 18:43:42 +0800 Subject: [PATCH 07/16] build: bump deps --- e2e/package.json | 2 +- package.json | 2 +- packages/markdown/package.json | 2 +- pnpm-lock.yaml | 122 ++++++++++++++++----------------- 4 files changed, 64 insertions(+), 64 deletions(-) diff --git a/e2e/package.json b/e2e/package.json index aba8d41e9c..7b4433fb49 100644 --- a/e2e/package.json +++ b/e2e/package.json @@ -19,7 +19,7 @@ "@vuepress-e2e/conditional-exports": "file:./modules/conditional-exports", "@vuepress/bundler-vite": "workspace:*", "@vuepress/bundler-webpack": "workspace:*", - "sass": "^1.77.1", + "sass": "^1.77.2", "sass-loader": "^14.2.1", "vue": "^3.4.27", "vuepress": "workspace:*" diff --git a/package.json b/package.json index d82d1f1c98..a11a5276d3 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "typescript": "^5.4.5", "vite": "~5.2.11", "vitest": "^1.6.0", - "vue-tsc": "^2.0.17" + "vue-tsc": "^2.0.19" }, "packageManager": "pnpm@9.1.1", "engines": { diff --git a/packages/markdown/package.json b/packages/markdown/package.json index df62560d94..517fa9f2d9 100644 --- a/packages/markdown/package.json +++ b/packages/markdown/package.json @@ -44,7 +44,7 @@ "@vuepress/shared": "workspace:*", "@vuepress/utils": "workspace:*", "markdown-it": "^14.1.0", - "markdown-it-anchor": "^8.6.7", + "markdown-it-anchor": "^9.0.0", "markdown-it-emoji": "^3.0.0", "mdurl": "^2.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 20bd14edb2..065b3fecf5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,7 +25,7 @@ importers: version: 1.18.5 '@vitest/coverage-istanbul': specifier: ^1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0)) + version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0)) bumpp: specifier: ^9.4.1 version: 9.4.1 @@ -70,13 +70,13 @@ importers: version: 5.4.5 vite: specifier: ~5.2.11 - version: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) + version: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) + version: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) vue-tsc: - specifier: ^2.0.17 - version: 2.0.17(typescript@5.4.5) + specifier: ^2.0.19 + version: 2.0.19(typescript@5.4.5) e2e: dependencies: @@ -90,11 +90,11 @@ importers: specifier: workspace:* version: link:../packages/bundler-webpack sass: - specifier: ^1.77.1 - version: 1.77.1 + specifier: ^1.77.2 + version: 1.77.2 sass-loader: specifier: ^14.2.1 - version: 14.2.1(sass@1.77.1)(webpack@5.91.0(esbuild@0.19.12)) + version: 14.2.1(sass@1.77.2)(webpack@5.91.0(esbuild@0.19.12)) vue: specifier: ^3.4.27 version: 3.4.27(typescript@5.4.5) @@ -116,7 +116,7 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) '@vuepress/client': specifier: workspace:* version: link:../client @@ -146,7 +146,7 @@ importers: version: 4.17.2 vite: specifier: ~5.2.11 - version: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) + version: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) vue: specifier: ^3.4.27 version: 3.4.27(typescript@5.4.5) @@ -338,8 +338,8 @@ importers: specifier: ^14.1.0 version: 14.1.0 markdown-it-anchor: - specifier: ^8.6.7 - version: 8.6.7(@types/markdown-it@14.1.1)(markdown-it@14.1.0) + specifier: ^9.0.0 + version: 9.0.0(@types/markdown-it@14.1.1)(markdown-it@14.1.0) markdown-it-emoji: specifier: ^3.0.0 version: 3.0.0 @@ -1324,14 +1324,14 @@ packages: '@vitest/utils@1.6.0': resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - '@volar/language-core@2.2.2': - resolution: {integrity: sha512-GuvEL4JdxbnLVhPLICncCGT+tVW4cIz9GxXNeDofNnJ4iNTKhr5suGVsA1GLOne9PbraSjn8PlLt+pvLxuRVeQ==} + '@volar/language-core@2.2.4': + resolution: {integrity: sha512-7As47GndxGxsqqYnbreLrfB5NDUeQioPM2LJKUuB4/34c0NpEJ2byVl3c9KYdjIdiEstWZ9JLtLKNTaPWb5jtA==} - '@volar/source-map@2.2.2': - resolution: {integrity: sha512-vUwvZuSW6iN4JI9QRinh9EjFasx1TUtnaWMKwgWx08xz1PyYuNkLlWlrZXBZ5GGBhML0u230M/7X+AHY2h9yKg==} + '@volar/source-map@2.2.4': + resolution: {integrity: sha512-m92FLpR9vB1YEZfiZ+bfgpLrToL/DNkOrorWVep3pffHrwwI4Tx2oIQN+sqHJfKkiT5N3J1owC+8crhAEinfjg==} - '@volar/typescript@2.2.2': - resolution: {integrity: sha512-WcwOREz7+uOrpjUrKhOMaOKKmyPdtqF95HWX7SE0d9hhBB1KkfahxhaAex5U9Bn43LfINHlycLoYCNEtfeKm0g==} + '@volar/typescript@2.2.4': + resolution: {integrity: sha512-uAQC53tgEbHO62G8NXMfmBrJAlP2QJ9WxVEEQqqK3I6VSy8frL5LbH3hAWODxiwMWixv74wJLWlKbWXOgdIoRQ==} '@vue/compiler-core@3.4.27': resolution: {integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==} @@ -1348,8 +1348,8 @@ packages: '@vue/devtools-api@6.6.1': resolution: {integrity: sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==} - '@vue/language-core@2.0.17': - resolution: {integrity: sha512-tHw2J6G9yL4kn3jN5MftOHEq86Y6qnuohBQ1OHkJ73fAv3OYgwDI1cfX7ds0OEJEycOMG64BA3ql5bDgDa41zw==} + '@vue/language-core@2.0.19': + resolution: {integrity: sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1711,8 +1711,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001618: - resolution: {integrity: sha512-p407+D1tIkDvsEAPS22lJxLQQaG8OTBEqo0KhzfABGk0TU4juBNDSfH0hyAp/HRyx+M8L17z/ltyhxh27FTfQg==} + caniuse-lite@1.0.30001620: + resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -2281,8 +2281,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.768: - resolution: {integrity: sha512-z2U3QcvNuxdkk33YV7R1bVMNq7fL23vq3WfO5BHcqrm4TnDGReouBfYKLEFh5umoK1XACjEwp8mmnhXk2EJigw==} + electron-to-chromium@1.4.773: + resolution: {integrity: sha512-87eHF+h3PlCRwbxVEAw9KtK3v7lWfc/sUDr0W76955AdYTG4bV/k0zrl585Qnj/skRMH2qOSiE+kqMeOQ+LOpw==} emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -3524,8 +3524,8 @@ packages: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} - markdown-it-anchor@8.6.7: - resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} + markdown-it-anchor@9.0.0: + resolution: {integrity: sha512-gf3mP2g4YZ2WhJrYYOCgU6CyyczVAncjkafan0ONM0AtXTTgIeXMw7M+VjDt4EWODxC2GROpAClUuo2iz5+p3A==} peerDependencies: '@types/markdown-it': '*' markdown-it: '*' @@ -4400,8 +4400,8 @@ packages: webpack: optional: true - sass@1.77.1: - resolution: {integrity: sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==} + sass@1.77.2: + resolution: {integrity: sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==} engines: {node: '>=14.0.0'} hasBin: true @@ -5086,8 +5086,8 @@ packages: vue-template-compiler@2.7.16: resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} - vue-tsc@2.0.17: - resolution: {integrity: sha512-RRZsiCBD1hvATQb321xV+SkRDKsK5hgFQ4WXy5wuYsyyjz8xAK4DjxHkpH7PFoJKUbZTbeW8KzhejzXZS49Tzw==} + vue-tsc@2.0.19: + resolution: {integrity: sha512-JWay5Zt2/871iodGF72cELIbcAoPyhJxq56mPPh+M2K7IwI688FMrFKc/+DvB05wDWEuCPexQJ6L10zSwzzapg==} hasBin: true peerDependencies: typescript: '*' @@ -6116,12 +6116,12 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': dependencies: - vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) vue: 3.4.27(typescript@5.4.5) - '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0))': + '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0))': dependencies: debug: 4.3.4 istanbul-lib-coverage: 3.2.2 @@ -6132,7 +6132,7 @@ snapshots: magicast: 0.3.4 picocolors: 1.0.1 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) + vitest: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) transitivePeerDependencies: - supports-color @@ -6165,17 +6165,17 @@ snapshots: loupe: 2.3.7 pretty-format: 29.7.0 - '@volar/language-core@2.2.2': + '@volar/language-core@2.2.4': dependencies: - '@volar/source-map': 2.2.2 + '@volar/source-map': 2.2.4 - '@volar/source-map@2.2.2': + '@volar/source-map@2.2.4': dependencies: muggle-string: 0.4.1 - '@volar/typescript@2.2.2': + '@volar/typescript@2.2.4': dependencies: - '@volar/language-core': 2.2.2 + '@volar/language-core': 2.2.4 path-browserify: 1.0.1 '@vue/compiler-core@3.4.27': @@ -6210,9 +6210,9 @@ snapshots: '@vue/devtools-api@6.6.1': {} - '@vue/language-core@2.0.17(typescript@5.4.5)': + '@vue/language-core@2.0.19(typescript@5.4.5)': dependencies: - '@volar/language-core': 2.2.2 + '@volar/language-core': 2.2.4 '@vue/compiler-dom': 3.4.27 '@vue/shared': 3.4.27 computeds: 0.0.1 @@ -6494,7 +6494,7 @@ snapshots: autoprefixer@10.4.19(postcss@8.4.38): dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001618 + caniuse-lite: 1.0.30001620 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 @@ -6577,8 +6577,8 @@ snapshots: browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001618 - electron-to-chromium: 1.4.768 + caniuse-lite: 1.0.30001620 + electron-to-chromium: 1.4.773 node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.0) @@ -6663,11 +6663,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001618 + caniuse-lite: 1.0.30001620 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001618: {} + caniuse-lite@1.0.30001620: {} chai@4.4.1: dependencies: @@ -7255,7 +7255,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.4.768: {} + electron-to-chromium@1.4.773: {} emoji-regex@10.3.0: {} @@ -8701,7 +8701,7 @@ snapshots: dependencies: object-visit: 1.0.1 - markdown-it-anchor@8.6.7(@types/markdown-it@14.1.1)(markdown-it@14.1.0): + markdown-it-anchor@9.0.0(@types/markdown-it@14.1.1)(markdown-it@14.1.0): dependencies: '@types/markdown-it': 14.1.1 markdown-it: 14.1.0 @@ -9541,14 +9541,14 @@ snapshots: safer-buffer@2.1.2: {} - sass-loader@14.2.1(sass@1.77.1)(webpack@5.91.0(esbuild@0.19.12)): + sass-loader@14.2.1(sass@1.77.2)(webpack@5.91.0(esbuild@0.19.12)): dependencies: neo-async: 2.6.2 optionalDependencies: - sass: 1.77.1 + sass: 1.77.2 webpack: 5.91.0(esbuild@0.19.12) - sass@1.77.1: + sass@1.77.2: dependencies: chokidar: 3.6.0 immutable: 4.3.6 @@ -10196,13 +10196,13 @@ snapshots: vary@1.1.2: {} - vite-node@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0): + vite-node@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) transitivePeerDependencies: - '@types/node' - less @@ -10213,7 +10213,7 @@ snapshots: - supports-color - terser - vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0): + vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0): dependencies: esbuild: 0.20.2 postcss: 8.4.38 @@ -10222,10 +10222,10 @@ snapshots: '@types/node': 20.12.12 fsevents: 2.3.3 lightningcss: 1.24.1 - sass: 1.77.1 + sass: 1.77.2 terser: 5.31.0 - vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0): + vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -10244,8 +10244,8 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) - vite-node: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.1)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) + vite-node: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.12.12 @@ -10290,10 +10290,10 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - vue-tsc@2.0.17(typescript@5.4.5): + vue-tsc@2.0.19(typescript@5.4.5): dependencies: - '@volar/typescript': 2.2.2 - '@vue/language-core': 2.0.17(typescript@5.4.5) + '@volar/typescript': 2.2.4 + '@vue/language-core': 2.0.19(typescript@5.4.5) semver: 7.6.2 typescript: 5.4.5 From 01ee546167c5b2b781efca4c49d197593c79193e Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Mon, 20 May 2024 09:41:24 +0800 Subject: [PATCH 08/16] fix(client): support non-ascii locale path --- e2e/docs/.vuepress/config.ts | 9 ++++ e2e/docs/zh/README.md | 2 +- "e2e/docs/\344\270\255\346\226\207/README.md" | 1 + e2e/tests/site-data.spec.ts | 47 +++++++++++++++++++ e2e/tests/update-head.spec.ts | 34 ++++++++++++++ packages/client/src/resolvers.ts | 2 +- .../core/tests/page/inferPagePath.spec.ts | 8 ++++ 7 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 "e2e/docs/\344\270\255\346\226\207/README.md" diff --git a/e2e/docs/.vuepress/config.ts b/e2e/docs/.vuepress/config.ts index 2a7955db87..ca30feae74 100644 --- a/e2e/docs/.vuepress/config.ts +++ b/e2e/docs/.vuepress/config.ts @@ -41,6 +41,15 @@ export default defineUserConfig({ ['meta', { name: 'bar', content: 'foobar zh' }], ], }, + '/中文/': { + lang: '中文', + title: 'VuePress E2E', + description: 'VuePress E2E 测试站点', + head: [ + ['meta', { name: 'foo-中文', content: 'foo-中文' }], + ['meta', { name: 'bar', content: '中文' }], + ], + }, }, markdown: { diff --git a/e2e/docs/zh/README.md b/e2e/docs/zh/README.md index 257cc5642c..5716ca5987 100644 --- a/e2e/docs/zh/README.md +++ b/e2e/docs/zh/README.md @@ -1 +1 @@ -foo +bar diff --git "a/e2e/docs/\344\270\255\346\226\207/README.md" "b/e2e/docs/\344\270\255\346\226\207/README.md" new file mode 100644 index 0000000000..76018072e0 --- /dev/null +++ "b/e2e/docs/\344\270\255\346\226\207/README.md" @@ -0,0 +1 @@ +baz diff --git a/e2e/tests/site-data.spec.ts b/e2e/tests/site-data.spec.ts index b394a9048c..88fa87cdd8 100644 --- a/e2e/tests/site-data.spec.ts +++ b/e2e/tests/site-data.spec.ts @@ -95,3 +95,50 @@ test.describe('zh-CN', () => { await expect(fooZhLocator.first()).toHaveAttribute('content', 'foo-zh') }) }) + +test.describe('non-ASCII', () => { + test.beforeEach(async ({ page }) => page.goto('中文/')) + + test('lang', async ({ page }) => { + await expect(page.locator('html')).toHaveAttribute('lang', '中文') + }) + + test('title', async ({ page }) => { + const locator = page.locator('head title') + + await expect(page).toHaveTitle('VuePress E2E') + await expect(locator).toHaveCount(1) + await expect(locator.first()).toHaveText('VuePress E2E', { + useInnerText: true, + }) + }) + + test('description', async ({ page }) => { + const locator = page.locator('head meta[name="description"]') + + await expect(locator).toHaveCount(1) + await expect(locator.first()).toHaveAttribute( + 'content', + 'VuePress E2E 测试站点', + ) + }) + + test('head', async ({ page }) => { + const fooLocator = page.locator('head meta[name="foo"]') + const barLocator = page.locator('head meta[name="bar"]') + const bazLocator = page.locator('head meta[name="baz"]') + const fooChsLocator = page.locator('head meta[name="foo-中文"]') + + await expect(fooLocator).toHaveCount(1) + await expect(fooLocator.first()).toHaveAttribute('content', 'foo') + + await expect(barLocator).toHaveCount(1) + await expect(barLocator.first()).toHaveAttribute('content', '中文') + + await expect(bazLocator).toHaveCount(1) + await expect(bazLocator.first()).toHaveAttribute('content', 'baz') + + await expect(fooChsLocator).toHaveCount(1) + await expect(fooChsLocator.first()).toHaveAttribute('content', 'foo-中文') + }) +}) diff --git a/e2e/tests/update-head.spec.ts b/e2e/tests/update-head.spec.ts index e8baedd1ec..89d154cdaa 100644 --- a/e2e/tests/update-head.spec.ts +++ b/e2e/tests/update-head.spec.ts @@ -9,6 +9,7 @@ test('should update head correctly', async ({ page }) => { const bazLocator = page.locator('head meta[name="baz"]') const fooEnLocator = page.locator('head meta[name="foo-en"]') const fooZhLocator = page.locator('head meta[name="foo-zh"]') + const fooChsLocator = page.locator('head meta[name="foo-中文"]') // en-US await page.goto('') @@ -36,6 +37,8 @@ test('should update head correctly', async ({ page }) => { await expect(bazLocator.first()).toHaveAttribute('content', 'foobar baz') await expect(fooEnLocator).toHaveCount(1) await expect(fooEnLocator.first()).toHaveAttribute('content', 'foo-en') + await expect(fooZhLocator).toHaveCount(0) + await expect(fooChsLocator).toHaveCount(0) // navigate to zh-CN await page.locator('.e2e-theme-nav a', { hasText: 'zh-CN' }).click() @@ -61,6 +64,37 @@ test('should update head correctly', async ({ page }) => { await expect(barLocator.first()).toHaveAttribute('content', 'foobar zh') await expect(bazLocator).toHaveCount(1) await expect(bazLocator.first()).toHaveAttribute('content', 'baz') + await expect(fooEnLocator).toHaveCount(0) await expect(fooZhLocator).toHaveCount(1) await expect(fooZhLocator.first()).toHaveAttribute('content', 'foo-zh') + await expect(fooChsLocator).toHaveCount(0) + + // navigate to non-ASCII path + await page.locator('.e2e-theme-nav a', { hasText: '中文' }).click() + + // lang + await expect(htmlLocator).toHaveAttribute('lang', '中文') + // title + await expect(page).toHaveTitle('VuePress E2E') + await expect(titleLocator).toHaveCount(1) + await expect(titleLocator.first()).toHaveText('VuePress E2E', { + useInnerText: true, + }) + // description + await expect(descriptionLocator).toHaveCount(1) + await expect(descriptionLocator.first()).toHaveAttribute( + 'content', + 'VuePress E2E 测试站点', + ) + // head + await expect(fooLocator).toHaveCount(1) + await expect(fooLocator.first()).toHaveAttribute('content', 'foo') + await expect(barLocator).toHaveCount(1) + await expect(barLocator.first()).toHaveAttribute('content', '中文') + await expect(bazLocator).toHaveCount(1) + await expect(bazLocator.first()).toHaveAttribute('content', 'baz') + await expect(fooEnLocator).toHaveCount(0) + await expect(fooZhLocator).toHaveCount(0) + await expect(fooChsLocator).toHaveCount(1) + await expect(fooChsLocator.first()).toHaveAttribute('content', 'foo-中文') }) diff --git a/packages/client/src/resolvers.ts b/packages/client/src/resolvers.ts index 72b09538af..7b1fc0f18f 100644 --- a/packages/client/src/resolvers.ts +++ b/packages/client/src/resolvers.ts @@ -97,7 +97,7 @@ export const resolvers = reactive({ resolveRouteLocale: ( locales: SiteData['locales'], routePath: string, - ): RouteLocale => resolveLocalePath(locales, routePath), + ): RouteLocale => resolveLocalePath(locales, decodeURI(routePath)), /** * Resolve site data for specific locale diff --git a/packages/core/tests/page/inferPagePath.spec.ts b/packages/core/tests/page/inferPagePath.spec.ts index df33b107ac..5f34327047 100644 --- a/packages/core/tests/page/inferPagePath.spec.ts +++ b/packages/core/tests/page/inferPagePath.spec.ts @@ -10,6 +10,7 @@ const app = createBaseApp({ '/': {}, '/en/': {}, '/zh/': {}, + '/中文/': {}, }, }) const appWithoutLocales = createBaseApp({ @@ -40,6 +41,13 @@ const testCases: [string, ReturnType][] = [ pathLocale: '/zh/', }, ], + [ + '中文/foo.md', + { + pathInferred: '/中文/foo.html', + pathLocale: '/中文/', + }, + ], ] describe('core > page > inferPagePath', () => { From 1b665a2057346be8f421aed11f6bdda07171b1f5 Mon Sep 17 00:00:00 2001 From: Mister-Hope Date: Mon, 20 May 2024 09:42:46 +0800 Subject: [PATCH 09/16] ci: bump action version (#1558) --- .github/workflows/check.yml | 2 +- .github/workflows/coverage.yml | 2 +- .github/workflows/e2e.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 4e1b9af33c..63b46bc7ba 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v4 - name: Install pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node }} uses: actions/setup-node@v4 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 20eb06c6a6..92812af37c 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v4 - name: Install pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 - name: Setup Node.js uses: actions/setup-node@v4 diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index f825b86e47..bc3c47344b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/checkout@v4 - name: Install pnpm - uses: pnpm/action-setup@v2 + uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node }} uses: actions/setup-node@v4 From e08e81f9bc8f6801d6d9140bf893bb296aa04ab6 Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Mon, 20 May 2024 10:56:00 +0800 Subject: [PATCH 10/16] fix(bundler-webpack): keep the default minimizer --- .../src/build/createClientConfig.ts | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/bundler-webpack/src/build/createClientConfig.ts b/packages/bundler-webpack/src/build/createClientConfig.ts index 992057e212..cd40685ee4 100644 --- a/packages/bundler-webpack/src/build/createClientConfig.ts +++ b/packages/bundler-webpack/src/build/createClientConfig.ts @@ -84,15 +84,18 @@ export const createClientConfig = async ( // enable runtimeChunk config.optimization.runtimeChunk(true) - // minify css - config.optimization - .minimizer('css-minimizer-webpack-plugin') - .use(CssMinimizerPlugin, [ - { - minify: - CssMinimizerPlugin.lightningCssMinify as CssMinimizerPlugin.BasicMinimizerImplementation, - }, - ]) + // minimize + config.optimization.minimize(true) + + // minimizer + config.optimization.set('minimizer', [ + // keep the default minimizer + '...', + // add css minimizer + new CssMinimizerPlugin({ + minify: CssMinimizerPlugin.lightningCssMinify, + }), + ]) // disable performance hints if (!app.env.isDebug) { From cf035327dd20e827bb5df0503b8605a20caf191e Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Tue, 21 May 2024 00:35:58 +0800 Subject: [PATCH 11/16] refactor(shared): normalize directory structure --- packages/shared/src/utils/index.ts | 12 +++------- packages/shared/src/utils/isPlainObject.ts | 6 ----- packages/shared/src/utils/links/index.ts | 3 +++ .../src/utils/{ => links}/isLinkExternal.ts | 0 .../src/utils/{ => links}/isLinkHttp.ts | 0 .../utils/{ => links}/isLinkWithProtocol.ts | 0 packages/shared/src/utils/routes/index.ts | 4 ++++ .../src/utils/{ => routes}/inferRoutePath.ts | 0 .../utils/{ => routes}/normalizeRoutePath.ts | 0 .../utils/{ => routes}/resolveLocalePath.ts | 2 +- .../{ => routes}/resolveRoutePathFromUrl.ts | 3 +++ packages/shared/src/utils/typeGuards.ts | 7 ++++++ packages/shared/tests/isPlainObject.spec.ts | 21 ----------------- .../tests/{ => links}/isLinkExternal.spec.ts | 2 +- .../tests/{ => links}/isLinkHttp.spec.ts | 2 +- .../{ => links}/isLinkWithProtocol.spec.ts | 2 +- .../tests/{ => routes}/inferRoutePath.spec.ts | 2 +- .../{ => routes}/normalizeRoutePath.spec.ts | 2 +- .../{ => routes}/resolveLocalePath.spec.ts | 4 ++-- .../resolveRoutePathFromUrl.spec.ts | 2 +- packages/shared/tests/typeGuards.spec.ts | 23 +++++++++++++++++++ 21 files changed, 52 insertions(+), 45 deletions(-) delete mode 100644 packages/shared/src/utils/isPlainObject.ts create mode 100644 packages/shared/src/utils/links/index.ts rename packages/shared/src/utils/{ => links}/isLinkExternal.ts (100%) rename packages/shared/src/utils/{ => links}/isLinkHttp.ts (100%) rename packages/shared/src/utils/{ => links}/isLinkWithProtocol.ts (100%) create mode 100644 packages/shared/src/utils/routes/index.ts rename packages/shared/src/utils/{ => routes}/inferRoutePath.ts (100%) rename packages/shared/src/utils/{ => routes}/normalizeRoutePath.ts (100%) rename packages/shared/src/utils/{ => routes}/resolveLocalePath.ts (89%) rename packages/shared/src/utils/{ => routes}/resolveRoutePathFromUrl.ts (76%) delete mode 100644 packages/shared/tests/isPlainObject.spec.ts rename packages/shared/tests/{ => links}/isLinkExternal.spec.ts (97%) rename packages/shared/tests/{ => links}/isLinkHttp.spec.ts (88%) rename packages/shared/tests/{ => links}/isLinkWithProtocol.spec.ts (92%) rename packages/shared/tests/{ => routes}/inferRoutePath.spec.ts (96%) rename packages/shared/tests/{ => routes}/normalizeRoutePath.spec.ts (99%) rename packages/shared/tests/{ => routes}/resolveLocalePath.spec.ts (84%) rename packages/shared/tests/{ => routes}/resolveRoutePathFromUrl.spec.ts (94%) create mode 100644 packages/shared/tests/typeGuards.spec.ts diff --git a/packages/shared/src/utils/index.ts b/packages/shared/src/utils/index.ts index 2d329ba2c3..a73e96e89e 100644 --- a/packages/shared/src/utils/index.ts +++ b/packages/shared/src/utils/index.ts @@ -1,18 +1,12 @@ +export * from './links/index.js' +export * from './routes/index.js' + export * from './dedupeHead.js' export * from './ensureLeadingSlash.js' export * from './ensureEndingSlash.js' export * from './formatDateString.js' -export * from './inferRoutePath.js' -export * from './isLinkExternal.js' -export * from './isLinkHttp.js' -export * from './isLinkWithProtocol.js' -export * from './isPlainObject.js' -export * from './inferRoutePath.js' -export * from './normalizeRoutePath.js' export * from './omit.js' export * from './removeEndingSlash.js' export * from './removeLeadingSlash.js' export * from './resolveHeadIdentifier.js' -export * from './resolveLocalePath.js' -export * from './resolveRoutePathFromUrl.js' export * from './typeGuards.js' diff --git a/packages/shared/src/utils/isPlainObject.ts b/packages/shared/src/utils/isPlainObject.ts deleted file mode 100644 index 754f948983..0000000000 --- a/packages/shared/src/utils/isPlainObject.ts +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Check if a value is plain object, with generic type support - */ -export const isPlainObject = = Record>( - val: unknown, -): val is T => Object.prototype.toString.call(val) === '[object Object]' diff --git a/packages/shared/src/utils/links/index.ts b/packages/shared/src/utils/links/index.ts new file mode 100644 index 0000000000..b99aa456d4 --- /dev/null +++ b/packages/shared/src/utils/links/index.ts @@ -0,0 +1,3 @@ +export * from './isLinkExternal.js' +export * from './isLinkHttp.js' +export * from './isLinkWithProtocol.js' diff --git a/packages/shared/src/utils/isLinkExternal.ts b/packages/shared/src/utils/links/isLinkExternal.ts similarity index 100% rename from packages/shared/src/utils/isLinkExternal.ts rename to packages/shared/src/utils/links/isLinkExternal.ts diff --git a/packages/shared/src/utils/isLinkHttp.ts b/packages/shared/src/utils/links/isLinkHttp.ts similarity index 100% rename from packages/shared/src/utils/isLinkHttp.ts rename to packages/shared/src/utils/links/isLinkHttp.ts diff --git a/packages/shared/src/utils/isLinkWithProtocol.ts b/packages/shared/src/utils/links/isLinkWithProtocol.ts similarity index 100% rename from packages/shared/src/utils/isLinkWithProtocol.ts rename to packages/shared/src/utils/links/isLinkWithProtocol.ts diff --git a/packages/shared/src/utils/routes/index.ts b/packages/shared/src/utils/routes/index.ts new file mode 100644 index 0000000000..a83b4caa70 --- /dev/null +++ b/packages/shared/src/utils/routes/index.ts @@ -0,0 +1,4 @@ +export * from './inferRoutePath' +export * from './normalizeRoutePath.js' +export * from './resolveLocalePath.js' +export * from './resolveRoutePathFromUrl.js' diff --git a/packages/shared/src/utils/inferRoutePath.ts b/packages/shared/src/utils/routes/inferRoutePath.ts similarity index 100% rename from packages/shared/src/utils/inferRoutePath.ts rename to packages/shared/src/utils/routes/inferRoutePath.ts diff --git a/packages/shared/src/utils/normalizeRoutePath.ts b/packages/shared/src/utils/routes/normalizeRoutePath.ts similarity index 100% rename from packages/shared/src/utils/normalizeRoutePath.ts rename to packages/shared/src/utils/routes/normalizeRoutePath.ts diff --git a/packages/shared/src/utils/resolveLocalePath.ts b/packages/shared/src/utils/routes/resolveLocalePath.ts similarity index 89% rename from packages/shared/src/utils/resolveLocalePath.ts rename to packages/shared/src/utils/routes/resolveLocalePath.ts index 7019dad148..3717a003ee 100644 --- a/packages/shared/src/utils/resolveLocalePath.ts +++ b/packages/shared/src/utils/routes/resolveLocalePath.ts @@ -1,4 +1,4 @@ -import type { LocaleConfig } from '../types/index.js' +import type { LocaleConfig } from '../../types/index.js' /** * Resolve the matched locale path of route path diff --git a/packages/shared/src/utils/resolveRoutePathFromUrl.ts b/packages/shared/src/utils/routes/resolveRoutePathFromUrl.ts similarity index 76% rename from packages/shared/src/utils/resolveRoutePathFromUrl.ts rename to packages/shared/src/utils/routes/resolveRoutePathFromUrl.ts index e2db6f6701..8d1cd587e2 100644 --- a/packages/shared/src/utils/resolveRoutePathFromUrl.ts +++ b/packages/shared/src/utils/routes/resolveRoutePathFromUrl.ts @@ -1,3 +1,6 @@ +/** + * For a give URL, remove the origin and the site base to get the route path + */ export const resolveRoutePathFromUrl = (url: string, base = '/'): string => { const pathname = url // remove url origin diff --git a/packages/shared/src/utils/typeGuards.ts b/packages/shared/src/utils/typeGuards.ts index 38c60344f9..6ff96310bf 100644 --- a/packages/shared/src/utils/typeGuards.ts +++ b/packages/shared/src/utils/typeGuards.ts @@ -5,6 +5,13 @@ export const isFunction = (val: unknown): val is Function => typeof val === 'function' +/** + * Check if a value is plain object, with generic type support + */ +export const isPlainObject = = Record>( + val: unknown, +): val is T => Object.prototype.toString.call(val) === '[object Object]' + /** * Check if a value is a string */ diff --git a/packages/shared/tests/isPlainObject.spec.ts b/packages/shared/tests/isPlainObject.spec.ts deleted file mode 100644 index 3b75e37ef3..0000000000 --- a/packages/shared/tests/isPlainObject.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { expect, it } from 'vitest' -import { isPlainObject } from '../src/index.js' - -const testCases: [unknown, boolean][] = [ - [true, false], - [false, false], - ['', false], - ['foobar', false], - [0, false], - [1, false], - [[], false], - [{}, true], - [{ foo: 'bar' }, true], - [Object.create(null), true], -] - -it('should determine plain object correctly', () => { - testCases.forEach(([source, expected]) => { - expect(isPlainObject(source)).toBe(expected) - }) -}) diff --git a/packages/shared/tests/isLinkExternal.spec.ts b/packages/shared/tests/links/isLinkExternal.spec.ts similarity index 97% rename from packages/shared/tests/isLinkExternal.spec.ts rename to packages/shared/tests/links/isLinkExternal.spec.ts index 40ca463e70..d875503ee1 100644 --- a/packages/shared/tests/isLinkExternal.spec.ts +++ b/packages/shared/tests/links/isLinkExternal.spec.ts @@ -1,5 +1,5 @@ import { expect, it } from 'vitest' -import { isLinkExternal } from '../src/index.js' +import { isLinkExternal } from '../../src/index.js' const testCases: [ Parameters, diff --git a/packages/shared/tests/isLinkHttp.spec.ts b/packages/shared/tests/links/isLinkHttp.spec.ts similarity index 88% rename from packages/shared/tests/isLinkHttp.spec.ts rename to packages/shared/tests/links/isLinkHttp.spec.ts index af54449acd..c897ab8680 100644 --- a/packages/shared/tests/isLinkHttp.spec.ts +++ b/packages/shared/tests/links/isLinkHttp.spec.ts @@ -1,5 +1,5 @@ import { expect, it } from 'vitest' -import { isLinkHttp } from '../src/index.js' +import { isLinkHttp } from '../../src/index.js' const testCases: [string, ReturnType][] = [ ['https://foobar.com', true], diff --git a/packages/shared/tests/isLinkWithProtocol.spec.ts b/packages/shared/tests/links/isLinkWithProtocol.spec.ts similarity index 92% rename from packages/shared/tests/isLinkWithProtocol.spec.ts rename to packages/shared/tests/links/isLinkWithProtocol.spec.ts index a8563351c6..85679f31ec 100644 --- a/packages/shared/tests/isLinkWithProtocol.spec.ts +++ b/packages/shared/tests/links/isLinkWithProtocol.spec.ts @@ -1,5 +1,5 @@ import { expect, it } from 'vitest' -import { isLinkWithProtocol } from '../src/index.js' +import { isLinkWithProtocol } from '../../src/index.js' const testCases: [string, ReturnType][] = [ // with protocol diff --git a/packages/shared/tests/inferRoutePath.spec.ts b/packages/shared/tests/routes/inferRoutePath.spec.ts similarity index 96% rename from packages/shared/tests/inferRoutePath.spec.ts rename to packages/shared/tests/routes/inferRoutePath.spec.ts index 36bd910b96..053fa22a89 100644 --- a/packages/shared/tests/inferRoutePath.spec.ts +++ b/packages/shared/tests/routes/inferRoutePath.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { inferRoutePath } from '../src/index.js' +import { inferRoutePath } from '../../src/index.js' const testCases = [ // absolute index diff --git a/packages/shared/tests/normalizeRoutePath.spec.ts b/packages/shared/tests/routes/normalizeRoutePath.spec.ts similarity index 99% rename from packages/shared/tests/normalizeRoutePath.spec.ts rename to packages/shared/tests/routes/normalizeRoutePath.spec.ts index 6543ab24e2..d18a00b035 100644 --- a/packages/shared/tests/normalizeRoutePath.spec.ts +++ b/packages/shared/tests/routes/normalizeRoutePath.spec.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest' -import { normalizeRoutePath } from '../src/index.js' +import { normalizeRoutePath } from '../../src/index.js' const testCases = [ // absolute index diff --git a/packages/shared/tests/resolveLocalePath.spec.ts b/packages/shared/tests/routes/resolveLocalePath.spec.ts similarity index 84% rename from packages/shared/tests/resolveLocalePath.spec.ts rename to packages/shared/tests/routes/resolveLocalePath.spec.ts index dc956e8607..375be0d473 100644 --- a/packages/shared/tests/resolveLocalePath.spec.ts +++ b/packages/shared/tests/routes/resolveLocalePath.spec.ts @@ -1,6 +1,6 @@ import { expect, it } from 'vitest' -import { resolveLocalePath } from '../src/index.js' -import type { LocaleConfig } from '../src/index.js' +import type { LocaleConfig } from '../../src/index.js' +import { resolveLocalePath } from '../../src/index.js' const locales: LocaleConfig = { '/': { diff --git a/packages/shared/tests/resolveRoutePathFromUrl.spec.ts b/packages/shared/tests/routes/resolveRoutePathFromUrl.spec.ts similarity index 94% rename from packages/shared/tests/resolveRoutePathFromUrl.spec.ts rename to packages/shared/tests/routes/resolveRoutePathFromUrl.spec.ts index e360c89a9a..f7a9b892fd 100644 --- a/packages/shared/tests/resolveRoutePathFromUrl.spec.ts +++ b/packages/shared/tests/routes/resolveRoutePathFromUrl.spec.ts @@ -1,5 +1,5 @@ import { expect, it } from 'vitest' -import { resolveRoutePathFromUrl } from '../src/index.js' +import { resolveRoutePathFromUrl } from '../../src/index.js' const testCases: [ Parameters, diff --git a/packages/shared/tests/typeGuards.spec.ts b/packages/shared/tests/typeGuards.spec.ts new file mode 100644 index 0000000000..f75beeaa11 --- /dev/null +++ b/packages/shared/tests/typeGuards.spec.ts @@ -0,0 +1,23 @@ +import { describe, expect, it } from 'vitest' +import { isPlainObject } from '../src/index.js' + +describe('isPlainObject', () => { + const testCases: [unknown, boolean][] = [ + [true, false], + [false, false], + ['', false], + ['foobar', false], + [0, false], + [1, false], + [[], false], + [{}, true], + [{ foo: 'bar' }, true], + [Object.create(null), true], + ] + + it('should determine plain object correctly', () => { + testCases.forEach(([source, expected]) => { + expect(isPlainObject(source)).toBe(expected) + }) + }) +}) From 90a11d9fb9b2701145ca1717c7d67da7b1e3e0ed Mon Sep 17 00:00:00 2001 From: Mister-Hope Date: Tue, 21 May 2024 11:02:36 +0800 Subject: [PATCH 12/16] fix(core): fix page redirects comparison (#1563) --- .../core/src/app/prepare/prepareRoutes.ts | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/packages/core/src/app/prepare/prepareRoutes.ts b/packages/core/src/app/prepare/prepareRoutes.ts index fc7780be46..b3556e8041 100644 --- a/packages/core/src/app/prepare/prepareRoutes.ts +++ b/packages/core/src/app/prepare/prepareRoutes.ts @@ -27,20 +27,15 @@ const resolvePageRedirects = ({ path, pathInferred }: Page): string[] => { // paths that should redirect to this page, use set to dedupe const redirectsSet = new Set() - // add redirect to the set when the redirect could not be normalized & encoded to the page path - const addRedirect = (redirect: string): void => { - const normalizedPath = normalizeRoutePath(redirect) - if (normalizedPath === path) return - - const encodedPath = encodeURI(normalizedPath) - if (encodedPath === path) return - - redirectsSet.add(redirect) - } - // redirect from inferred path, notice that the inferred path is not uri-encoded if (pathInferred !== null) { - addRedirect(encodeURI(pathInferred)) + const normalizedPathInferred = normalizeRoutePath(pathInferred) + const encodedPathInferred = encodeURI(normalizedPathInferred) + + // add redirect to the set when the redirect could not be normalized & encoded to the page path + if (normalizedPathInferred !== path && encodedPathInferred !== path) { + redirectsSet.add(encodedPathInferred) + } } return Array.from(redirectsSet) From abe7bf9ae8534681c3fee0d368a21d8c41c216d2 Mon Sep 17 00:00:00 2001 From: Mister-Hope Date: Wed, 22 May 2024 09:48:21 +0800 Subject: [PATCH 13/16] refactor(bundler-webpack): use webpack internal types (#1565) --- .../src/build/ssr/createClientPlugin.ts | 34 +- packages/bundler-webpack/src/types.ts | 13 +- packages/bundler-webpack/src/types.webpack.ts | 392 ------------------ 3 files changed, 27 insertions(+), 412 deletions(-) delete mode 100644 packages/bundler-webpack/src/types.webpack.ts diff --git a/packages/bundler-webpack/src/build/ssr/createClientPlugin.ts b/packages/bundler-webpack/src/build/ssr/createClientPlugin.ts index 2bfeaed0be..ce84dd42e8 100644 --- a/packages/bundler-webpack/src/build/ssr/createClientPlugin.ts +++ b/packages/bundler-webpack/src/build/ssr/createClientPlugin.ts @@ -1,6 +1,5 @@ import { fs } from '@vuepress/utils' -import type { WebpackPluginInstance } from 'webpack' -import type { FnModules, StatsToJsonOutput } from '../../types.webpack.js' +import type { StatsModule, WebpackPluginInstance } from 'webpack' import { isCSS, isJS } from './utils.js' export interface ClientManifest { @@ -29,18 +28,20 @@ export const createClientPlugin = ( modules = [], entrypoints = {}, chunks = [], - }: StatsToJsonOutput = compilation - .getStats() - .toJson() as unknown as StatsToJsonOutput + } = compilation.getStats().toJson() // get all files const allFiles = assets.map((a) => a.name) // get initial entry files - const initialFiles = Object.keys(entrypoints) - .map((name) => entrypoints[name].assets.map((item) => item.name)) - .reduce((assets, all) => all.concat(assets), []) - .filter((file) => isJS(file) || isCSS(file)) + const initialFiles = + Object.keys(entrypoints) + .map( + (name) => + entrypoints[name].assets?.map((item) => item.name) ?? [], + ) + .reduce((assets, all) => all.concat(assets), []) + .filter((file) => isJS(file) || isCSS(file)) ?? [] // get files that should be loaded asynchronously // i.e. script and style files that are not included in the initial entry files @@ -51,18 +52,19 @@ export const createClientPlugin = ( // get asset modules const assetModules = modules.filter( - (m): m is FnModules & Required> => - !!(m.assets && m.assets.length), + (m): m is StatsModule & Required> => + Boolean(m.assets?.length), ) // get modules for client manifest const manifestModules: ClientManifest['modules'] = {} - const fileToIndex = (file: string): number => allFiles.indexOf(file) + const fileToIndex = (file: number | string): number => + allFiles.indexOf(file.toString()) modules.forEach((m) => { // ignore modules duplicated in multiple chunks - if (m.chunks.length !== 1) { + if (m.chunks?.length !== 1) { return } @@ -75,21 +77,21 @@ export const createClientPlugin = ( // remove appended hash of module identifier // which is the request string of the module - const request = m.identifier.replace(/\|\w+$/, '') + const request = m.identifier?.replace(/\|\w+$/, '') // get chunk files index const files = [...chunk.files.map(fileToIndex)] // find all asset modules associated with the same chunk assetModules.forEach((m) => { - if (m.chunks.some((id) => id === cid)) { + if (m.chunks?.some((id) => id === cid)) { // get asset files files.push(...m.assets.map(fileToIndex)) } }) // map the module request to files index - manifestModules[request] = files + if (request) manifestModules[request] = files }) // generate client manifest json file diff --git a/packages/bundler-webpack/src/types.ts b/packages/bundler-webpack/src/types.ts index c0ea4ea58e..b5648d74a1 100644 --- a/packages/bundler-webpack/src/types.ts +++ b/packages/bundler-webpack/src/types.ts @@ -1,8 +1,10 @@ import type { VueLoaderOptions } from 'vue-loader' -import type { Configuration as WebpackConfiguration } from 'webpack' +import type { + LoaderContext, + Configuration as WebpackConfiguration, +} from 'webpack' import type WebpackChainConfig from 'webpack-chain' import type WebpackDevServer from 'webpack-dev-server' -import type { LoaderContext } from './types.webpack.js' export type { VueLoaderOptions, @@ -82,7 +84,10 @@ export interface LoaderOptions { webpackImporter?: boolean additionalData?: | string - | ((content: string, loaderContext: LoaderContext) => string) + | (( + content: string, + loaderContext: LoaderContext>, + ) => string) } /** @@ -90,7 +95,7 @@ export interface LoaderOptions { */ export type StylePreprocessorOptions< T extends Record = Record, -> = T | ((loaderContext: LoaderContext) => TextDecodeOptions) +> = T | ((loaderContext: LoaderContext) => TextDecodeOptions) /** * Options for postcss-loader diff --git a/packages/bundler-webpack/src/types.webpack.ts b/packages/bundler-webpack/src/types.webpack.ts deleted file mode 100644 index d04f90f60c..0000000000 --- a/packages/bundler-webpack/src/types.webpack.ts +++ /dev/null @@ -1,392 +0,0 @@ -import type { Compiler, ModuleOptions } from 'webpack' - -// Forked and modified from @types/webpack@4.41.23 -// Because current types definitions of webpack 5 is not complete - -export interface StatsToJsonOutput { - _showErrors: boolean - _showWarnings: boolean - assets?: { - chunks: (number | string)[] - chunkNames: string[] - emitted: boolean - isOverSizeLimit?: boolean - name: string - size: number - }[] - assetsByChunkName?: Record - builtAt?: number - children?: (StatsToJsonOutput & { name?: string })[] - chunks?: { - children: number[] - childrenByOrder: Record - entry: boolean - files: string[] - filteredModules?: number - hash?: string - id: number | string - initial: boolean - modules?: FnModules[] - names: string[] - origins?: { - moduleId?: string | number - module: string - moduleIdentifier: string - moduleName: string - loc: string - request: string - reasons: string[] - }[] - parents: number[] - reason?: string - recorded?: boolean - rendered: boolean - size: number - siblings: number[] - }[] - entrypoints?: Record - errors: string[] - env?: Record - filteredAssets?: number - filteredModules?: boolean - hash?: string - modules?: FnModules[] - namedChunkGroups?: Record - needAdditionalPass?: boolean - outputPath?: string - publicPath?: string - time?: number - version?: string - warnings: string[] -} - -export interface FnModules { - assets?: string[] - built: boolean - cacheable: boolean - chunks: (number | string)[] - depth?: number - errors: number - failed: boolean - filteredModules?: boolean - id: number | string - identifier: string - index: number - index2: number - issuer: string | undefined - issuerId: number | string | undefined - issuerName: string | undefined - issuerPath: { - id: number | string - identifier: string - name: string - profile: any // TODO - }[] - modules: FnModules[] - name: string - optimizationBailout?: string - optional: boolean - prefetched: boolean - profile: any // TODO - providedExports?: any // TODO - reasons: Reason[] - size: number - source?: string - usedExports?: boolean - warnings: number -} - -export interface ChunkGroup { - assets: { name: string }[] - chunks: (number | string)[] - children: Record< - string, - { - assets: string[] - chunks: (number | string)[] - name: string - } - > - childAssets: Record - isOverSizeLimit?: boolean -} - -export interface Reason { - moduleId: number | string | null - moduleIdentifier: string | null - module: string | null - moduleName: string | null - type: string - explanation?: string - userRequest: string - loc: string -} - -export interface LoaderContext { - /** - * Loader API version. Currently 2. - * This is useful for providing backwards compatibility. - * Using the version you can specify custom logic or fallbacks for breaking changes. - */ - version: string - - /** - * The directory of the module. Can be used as context for resolving other stuff. - * In the example: /abc because resource.js is in this directory - */ - context: string - - /** - * Starting with webpack 4, the formerly `this.options.context` is provided as `this.rootContext`. - */ - rootContext: string - - /** - * The resolved request string. - * In the example: "/abc/loader1.js?xyz!/abc/node_modules/loader2/index.js!/abc/resource.js?rrr" - */ - request: string - - /** - * A string or any object. The query of the request for the current loader. - */ - query: any - - /** - * A data object shared between the pitch and the normal phase. - */ - data?: any - - callback: LoaderCallback - - /** - * Make this loader async. - */ - async(): LoaderCallback | undefined - - /** - * Make this loader result cacheable. By default it's not cacheable. - * A cacheable loader must have a deterministic result, when inputs and dependencies haven't changed. - * This means the loader shouldn't have other dependencies than specified with this.addDependency. - * Most loaders are deterministic and cacheable. - */ - cacheable(flag?: boolean): void - - /** - * An array of all the loaders. It is writeable in the pitch phase. - * loaders = [{request: string, path: string, query: string, module: function}] - * - * In the example: - * [ - * { request: "/abc/loader1.js?xyz", - * path: "/abc/loader1.js", - * query: "?xyz", - * module: [Function] - * }, - * { request: "/abc/node_modules/loader2/index.js", - * path: "/abc/node_modules/loader2/index.js", - * query: "", - * module: [Function] - * } - * ] - */ - loaders: any[] - - /** - * The index in the loaders array of the current loader. - * In the example: in loader1: 0, in loader2: 1 - */ - loaderIndex: number - - /** - * The resource part of the request, including query. - * In the example: "/abc/resource.js?rrr" - */ - resource: string - - /** - * The resource file. - * In the example: "/abc/resource.js" - */ - resourcePath: string - - /** - * The query of the resource. - * In the example: "?rrr" - */ - resourceQuery: string - - /** - * Emit a warning. - */ - emitWarning(message: string | Error): void - - /** - * Emit a error. - */ - emitError(message: string | Error): void - - /** - * Execute some code fragment like a module. - * - * Don't use require(this.resourcePath), use this function to make loaders chainable! - * - */ - exec(code: string, filename: string): any - - /** - * Resolves the given request to a module, applies all configured loaders and calls - * back with the generated source, the sourceMap and the module instance (usually an - * instance of NormalModule). Use this function if you need to know the source code - * of another module to generate the result. - */ - loadModule( - request: string, - callback: ( - err: Error | null, - source: string, - sourceMap: RawSourceMap, - module: ModuleOptions, - ) => void, - ): any - - /** - * Resolve a request like a require expression. - */ - resolve( - context: string, - request: string, - callback: (err: Error, result: string) => void, - ): any - - /** - * Resolve a request like a require expression. - */ - resolveSync(context: string, request: string): string - - /** - * Adds a file as dependency of the loader result in order to make them watchable. - * For example, html-loader uses this technique as it finds src and src-set attributes. - * Then, it sets the url's for those attributes as dependencies of the html file that is parsed. - */ - addDependency(file: string): void - - /** - * Adds a file as dependency of the loader result in order to make them watchable. - * For example, html-loader uses this technique as it finds src and src-set attributes. - * Then, it sets the url's for those attributes as dependencies of the html file that is parsed. - */ - dependency(file: string): void - - /** - * Add a directory as dependency of the loader result. - */ - addContextDependency(directory: string): void - - /** - * Remove all dependencies of the loader result. Even initial dependencies and these of other loaders. Consider using pitch. - */ - clearDependencies(): void - - /** - * Pass values to the next loader. - * If you know what your result exports if executed as module, set this value here (as a only element array). - */ - value: any - - /** - * Passed from the last loader. - * If you would execute the input argument as module, consider reading this variable for a shortcut (for performance). - */ - inputValue: any - - /** - * A boolean flag. It is set when in debug mode. - */ - debug: boolean - - /** - * Should the result be minimized. - */ - minimize: boolean - - /** - * Should a SourceMap be generated. - */ - sourceMap: boolean - - /** - * Target of compilation. Passed from configuration options. - * Example values: "web", "node" - */ - target: - | 'web' - | 'webworker' - | 'async-node' - | 'node' - | 'electron-main' - | 'electron-renderer' - | 'node-webkit' - | string - - /** - * This boolean is set to true when this is compiled by webpack. - * - * Loaders were originally designed to also work as Babel transforms. - * Therefore if you write a loader that works for both, you can use this property to know if - * there is access to additional loaderContext and webpack features. - */ - webpack: boolean - - /** - * Emit a file. This is webpack-specific. - */ - emitFile(name: string, content: Buffer | string, sourceMap: any): void - - /** - * Access to the compilation's inputFileSystem property. - */ - fs: any - - /** - * Which mode is webpack running. - */ - mode: 'production' | 'development' | 'none' - - /** - * Hacky access to the Compilation object of webpack. - */ - _compilation: any - - /** - * Hacky access to the Compiler object of webpack. - */ - _compiler: Compiler - - /** - * Hacky access to the Module object being loaded. - */ - _module: any - - /** Flag if HMR is enabled */ - hot: boolean -} - -export type LoaderCallback = ( - err: Error | undefined | null, - content?: string | Buffer, - sourceMap?: RawSourceMap, -) => void - -export interface StartOfSourceMap { - file?: string - sourceRoot?: string -} - -export interface RawSourceMap extends StartOfSourceMap { - version: string - sources: string[] - names: string[] - sourcesContent?: string[] - mappings: string -} From 3aed7311fbe3588b99dd91b7d4e056a83889163d Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Wed, 22 May 2024 09:51:49 +0800 Subject: [PATCH 14/16] refactor(bundler-webpack): make use of flatMap --- .../src/build/ssr/createClientPlugin.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/bundler-webpack/src/build/ssr/createClientPlugin.ts b/packages/bundler-webpack/src/build/ssr/createClientPlugin.ts index ce84dd42e8..25a778f6ae 100644 --- a/packages/bundler-webpack/src/build/ssr/createClientPlugin.ts +++ b/packages/bundler-webpack/src/build/ssr/createClientPlugin.ts @@ -34,14 +34,12 @@ export const createClientPlugin = ( const allFiles = assets.map((a) => a.name) // get initial entry files - const initialFiles = - Object.keys(entrypoints) - .map( - (name) => - entrypoints[name].assets?.map((item) => item.name) ?? [], - ) - .reduce((assets, all) => all.concat(assets), []) - .filter((file) => isJS(file) || isCSS(file)) ?? [] + const initialFiles = Object.keys(entrypoints) + .flatMap( + (name) => + entrypoints[name].assets?.map((item) => item.name) ?? [], + ) + .filter((file) => isJS(file) || isCSS(file)) // get files that should be loaded asynchronously // i.e. script and style files that are not included in the initial entry files From 21ae9154b4a7fc379fc5f7d67043c15ebc81bcf1 Mon Sep 17 00:00:00 2001 From: Mister-Hope Date: Wed, 22 May 2024 10:24:01 +0800 Subject: [PATCH 15/16] feat(bundler-webpack): replace webpack-chain with webpack-5-chain (close #1503) (#1566) Co-authored-by: meteorlxy --- packages/bundler-webpack/package.json | 2 +- .../src/build/createClientConfig.ts | 5 +++-- .../src/build/createServerConfig.ts | 2 +- .../src/config/createBaseConfig.ts | 4 ++-- .../src/config/createClientBaseConfig.ts | 2 +- .../src/config/handleDevtool.ts | 5 ++--- .../bundler-webpack/src/config/handleEntry.ts | 2 +- .../bundler-webpack/src/config/handleMode.ts | 2 +- .../bundler-webpack/src/config/handleModule.ts | 2 +- .../src/config/handleModuleAssets.ts | 18 +++++++++--------- .../src/config/handleModuleJs.ts | 2 +- .../src/config/handleModulePug.ts | 2 +- .../src/config/handleModuleStyles.ts | 2 +- .../src/config/handleModuleTs.ts | 2 +- .../src/config/handleModuleVue.ts | 2 +- .../bundler-webpack/src/config/handleNode.ts | 2 +- .../src/config/handleOtherOptions.ts | 11 +++++------ .../src/config/handlePluginDefine.ts | 2 +- .../src/config/handleResolve.ts | 2 +- .../bundler-webpack/src/dev/createDevConfig.ts | 2 +- .../src/resolveWebpackConfig.ts | 4 ++-- packages/bundler-webpack/src/types.ts | 4 ++-- pnpm-lock.yaml | 15 +++++++-------- 23 files changed, 47 insertions(+), 49 deletions(-) diff --git a/packages/bundler-webpack/package.json b/packages/bundler-webpack/package.json index 1b997d2936..0425b1476d 100644 --- a/packages/bundler-webpack/package.json +++ b/packages/bundler-webpack/package.json @@ -59,7 +59,7 @@ "vue-loader": "^17.4.2", "vue-router": "^4.3.2", "webpack": "^5.91.0", - "webpack-chain": "^6.5.1", + "webpack-5-chain": "^8.0.2", "webpack-dev-server": "^5.0.4", "webpack-merge": "^5.10.0" }, diff --git a/packages/bundler-webpack/src/build/createClientConfig.ts b/packages/bundler-webpack/src/build/createClientConfig.ts index cd40685ee4..b64ea26770 100644 --- a/packages/bundler-webpack/src/build/createClientConfig.ts +++ b/packages/bundler-webpack/src/build/createClientConfig.ts @@ -3,8 +3,9 @@ import type { App } from '@vuepress/core' import { fs } from '@vuepress/utils' import CopyWebpackPlugin from 'copy-webpack-plugin' import CssMinimizerPlugin from 'css-minimizer-webpack-plugin' +import type { CssModule } from 'mini-css-extract-plugin' import MiniCssExtractPlugin from 'mini-css-extract-plugin' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import { createClientBaseConfig } from '../config/index.js' import type { WebpackBundlerOptions } from '../types.js' import { createClientPlugin } from './ssr/index.js' @@ -65,7 +66,7 @@ export const createClientConfig = async ( styles: { idHint: 'styles', // necessary to ensure async chunks are also extracted - test: (m) => /css\/mini-extract/.test(m.type), + test: (m: CssModule) => /css\/mini-extract/.test(m.type), chunks: 'all', enforce: true, reuseExistingChunk: true, diff --git a/packages/bundler-webpack/src/build/createServerConfig.ts b/packages/bundler-webpack/src/build/createServerConfig.ts index 2574bc785b..0db803831e 100644 --- a/packages/bundler-webpack/src/build/createServerConfig.ts +++ b/packages/bundler-webpack/src/build/createServerConfig.ts @@ -1,6 +1,6 @@ import { createRequire } from 'node:module' import type { App } from '@vuepress/core' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import { createBaseConfig } from '../config/index.js' import type { WebpackBundlerOptions } from '../types.js' diff --git a/packages/bundler-webpack/src/config/createBaseConfig.ts b/packages/bundler-webpack/src/config/createBaseConfig.ts index f4282af143..b6d8bec3b0 100644 --- a/packages/bundler-webpack/src/config/createBaseConfig.ts +++ b/packages/bundler-webpack/src/config/createBaseConfig.ts @@ -1,5 +1,5 @@ import type { App } from '@vuepress/core' -import Config from 'webpack-chain' +import Config from 'webpack-5-chain' import type { WebpackBundlerOptions } from '../types.js' import { handleDevtool } from './handleDevtool.js' import { handleEntry } from './handleEntry.js' @@ -21,7 +21,7 @@ export const createBaseConfig = async ({ isBuild: boolean isServer: boolean }): Promise => { - // create new webpack-chain config + // create new webpack-5-chain config const config = new Config() /** diff --git a/packages/bundler-webpack/src/config/createClientBaseConfig.ts b/packages/bundler-webpack/src/config/createClientBaseConfig.ts index b071ffd6ac..3dcccffcb4 100644 --- a/packages/bundler-webpack/src/config/createClientBaseConfig.ts +++ b/packages/bundler-webpack/src/config/createClientBaseConfig.ts @@ -1,5 +1,5 @@ import type { App } from '@vuepress/core' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import type { WebpackBundlerOptions } from '../types.js' import { createBaseConfig } from './createBaseConfig.js' diff --git a/packages/bundler-webpack/src/config/handleDevtool.ts b/packages/bundler-webpack/src/config/handleDevtool.ts index 7d38a38be7..774e0df405 100644 --- a/packages/bundler-webpack/src/config/handleDevtool.ts +++ b/packages/bundler-webpack/src/config/handleDevtool.ts @@ -1,5 +1,5 @@ import type { App } from '@vuepress/core' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' /** * Set webpack devtool @@ -18,7 +18,6 @@ export const handleDevtool = ({ config.devtool('source-map') } else if (!isBuild) { // only enable eval-source-map in dev mode - // TODO: remove type assertion when webpack-chain updates its types for webpack 5 - config.devtool('eval-cheap-module-source-map' as Config.DevTool) + config.devtool('eval-cheap-module-source-map') } } diff --git a/packages/bundler-webpack/src/config/handleEntry.ts b/packages/bundler-webpack/src/config/handleEntry.ts index 38a9e6394a..1c2c592b7d 100644 --- a/packages/bundler-webpack/src/config/handleEntry.ts +++ b/packages/bundler-webpack/src/config/handleEntry.ts @@ -1,6 +1,6 @@ import type { App } from '@vuepress/core' import { fs } from '@vuepress/utils' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' /** * Set webpack entry diff --git a/packages/bundler-webpack/src/config/handleMode.ts b/packages/bundler-webpack/src/config/handleMode.ts index 5f12d92682..b0f804b03c 100644 --- a/packages/bundler-webpack/src/config/handleMode.ts +++ b/packages/bundler-webpack/src/config/handleMode.ts @@ -1,5 +1,5 @@ import type { App } from '@vuepress/core' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' /** * Set webpack mode diff --git a/packages/bundler-webpack/src/config/handleModule.ts b/packages/bundler-webpack/src/config/handleModule.ts index 270dc39a48..fe857c7f11 100644 --- a/packages/bundler-webpack/src/config/handleModule.ts +++ b/packages/bundler-webpack/src/config/handleModule.ts @@ -1,5 +1,5 @@ import type { App } from '@vuepress/core' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import type { WebpackBundlerOptions } from '../types.js' import { handleModuleAssets } from './handleModuleAssets.js' import { handleModuleJs } from './handleModuleJs.js' diff --git a/packages/bundler-webpack/src/config/handleModuleAssets.ts b/packages/bundler-webpack/src/config/handleModuleAssets.ts index 277c00acbe..0ccd291938 100644 --- a/packages/bundler-webpack/src/config/handleModuleAssets.ts +++ b/packages/bundler-webpack/src/config/handleModuleAssets.ts @@ -1,5 +1,5 @@ import type { App } from '@vuepress/core' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' /** * Set webpack config to handle assets files @@ -15,8 +15,8 @@ export const handleModuleAssets = ({ config.module .rule('images') .test(/\.(png|jpe?g|gif|webp)(\?.*)?$/) - .type('asset' as any) - .set('generator', { + .type('asset') + .generator({ filename: 'assets/img/[name].[contenthash:8][ext]', }) @@ -26,8 +26,8 @@ export const handleModuleAssets = ({ config.module .rule('svg') .test(/\.(svg)(\?.*)?$/) - .type('asset/resource' as any) - .set('generator', { + .type('asset/resource') + .generator({ filename: 'assets/img/[name].[contenthash:8][ext]', }) @@ -35,8 +35,8 @@ export const handleModuleAssets = ({ config.module .rule('media') .test(/\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/) - .type('asset/resource' as any) - .set('generator', { + .type('asset/resource') + .generator({ filename: 'assets/media/[name].[contenthash:8][ext]', }) @@ -44,8 +44,8 @@ export const handleModuleAssets = ({ config.module .rule('fonts') .test(/\.(woff2?|eot|ttf|otf)(\?.*)?$/i) - .type('asset/resource' as any) - .set('generator', { + .type('asset/resource') + .generator({ filename: 'assets/fonts/[name].[contenthash:8][ext]', }) } diff --git a/packages/bundler-webpack/src/config/handleModuleJs.ts b/packages/bundler-webpack/src/config/handleModuleJs.ts index 6e2842e245..d0e3efb386 100644 --- a/packages/bundler-webpack/src/config/handleModuleJs.ts +++ b/packages/bundler-webpack/src/config/handleModuleJs.ts @@ -1,5 +1,5 @@ import { createRequire } from 'node:module' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import type { WebpackBundlerOptions } from '../types.js' import { resolveEsbuildJsxOptions } from './resolveEsbuildJsxOptions.js' diff --git a/packages/bundler-webpack/src/config/handleModulePug.ts b/packages/bundler-webpack/src/config/handleModulePug.ts index b2a463d4fe..a19c34a727 100644 --- a/packages/bundler-webpack/src/config/handleModulePug.ts +++ b/packages/bundler-webpack/src/config/handleModulePug.ts @@ -1,4 +1,4 @@ -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' /** * Set webpack module to handle pug files diff --git a/packages/bundler-webpack/src/config/handleModuleStyles.ts b/packages/bundler-webpack/src/config/handleModuleStyles.ts index 6664e357d8..ea799e5332 100644 --- a/packages/bundler-webpack/src/config/handleModuleStyles.ts +++ b/packages/bundler-webpack/src/config/handleModuleStyles.ts @@ -1,7 +1,7 @@ import { createRequire } from 'node:module' import autoprefixer from 'autoprefixer' import MiniCssExtractPlugin from 'mini-css-extract-plugin' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import type { LessLoaderOptions, LoaderOptions, diff --git a/packages/bundler-webpack/src/config/handleModuleTs.ts b/packages/bundler-webpack/src/config/handleModuleTs.ts index d7048a45bb..74e045a372 100644 --- a/packages/bundler-webpack/src/config/handleModuleTs.ts +++ b/packages/bundler-webpack/src/config/handleModuleTs.ts @@ -1,6 +1,6 @@ import { createRequire } from 'node:module' import type { App } from '@vuepress/core' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import { resolveEsbuildJsxOptions } from './resolveEsbuildJsxOptions.js' const require = createRequire(import.meta.url) diff --git a/packages/bundler-webpack/src/config/handleModuleVue.ts b/packages/bundler-webpack/src/config/handleModuleVue.ts index 7944309003..ecfdbc7069 100644 --- a/packages/bundler-webpack/src/config/handleModuleVue.ts +++ b/packages/bundler-webpack/src/config/handleModuleVue.ts @@ -2,7 +2,7 @@ import { createRequire } from 'node:module' import type { App } from '@vuepress/core' import { VueLoaderPlugin } from 'vue-loader' import type { VueLoaderOptions } from 'vue-loader' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import type { WebpackBundlerOptions } from '../types.js' const require = createRequire(import.meta.url) diff --git a/packages/bundler-webpack/src/config/handleNode.ts b/packages/bundler-webpack/src/config/handleNode.ts index 77729ab3c8..5bdb24d63a 100644 --- a/packages/bundler-webpack/src/config/handleNode.ts +++ b/packages/bundler-webpack/src/config/handleNode.ts @@ -1,4 +1,4 @@ -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' /** * Set webpack node config diff --git a/packages/bundler-webpack/src/config/handleOtherOptions.ts b/packages/bundler-webpack/src/config/handleOtherOptions.ts index 10debc0d79..ef8e1d8816 100644 --- a/packages/bundler-webpack/src/config/handleOtherOptions.ts +++ b/packages/bundler-webpack/src/config/handleOtherOptions.ts @@ -1,7 +1,6 @@ import { createRequire } from 'node:module' import type { App } from '@vuepress/core' -import type { Configuration } from 'webpack' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' const require = createRequire(import.meta.url) @@ -22,12 +21,12 @@ export const handleOtherOptions = ({ isServer: boolean }): void => { // set infrastructureLogging options - config.set('infrastructureLogging', { + config.infrastructureLogging({ level: app.env.isDebug ? 'info' : 'error', - } as Configuration['infrastructureLogging']) + }) // set cache options - config.set('cache', { + config.cache({ type: 'filesystem', cacheDirectory: app.dir.cache(), version: JSON.stringify({ @@ -40,5 +39,5 @@ export const handleOtherOptions = ({ 'vue-loader': require('vue-loader/package.json').version, 'webpack': require('webpack/package.json').version, }), - } as Configuration['cache']) + }) } diff --git a/packages/bundler-webpack/src/config/handlePluginDefine.ts b/packages/bundler-webpack/src/config/handlePluginDefine.ts index 3a603cb458..d118844d48 100644 --- a/packages/bundler-webpack/src/config/handlePluginDefine.ts +++ b/packages/bundler-webpack/src/config/handlePluginDefine.ts @@ -1,6 +1,6 @@ import type { App } from '@vuepress/core' import webpack from 'webpack' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' /** * Set webpack DefinePlugin diff --git a/packages/bundler-webpack/src/config/handleResolve.ts b/packages/bundler-webpack/src/config/handleResolve.ts index 5075bf3a89..6081614be2 100644 --- a/packages/bundler-webpack/src/config/handleResolve.ts +++ b/packages/bundler-webpack/src/config/handleResolve.ts @@ -1,5 +1,5 @@ import type { App } from '@vuepress/core' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' /** * Set webpack resolve diff --git a/packages/bundler-webpack/src/dev/createDevConfig.ts b/packages/bundler-webpack/src/dev/createDevConfig.ts index c7360de572..99845e6810 100644 --- a/packages/bundler-webpack/src/dev/createDevConfig.ts +++ b/packages/bundler-webpack/src/dev/createDevConfig.ts @@ -1,7 +1,7 @@ import type { App } from '@vuepress/core' import HtmlPlugin from 'html-webpack-plugin' import webpack from 'webpack' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import { createClientBaseConfig } from '../config/index.js' import type { WebpackBundlerOptions } from '../types.js' diff --git a/packages/bundler-webpack/src/resolveWebpackConfig.ts b/packages/bundler-webpack/src/resolveWebpackConfig.ts index ba8999bcd1..ce619b529c 100644 --- a/packages/bundler-webpack/src/resolveWebpackConfig.ts +++ b/packages/bundler-webpack/src/resolveWebpackConfig.ts @@ -1,5 +1,5 @@ import type { Configuration } from 'webpack' -import type Config from 'webpack-chain' +import type Config from 'webpack-5-chain' import { merge } from 'webpack-merge' import type { WebpackBundlerOptions } from './types.js' @@ -17,7 +17,7 @@ export const resolveWebpackConfig = ({ // allow modifying webpack config via `chainWebpack` options.chainWebpack?.(config, isServer, isBuild) - // generate webpack config from webpack-chain + // generate webpack config from webpack-5-chain const webpackConfig = config.toConfig() // allow modifying webpack config via `configureWebpack` diff --git a/packages/bundler-webpack/src/types.ts b/packages/bundler-webpack/src/types.ts index b5648d74a1..7cbdbd569e 100644 --- a/packages/bundler-webpack/src/types.ts +++ b/packages/bundler-webpack/src/types.ts @@ -3,7 +3,7 @@ import type { LoaderContext, Configuration as WebpackConfiguration, } from 'webpack' -import type WebpackChainConfig from 'webpack-chain' +import type WebpackChainConfig from 'webpack-5-chain' import type WebpackDevServer from 'webpack-dev-server' export type { @@ -27,7 +27,7 @@ export interface WebpackBundlerOptions { ) => WebpackConfiguration | void /** - * use webpack-chain to set webpack config + * use webpack-5-chain to set webpack config */ chainWebpack?: ( config: WebpackChainConfig, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 065b3fecf5..84261aede1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -225,9 +225,9 @@ importers: webpack: specifier: ^5.91.0 version: 5.91.0(esbuild@0.19.12) - webpack-chain: - specifier: ^6.5.1 - version: 6.5.1 + webpack-5-chain: + specifier: ^8.0.2 + version: 8.0.2 webpack-dev-server: specifier: ^5.0.4 version: 5.0.4(webpack@5.91.0(esbuild@0.19.12)) @@ -5110,10 +5110,9 @@ packages: webidl-conversions@4.0.2: resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - webpack-chain@6.5.1: - resolution: {integrity: sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==} - engines: {node: '>=8'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + webpack-5-chain@8.0.2: + resolution: {integrity: sha512-gpzlChffrVUu5YwIw9i240/wdcglw53mSEV/7WoK7L/ddfb6Al8/sRjztyPYV8VgJAmkapH5T1AOUfMFryQ/VA==} + engines: {node: '>=10'} webpack-dev-middleware@7.2.1: resolution: {integrity: sha512-hRLz+jPQXo999Nx9fXVdKlg/aehsw1ajA9skAneGmT03xwmyuhvF93p6HUKKbWhXdcERtGTzUCtIQr+2IQegrA==} @@ -10318,7 +10317,7 @@ snapshots: webidl-conversions@4.0.2: {} - webpack-chain@6.5.1: + webpack-5-chain@8.0.2: dependencies: deepmerge: 1.5.2 javascript-stringify: 2.1.0 From 5615fd38d7e79b57df8b69c0a031e5e9d3987770 Mon Sep 17 00:00:00 2001 From: meteorlxy Date: Wed, 22 May 2024 10:39:25 +0800 Subject: [PATCH 16/16] build: bump deps --- package.json | 4 +- packages/bundler-webpack/package.json | 2 +- packages/markdown/package.json | 2 +- pnpm-lock.yaml | 388 +++++++++++++------------- 4 files changed, 195 insertions(+), 201 deletions(-) diff --git a/package.json b/package.json index a11a5276d3..27a98e0994 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "eslint-config-vuepress": "^4.10.1", "eslint-config-vuepress-typescript": "^4.10.1", "husky": "^9.0.11", - "lint-staged": "^15.2.2", + "lint-staged": "^15.2.4", "prettier": "^3.2.5", "prettier-config-vuepress": "^4.4.0", "rimraf": "^5.0.7", @@ -55,7 +55,7 @@ "vitest": "^1.6.0", "vue-tsc": "^2.0.19" }, - "packageManager": "pnpm@9.1.1", + "packageManager": "pnpm@9.1.2", "engines": { "node": ">=18.16.0" } diff --git a/packages/bundler-webpack/package.json b/packages/bundler-webpack/package.json index 0425b1476d..e149f0cd22 100644 --- a/packages/bundler-webpack/package.json +++ b/packages/bundler-webpack/package.json @@ -50,7 +50,7 @@ "esbuild-loader": "~4.1.0", "express": "^4.19.2", "html-webpack-plugin": "^5.6.0", - "lightningcss": "^1.24.1", + "lightningcss": "^1.25.0", "mini-css-extract-plugin": "^2.9.0", "postcss": "^8.4.38", "postcss-loader": "^8.1.1", diff --git a/packages/markdown/package.json b/packages/markdown/package.json index 517fa9f2d9..4a5f135c6b 100644 --- a/packages/markdown/package.json +++ b/packages/markdown/package.json @@ -44,7 +44,7 @@ "@vuepress/shared": "workspace:*", "@vuepress/utils": "workspace:*", "markdown-it": "^14.1.0", - "markdown-it-anchor": "^9.0.0", + "markdown-it-anchor": "^9.0.1", "markdown-it-emoji": "^3.0.0", "mdurl": "^2.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 84261aede1..ac26467e22 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,7 +25,7 @@ importers: version: 1.18.5 '@vitest/coverage-istanbul': specifier: ^1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0)) + version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0)) bumpp: specifier: ^9.4.1 version: 9.4.1 @@ -37,16 +37,16 @@ importers: version: 8.57.0 eslint-config-vuepress: specifier: ^4.10.1 - version: 4.10.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + version: 4.10.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) eslint-config-vuepress-typescript: specifier: ^4.10.1 - version: 4.10.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0)(typescript@5.4.5) + version: 4.10.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0)(typescript@5.4.5) husky: specifier: ^9.0.11 version: 9.0.11 lint-staged: - specifier: ^15.2.2 - version: 15.2.2 + specifier: ^15.2.4 + version: 15.2.4 prettier: specifier: ^3.2.5 version: 3.2.5 @@ -70,10 +70,10 @@ importers: version: 5.4.5 vite: specifier: ~5.2.11 - version: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) + version: 5.2.11(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) + version: 1.6.0(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0) vue-tsc: specifier: ^2.0.19 version: 2.0.19(typescript@5.4.5) @@ -116,7 +116,7 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.0.4 - version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) + version: 5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5)) '@vuepress/client': specifier: workspace:* version: link:../client @@ -146,7 +146,7 @@ importers: version: 4.17.2 vite: specifier: ~5.2.11 - version: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) + version: 5.2.11(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0) vue: specifier: ^3.4.27 version: 3.4.27(typescript@5.4.5) @@ -188,7 +188,7 @@ importers: version: 7.1.1(webpack@5.91.0(esbuild@0.19.12)) css-minimizer-webpack-plugin: specifier: ^7.0.0 - version: 7.0.0(esbuild@0.19.12)(lightningcss@1.24.1)(webpack@5.91.0(esbuild@0.19.12)) + version: 7.0.0(esbuild@0.19.12)(lightningcss@1.25.0)(webpack@5.91.0(esbuild@0.19.12)) esbuild-loader: specifier: ~4.1.0 version: 4.1.0(webpack@5.91.0(esbuild@0.19.12)) @@ -199,8 +199,8 @@ importers: specifier: ^5.6.0 version: 5.6.0(webpack@5.91.0(esbuild@0.19.12)) lightningcss: - specifier: ^1.24.1 - version: 1.24.1 + specifier: ^1.25.0 + version: 1.25.0 mini-css-extract-plugin: specifier: ^2.9.0 version: 2.9.0(webpack@5.91.0(esbuild@0.19.12)) @@ -338,8 +338,8 @@ importers: specifier: ^14.1.0 version: 14.1.0 markdown-it-anchor: - specifier: ^9.0.0 - version: 9.0.0(@types/markdown-it@14.1.1)(markdown-it@14.1.0) + specifier: ^9.0.1 + version: 9.0.1(@types/markdown-it@14.1.1)(markdown-it@14.1.0) markdown-it-emoji: specifier: ^3.0.0 version: 3.0.0 @@ -1134,8 +1134,8 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/express-serve-static-core@4.19.0': - resolution: {integrity: sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==} + '@types/express-serve-static-core@4.19.1': + resolution: {integrity: sha512-ej0phymbFLoCB26dbbq5PGScsf2JAJ4IJHjG10LalgUV36XKTmA4GdA+PVllKvRk0sEKt64X8975qFnkSi0hqA==} '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} @@ -1236,8 +1236,8 @@ packages: '@types/yargs@17.0.32': resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - '@typescript-eslint/eslint-plugin@7.9.0': - resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} + '@typescript-eslint/eslint-plugin@7.10.0': + resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1247,8 +1247,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.9.0': - resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} + '@typescript-eslint/parser@7.10.0': + resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1257,12 +1257,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.9.0': - resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} + '@typescript-eslint/scope-manager@7.10.0': + resolution: {integrity: sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.9.0': - resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} + '@typescript-eslint/type-utils@7.10.0': + resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1271,12 +1271,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.9.0': - resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} + '@typescript-eslint/types@7.10.0': + resolution: {integrity: sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@7.9.0': - resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} + '@typescript-eslint/typescript-estree@7.10.0': + resolution: {integrity: sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -1284,14 +1284,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.9.0': - resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} + '@typescript-eslint/utils@7.10.0': + resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.9.0': - resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} + '@typescript-eslint/visitor-keys@7.10.0': + resolution: {integrity: sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==} engines: {node: ^18.18.0 || >=20.0.0} '@ungap/structured-clone@1.2.0': @@ -1641,8 +1641,8 @@ packages: resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} engines: {node: '>=0.10.0'} - braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} browserslist@4.23.0: @@ -1711,8 +1711,8 @@ packages: caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001620: - resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} + caniuse-lite@1.0.30001621: + resolution: {integrity: sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==} chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -1803,9 +1803,9 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -2281,8 +2281,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.4.773: - resolution: {integrity: sha512-87eHF+h3PlCRwbxVEAw9KtK3v7lWfc/sUDr0W76955AdYTG4bV/k0zrl585Qnj/skRMH2qOSiE+kqMeOQ+LOpw==} + electron-to-chromium@1.4.777: + resolution: {integrity: sha512-n02NCwLJ3wexLfK/yQeqfywCblZqLcXphzmid5e8yVPdtEcida7li0A5WQKghHNG0FeOMCzeFOzEbtAh5riXFw==} emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -2336,8 +2336,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.5.2: - resolution: {integrity: sha512-l60ETUTmLqbVbVHv1J4/qj+M8nq7AwMzEcg3kmJDt9dCNrTk+yHcYFf/Kw75pMDwd9mPcIGCG5LcS20SxYRzFA==} + es-module-lexer@1.5.3: + resolution: {integrity: sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} @@ -2591,8 +2591,8 @@ packages: resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} engines: {node: '>=0.10.0'} - fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} finalhandler@1.1.2: @@ -2767,8 +2767,8 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.3.15: - resolution: {integrity: sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==} + glob@10.3.16: + resolution: {integrity: sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==} engines: {node: '>=16 || 14 >=14.18'} hasBin: true @@ -3241,8 +3241,8 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} - jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + jackspeak@3.1.2: + resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} engines: {node: '>=14'} javascript-stringify@2.1.0: @@ -3344,68 +3344,64 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lightningcss-darwin-arm64@1.24.1: - resolution: {integrity: sha512-1jQ12jBy+AE/73uGQWGSafK5GoWgmSiIQOGhSEXiFJSZxzV+OXIx+a9h2EYHxdJfX864M+2TAxWPWb0Vv+8y4w==} + lightningcss-darwin-arm64@1.25.0: + resolution: {integrity: sha512-neCU5PrQUAec/b2mpXv13rrBWObQVaG/y0yhGKzAqN9cj7lOv13Wegnpiro0M66XAxx/cIkZfmJstRfriOR2SQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.24.1: - resolution: {integrity: sha512-R4R1d7VVdq2mG4igMU+Di8GPf0b64ZLnYVkubYnGG0Qxq1KaXQtAzcLI43EkpnoWvB/kUg8JKCWH4S13NfiLcQ==} + lightningcss-darwin-x64@1.25.0: + resolution: {integrity: sha512-h1XBxDHdED7TY4/1V30UNjiqXceGbcL8ARhUfbf8CWAEhD7wMKK/4UqMHi94RDl31ko4LTmt9fS2u1uyeWYE6g==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.24.1: - resolution: {integrity: sha512-z6NberUUw5ALES6Ixn2shmjRRrM1cmEn1ZQPiM5IrZ6xHHL5a1lPin9pRv+w6eWfcrEo+qGG6R9XfJrpuY3e4g==} + lightningcss-freebsd-x64@1.25.0: + resolution: {integrity: sha512-f7v6QwrqCFtQOG1Y7iZ4P1/EAmMsyUyRBrYbSmDxihMzdsL7xyTM753H2138/oCpam+maw2RZrXe/NA1r/I5cQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.24.1: - resolution: {integrity: sha512-NLQLnBQW/0sSg74qLNI8F8QKQXkNg4/ukSTa+XhtkO7v3BnK19TS1MfCbDHt+TTdSgNEBv0tubRuapcKho2EWw==} + lightningcss-linux-arm-gnueabihf@1.25.0: + resolution: {integrity: sha512-7KSVcjci9apHxUKNjiLKXn8hVQJqCtwFg5YNvTeKi/BM91A9lQTuO57RpmpPbRIb20Qm8vR7fZtL1iL5Yo3j9A==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.24.1: - resolution: {integrity: sha512-AQxWU8c9E9JAjAi4Qw9CvX2tDIPjgzCTrZCSXKELfs4mCwzxRkHh2RCxX8sFK19RyJoJAjA/Kw8+LMNRHS5qEg==} + lightningcss-linux-arm64-gnu@1.25.0: + resolution: {integrity: sha512-1+6tuAsUyMVG5N2rzgwaOOf84yEU+Gjl71b+wLcz26lyM/ohgFgeqPWeB/Dor0wyUnq7vg184l8goGT26cRxoQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.24.1: - resolution: {integrity: sha512-JCgH/SrNrhqsguUA0uJUM1PvN5+dVuzPIlXcoWDHSv2OU/BWlj2dUYr3XNzEw748SmNZPfl2NjQrAdzaPOn1lA==} + lightningcss-linux-arm64-musl@1.25.0: + resolution: {integrity: sha512-4kw3ZnGQzxD8KkaB4doqfi32hP5h3o04OlrdfZ7T9VLTbUxeh3YZUKcJmhINV2rdMOOmVODqaRw1kuvvF16Q+Q==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-x64-gnu@1.24.1: - resolution: {integrity: sha512-TYdEsC63bHV0h47aNRGN3RiK7aIeco3/keN4NkoSQ5T8xk09KHuBdySltWAvKLgT8JvR+ayzq8ZHnL1wKWY0rw==} + lightningcss-linux-x64-gnu@1.25.0: + resolution: {integrity: sha512-oVEP5rBrFQB5V7fRIPYkDxKLmd2fAbz9VagKWIRu1TlYDUFWXK4F3KztAtAKuD7tLMBSGGi1LMUueFzVe+cZbw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.24.1: - resolution: {integrity: sha512-HLfzVik3RToot6pQ2Rgc3JhfZkGi01hFetHt40HrUMoeKitLoqUUT5owM6yTZPTytTUW9ukLBJ1pc3XNMSvlLw==} + lightningcss-linux-x64-musl@1.25.0: + resolution: {integrity: sha512-7ssY6HwCvmPDohqtXuZG2Mh9q32LbVBhiF/SS/VMj2jUcXcsBilUEviq/zFDzhZMxl5f1lXi5/+mCuSGrMir1A==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-win32-x64-msvc@1.24.1: - resolution: {integrity: sha512-joEupPjYJ7PjZtDsS5lzALtlAudAbgIBMGJPNeFe5HfdmJXFd13ECmEM+5rXNxYVMRHua2w8132R6ab5Z6K9Ow==} + lightningcss-win32-x64-msvc@1.25.0: + resolution: {integrity: sha512-DUVxj1S6dCQkixQ5qiHcYojamxE02bgmSpc4p6lejPwW7WRd/pvDPDAr+BvZWAkX5MRphxB7ei6+93+42ZtvmQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] - lightningcss@1.24.1: - resolution: {integrity: sha512-kUpHOLiH5GB0ERSv4pxqlL0RYKnOXtgGtVe7shDGfhS0AZ4D1ouKFYAcLcZhql8aMspDNzaUCumGHZ78tb2fTg==} + lightningcss@1.25.0: + resolution: {integrity: sha512-B08o6QQikGaY4rPuQohtFVE+X2++mm/QemwAJ/1sgnMgTwwUnafJbTmSSBWC8Tv4JPfhelXZB6sWA0Y/6eYJmQ==} engines: {node: '>= 12.0.0'} - lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} - engines: {node: '>=14'} - lilconfig@3.1.1: resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} engines: {node: '>=14'} @@ -3416,13 +3412,13 @@ packages: linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - lint-staged@15.2.2: - resolution: {integrity: sha512-TiTt93OPh1OZOsb5B7k96A/ATl2AjIZo+vnzFZ6oHK5FuTk63ByDtxGQpHm+kFETjEWqgkF95M8FRXKR/LEBcw==} + lint-staged@15.2.4: + resolution: {integrity: sha512-3F9KRQIS2fVDGtCkBp4Bx0jswjX7zUcKx6OF0ZeY1prksUyKPRIIUqZhIUYAstJfvj6i48VFs4dwVIbCYwvTYQ==} engines: {node: '>=18.12.0'} hasBin: true - listr2@8.0.1: - resolution: {integrity: sha512-ovJXBXkKGfq+CwmKTjluEqFi3p4h8xvkxGQQAQan22YCgef4KZ1mKGjzfGh6PL6AW5Csw0QiQPNuQyH+6Xk3hA==} + listr2@8.2.1: + resolution: {integrity: sha512-irTfvpib/rNiD637xeevjO2l3Z5loZmuaRi0L0YE5LfijwVY96oyVn0DFD3o/teAok7nfobMG1THvvcHh/BP6g==} engines: {node: '>=18.0.0'} load-tsconfig@0.2.5: @@ -3524,8 +3520,8 @@ packages: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} - markdown-it-anchor@9.0.0: - resolution: {integrity: sha512-gf3mP2g4YZ2WhJrYYOCgU6CyyczVAncjkafan0ONM0AtXTTgIeXMw7M+VjDt4EWODxC2GROpAClUuo2iz5+p3A==} + markdown-it-anchor@9.0.1: + resolution: {integrity: sha512-cBt7aAzmkfX8X7FqAe8EBryiKmToXgMQEEMqkXzWCm0toDtfDYIGboKeTKd8cpNJArJtutrf+977wFJTsvNGmQ==} peerDependencies: '@types/markdown-it': '*' markdown-it: '*' @@ -3580,8 +3576,8 @@ packages: resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} engines: {node: '>=0.10.0'} - micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.6: + resolution: {integrity: sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ==} engines: {node: '>=8.6'} mime-db@1.52.0: @@ -3918,6 +3914,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pidtree@0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} engines: {node: '>=0.10'} @@ -5236,10 +5236,6 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - yaml@2.4.2: resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} engines: {node: '>= 14'} @@ -5890,7 +5886,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.0 + '@types/express-serve-static-core': 4.19.1 '@types/node': 20.12.12 '@types/connect@3.4.38': @@ -5919,7 +5915,7 @@ snapshots: '@types/estree@1.0.5': {} - '@types/express-serve-static-core@4.19.0': + '@types/express-serve-static-core@4.19.1': dependencies: '@types/node': 20.12.12 '@types/qs': 6.9.15 @@ -5929,7 +5925,7 @@ snapshots: '@types/express@4.17.21': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.0 + '@types/express-serve-static-core': 4.19.1 '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 @@ -6032,14 +6028,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/type-utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.10.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -6050,12 +6046,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.10.0 debug: 4.3.4 eslint: 8.57.0 optionalDependencies: @@ -6063,15 +6059,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.9.0': + '@typescript-eslint/scope-manager@7.10.0': dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 - '@typescript-eslint/type-utils@7.9.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4 eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.5) @@ -6080,12 +6076,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.9.0': {} + '@typescript-eslint/types@7.10.0': {} - '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@7.10.0(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -6097,30 +6093,30 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.9.0(eslint@8.57.0)(typescript@5.4.5)': + '@typescript-eslint/utils@7.10.0(eslint@8.57.0)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.9.0': + '@typescript-eslint/visitor-keys@7.10.0': dependencies: - '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/types': 7.10.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': + '@vitejs/plugin-vue@5.0.4(vite@5.2.11(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0))(vue@3.4.27(typescript@5.4.5))': dependencies: - vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0) vue: 3.4.27(typescript@5.4.5) - '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0))': + '@vitest/coverage-istanbul@1.6.0(vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0))': dependencies: debug: 4.3.4 istanbul-lib-coverage: 3.2.2 @@ -6131,7 +6127,7 @@ snapshots: magicast: 0.3.4 picocolors: 1.0.1 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) + vitest: 1.6.0(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0) transitivePeerDependencies: - supports-color @@ -6493,7 +6489,7 @@ snapshots: autoprefixer@10.4.19(postcss@8.4.38): dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001620 + caniuse-lite: 1.0.30001621 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.1 @@ -6570,14 +6566,14 @@ snapshots: transitivePeerDependencies: - supports-color - braces@3.0.2: + braces@3.0.3: dependencies: - fill-range: 7.0.1 + fill-range: 7.1.1 browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001620 - electron-to-chromium: 1.4.773 + caniuse-lite: 1.0.30001621 + electron-to-chromium: 1.4.777 node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.0) @@ -6662,11 +6658,11 @@ snapshots: caniuse-api@3.0.0: dependencies: browserslist: 4.23.0 - caniuse-lite: 1.0.30001620 + caniuse-lite: 1.0.30001621 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001620: {} + caniuse-lite@1.0.30001621: {} chai@4.4.1: dependencies: @@ -6698,7 +6694,7 @@ snapshots: chokidar@3.6.0: dependencies: anymatch: 3.1.3 - braces: 3.0.2 + braces: 3.0.3 glob-parent: 5.1.2 is-binary-path: 2.1.0 is-glob: 4.0.3 @@ -6772,7 +6768,7 @@ snapshots: colorette@2.0.20: {} - commander@11.1.0: {} + commander@12.1.0: {} commander@2.20.3: {} @@ -6990,7 +6986,7 @@ snapshots: optionalDependencies: webpack: 5.91.0(esbuild@0.19.12) - css-minimizer-webpack-plugin@7.0.0(esbuild@0.19.12)(lightningcss@1.24.1)(webpack@5.91.0(esbuild@0.19.12)): + css-minimizer-webpack-plugin@7.0.0(esbuild@0.19.12)(lightningcss@1.25.0)(webpack@5.91.0(esbuild@0.19.12)): dependencies: '@jridgewell/trace-mapping': 0.3.25 cssnano: 7.0.1(postcss@8.4.38) @@ -7001,7 +6997,7 @@ snapshots: webpack: 5.91.0(esbuild@0.19.12) optionalDependencies: esbuild: 0.19.12 - lightningcss: 1.24.1 + lightningcss: 1.25.0 css-select@4.3.0: dependencies: @@ -7254,7 +7250,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.4.773: {} + electron-to-chromium@1.4.777: {} emoji-regex@10.3.0: {} @@ -7338,7 +7334,7 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.5.2: {} + es-module-lexer@1.5.3: {} es-object-atoms@1.0.0: dependencies: @@ -7437,19 +7433,19 @@ snapshots: dependencies: eslint: 8.57.0 - eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0): + eslint-config-standard@17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0): dependencies: eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) - eslint-config-vuepress-typescript@4.10.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0)(typescript@5.4.5): + eslint-config-vuepress-typescript@4.10.1(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0)(typescript@5.4.5): dependencies: - '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0) - eslint-config-vuepress: 4.10.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0) + eslint-config-vuepress: 4.10.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) eslint-plugin-vue: 9.26.0(eslint@8.57.0) transitivePeerDependencies: - eslint @@ -7461,11 +7457,11 @@ snapshots: - supports-color - typescript - eslint-config-vuepress@4.10.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): + eslint-config-vuepress@4.10.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): dependencies: eslint-config-prettier: 9.1.0(eslint@8.57.0) - eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0))(eslint-plugin-n@16.6.2(eslint@8.57.0))(eslint-plugin-promise@6.1.1(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0) eslint-plugin-n: 16.6.2(eslint@8.57.0) eslint-plugin-promise: 6.1.1(eslint@8.57.0) transitivePeerDependencies: @@ -7483,11 +7479,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: @@ -7500,7 +7496,7 @@ snapshots: eslint: 8.57.0 eslint-compat-utils: 0.5.0(eslint@8.57.0) - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -7510,7 +7506,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -7521,7 +7517,7 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -7753,7 +7749,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.5 + micromatch: 4.0.6 fast-json-stable-stringify@2.1.0: {} @@ -7778,7 +7774,7 @@ snapshots: repeat-string: 1.6.1 to-regex-range: 2.1.1 - fill-range@7.0.1: + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -7962,10 +7958,10 @@ snapshots: glob-to-regexp@0.4.1: {} - glob@10.3.15: + glob@10.3.16: dependencies: foreground-child: 3.1.1 - jackspeak: 2.3.6 + jackspeak: 3.1.2 minimatch: 9.0.4 minipass: 7.1.1 path-scurry: 1.11.1 @@ -8168,7 +8164,7 @@ snapshots: http-proxy: 1.18.1(debug@2.6.9) is-glob: 4.0.3 is-plain-obj: 3.0.0 - micromatch: 4.0.5 + micromatch: 4.0.6 optionalDependencies: '@types/express': 4.17.21 transitivePeerDependencies: @@ -8432,7 +8428,7 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 - jackspeak@2.3.6: + jackspeak@3.1.2: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -8531,48 +8527,46 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lightningcss-darwin-arm64@1.24.1: + lightningcss-darwin-arm64@1.25.0: optional: true - lightningcss-darwin-x64@1.24.1: + lightningcss-darwin-x64@1.25.0: optional: true - lightningcss-freebsd-x64@1.24.1: + lightningcss-freebsd-x64@1.25.0: optional: true - lightningcss-linux-arm-gnueabihf@1.24.1: + lightningcss-linux-arm-gnueabihf@1.25.0: optional: true - lightningcss-linux-arm64-gnu@1.24.1: + lightningcss-linux-arm64-gnu@1.25.0: optional: true - lightningcss-linux-arm64-musl@1.24.1: + lightningcss-linux-arm64-musl@1.25.0: optional: true - lightningcss-linux-x64-gnu@1.24.1: + lightningcss-linux-x64-gnu@1.25.0: optional: true - lightningcss-linux-x64-musl@1.24.1: + lightningcss-linux-x64-musl@1.25.0: optional: true - lightningcss-win32-x64-msvc@1.24.1: + lightningcss-win32-x64-msvc@1.25.0: optional: true - lightningcss@1.24.1: + lightningcss@1.25.0: dependencies: detect-libc: 1.0.3 optionalDependencies: - lightningcss-darwin-arm64: 1.24.1 - lightningcss-darwin-x64: 1.24.1 - lightningcss-freebsd-x64: 1.24.1 - lightningcss-linux-arm-gnueabihf: 1.24.1 - lightningcss-linux-arm64-gnu: 1.24.1 - lightningcss-linux-arm64-musl: 1.24.1 - lightningcss-linux-x64-gnu: 1.24.1 - lightningcss-linux-x64-musl: 1.24.1 - lightningcss-win32-x64-msvc: 1.24.1 - - lilconfig@3.0.0: {} + lightningcss-darwin-arm64: 1.25.0 + lightningcss-darwin-x64: 1.25.0 + lightningcss-freebsd-x64: 1.25.0 + lightningcss-linux-arm-gnueabihf: 1.25.0 + lightningcss-linux-arm64-gnu: 1.25.0 + lightningcss-linux-arm64-musl: 1.25.0 + lightningcss-linux-x64-gnu: 1.25.0 + lightningcss-linux-x64-musl: 1.25.0 + lightningcss-win32-x64-msvc: 1.25.0 lilconfig@3.1.1: {} @@ -8582,22 +8576,22 @@ snapshots: dependencies: uc.micro: 2.1.0 - lint-staged@15.2.2: + lint-staged@15.2.4: dependencies: chalk: 5.3.0 - commander: 11.1.0 + commander: 12.1.0 debug: 4.3.4 execa: 8.0.1 - lilconfig: 3.0.0 - listr2: 8.0.1 - micromatch: 4.0.5 + lilconfig: 3.1.1 + listr2: 8.2.1 + micromatch: 4.0.6 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.3.4 + yaml: 2.4.2 transitivePeerDependencies: - supports-color - listr2@8.0.1: + listr2@8.2.1: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 @@ -8700,7 +8694,7 @@ snapshots: dependencies: object-visit: 1.0.1 - markdown-it-anchor@9.0.0(@types/markdown-it@14.1.1)(markdown-it@14.1.0): + markdown-it-anchor@9.0.1(@types/markdown-it@14.1.1)(markdown-it@14.1.0): dependencies: '@types/markdown-it': 14.1.1 markdown-it: 14.1.0 @@ -8761,10 +8755,10 @@ snapshots: transitivePeerDependencies: - supports-color - micromatch@4.0.5: + micromatch@4.0.6: dependencies: - braces: 3.0.2 - picomatch: 2.3.1 + braces: 3.0.3 + picomatch: 4.0.2 mime-db@1.52.0: {} @@ -9100,6 +9094,8 @@ snapshots: picomatch@2.3.1: {} + picomatch@4.0.2: {} + pidtree@0.6.0: {} pirates@4.0.6: {} @@ -9487,7 +9483,7 @@ snapshots: rimraf@5.0.7: dependencies: - glob: 10.3.15 + glob: 10.3.16 rollup@4.17.2: dependencies: @@ -9910,7 +9906,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.3.15 + glob: 10.3.16 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -10195,13 +10191,13 @@ snapshots: vary@1.1.2: {} - vite-node@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0): + vite-node@1.6.0(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.1 - vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0) transitivePeerDependencies: - '@types/node' - less @@ -10212,7 +10208,7 @@ snapshots: - supports-color - terser - vite@5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0): + vite@5.2.11(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0): dependencies: esbuild: 0.20.2 postcss: 8.4.38 @@ -10220,11 +10216,11 @@ snapshots: optionalDependencies: '@types/node': 20.12.12 fsevents: 2.3.3 - lightningcss: 1.24.1 + lightningcss: 1.25.0 sass: 1.77.2 terser: 5.31.0 - vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0): + vitest@1.6.0(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -10243,8 +10239,8 @@ snapshots: strip-literal: 2.1.0 tinybench: 2.8.0 tinypool: 0.8.4 - vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) - vite-node: 1.6.0(@types/node@20.12.12)(lightningcss@1.24.1)(sass@1.77.2)(terser@5.31.0) + vite: 5.2.11(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0) + vite-node: 1.6.0(@types/node@20.12.12)(lightningcss@1.25.0)(sass@1.77.2)(terser@5.31.0) why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.12.12 @@ -10398,7 +10394,7 @@ snapshots: browserslist: 4.23.0 chrome-trace-event: 1.0.3 enhanced-resolve: 5.16.1 - es-module-lexer: 1.5.2 + es-module-lexer: 1.5.3 eslint-scope: 5.1.1 events: 3.3.0 glob-to-regexp: 0.4.1 @@ -10492,8 +10488,6 @@ snapshots: yallist@4.0.0: {} - yaml@2.3.4: {} - yaml@2.4.2: {} yargs-parser@21.1.1: {}